越住后翻,越觉得该学的东东越多,
呵呵,大家一起来学吧,今天是第六章了,
有错请改之了!
第六章 Veritas Volume Manager Volume Operations
目标
通过以下章节学习,你将掌握如下:
l 创建简单的,条带化的和RAID 5卷
l 移除一个卷
l 给一个卷增加一个镜像
l 从一个卷中移除一个镜像
l 更改卷大小(加大一个卷)
l 显示一个卷的属性
l 显示卷映象
l 为一个卷增加一个文件系统
l 给一个镜像的卷增加一个脏区日志
l 给一个卷增加一个日志
磁盘组概述 当设计和管理磁盘组,你要熟知以下几点:l 磁盘组有两个主要功能l 磁盘组:rootdg应该很小l 磁盘组只能有唯一名字l 一个磁盘组至少有2个磁盘l 移除磁盘时要小心
磁盘组概述
磁盘组是共享一个通用配置的VM磁盘的集合。默认的磁盘组是:rootdg。在一个磁盘组内可以使用已经存在于组中的VM驱动创建卷。
磁盘组的主要功能
磁盘组有两个主要功能:
l 帮助管理员管理
l 提供更高级别的有效性
管理优点
系统管理员为了管理方便可以对磁盘组分组成逻辑集合。分组依据于部门或应用,举例来说,如:销售,供应,和开发等。
提高了数据的有效性
一个磁盘组和它的组件可以以一个单元的方式从一个主机移动到另一个。这个功能在以下方面提供了更高级别的数据有效性。
l 第一个系统导出磁盘组
导出一个磁盘组意味着那个主机将不能访问这个磁盘组。另一个主机可以导入磁盘组并且在磁盘组中启动访问所有磁盘。
--------------------------------------------------------------------------------------------------
注意----当磁盘组中的任意一个卷处于打开状态时,磁盘组不能被导出。这是由卷状态---ENABLE和ACTIVE来标识的。在磁盘组被导出之前,卷访问必须终止,卷必须停止。
--------------------------------------------------------------------------------------------------
l 第二个系统导入磁盘组并启动访问
一个主机只可以使用唯一的名字导入磁盘组。然而,系统上的所有磁盘组(除了rootdg,它是必须的),都将会给定一个唯一的名字。
如果一个系统失败,另外一个运行Veritas VM的系统可以导入它的非rootdg磁盘组并提供对它们的访问。
磁盘组需求
这些包括:
n 系统所访问的所有的磁盘组最好都只有唯一的名字
这使得在主机间进行移动并区分它们的功能时,变得很简单。它们可以在导入的过程中重命名。
n 位于一台主机的磁盘组必须只有一个唯一的名字
这是一个应用级限制。
n 每个系统必须有一个磁盘组称为:rootdg
这是一个应用级限制。
n 通常,rootdg磁盘组会很小
rootdg磁盘组与VM软件有着特殊的关系,而且在当系统失败时将其导入或导出到其他系统都是很困难的。它必须要被重命名,因为备份系统也有一个称为rootdg的磁盘组。
n 所有磁盘组必须包含至少2个磁盘
无论如何,每个磁盘组至少需要2个磁盘,这样,磁盘组配置信息的拷贝就可以存储在多个磁盘上,因为冗余的缘故。
在磁盘组中移动VM磁盘
在主机间移动一个完整的磁盘组是很容易的。在主机间移动一个空的磁盘组也是容易的(不包含任何VM目标的磁盘)。
然而,从一个磁盘组到另一个磁盘组移动一个或多个正在使用的(populate)VM磁盘是很复杂的。当VM磁盘在一个磁盘组中被移动,配置信息将不会保存。所以,在磁盘组间移动磁盘时要小心。
VM卷定义 在构造一个卷之前,必须要定义以下这些:l 卷磁盘组(Volume disk group)l 卷磁盘(Volume disk)l 卷名(Volume name)l 卷大小(Volume size)l 卷类型(结构)(Volume type)
VM卷定义
创建卷结构是比较容易做的,工具看上去很简单。但,如果你不理解每个卷的创建过程,又很容易出现错误。
选择一个磁盘组
一个通常的错误是替换默认的rootdg磁盘组中的所有磁盘。一个磁盘组的配置记录不能包含超过2048个目标信息。每个卷(volume),plex, 子磁盘(subdisk),磁盘(disk),都可以认为是一个目标,并占用256字节(bytes)的私有区域。默认的私有区域长度是1024块(block)。在一个磁盘组中最大2048个目标。
另一个划分磁盘为独立组的原因是,你可以导出一个磁盘组并导入它到另一个相连的主机系统。这可能是灾难恢复计划或负载均衡分配的一部分。
可以设计一个磁盘组使它更好的为特定的任务来服务。如图6_1所示的磁盘组有3个磁盘,每个磁盘在不同的存储阵列中。
以这种方式组织的磁盘组对于创建条带卷类型(如RAID 5和镜像卷)是非常好的。最重要的功能是:磁盘组中的每个磁盘位于独立的盒体并位于一个不同的控制器。
--------------------------------------------------------------------------------------------------
注意----必须注意跨越存储阵列的磁盘组。你必须确保你所失的阵列入口将不会中断卷中的镜像或RIAD 5中的多个列。
--------------------------------------------------------------------------------------------------
另外一个磁盘组的结构,如图6_2所示,对于直接串联的卷会好一点。
或许卷是大的,静态的,只读结构,这样只需要周期的备份到磁带上。
他们不需要更高级别的可靠性和可用性。
使用卷名约定
除非你覆盖了默认的变量,VM软件将自动为每个新创建的卷提供一个名字。名字将被系统的称为,vol01, vol02, vol03等。这样所带来的问题是,每个卷执行完全不同的功能,但却不能从名字上表现出来。典型的名字约定将能够反映卷的属性,如:
l 卷结构
l 哪个部门使用它
l 它们与哪个数据库相关
l 在一个工作组中的特定的目的
虽然命名的约定看上去不是很重要,但它们可以在紧急情况下,如电源
断电时可以建立优先权。
决定卷大小
虽然为卷使用一个通常的大小是应用频繁指定的,但管理员更希望在指定的磁盘集上使用实际的空间。有很多方式可以确定卷的最大空间值。如:
l 使用VM软件自动发现空间
l 在一个组中限制所选择的磁盘的搜索空间大小
l 使用命令行方式来查看有效的空间
自动空间分配
如果除了磁盘组名之外,你没有指定任何别的,那么VM软件将自动发现未使用的磁盘空间并将其划分入卷。这可能导致非常混乱的结构,而且创建的某些卷类型的性能会非常差!
限制空间分配
这种方式可以较好的指定你想要使用的几个磁盘,比在一个磁盘组中搜索所有的空间的方式要好。直接由VM去发现最大的有效磁盘空间,但是你选择的磁盘会更适合你想要使用的卷类型。如图6_3,很好的说明了这一点:
如果你想要创建一个RAID 5卷,你可以选择磁盘d1, d2, d3。对于一个连接卷,你可以选择d1, d4, d7。对于一个镜像和连接卷,你可以选择d1, d4, d7为一个镜像,d3, d6, d9为另一个镜像。
查看空间分配
在创建一个卷之前花一些时间分析空闲的磁盘空间是有必要的。查看适合你所需要的空闲磁盘空间。在一个磁盘组中查看空闲空间的一些常用命令是:
# vxdg free
# vxassist maxsize
下面的例子使用了这些命令:
# vxdg –g DGa free
DISK DEVICE TAG OFFSET LENGTH FLAGS
disk01 c3t1d0s2 c3t1d0 1843647 206625 -
disk02 c3t1d1s2 c3t1d1 2046240 4032 -
disk03 c3t2d0s2 c3t2d0 0 2050272 -
# vxassist –g DGa maxsize layout=nomirror,nostripe disk01 disk02 disk03
Maximum volume size: 2258944 (1103Mb)
# vxassist –g DGa maxsize layout=raid5,nolog disk01 disk02 disk03
Maximum volume size: 2258944 (1103Mb)
--------------------------------------------------------------------------------------------------
注意----通常是不需要使用命令:vxassist maxsize的,除非你限制了磁盘空间并需要创建一个可能很大的卷。
--------------------------------------------------------------------------------------------------
标识卷类型
VM应用支持以下通常的卷结构类型:
l 简单串联(Simple concatenation)
l 简单条带(Simple stripe)
l 镜像(串联或条带)(Mirror)
l RAID 5(带有奇偶校验的条带)
简单串联
这涉及到:
n 有效的使用存储空间
n 简单的硬件需求
简单条带
这个结构提供了:
n 更好的读写性能
镜像
这个结构的优点是:
n 使用串联和条带化增强了可靠性
n 数据的完全冗余拷贝
RAID 5
这个结构的一个优点是:
n 稍微增强了一点可靠性
使用VMSA创建卷 所有在VMSA中创建的卷使用单一的格式,有着如下功能:l 除了磁盘组,其他所有都是可选的l 可以使用基于浏览器的工具来分配磁盘组和磁盘l 特殊的VM分层是有用的l 文件系统也可以被配置
使用VMSA创建卷
可以由VMSA进行初始化来创建卷,过程如下:
l 点击工具条 New 键
l 在菜单条:Console -àNew-àVolume 入口
l 在命令执行台:Volume -à Create 入口
不管你如何初始化一个卷的会话,都将显示相同的新卷格式(form)。
在这个格式中,不需要提供更多的信息。VMSA将替换默认的变量,但
这不是一个好主意。你可能得到一个不能满足你需求的卷。
新卷格式(The New Volume Form)
所有使用新卷格式创建的卷,如图6_4所示:
VMSA软件对这个表中的变量将自动选择默认变量值。
当使用VMSA新卷格式来配置变量时,需要考虑以下几点:
l 因为管理的目的,默认的变量名可以不被清空
l 使用最大键(Maxsize)可能会导致一个卷会由非常多的小的子磁盘组成,这些子磁盘是随机定位的,它们会引起非常差的性能瓶颈。你可以使用文件系统创建非常巨大的卷,但这将花费很多时间进行newfs及镜像的同步。
l 柱变量的数量只应用于当创建条带化及RAID 5的规划时。当你在Gird窗口高亮的预先选择了磁盘时,它会被自动的输入。
l 如果你不想预分配磁盘,可以使用Assist Disk Browser。
l 增加文件系统键显示了一个附加表,允许你在新卷上创建一个完整的操作文件系统。
自动创建的新的文件系统自动包括如下:
l 加载点
l /etc/vfstab中的入口
l newfs和mkfs操作
l 第一次加载
l 卷属主和保护
l 文件系统类型(UNIX文件系统(UFS)或Veritas文件系统(VXFS))
--------------------------------------------------------------------------------------------------
注意----VxFS系统软件是与基本的VM软件单独定购并且独立授权的(Licensed separately)。
--------------------------------------------------------------------------------------------------
使用命令行来创建卷 可以使用命令:vxassist来创建卷。它被用于:l 创建所有类型的卷l 镜像已经存在的卷l 增大或缩小卷大小l 准备卷备份(Assist in preparing for volume backup)
使用命令行来创建卷
命令:vxassist的格式
命令:vxassist有很多参数,如果不是明确输入,大部分参数使用默认值。
创建一个卷的最简单的例子:
# vxassist make vol02 50m
这个简单的格式的问题是假设以下:
l 磁盘组是rootdg
l 卷的类型是简单串联,没有日志
l 它可以使用任何有着有效空间的磁盘
如果不带任何参数,命令:vxassist可能不会创建你所需要的卷,创建的
卷可能会有很严重的性能问题。
使用vxassist命令参数
如果你对vxassist命令提供了几个参数,结果会更清晰。使用限制参数的典型命令:
# vxassist –g dg2 make newvol 2000m layout=raid5,nolog disk01 disk02 disk03
在这个例子中,vxassist命令更清晰,要求以下为正确的:
n 使用的磁盘组是:dg2
n 卷名为:newvol
n 有效的数据存储空间是:2Gbytes
n 使用3个柱(columns)创建了一个不带有日志的RAID 5卷
n 所有的磁盘空间都来自于disk01, disk02, disk03
其他使用vxassist的命令如:
# vxassist –g dg3 make newvol 20m layout=stripe disk01 disk02 disk03
# vxassist –g dg3 make newvol 20m layout=stripe stripeunit=32k disk01 disk02 \ disk03
通常的vxassist命令参数
虽然有很多vxassist命令参数,但通常使用的只有很少几个。需要仔细的学习它们。在试图使用更多的参数前,要经常读取man帮助页及相关文档。
卷访问属性 因为在系统的每次重新启动VM卷的路径都要被重新创建,你必须要记得以下几点:l VM卷的属性与通常文件的属性相同owner, group, model VM卷属性必须由VM软件来设置由 VMSA GUI设置由命令:vxedit设置
卷访问属性
当在磁盘组中创建了一个新卷,他们给定了默认的访问属性包括:
l Owner
l Group
l Mode
Owner, Group, Mode通常都是root用户,对于一些卷,特别是那些将由
数据库使用的卷,卷属性必须被修改。
--------------------------------------------------------------------------------------------------
警惕----不要使用chown, chgrp或chmod来设置卷属性。在每次系统重启后,属性将恢复到最初值。卷属性必须要由VM软件来更改。
--------------------------------------------------------------------------------------------------
校验卷属性
卷的属主和权限可以象通常的系统文件那样进行检查。使用命令:ls来检查位于目录:/dev/vx/rdsk/dg_name下的卷文件:
# cd /dev/vx/rdsk/dga
# ls
vol01 vol02 vol03
# ls –dl *
--------------------------------------------------------------------------------------------------
注意----你也可以使用VMSA GUI来确定卷属性
--------------------------------------------------------------------------------------------------
改变卷的权限或属主
为了运行应用,如Oracle Parallel Server,需要修改卷的读/写权限和属主。为了改变卷的权限或属主,使用命令:vxedit。它将在VM记录中设置必须的字段。可以使用vxedit的格式如下:
# vxedit –g tpcs set user=oracle group=dba mode=660 acct06
增加一个UFS文件系统 使用以下的两种方式可以增加一个UFS文件系统到一个已经存在的卷:l VMSA 新文件系统表l Solaris操作系统命令
增加一个UFS文件系统
为一个卷增加一个UFS文件系统是非常容易的。你可以在VMSA中填写简单表或在命令行中执行标准的Solaris操作系统命令。这两种方式都将在本部分进行讨论。
--------------------------------------------------------------------------------------------------
注意----UFS和VxFS都被VM所支持。这个过程不会覆盖VxFS;附录D包含一些这个产品的信息。
--------------------------------------------------------------------------------------------------
使用VMSA新文件系统表
如果你使用VMSA的新文件系统表来增加一个新的文件系统到一个已经存在的卷是非常简单的。如图6_5所示,包含了所有必须的信息:
如果你在VMSA的Grid区预先选择了卷,新文件系统表自动显示卷名和加载点。你可以改变这些信息,你也可以通过点击Mkfs Detail键输入任何有效的mkfs参数。
如果你选择了在启动时加载参数,以下的操作将会自动执行:
l 加载信息被记录在文件:/etc/vfstab中
l 文件系统将由命令:mkfs进行初始化
l 加载点被创建
l 最终的文件系统将由命令:mount进行加载
使用命令行来增加一个新的文件系统
当一个新的文件系统由命令进行初始化时,将调整3个重要的文件系统参数,以便于更高效的使用有效空间。他们是:
l 文件系统空闲空间(minfree)
l 每个inode的字节数量(Number of bytes per inode)
l 文件系统簇大小(File system cluster size)
文件系统的空闲空间(minfree)
minfree是初始化过程中故意预留的未使用的文件系统总量。它可以作为紧急情况下的溢出使用。(emergency overflow)
对于早期的低于Solaris 2.6的系统,minfree默认为10%。对于Solaris 2.6系统,默认的newfs参数已经改变。使用newfs,minfree的计算基于文件系统的大小。它的计算(64Mbytes / 分区大小) * 100,取最接近的整数,它被限制为1%到10%。
因为mkfs仍然把10%作为默认的minfree大小,使用newfs可以更有效的创建一个文件系统,尤其对于大的文件系统。在非常大的文件系统中,你可以安全的设置minfree为1%。
每个inode的字节数量(Bytes per inode)
默认的每个inode字节数为2048(2K),除非文件系统由很多小文件组成,这可以安全的增加到8192(8K),举例如下:
# newfs –i 8192 /dev/vx/rdsk/rootdg/vol01
文件系统的簇大小
你可以设置一个文件系统的参数maxconfig来控制文件系统的I/O簇大小。这个参数指定了在写入磁盘时的成簇写入的8K字节块的数量。默认值为7,也就是56K字节。
为了优化连续的性能,设置maxconfig为(条带中spindle的数量* 条带的单元大小) / 文件系统的块大小(8K),如果你要优化随机性能,设置它为1。
如果文件系统的I/O簇大小是条带宽度的整数倍,那么就可以提高性能。如,在128K簇中设置maxconfig为16,(16块*8K系统块大小)。为了最佳的连续访问,文件系统的簇大小是多个条带宽度的整数倍。如:
n 条带中有4个磁盘,条带单元大小=32K
(32-Kbyte stripe unit size × 4 disks = 128-Kbyte stripe width)
n maxconifg=16
(16 × 8-Kbyte blocks = 128-Kbyte clusters)
--------------------------------------------------------------------------------------------------
注意----VMSA 新文件系统表中有一个Mkfs Detail键,允许你配置任何有效的mkfs参数。你也可以设置加载点如,属主,保护,suid, ro, rw和largefile。
--------------------------------------------------------------------------------------------------
脏区日志 一个脏区日志(Dirty Region Log, DRL)保存了一个在镜像卷中已经被修改的数据区的映象,提供了以下优点:l 在崩溃后的高速同步镜像(highly accelerated mirror resynchronization after a crash)l 在镜像重同步的过程中防止第二次崩溃
脏区日志(Dirty Region Logging)
脏区日志(DRL)是VM的日志文件,用来跟踪镜像卷的数据改变。当一个失败的镜像需要使用已经存在的镜像做重新同步时,使用DRL来加速恢复时间。
DRL概述
DRL是一个与镜像卷有关的,小的,有着特殊目的的plex。它有以下的功能:
l 它是用来保存卷中区域跟踪的日志,将改变的结果写入到一个plex,通过维护一个位图(bitmap)并存储这些信息到一个日志子磁盘。
l 在系统失败后,只有在脏区日志标记为脏的区域才可以被恢复
DRL的空间需求
一个DRL对于主机系统有一个单独的恢复映象(recover map),和一个活动映象(active map)。
对于每2个G的卷大小来说,日志大小是每个映象(map)一个块(block)。
对于一个2G卷,DRL的大小是2 blocks
对于一个10G卷,DRL的大小是10 blocks
--------------------------------------------------------------------------------------------------
注意----最大的DRL大小是5K,对于更大的卷,VM改变日志大小来适
应更大的卷。
--------------------------------------------------------------------------------------------------
RAID 5日志 一个RAID 5日志跟踪最近的数据或写入磁盘的奇偶校验信息,提供以下的优点:l 防止崩溃恢复的数据混乱(corruption)它不能象使用脏区日志的镜像卷一样提高恢复过程的速度
RAID 5 日志
RAID 5日志帮助阻止数据的混乱,一旦系统崩溃(mid-write)。若不使用日志,一个系统在写的过程中失败,如果数据和奇偶校验都被写入到磁盘,那么将没有方式去断定。这将导致数据的混乱。
RAID 5日志概述
当使用了RAID 5日志,在写入到磁盘之前,一个数据和奇偶校验的拷贝将被写入到RAID 5日志中。
RAID 5日志是可选的,但是强烈推荐使用它,能够阻止一旦系统混乱或重启动后的数据混乱。
默认情况下,RAID 5日志被创建,你应该总要运行一个使用RAID 5日志的系统来确保数据的完整性。
RAID 5日志的空间需求
在命令:vxprint的输出中,一个RAID 5日志做为第二个plex被显示。日志的长度是2109个块(blocks)或1M多一点。如:
# vxprint apps-v1
v apps-v1 raid5 ENABLED 1024032 - ACTIVE
pl apps-v1-01 apps-v1 ENABLED 1025088 - ACTIVE
sd apps-d01-01 apps-v1-01 ENABLED 341715 0 -
sd apps-d03-01 apps-v1-01 ENABLED 341715 0 -
sd apps-d02-01 apps-v1-01 ENABLED 341715 0 -
pl apps-v1-02 apps-v1 ENABLED 2109 - LOG
sd apps-d05-01 apps-v1-02 ENABLED 2109 0 -
RAID 5日志的大小由VM自动设置,它依赖于卷的条带宽度。更大的条带宽度(不是卷),需要更大的RAID 5日志。
一个RAID 5卷的默认日志大小是4倍的完整条带宽度(条带单元大小 * 条带柱数量)
RAID 5卷的条带单元大小是16Kbytes(16,384字节)。
然而,带有6个磁盘的RAID 5卷的日志大小将按以下方式计算:
4 * 6 * 16.384Kbytes = 393.22Kbytes = 768 blocks
日志放置(log placement) 如果没有适当的放置,日志子磁盘可能会产生性能问题。关于日志子磁盘的最重要的规则是:l 日志子磁盘不能与他们管理的卷位于相同的磁盘
日志放置
在一个系统崩溃后,对于卷的恢复,日志可能会非常有用。如果它们没有被适当的管理,可能会产生I/O的瓶颈而影响系统性能。
对于RAID 5和镜像卷的日志应该计划使用。它们不占用很多空间,但能够引起问题。
必须要特别注意RAID 5日志,因为所有RAID 5条带单元的写入数据同时也写入到日志中。这将在以后的章节继续讨论。
日志计划
如图6_6所示,在所有磁盘的尾部留下少量空闲空间,以确保你能够在移动日志时找到替换位置。
如果可能,日志不要放在与它相关联的卷位于同一磁盘。
阅读(1567) | 评论(0) | 转发(1) |