Centos6.2系统LVM的创建与管理(二)
上文中为大家演示了如何创建LVM,下面讲解LVM的一些管理操作,包括LVM的缩减、增加、删除以及快照等。
依然以前文中的虚拟机环境为大家演示在Centos6.2(与red hat enterprise linux 6.2 内核版本号相同)。大多数的linux爱好者都喜欢在命令行下工作,尽管Centos6.2的图形程序已经很成熟,并且也比之前版本稳定的多,但我们还是相信命令行,下面开始:
先看下我们前文中创建的LVM:
[root@linux ~]# vgdisplay --- Volume group --- VG Name VG123 System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 3 Act PV 3 VG Size 7.00 GiB PE Size 4.00 MiB Total PE 1792 Alloc PE / Size 512 / 2.00 GiB Free PE / Size 1280 / 5.00 GiB VG UUID YckyGK-ly10-DIh9-31Nu-Fh9U-q6Oe-vzETjK
再看下LV
[root@linux ~]# lvdisplay --- Logical volume --- LV Name /dev/VG123/www VG Name VG123 LV UUID Lj6xM5-FH3y-G1o4-sR0j-3XCW-8Id0-WiWna9 LV Write Access read/write LV Status available # open 1 LV Size 1.00 GiB Current LE 256 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2
从以上结果中可以看出LV(逻辑卷)只用了VG(卷组)中的1G的空间,一旦当前的LV空间满了怎么办呢,既然用了LVM,肯定是要用到它的特性的,果断的在线扩容。
1、LV空间扩容
下面再从VG123中分出1G的间给/dev/VG123/www,命令如下
[root@linux ~]# lvextend -L +1G /dev/VG123/www Extending logical volume www to 2.00 GiB Logical volume www successfully resized
说明:其中 -L后面的参数跟的是容量,如果是+1G表示增加1G的容量,如果只有2G没有“+”就表示扩容后的容量为2;这个位置的参数还可以是-l,表示的是增加的PE数量,一般我们用前者表示比较方便。
参数最后跟的是分配空间的目标逻辑卷,这里是/dev/VG123/www。
查看下扩容后的分区:
[root@linux ~]# df -h /media/ 文件系统 容量 已用 可用 已用%% 挂载点 /dev/mapper/VG123-www 1008M 34M 924M 4% /media
为什么还是1G呢?这是因为还需要重新设置分区容量,以使扩容后新增的空间与现有的空间的分区格式相同(扩容没有格式化的过程,resize2fs相当于为新空间格式化),需要进行一下操作:
[root@linux ~]# resize2fs /dev/VG123/www resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/VG123/www is mounted on /media; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/VG123/www to 524288 (4k) blocks. The filesystem on /dev/VG123/www is now 524288 blocks long.
从输出信息中可以看出,这个过程是在线完成的,也就是不影响/media的正常使用的,再看下/media 的容量
[root@linux ~]# df -h /media/ 文件系统 容量 已用 可用 已用%% 挂载点 /dev/mapper/VG123-www 2.0G 34M 1.9G 2% /media
和预期的正好相符,在线扩容就是这么简单(linux).
2、上面说的是LV(逻辑卷)容量不足的操作,如果VG的空间不足了又该怎么办呢?
VG空间不足,也就是资源池已经满了,那只有想办法扩大资源池了,即添加PV(物理卷)。
这里只说明使用未分配的磁盘空间(linux)一种方法,其他方法类似 也就略过了。
前面/dev/sdd只用了一个/dev/sdd1一个分区,还有2G的空间未分配。
(1)先进行分区
[root@linux ~]# fdisk /dev/sdd WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (133-391, default 133):<<ENTER Using default value 133 Last cylinder, +cylinders or +size{K,M,G} (133-391, default 391):<<ENTER Using default value 391 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: 设备或资源忙. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
注意:从上面的提示中可以看到 这种方法需要重启服务器,我们不建议使用这种方法,最好是在设计之初就把所有linux磁盘空间都进行分配。
重启后可以看到/dev/sdd2了,然后创建PV(物理卷):
[root@linux ~]# pvcreate /dev/sdd2 Writing physical volume data to disk "/dev/sdd2" Physical volume "/dev/sdd2" successfully created
[root@linux ~]# pvdisplay /dev/sdd2 "/dev/sdd2" is a new physical volume of "1.98 GiB" --- NEW Physical volume --- PV Name /dev/sdd2 VG Name PV Size 1.98 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID gd5jx2-8osG-Z0V3-sOvu-Vk2l-Usm5-tA3z2m
创建成功了
(2)增减VG(逻辑卷)空间
[root@linux ~]# vgextend VG123 /dev/sdd2 Volume group "VG123" successfully extended [root@linux ~]# vgdisplay VG123 --- Volume group --- VG Name VG123 System ID Format lvm2 Metadata Areas 4 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 4 Act PV 4 VG Size 8.98 GiB PE Size 4.00 MiB Total PE 2299 Alloc PE / Size 512 / 2.00 GiB Free PE / Size 1787 / 6.98 GiB VG UUID YckyGK-ly10-DIh9-31Nu-Fh9U-q6Oe-vzETjK
从结果中看到VG已经从7G扩到了9G。至于其他的方法 还有增加磁盘,增加raid设备等,读者感兴趣可以尝试下,操作都是类似的。
2、缩小LV(逻辑卷)
(1)缩小操作都是需要离线的,先卸载分区
[root@linux ~]# umount /media
(2)检测LV
[root@linux ~]# e2fsck -f /dev/VG123/www e2fsck 1.41.12 (17-May-2010) 第一步: 检查inode,块,和大小 第二步: 检查目录结构 第3步: 检查目录连接性 Pass 4: Checking reference counts 第5步: 检查簇概要信息 /dev/VG123/www: 11/131072 files (0.0% non-contiguous), 16812/524288 blocks ######中文版的linux系统显示很邪恶啊
(3)设置缩减后空间的大小
[root@linux ~]# resize2fs /dev/VG123/www 1G resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/VG123/www to 262144 (4k) blocks. The filesystem on /dev/VG123/www is now 262144 blocks long.
此时LV的大小并没有真正的改变。
(4)进行LV缩减
[root@linux ~]# lvreduce /dev/VG123/www -L 1G
WARNING: Reducing active logical volume to 1.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce www? [y/n]: y
Reducing logical volume www to 1.00 GiB
Logical volume www successfully resized
再看下LV的大小,剩下1G了
[root@linux ~]# lvdisplay /dev/VG123/www --- Logical volume --- LV Name /dev/VG123/www VG Name VG123 LV UUID Lj6xM5-FH3y-G1o4-sR0j-3XCW-8Id0-WiWna9 LV Write Access read/write LV Status available # open 0 LV Size 1.00 GiB Current LE 256 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2
缩减后就可以再次挂载/dev/VG123/www了,可以看到就是下1G了。
以上步骤中(2)、(3)、(4)是不能颠倒的,切记切记~
3、缩小VG(卷组)
缩小VG就是把PV设备从VG资源池中移除。
(1)看下VG123中有哪些PV设备
[root@linux ~]# pvscan PV /dev/sdd1 VG VG123 lvm2 [1.01 GiB / 8.00 MiB free] PV /dev/sde VG VG123 lvm2 [3.00 GiB / 3.00 GiB free] PV /dev/md127 VG VG123 lvm2 [3.00 GiB / 3.00 GiB free] PV /dev/sdd2 VG VG123 lvm2 [1.98 GiB / 1.98 GiB free]
(2)实验中我们把/dev/sde移除,来看下操作
[root@linux ~]# vgreduce VG123 /dev/sde Removed "/dev/sde" from volume group "VG123"
(3)看下结果
[root@linux ~]# pvscan PV /dev/sdd1 VG VG123 lvm2 [1.01 GiB / 8.00 MiB free] PV /dev/md127 VG VG123 lvm2 [3.00 GiB / 3.00 GiB free] PV /dev/sdd2 VG VG123 lvm2 [1.98 GiB / 1.98 GiB free]
/dev/sde已经从VG123中被移除了,此时VG也变小了,剩下6G。
4、删除整个LVM
(1)卸载
[root@linux ~]# umount /media/
(2)移除LV
[root@linux ~]# lvremove /dev/VG123/www
Do you really want to remove active logical volume lv1? [y/n]: y
Logical volume "lv1" successfully removed
(3)移除VG
[root@linux ~]# vgremove VG123 Volume group "VG0" successfully removed
(4)移除PV
[root@yufei ~]# pvremove /dev/sde /dev/md127 /dev/sdb1 Labels on physical volume "/dev/sde" successfully wiped Labels on physical volume "/dev/md127" successfully wiped Labels on physical volume "/dev/sdb1" successfully wiped
通过以上几步就可以把所有被LVM占用的设备都释放出来了。
5、LVM快照
(1)简介
Logical Volume Manager (LVM)提供了对任意一个Logical Volume(LV)做“快照”(snapshot)的功能,以此来获得一个分区的状态一致性备份。在某一个状态下做备份的时候,可能有应用正在访问某一个文件或者数据库,这就是使得备份的时候文件处于一个状态,而备份完后,文件却处于另外一个状态,从而造成备份的非一致性,这种状态恢复数据库数据几乎不会成功。状态的解决办法是将其分区挂载为只读,然后通过数据库的表级别锁定(table-level write locks)甚至停止数据库来备份数据。所有这些方法无意严重影响了服务的可用性。使用LVM snapshot既可以获得一致性备份,又不会影响服务器的可用性。要提醒一点是,snapshot这种方法仅对LVM有效,对于非LVM文件系统无效。
(2)创建快照
为了方便测试快照,先把/dev/VG123/www/挂载到/media下,并写入一些数据;
[root@linux ~]# cp wordpress/ /media/ [root@linux ~]# cp -R wordpress/ /media/ [root@linux ~]# df -h /media/ 文件系统 容量 已用 可用 已用%% 挂载点 /dev/mapper/VG123-www 1008M 59M 899M 7% /media
接着建立快照:
[root@linux ~]# lvcreate -L 70M -s -n wordpres /dev/VG123/www Rounding up size to full physical extent 72.00 MiB Logical volume "wordpres" created
说明: 创建一个大小为70M 名字为wordpress的/dev/VG123/www快照。
把快照挂在上与/media的内容对比下,
[root@linux ~]# ls /media/wordpress.tar/ wordpress wordpress.tar [root@linux ~]# ls /media/ lost+found wordpress.tar [root@linux ~]# ls /mnt/ lost+found wordpress.tar [root@linux ~]# ls /mnt/wordpress.tar/ wordpress wordpress.tar
看到了吧,内容完全相同
(3)删除快照
先卸载分区
[root@linux ~]# umount /mnt/
再移除
[root@linux ~]# lvremove /dev/VG123/wordpres Do you really want to remove active logical volume wordpres? [y/n]: y Logical volume "wordpres" successfully removed
至此关于LVM的大部分操作都讲解完毕,有需要补充和更正的,请大家指出来,我好更新。谢谢
目录 返回
首页