Veritas 学习笔记

1. 概述

Veritas Volume Manager 软件是一个高端系统级的磁盘/存贮阵列解决方案。


它可以实现简单的,在线的磁盘管理和配置,大大减少了系统维护的宕机时间, 也可以为企业电脑和新兴的SAN(storage Area Network)提供易用、在线的存储管理能力。

通过对RAID技术的支持,VERITAS VolumeManager软件提高了现有硬件的容错能力,防止磁盘和硬件故障。

Veritas Volume Manager常被缩写成VxVM。

Veritas是安装在系统的Kernel模块中。


2. 常用术语

  • Disk:有SCSI id的普通物理磁盘
  • VM Disk: Vx控制下的磁盘
  • Sub Disk:VM disk的一部分,用来构成plex
  • Plex:镜像
  • Volume:虚拟磁盘,可以容纳数据

要创建一个Vx管理下的Volume(相当于一个容器),需经过如下的途径。


     Disk ==> VM disk ==> Sub disk ==> plex ==> volume

Example:


        (a) phsical disks                 clt0d0                         clt1d0

        = 以下都是逻辑的概念了=

        (b) VM disks  (dm)          disk01                        disk02

        (c) Sub disks  (sd)          disk01-01                   disk02-01

        (d) Plex (pl)                     myplex

        (e) Volume                      myVol


一个真实的Volume的输出:

          

v myvol fsgenENABLED 35356957 - ACTIVE - -

pl myplexmyvol ENABLED 35357021 - ACTIVE - -

sd disk01-01myplex ENABLED 17678493 0 - - -

sd disk02-01myplex ENABLED 17678493 0 - - -

3. Veritas Object Creation

      Veritas有两种方法创建“对象”,即"vxmake"方法和“vxassist”方法。

      每次创建“对象”时,“vxmake”根据你的要求,精确的构造出你所希望的“对象”。我们之前提到的方法(增加一个磁盘,构造VM Disk,创建subdisk…),都是我们如何使用vxmake的例子。一步一步的,我们构造出“对象”,并且组合他们。

       VxAssist是另外一种方式。当你打算创建Volume,但又不想指定所有细节,我们可以先创建VMDisk,然后让VxAssist完成所有剩下的工作(subdisk和plex不用自己创建,会由VxAssist命令自动生成)。

      

4. layouts


      layouts可视为不同RAID方法之间的不同之处。

      layouts有两方面的内容,一个是stripe width,另一个是columns。前者指一次写入一块磁盘的数据量,默认为32K;后者指subdisk。

         我们可以指定“stripe width”(stwidth)的大小和“columns”的数量(ncolumns)来创建stripe RAID。


5. Volume and Devices

       Volume 是一个“容器”,相当于普通的磁盘分区来说,Volume的优点在于,它不是静态的它可以被增大、缩小、修改,重新分配和控制volume,在磁盘分区上这些方式都不能实现。以上各种功能都可以在mount起来的live系统(正在使用的系统)中实施,甚至不用重启机器。如果文件系统空间不够了,你就可以先增大文件系统所在的volume空间,再扩充该文件系统。

       Veritas安装和配置后,在/dev下产生一个新的目录,叫做/dev/vx。所有volume块设备(volume block device)都在这里。

         Veritas和其他卷管理软件有一个很大的区别就是,Veritas是集成在操作系统中的。事实上,Veritas实现了kernel模块。在安装了VERITAS的机器上,升级solaris和/或VERITAS必须非常非常的小心谨慎。请记住,由于VERITAS集成在kernal模块中,如果kernal模块出问题或者是被替换掉了,VERITAS可能会坏掉。

       Veritas启动后,有几个进程会一直运行,监测volume并保证其平稳运行。它们是:

  •   vxiod                        Vx的IO管理进程,负责volume的读写处理
  •   vxconfigd                 Vx配置管理进程     
  •   vxrelocd                   Vx Hot Swap管理进程,磁盘故障时它尝试用备份替换

       VERITAS中不存在任何配置文件。vxconfigd进程会监测到所有对VERITAS的操作,并更新它的“对象”数据库。接着继续监测。与其它进程相比较,Vx进程的名字就体现了它们的功能上。Vxiod进程保证数据按照要求的方式写到volume里(例如:volume是stripe类型的,就必须以stripe的方式写到磁盘里)。Vxrelocd负责发现磁盘故障,并尝试用备份来替换。


6. 操作


     1. 如何启动volume(例:datavol)

  •       vxvol start <volname>                            (例:vxvol start datavol)
  •       vxprint -hrt                                              观察volume的信息

      2. 创建文件系统

        # ls -al /dev/vx/dsk

      total 6

      drwxr-xr-x 3root root 512 Mar 29 23:37 .

      drwxr-xr-x 6root other 512 Mar 10 17:32 ..

      brw------- 1root root 67, 5 Mar 29 23:37 datavol

      drwxr-xr-x 2root root 512 Mar 29 23:37 rootdg

     

        为什么有rootdg?因为datavol是基于“默认”DG的,也就是rootdg。我们在目录/dev/vx/dsk下可以看到它。如果我们创建一个新的DG,并在新DG上建立新的volume。新建volume将出现在/dev/vx/dsk/dgname/volname目录下。/dev/vx/dsk/datavol是一个块设备,因此我们可以在它上面创建文件系统。

     
      使用newfs命令来创建文件系统。

      # newfs /dev/vx/dsk/datavol

      # mount /dev/vx/dsk/datavol /vxrocks



# vxprint -hrt

Disk group: rootdg

 

DG NAMENCONFIG NLOG MINORS GROUP-ID

DM NAME DEVICE TYPE PRIVLEN PUBLEN STATE

V NAME USETYPE KSTATE STATELENGTH READPOL PREFPLEX

PL NAME VOLUME KSTATE STATELENGTH LAYOUT NCOL/WID MODE

SD NAME PLEXDISK DISKOFFS LENGTH [COL/]OFFDEVICE MODE

SV NAME PLEXVOLNAME NVOLLAYR LENGTH [COL/]OFFAM/NM MODE

 

dg rootdgdefault default 0 952738334.1025.nexus6                                # dg由4个vm disk组成

 

dm disk01 c2t0d0s2 sliced 3590 17678493 -

dm disk02 c2t1d0s2 sliced 3590 17678493 -

dm disk03 c2t2d0s2 sliced 3590 17678493 -

dm disk04 c2t6d0s2 sliced 3590 17678493 -

 

pl vol01-01 -DISABLED - 70714077 STRIPE 4/64 RW                             # vol01-01(pl) 由4个sd组成, 这个pl还没有激活

sd disk01-01vol01-01 disk01 0 17678493 0/0 c2t0d0ENA

sd disk02-01 vol01-01 disk02 0 17678493 1/0 c2t1d0 ENA

sd disk03-01 vol01-01 disk03 0 17678493 2/0 c2t2d0 ENA

sd disk04-01 vol01-01 disk04 0 17678493 3/0 c2t6d0 ENA


# vxmake -U fsgen vol vol01 plex=vol01-01

# vxprint -hrt

Disk group:rootdg

 

DG NAMENCONFIG NLOG MINORS GROUP-ID

DM NAME DEVICE TYPE PRIVLEN PUBLEN STATE

V NAME USETYPE KSTATE STATELENGTH READPOL PREFPLEX

PL NAME VOLUME KSTATE STATELENGTH LAYOUT NCOL/WID MODE

SD NAME PLEXDISK DISKOFFS LENGTH [COL/]OFFDEVICE MODE

SV NAME PLEXVOLNAME NVOLLAYR LENGTH [COL/]OFFAM/NM MODE

 

dg rootdgdefault default 0 952738334.1025.nexus6

 

dm disk01 c2t0d0s2 sliced 3590 17678493 -                                # 17678493: VM disk扇区的长度

dm disk02 c2t1d0s2 sliced 3590 17678493 -

dm disk03 c2t2d0s2 sliced 3590 17678493 -

dm disk04 c2t6d0s2 sliced 3590 17678493 -

 

v vol01 fsgen DISABLED EMPTY 70713885 ROUND -

pl vol01-01vol01 DISABLED EMPTY 70714077 STRIPE 4/64 RW

sd disk01-01 vol01-01 disk01 0 17678493 0/0 c2t0d0 ENA

sd disk02-01 vol01-01 disk02 0 17678493 1/0 c2t1d0 ENA

sd disk03-01 vol01-01 disk03 0 17678493 2/0 c2t2d0 ENA

sd disk04-01 vol01-01 disk04 0 17678493 3/0 c2t6d0 ENA

#

# vxvol start vol01

# vxprint -hrt

Disk group:rootdg

 

DG NAMENCONFIG NLOG MINORS GROUP-ID

DM NAME DEVICE TYPE PRIVLEN PUBLEN STATE

V NAME USETYPE KSTATE STATELENGTH READPOL PREFPLEX

PL NAME VOLUME KSTATE STATELENGTH LAYOUT NCOL/WID MODE

SD NAME PLEXDISK DISKOFFS LENGTH [COL/]OFFDEVICE MODE

SV NAME PLEXVOLNAME NVOLLAYR LENGTH [COL/]OFFAM/NM MODE

 

dg rootdgdefault default 0 952738334.1025.nexus6

 

dm disk01 c2t0d0s2 sliced 3590 17678493 -

dm disk02 c2t1d0s2 sliced 3590 17678493 -

dm disk03 c2t2d0s2 sliced 3590 17678493 -

dm disk04 c2t6d0s2 sliced 3590 17678493 -

 

v vol01 fsgen ENABLED ACTIVE 70713885 ROUND -

pl vol01-01vol01 ENABLED ACTIVE 70714077 STRIPE 4/64 RW

sd disk01-01 vol01-01 disk01 0 17678493 0/0 c2t0d0 ENA                     # 0/0: column id/offset

sd disk02-01 vol01-01 disk02 0 17678493 1/0 c2t1d0 ENA

sd disk03-01 vol01-01 disk03 0 17678493 2/0 c2t2d0 ENA

sd disk04-01 vol01-01 disk04 0 17678493 3/0 c2t6d0 ENA

#

创建plex的命令

# vxmake plex vol01-01 layout=stripe ncolumn=4 stwidth=32k sd=disk01-01, disk02-01, disk03-01, disk04-01

plex-name: vol01-01

layout: plex的layout类型,有三个选择:concat/stripe/raid5, concat是简单RAID,stripe是RAID 0

ncolumn: 该volumn中column的数量, 这里的话,有4个coloumn,每个subdisk是一个column。在同一个plex中,每个column必须有相同数量的subdisk组成。

stwidth:stripe的宽度,指一次性写入一个column的数据块大小。

sd= 后面跟着一个被选择组成plex的subdisk的清单。这时,所列出的subdisks联合(associate)起来,而不需要我们用vxsd命令手工联合。


7. Veritas的Volumn管理


用于Veritas的磁盘无需分区。Veritas需要的绝大多数磁盘中的默认分区。如果磁盘分区有问题,在把新磁盘加入Veritas的过程中,会有提示信息。

一旦磁盘被加入到veritas中,该磁盘的任何一部分都不能再被外界引用。这也就是为什么不能随意分区的缘故,它不希望你把它们和其它磁盘混淆起来。

两种方式把磁盘加入到Veritas的管理之中,封装(encapsulation)和初始化(initilization)。封装的方式会保留该磁盘上的数据。但初始化方式,在磁盘加入Veritas时所有数据都被擦除。


第一步,把磁盘加入Veritas的管理中,可以执行/usr/sbin/vsdiskadm命令。

第二步,创建subdisks

vxmake   sd   <subdiskname>   <VMDiskName>, <offset>,<len>

# vxprint

Disk group:rootdg

TY NAME ASSOC KSTATE LENGTH PLOFFS STATETUTIL0 PUTIL0

dg rootdg rootdg- - - - - -

dm disk01 c2t0d0s2 - 17678493 - - - -

dm disk02 c2t1d0s2- 17678493 - - - -

dm disk03 c2t2d0s2- 17678493 - - - -

dm disk04 c2t6d0s2- 17678493 - - - -

# vxmake sd disk01-01 disk01,0,17678493                      # subdisk的名字:disk01-01,创建在disk01(VMDisk)上,offset为0,扇区数

# vxmake sd disk02-01 disk02,0,17678493

# vxmake sd disk03-01 disk03,0,17678493

# vxmake sd disk04-01 disk04,0,17678493

#

创建sub disk很像给VM disk分区。比如,可以在一个VM disk上面分两个subdisk。


第三步,创建plex

volume只是容纳plex的容器而已,数据操作都是plex完成的。

# vxmake plex dataplex1

# vxprint

Disk group:rootdg

TY NAME ASSOC KSTATE LENGTH PLOFFS STATETUTIL0 PUTIL0

dg rootdgrootdg - - - - - -

dm disk01 c2t0d0s2 - 17678493 - - - -

dm disk02 c2t1d0s2- 17678493 - - - -

dm disk03 c2t2d0s2- 17678493 - - - -

dm disk04 c2t6d0s2 - 17678493 - - - -

sd disk01-01 -ENABLED 17678493 - - - -

sd disk02-01 -ENABLED 17678493 - - - -

sd disk03-01 -ENABLED 17678493 - - - -

sd disk04-01 -ENABLED 17678493 - - - -

pl dataplex1 -DISABLED 0 - - - -                                       # 注意这个plex没有被分配给任何一个subdisk

#

要在plex中加入sub disk,需要使用命令vxsd。我们所要做的只是“联合”(associating)subdisks,当然我们也可以“分离”(disassociate) sub disks。


# vxsd assoc dataplex1 disk01-01 disk02-01 disk03-01 disk04-01

# vxprint

Disk group:rootdg

TY NAME ASSOC KSTATE LENGTH PLOFFS STATETUTIL0 PUTIL0

dg rootdgrootdg - - - - - -

dm disk01 c2t0d0s2 - 17678493 - - - -

dm disk02 c2t1d0s2- 17678493 - - - -

dm disk03 c2t2d0s2- 17678493 - - - -

dm disk04 c2t6d0s2 - 17678493 - - - -

pl dataplex1 -DISABLED 70713972 - - - -

sd disk01-01dataplex1 ENABLED 17678493 0 - - -

sd disk02-01dataplex1 ENABLED 17678493 17678493 - - -

sd disk03-01dataplex1 ENABLED 17678493 35356986 - - -

sd disk04-01dataplex1 ENABLED 17678493 53035479 - - -

#

第四步, 创建volume

# vxmake -U fsgen vol datavol plex=dataplex1


# vxprint -hrt

Disk group:rootdg

DG NAMENCONFIG NLOG MINORS GROUP-ID

DM NAME DEVICE TYPE PRIVLEN PUBLEN STATE

V NAME USETYPE KSTATE STATELENGTH READPOL PREFPLEX

PL NAME VOLUME KSTATE STATELENGTH LAYOUT NCOL/WID MODE

SD NAME PLEXDISK DISKOFFS LENGTH [COL/]OFFDEVICE MODE

SV NAME PLEXVOLNAME NVOLLAYR LENGTH [COL/]OFFAM/NM MODE

dg rootdgdefault default 0 952738334.1025.nexus6

dm disk01 c2t0d0s2 sliced 3590 17678493 -

dm disk02 c2t1d0s2 sliced 3590 17678493 -

dm disk03 c2t2d0s2 sliced 3590 17678493 -

dm disk04 c2t6d0s2 sliced 3590 17678493 -

v datavol fsgen DISABLED EMPTY 70713972 ROUND -

pl dataplex1datavol DISABLED EMPTY 70713972 CONCAT - RW                  # CONCAT: 简单的RAID

sd disk01-01 dataplex1 disk01 0 17678493 0 c2t0d0 ENA

sd disk02-01 dataplex1 disk02 0 17678493 17678493 c2t1d0 ENA

sd disk03-01 dataplex1 disk03 0 17678493 35356986 c2t2d0 ENA

sd disk04-01 dataplex1 disk04 0 17678493 53035479 c2t6d0 ENA

#


启用volume,在volumn上创建文件系统并且把它mount起来。


# vxvol startdatavol

# vxprint -hrt

Disk group:rootdg

DG NAMENCONFIG NLOG MINORS GROUP-ID

DM NAME DEVICE TYPE PRIVLEN PUBLEN STATE

V NAME USETYPE KSTATE STATELENGTH READPOL PREFPLEX

PL NAME VOLUME KSTATE STATELENGTH LAYOUT NCOL/WID MODE

SD NAME PLEXDISK DISKOFFS LENGTH [COL/]OFFDEVICE MODE

SV NAME PLEXVOLNAME NVOLLAYR LENGTH [COL/]OFFAM/NM MODE

dg rootdgdefault default 0 952738334.1025.nexus6

dm disk01 c2t0d0s2 sliced 3590 17678493 -

dm disk02 c2t1d0s2 sliced 3590 17678493 -

dm disk03 c2t2d0s2 sliced 3590 17678493 -

dm disk04 c2t6d0s2 sliced 3590 17678493 -

v datavol fsgen ENABLED ACTIVE 70713972 ROUND -                                           # KSTATE(Kernel State)为Enabled ACTIVE

pl dataplex1datavol ENABLED ACTIVE 70713972 CONCAT - RW

sd disk01-01 dataplex1 disk01 0 17678493 0 c2t0d0 ENA

sd disk02-01 dataplex1 disk02 0 17678493 17678493 c2t1d0 ENA

sd disk03-01 dataplex1 disk03 0 17678493 35356986 c2t2d0 ENA

sd disk04-01 dataplex1 disk04 0 17678493 53035479 c2t6d0 ENA

#


在/dev/vx/dsk下,执行ls

# ls -al/dev/vx/dsk

total 6

drwxr-xr-x 3root root 512 Mar 29 23:37 .

drwxr-xr-x 6root other 512 Mar 10 17:32 ..

brw------- 1root root 67, 5 Mar 29 23:37 datavol                      # 我们刚才创建的Vx Volumn

drwxr-xr-x 2root root 512 Mar 29 23:37 rootdg                       # volume是基于“默认”DG的,也就是rootdg

#


在volume上创建文件系统。

# newfs /dev/vx/dsk/datavol

newfs:construct a new file system /dev/vx/rdsk/datavol: (y/n)# y

/dev/vx/rdsk/datavol:70713972 sectors in 34529 cylinders of 32 tracks, 64 sectors

34528.3MB in705 cyl groups (49 c/g,49.00MB/g, 6144 i/g)

super-blockbackups (for fsck -F ufs -o b=#) at:

32, 100448,200864, 301280, 401696, 502112, 602528, 702944, 803360, 903776,

1004192,1104608, 1205024, 1305440, 1405856, 1506272, 1606688, 1707104,

1807520,1907936, 2008352, 2108768, 2209184, 2309600, 2410016, 2510432,

snipped out

#

# mount/dev/vx/dsk/datavol /vxrocks




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值