关于LUN、PV、VG和LV

1.划分LUN

LUN只是一个逻辑的东西。在存储设备内部,LUN与物理硬盘的关系,如同主机中逻辑卷与物理硬盘的关系,也就是好像LV和PV的关系,在不同范畴。可以理解为LUN就是在做完RAID之后的逻辑盘上分出来的logic driver。

但不同的是,LUN在主机上看来是一个物理硬盘。

LUN绝对不是以硬盘为单位的东西,他是在raid组下的单位,连在主机上,NT反映成磁盘,AIX反映成pv。一个RAID在EMC存储中最多可以划成226个LUN(cx4-480支持4096个lun),大小从几M到。几百G都行。

LUN是从SCSI起源的:Logical Unit Number,因为SCSI时代最多只有16个SCSI ID,卡本身起码占用一个,如果没有LUN,意味着每个卡连的磁盘阵列最多只能15块硬盘——不可思议嘛,所以SCSI ID+LUN(0-255),可以有15*256=3840个硬盘,总算够用了。

后来存储服务器出来了,经过虚拟化,从主机端以SCSI的概念来看,就表现为一个个不同LUN的硬盘(实际上是虚拟的,存储服务器这时成为一个黑箱)。LUN与物理硬盘的关系没有规律,自己设定,也不一定要做RAID,只是一般都做而已。

2. 添加新的PV

一个硬盘在能够被LVM使用之前一定要初始化,可以使用pvcreate命令将PVRA的信息写入到硬盘当中,而这样被写入了PVRA信息的硬盘,就叫做PV。

#pvcreate /dev/rdsk/c0t5d0

如果之前已经有PVRA的信息在这块硬盘上,也就是说,这块硬盘之前可能被其他的LVM使用过,那么你将得到一个报错信息:

#pvcreate: The Physical Volume already belongs to a Volume Group

如果你确定要初始化这块硬盘,那么可以带上-f的参数来强行执行

#pvcreate -f /dev/rdsk/c0t5d0

注意:如果是启动盘,还应该加上-B的选项。这样做将会在硬盘头保留2912KB的空间给LVM表头(LVM header),相关的信息,可以参见《LVM的结构信息》。如果你想要做启动盘的镜像的话,可以参考后面的《根盘镜像》章节。

将硬盘初始化以后,就可以将该PV添加到已经存在的VG当中去了:

#vgextend vg01 /dev/dsk/c0t5d0

#vgdisplay -v vg01

这里需要注意的是,在硬盘初始化的时候(pvcreate /dev/rdsk/c0t5d0),使用的设备是“rdsk”,而在将PV添加到已经存在的VG的过程中,使用的设备是“dsk”。对于“rdsk”和“dsk”的区别,应该有非常清晰的认识,如果觉得不清楚,可以查看相关资料。因为这是LVM操作的最基础的部分。

3. 添加新的VG

一下过程演示了如何创建一个包含了两个PV的VG:

a. 初始化PV

#pvcreate [-f] /dev/rdsk/c0t5d0

#pvcreate [-f] /dev/rdsk/c0t6d0

b. 为VG选择一个唯一的次号(minor number)

#ll /dev/*/group

crw-r--r-- 1 root sys 64 0x000000 Apr 4 2001 /dev/vg00/group

crw-r--r-- 1 root sys 64 0x010000 Oct 26 15:52 /dev/vg01/group

crw-r--r-- 1 root sys 64 0x020000 Aug 2 15:49 /dev/vgsap/group

c. 创建VG控制文件(group file)

#mkdir /dev/vgnew

#mknod /dev/vgnew/group c 64 0x030000

注意:当使用vgcreate和vgimport命令时,PHCO_24645(UX 11.00)或PHCO_25814(UX 11.11)将检查VG控制文件(group file)是否是唯一的次号。

d. 创建和显示VG

#vgcreate vgnew /dev/dsk/c0t5d0 /dev/dsk/c0t6d0

#vgdisplay -v vgnew

注意:在创建VG的时候,需要特别注意的一个参数是max_pe,这个参数限定了VG中每一个PV的最大PE数量。默认值是1016,最大值是65535。而且,除了vgcreate以外,没有其他的任何命令能够调整这个参数(max_pe)。这就要求你在创建VG的时候,要考虑一下将来数据可能的增长情况。因为在使用vgcreate来创建VG的时候,操作系统会根据当前的硬盘大小和默认的max_pe(1016)来指定PE的大小(默认是4MB)。而如果今后要加入一个更大的硬盘,这可能会让多余的空间浪费掉,因为此时,你已经不可能调整max_pe这个参数了。一个比较好的经验就是,根据将来可能的增长情况,来指定一个比较大的max_pe。

4. 添加新的LV

按照如下命令,你将创建一个大小是500MB、名称为lvdata、存在于vg01中的LV:

#lvcreate -L 500 -n lvdata vg01

使用这种方法创建的LV,并不能知道这块空间是在哪个PV上的。如果想在某个确定的PV上创建LV,可以先创建一个0MB的LV,然后再扩大LV的空间,这样就可以指定:

#lvcreate -n lvdata vg01

#lvextend -L 500 /dev/vg01/lvdata /dev/dsk/c4t2d0

然后就可以使用newfs来创建文件系统

#newfs -F <fstype> /dev/vg01/rlvdata

说明:在这里fstype可以是HFS或VxFS(VxFS也就是JFS)

5.条带化

在aix/hp下,建立lv时不选条带化,写入的数据顺序为:写满第一块后再写第二块,直到写满最后一块硬盘。建lv时选条带化,数据同时往n块硬盘上写。在划分LUN时,把多个lun平均取自多个raid group以提高性能。很显然,在不同的RG的LUN之间做条带化会提高性能,在同一个RG的LUN之间做条带化,是没有意义的,甚至会增加物理硬盘的不必要的磁头定位时间

posted on 2010-03-25 17:54  一江水  阅读(11012)  评论(0编辑  收藏  举报