Sep 22

[原]LVM2命令和测试 晴

linuxing , 12:10 , 基础知识 » 系统命令 , 评论(0) , 引用(0) , 阅读(39077) , Via 本站原创 | |

三、进阶命令
1、扩展VG
首先,需要准备好可用的PV设备:
引用
[root@dc5 ~]# pvcreate /dev/loop[23]
 Physical volume "/dev/loop2" successfully created
 Physical volume "/dev/loop3" successfully created

然后,使用下面的命令扩展VG:
引用
[root@dc5 ~]# vgextend datavg /dev/loop[23]
 Volume group "datavg" successfully extended
[root@dc5 ~]# vgdisplay |grep PE
 PE Size               8.00 MB
 Total PE              186
 Alloc PE / Size       62 / 496.00 MB
 Free  PE / Size       124 / 992.00 MB

2、扩展LV
从vgdisplay可以获得Free PE或容量大小,我为了后续演示,这里扩展一个PV的空间:
引用
[root@dc5 ~]# lvextend -l +62 /dev/datavg/datav01
 Extending logical volume datav01 to 992.00 MB
 Logical volume datav01 successfully resized
[root@dc5 ~]# lvdisplay /dev/datavg/datav01|grep -i size
 LV Size                992.00 MB

3、扩展文件系统
文件系统和LV是分开的,可以从下面看到,文件系统还没有扩大:
引用
[root@dc5 ~]# df -h /dev/mapper/datavg-datav01
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/datavg-datav01
                     481M   11M  446M   3% /media/test

并不是所有的文件系统都能支持扩容,但ext2/3可以。但执行前,建议卸载分区:
引用
[root@dc5 ~]# umount /mnt/test/
[root@dc5 ~]# e2fsck -f /dev/datavg/datav01
[root@dc5 ~]# resize2fs /dev/datavg/datav01
resize2fs 1.35 (28-Feb-2004)
Resizing the filesystem on /dev/datavg/datav01 to 1015808 (1k) blocks.
The filesystem on /dev/datavg/datav01 is now 1015808 blocks long.

重新挂载分区,即可看到大小已经改变:
引用
[root@dc5 ~]# mount /dev/datavg/datav01 /mnt/test/
[root@dc5 ~]# df -h /dev/mapper/datavg-datav01
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/datavg-datav01
                     961M   11M  911M   2% /media/test

(resize2fs只是对ext2/3有用,reiserfs文件系统可使用resize_reiserfs命令,xfs文件系统可使用xfs_growfs命令改变大小,裸设备不用进行这样的操作,但建议重建)
※注意:原来DC 4.1上还有一个e2fsadm命令,可以同时扩展LV及ext2/3的文件系统,其实它就是同时执行lvextend与resize2fs命令。但在DC Server 5.0的LVM2中被取消了。

4、准备
为演示,我们先把/mnt/test填满:
for i in $(seq 1 100); do dd if=/dev/zero of=/mnt/test/file-$i bs=1024k count=10; done

接下来,我们模拟一次PV迁移;
5、PV迁移
可以假设原VG中有一个PV即将出现故障,需要更换。更换PV,必须保证新旧PV在同一个VG里面,并且有足够的剩余空间。
上面的操作,datavg中还有一个空闲的PV,我们就用它:
引用
[root@dc5 test]# pvmove /dev/loop2 /dev/loop3
 /dev/loop2: Moved: 100.0%

然后,我们就可以把该PV拿掉:
引用
[root@dc5 test]# vgreduce datavg /dev/loop2
 Removed "/dev/loop2" from volume group "datavg"
[root@dc5 test]# vgdisplay |grep -i size
 VG Size               992.00 MB
 PE Size               8.00 MB
 Alloc PE / Size       124 / 992.00 MB
 Free  PE / Size       0 / 0

※这样的数据迁移,可以在线实现。
6、缩小LV
可以看到/dev/loop2不属于任何VG,所以:
引用
[root@dc5 ~]# pvdisplay /dev/loop2 |grep 'VG Name'
 VG Name

为演示,我们需再次扩展VG、LV和文件系统:
引用
[root@dc5 test]# vgextend datavg /dev/loop2
 Volume group "datavg" successfully extended
[root@dc5 test]# pvdisplay /dev/loop2 |grep 'VG Name'
 VG Name               datavg
[root@dc5 ~]# vgdisplay |grep 'Free'
 Free  PE / Size       62 / 496.00 MB
[root@dc5 ~]# lvextend -l +62 /dev/datavg/datav01
 Extending logical volume datav01 to 1.45 GB
 Logical volume datav01 successfully resized
[root@dc5 ~]# lvdisplay /dev/datavg/datav01|grep -i size
 LV Size                1.45 GB
[root@dc5 ~]# vgdisplay |grep 'Free'
 Free  PE / Size       0 / 0
[root@dc5 /]# umount /mnt/test
[root@dc5 /]# e2fsck -f /dev/datavg/datav01
[root@dc5 /]# resize2fs /dev/datavg/datav01
resize2fs 1.35 (28-Feb-2004)
Resizing the filesystem on /dev/datavg/datav01 to 1523712 (1k) blocks.
The filesystem on /dev/datavg/datav01 is now 1523712 blocks long.
[root@dc5 /]# mount /dev/datavg/datav01 /mnt/test/
[root@dc5 /]# df -h /dev/mapper/datavg-datav01
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/datavg-datav01
                     1.5G  961M  436M  69% /media/test

下面我们将缩小LV,该过程与扩展LV是相反的:首先需要缩小文件系统,然后才能缩小LV,否则会丢失数据。
缩小文件系统,需要知道缩小后卷的块数,可以参考上面的计算:
引用
blocks=1k
62×8M×1024=507904K=507904blocks
1523712-507904=1015808blocks
(我计算的是减去一个磁盘的大小)

操作如下:
引用
[root@dc5 /]# umount /mnt/test/
[root@dc5 /]# e2fsck -f /dev/datavg/datav01
[root@dc5 /]# resize2fs /dev/datavg/datav01 1015808
[root@dc5 /]# lvreduce -l -62 /dev/datavg/datav01
 WARNING: Reducing active logical volume to 992.00 MB
 THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce datav01? [y/n]: y
 Reducing logical volume datav01 to 992.00 MB
 Logical volume datav01 successfully resized
[root@dc5 /]# mount /dev/datavg/datav01 /mnt/test/
[root@dc5 /]# df -h /dev/mapper/datavg-datav01
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/datavg-datav01
                     961M  961M     0 100% /media/test

(对于reiserfs文件系统也必须卸载后,用resize_reiserfs命令实现,但xfs无法缩小)
四、其他命令
1、备份
VG的信息非常重要,故应及时备份相关信息,以防万一:
引用
[root@dc5 /]# vgcfgbackup
 Volume group "datavg" successfully backed up.

2、禁用及激活
引用
[root@dc5 /]# umount /mnt/test/
[root@dc5 /]# lvchange -an /dev/datavg/datav01
[root@dc5 /]# lvscan
 inactive          '/dev/datavg/datav01' [992.00 MB] inherit
[root@dc5 /]# lvchange -ay /dev/datavg/datav01
[root@dc5 /]# lvscan
 ACTIVE            '/dev/datavg/datav01' [992.00 MB] inherit

3、搬迁VG
这是说的搬迁,是指迁移卷组到其他机器(Linux):
引用
[root@dc5 /]# umount /mnt/test/
[root@dc5 /]# lvchange -an /dev/datavg/datav01
[root@dc5 /]# vgchange -an datavg
 0 logical volume(s) in volume group "datavg" now active

导出:
引用
[root@dc5 /]# vgexport datavg
 Volume group "datavg" successfully exported

导入:
引用
[root@dc5 /]# pvscan
 PV /dev/loop1   VG datavg   lvm2 [496.00 MB / 0    free]
 PV /dev/loop3   VG datavg   lvm2 [496.00 MB / 0    free]
 PV /dev/loop2   VG datavg   lvm2 [496.00 MB / 496.00 MB free]
 Total: 3 [1.45 GB] / in use: 3 [1.45 GB] / in no VG: 0 [0   ]
[root@dc5 /]# vgimport datavg /dev/loop[123]
 Volume group "datavg" successfully imported

4、改名
引用
[root@dc5 /]# vgrename datavg testvg
 Volume group "testvg" still has active LVs
[root@dc5 /]# vgchange -an datavg
 0 logical volume(s) in volume group "datavg" now active
[root@dc5 /]# vgrename datavg testvg
 Volume group "datavg" successfully renamed to "testvg"
[root@dc5 /]# vgscan
 Reading all physical volumes.  This may take a while...
 Found volume group "testvg" using metadata type lvm2
[root@dc5 /]# vgchange -ay testvg
 1 logical volume(s) in volume group "testvg" now active

LV也可以改名:
引用
[root@dc5 /]# lvrename testvg datav01 datav02
 Renamed "datav01" to "datav02" in volume group "testvg"


※操作LVM的命令很多,也可以输入命令lvm,进入>lvm状态运行。在将其应用到实际环境中前,需多做尝试,以防出现问题,有充足的时间和经验处理。
内文分页: [1] [2]
Tags:
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]