前话: 最近想把DNFS跑起来,想法是把在DNFS里发些媒体文件,然后在DNFS的客户端提供ftp服务。由于媒体文件很大,有好几个TB,以后还可能更大,所以需要尽可能把每个OSD的空间搞大些。 每个OSD里有3块300GB的硬盘,一块上面用来装系统,另外2块可以用来做数据存储区。所以需要用某种方法把这2块联合起来,再在上面创建个Ext3文件系统,而且最好是具备动态扩展空间大小的功能,比如一开始给Ext3的文件系统的空间是200G,后面需要时可以在不卸载该文件系统的前提下把文件系统的空间扩展到500G。 LVM2介绍 这时想到了Linux下的LVM(Logical Volume Manager)逻辑卷管理器,想起当年的老机器是怎么在40G的硬盘上安装4个系统,再放上几部电影和连续剧的。现在新版的Linux说的LVM一般是LVM2。 在我角度看来,LVM最重要的功能就是动态扩展设备空间。传统的分区是静态的,比如你要增加现在在用的分区大小,你必须首先卸载在分区对应的文件系统(假如已经在上面创建了文件系统并挂载),删除该分区,再重新创建一个更大的分区(如果有其它方法,请告诉我),重启,该分区才可以使用。有了LVM,以上过程可以简化为:增加设备大小,使用某种工具改变该设备上的文件系统大小(比如作用于Ext3文件系统的resize2fs等)。只需这样2步,你甚至不需卸载文件系统! 此外,LVM还有备份功能,不过我还没用过。 LVM2使用 1,PV(phisical Volume)物理卷 创建PV #pvcreate /dev/sda /dev/sdb1 查看PV #pvscan 2,VG(Volume Group)卷组 VG是由国歌PV组成的,创建VG: #vgcreate dnfs /dev/sda /dev/sdb1 dnfs是VG名,后面两个设备是加入到dnfs卷组的设备。 查看VG #vgdisplay 增加VG的设备成员 # vgextend vg0 /dev/sda3 3,LV(Logical Volume)逻辑卷 LV是在VG上面划分出来的。创建LV: #lvcreate -n osd -L 200G dnfs 或 #lvcreate -n test -l 50 vg0 从卷组dnfs中创建逻辑卷osd,用-L指定大小为200G,或用-l指定大小为50个PE(Physical Extents,默认是4MB) 查看LV # lvdisplay 改变LV大小 # lvresize -L +200G /dev/dnfs/osd 该命令把osd逻辑卷增大了200G,类似的,如果要减小大小200G,用“-200G“即可。逻辑卷的是从卷组划分来的,其大小当然不能比所在卷组的空间大。 4,改变Ext3文件系统大小 # resize2fs /dev/dnfs/osd 这样会改变osd逻辑卷上的Ext3文件系统的大小到osd逻辑卷的总大小,resize2fs也可以指定大小,更多用法,请man resize2fs。resize2fs支持在线改变Ext3文件系统大小,不需卸载即可调整大小。 5,删除操作 如果不想用逻辑卷管理器了,可以从LV,VG到PV逐层删除 # lvremove /dev/dnfs/osd 把dnfs转为休眠状态: # vgchange -an dnfs # lvremove dnfs # pvremove /dev/sda (责任编辑:IT) |