免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5421 | 回复: 2
打印 上一主题 下一主题

Veritas volume manager之管理磁盘 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-29 20:28 |只看该作者 |倒序浏览
曾经某一个时刻,幻想着自己会象风一样飞舞在这个美丽的世界上,正如我的名字风之幻想一样,象风一样的幻想,当然永远也是幻想,唯一不同的是风总是来去匆匆,不会有任何的停留.也许,这就是宿命吧.当驶离港湾的航船,漂泊的时间太久了想要靠岸的时候,才发现美丽的港湾不是为自己而建立的.也许,这就是现实吧.当航船再一起驶入幽深的大海的时候,也许才会清醒的发现,孤独的航船是永远不会驶入美丽的港湾.也永远不会有一个属于自己的港湾.也许,今夜的忧伤,会伴随着今夜漫漫的过去.明天我还会是一个快乐的风之幻想.现实永远是现实,美好的梦幻犹如泡沫一样只会有短暂的美丽.清醒后一切皆是平常.呵呵.快乐的心情永远属于自己.
   现在就开篇最基础的磁盘管理吧!
磁盘管理是包括将磁盘置于VXVM控制之下、初始化磁盘、封装磁盘、镜像根磁盘以及删除和替换磁盘。
  首先,在执行磁盘管理的时候,先了解一下磁盘名和设备名之间的区别是很重要的。
   当将磁盘置于VXVM控制之下时,会给它分配一个VM磁盘。您可以定义符号磁盘名(也称为磁盘介质名)来引用VM磁盘以便于管理。磁盘名最长为31个字符。如果不分配磁盘名,那么当磁盘添加到rootdg时,它的默认名称或者是disk**(其中**是顺序号),或者是groupname**(其中groupname是磁盘添加到的磁盘组的名称)。
   设备名用于定义磁盘在系统中所处的位置。VXVM通常会使用设备名c0t0d0识别引导磁盘(即包含根文件系统并用于启动系统的磁盘)完整的设备路径名是/dev/vx/[r]dsk/devicename.
  非fabric磁盘以c#t#d#s#的格式来命名。
   Fabric磁盘以fabric_#格式命名。
要显示VM磁盘,请使用下面的命令:
vxdisk list diskname
一个VM磁盘有2个区域:
专用区域:存储配置信息的小区域。该区域存储磁盘标号和配置记录。
公共区域:包括磁盘的其余部分并用于存储子磁盘(和分配存储空间)的区域。
VXVM使用以下基本磁盘类型:
Sliced:公共区域和专用区域在不同的磁盘分区上。
Simple:公共区域和专用区域在同一个磁盘区域上(公共区域接在专用区域之后)
Nopriv:没有专用区域(只有用于分配子磁盘的公共区域)
VXVM用尽量可能少的分区初始化每个新磁盘。对于sliced类型的VM磁盘,VXVM通常将分区S3配置为专用区域,将S4配置为公共区域,将S2配置为整个物理磁盘。
发现和配置磁盘设备
   vxdiskconfig使用程序扫描并配置挂接到主机的新磁盘设备、变为联机的磁盘设备、或分区到与该主机相连的主机总线适配器的光纤通道设备。每当磁盘被物理连接到主机或当光纤通道设备被分区至主机时,就使用vxdiskconfig.
Vxdiskconfig调用vxdctl enable,它将重建卷和plex设备节点目录,并重建DMP内部数据库,以反映系统的新状态。
要列出所有当前所支持的磁盘阵列,可以使用命令:
vxddladm listsupport
要将某个阵列从设备发现中排除,可以使用以下命令:
vxddladm excludearray libname=libvxenc.so
此例去除了对使用库libvxenc.so的磁盘阵列的支持。也可以去除对来自某个供应商的磁盘阵列的支持。比如:
vxddladm excludearray vid=ACME pid=X1
重新包括对已经排除的磁盘阵列的支持
如果你已经排除了对某个磁盘阵列的支持,则可以使用includearray关键字将该项目从排除列表中删除,例如:
vxddladm includearray libname=libvxenc.so
这个命令将阵列库添加到数据库中,以便再次在设备发现中使用该库。如果vxconfigd不在运行,则可以使用vxdisk scandisk命令来查找该阵列并将其详细信息添加到数据库。
列出已经排除的磁盘阵列
vxddladm listexclude
列出JBOD类别中受支持的磁盘
vxddladm listjbod
为JBOD类别中的磁盘添加支持
vxddladm addjbod vid=SEAGATE(这里用SEAGATE为例子)
要为来自ACME的X1磁盘添加支持,可使用下面这个命令
vxddladm addjbod vid=ACME pid=X1
将磁盘置于VXVM控制之下
当向运行的VXVM系统中添加磁盘的时候,需要将该磁盘置于VXVM的控制之下,以便VXVM可以控制该磁盘上的空间分配。除非指定了磁盘组,一般情况下VXVM将把新磁盘放入rootdg中。
采用何种方法将磁盘置于VXVM控制之下取决于以下具体情况:
1、        如果磁盘是新的,则必须初始化,可以使用基于vxdiskadm来进行操作。
2、        如果磁盘原来经过VXVM初始以供将来使用,则可以重新对其初始化以供VXVM使用。
3、        如果以前使用过该磁盘但是没有在VXVM控制下,此时如果希望保留磁盘上的数据,又可以让VXVM管理,可以采用封装。
4、        还可以同时将多个磁盘至于VXVM控制中。
5、        同时初始化或封装多个磁盘的时候可以排除某些磁盘或者控制器。要排除某些磁盘,请在初始化封装前,在文件/etc/vx/disks.exclude中列出磁盘的名称。排除控制器在文件/etc/vx/entrls.exclude 排除阵列在文件/etc/vx/enclr.exclude.
只有vxinstall和vxdiskadm命令使用这3个文件中的内容。
更改磁盘的命令方案,可以使用vxdiskadm中的选项20
要查找与给定基于磁盘阵列的磁盘名关联的c#t#d#s#名称可以使用下列任意命令:
vxdisk list enclosure-based-name
vxdmpadm getsubpaths dmpnodename=enclosure-based-name
有关基于磁盘阵列的命名的simple/nopriv的磁盘问题
如果从基于c#t#d#s#的命名体制更改为基于磁盘的命名体制,simple或nopriv磁盘可能处于“错误”状态,导致VXVM对象失败。
根磁盘组中的simple/nopriv磁盘
1、        使用vxdiskadm更改回c#t#d#s#命名体制。
2、        关闭并且重新启动系统。或者重新启动VXVM的后台程序
vxconfigd –kr reset
3、        若要使用基于磁盘阵列的命名体制,使用vxdiskadm将分片磁盘添加到rootdg组,并更改回基于磁盘阵列的命名体制,然后运行:vxdarestore
非根磁盘组中的simple/nopriv磁盘
如果道入的磁盘磁盘组(除rootdg之外)仅由simple,nopriv磁盘组成,则在更改为基于磁盘阵列的命名体制后,磁盘组将处于“联机dgdisable”状态。这种情况下请使用:
1、        vxdg deport diskgroup
2、        vxdarestore
3、        vxdg import diskgroup
将磁盘至于VXVM控制下可以使用vxdiskadm菜单中选择1就可以了。作为vxdiskadm的替代命令可以使用vxdiskadd.
   VXVM可以将不同的文件系统(如根文件系统,swap等等)中的各种文件系统至于VXVM控制之下,这称为rootability(根目录可置性)通过,封装可以将根磁盘至于VXVM控制下。
    封装将该磁盘上现有分区转化为卷 .一旦置于VXVM控制之下,root和swap就显示为卷,并呈现与其他VXVM卷相同的特征.可以镜象rootvol和swapvol卷,以及根盘启动所需要的其他部分,这样如果发生故障可以提供冗余和进行恢复.
   启动时卷的限制
   rootvol:必须存在于默认磁盘组的rootdg中.尽管可以在rootdg以外的组中创建名为rootvol的卷,但是,只有rootdg中的卷才可以用于启动。
   Rootvol具有特定的次编号,次编号为0,swapvol的次编号为1,usr卷没有特定的次编号.
   Rootvol和swapvol不能跨接,也不能包含具有多个非连续子磁盘的主plex.不能扩大或缩小与封装的引导盘关联的任何卷(rootvol,usr,var,opt,swapvol)因为他们映射到磁盘的物理基础分区,而且必须是连续的.解决的办法是解除引导磁盘的封装,根据需要对引导磁盘进行重新分区,然后在进行封装。
镜象引导盘的分区时,镜象磁盘必须足够的大,以便于容纳原始plex上的数据.否则镜象可能不起作用.
Rootvol ,swapvol,usr不能是脏区日志卷.
封装VXVM磁盘时的要求:
包含少量不属于任何分区的空闲空间.
包含2个空闲分区.
包含表示整个磁盘的S2.
封装用vxdiskadm菜单2进行。
下面说明一下用vxdisk来进行封装.
封装将指定现有磁盘上的分区转化为卷,如果分区中包含文件系统,则其在/etc/vfstab中将被修改,以便文件系统装入卷.
使用vxdisk可以封装没有可用于VXVM专用区域分区的空间的磁盘,这可以通过使用不具有专用区域的nopriv设备来完成.
要创建nopriv设备:
如果该设备尚未存在,请在磁盘上为要使用VXVM存去的区域设置分区.
将VXVM磁盘映射到该分区
vxdisk define 磁盘分区 type=nopriv
例如:
vxdisk define c1t0d0s3 type=nopriv
为磁盘上的其他分区创建卷:
将分区添加到磁盘组
确定分区驻留在封装分区内的位置.
使用vxassist命令创建卷.
(vxassist创建卷的时候将不保留原有磁盘上的数据,如果要保留原有磁盘上的数据使用vxmake,并用命令vxvol init active启动卷)
使用nopriv设备的缺点是VXVM无法跟踪磁盘地址或者控制器中的更改,通常情况下VXVM使用存储在物理磁盘上专用区域的标示信息跟踪物理磁盘位置的更改,由于nopriv没有专用区域,在物理磁盘上也没有存储表示信息,所以没有办法跟踪更改.
Nopriv磁盘的用途之一是用于封装磁盘,以便可使用VXVM将数据移出磁盘.当磁盘上有可用空间时,删除可以删除的nopriv设备,并将磁盘封装为标准磁盘设备.
将根磁盘景象到另一个磁盘上:
选择一个和根磁盘大小相等的磁盘.
如果磁盘不在VXVM控制下,添加到VXVM控制下
景象根磁盘上那些启动系统所需要的文件系统:
/etc/vx/bin/vxrootmir altboot-disk
若要将根磁盘上所有连续的卷景象到备用磁盘上请使用:
/etc/vx/bin/vxmirror boot-dsik altboot-disk
将EEPROM变量use-nvramrc?设置为true。这将启动VXVM引导磁盘别名。该别名将标示用于启动系统盘的根磁盘的景象。
Eeprom use-nvramrc?=true
或者ok setenv use-nvramrc? True
ok boot vx-altboot-disk
ok devalias
定义备用引导磁盘
ok nvramrc=devalias vx-altboot-disk
或者eeprom nvramrc=devalias vx-altboot-disk
景象根磁盘上的其他文件系统
例如:vxassist mirror homevol alternate-disk
若要列出主引导磁盘上的所有卷,请使用以下命令:
vxprint –t –v –e=+’aslist.aslist.sd_disk=”boot_disk”’
用vxdisk封装
vxdisk define partition-device type=nopriv
例如:vxdisk define c0t4d0s3 type=nopriv
解除根磁盘的封装
1、        使用vxplex命令删除根磁盘以外的磁盘上的卷rootvol,swapvol,usr,var,opt和home的所有plex。例如:以下命令将删除在磁盘disk01上配置的plex,rootvol-02,swapvol-02,home-02
vxplex –o rm dis rootvol-02 swapvol-02 home-02
2、        运行vxunroot
/etc/vx/bin/vxunroot
如果其他磁盘上还保留任何plex,vxunroot将不会执行任何到磁盘分区的转换。
重命名磁盘
vxedit rename old-diskname new-diskname
保留磁盘
vxedit set reserve=on diskname
关闭磁盘保留功能
vxedit set reserve=off diskname
显示磁盘信息
vxdisk list
vxdisk list diskname
其他的一些关于磁盘的操作可以参考vxdiskadm。

论坛徽章:
0
2 [报告]
发表于 2007-08-17 23:43 |只看该作者
此帖已收集到主题列表:lovely:

论坛徽章:
0
3 [报告]
发表于 2011-05-11 13:17 |只看该作者
写的挺好,辛苦了,收藏下,多谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP