虚拟化容器,大数据,DBA,中间件,监控。

Centos6.2系统LVM的创建与管理(二)

17 03月
作者:admin|分类:系统运维
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的大部分操作都讲解完毕,有需要补充和更正的,请大家指出来,我好更新。谢谢

浏览4035 评论0
返回
目录
返回
首页
Centos6.2系统下LVM的创建与管理 vSphere虚拟机自定义规范管理器定制模板与克隆