标签:LVM 创建 扩容 缩减
一、LVM
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。
看图识LV
LVM重要的概念
物理卷(Physical Volume,PV)
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
物理块(Physical Extent,PE)
每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,(对应物理磁盘上的扇区还是柱面)具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
二、创建LVM
创建步骤基本如同图示一样,一:建好仓库,二:然后搭建一套管理人员把仓库划分管理好并对外宣传我有一个大的仓库欢迎来租赁,三:打广告稿促销寻找客户来租你的仓库。
换成咱们LVM的概念就是先有PV才有VG最后划分LV使用。
PV相关命令
pvcreate #创建一个PV物理卷 pvchange #修改PV的属性 pvresize #调整一个PV的大小 pvremove #删除一个PV pvmove #移动PE到指定物理卷 pvscan #搜索所有磁盘上的物理卷 pvs #显示PV的简要信息 pvdisplay #显示PV的属性信息
VG相关命令
vgcreate #创建卷组 -l:设置此卷组可容纳的LV最大数,默认为255 -p:设置此卷组包含PV的最大数,默认为255 -s:设置此卷组PE大小,默认为4M vgextend #扩展VG大小 vgchange #修改VG属性信息 vgreduce #缩减VG大小 vgremove #删除VG vgscan #搜索所有磁盘上的卷组 vgs #显示VG简要信息 vgdisplay #显示VG属性信息 vgck #检查VG元数据
LV相关命令
lvcreate #创建LV分区 -l:设置LV大小,以PE为单位 -L:设置LV大小,以字节为单位 -n:设置LV名称 -p:设置LV权限读写权限,默认为可读可写 -s:设置一个快照卷,对一个已存在的LV做快照 lvextend #扩展LV大小 lvreduce #缩减LV大小 lvchange #修改LV属性信息 -ay:标记LV为可用状态 -an:标记LV为不可用状态 lvremove #删除LV lvscan #搜索所有磁盘上的逻辑卷 lvs #显示LV简要信息 lvdisplay #显示LV属性信息
创建LVM的简要操作步骤
[root@zhuzw-centos6 ~]# ls /dev/sd* #查看分区文件 /dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdc /dev/sdc1 #我们事先准备好的/dev/sdb1和/dev/sdc1 [root@zhuzw-centos6 ~]# pvcreate /dev/sdb1 /dev/sdc1 #将/dev/sdb1和/dev/sdc1创建为PV Physical volume "/dev/sdb1" successfully created #创建成功的输出 Physical volume "/dev/sdc1" successfully created [root@zhuzw-centos6 ~]# pvs #查看PV的简要信息 PV VG Fmt Attr PSize PFree /dev/sda2 vg_zhuzwcentos6 lvm2 a-- 29.51g 0 /dev/sdb1 lvm2 a-- 120.00g 120.00g # /dev/sdc1 lvm2 a-- 80.00g 80.00g # [root@zhuzw-centos6 ~]# vgcreate -s 8M Mylab /dev/sdb1 /dev/sdc1 #创建vg卷组 -s将PE大小修改稿为8M 卷组名称为Mylab No physical volume label read from /dev/sdb1 Physical volume /dev/sdb1 not found No physical volume label read from /dev/sdc1 Physical volume /dev/sdc1 not found #上面四行提示是卷标没有找到 Physical volume "/dev/sdb1" successfully created #创建成功的输出 Physical volume "/dev/sdc1" successfully created Volume group "Mylab" successfully created [root@zhuzw-centos6 ~]# vgs #查看VG的简要信息 VG #PV #LV #SN Attr VSize VFree Mylab 2 0 0 wz--n- 199.98g 199.98g vg_zhuzwcentos6 1 2 0 wz--n- 29.51g 0 [root@zhuzw-centos6 ~]# lvcreate -l 200 -n lab_tmp Mylab #创建一个LV 大小为200个PE 名称为lab_tmp Logical volume "lab_tmp" created [root@zhuzw-centos6 ~]# lvs #查看LV的简要信息 LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lab_tmp Mylab -wi-a----- 1.56g lv_root vg_zhuzwcentos6 -wi-ao---- 27.57g lv_swap vg_zhuzwcentos6 -wi-ao---- 1.94g [root@zhuzw-centos6 ~]# mkfs -t ext4 /dev/Mylab/lab_tmp #格式化创建的LV分区,默认文件存放地址为/dev/VG_NAME/LV_NAME [root@zhuzw-centos6 ~]# mount /dev/Mylab/lab_tmp /mnt/zhuzw #挂载至文件目录 [root@zhuzw-centos6 ~]# mount #查看挂载信息 /dev/mapper/vg_zhuzwcentos6-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other) /dev/mapper/Mylab-lab_tmp on /mnt/zhuzw type ext4 (rw) #创建的LV的挂载信息
三、在线扩展根分区容量
我们首先把之前划分给Mylab卷组的/dev/sdb1这个PV从卸载下来(新创建的额PV直接跳过);然后将这个PV加入到根系统所在的卷组内,调整根lv分区大小容量,最后跟新文件系统。
在做操作前一定要仔细查看LVM卷信息。防止误操作。
扩容LVM的步骤是增加PV-增加VG-扩容LV-更新文件系统。
[root@zhuzw-centos6 zhuzw]# pvmove /dev/sdb1 /dev/sdc1 #卸载前一定要先把里面的文件移动到其他的PV上 /dev/sdb1: Moved: 1.0% /dev/sdb1: Moved: 100.0% [root@zhuzw-centos6 zhuzw]# vgreduce Mylab /dev/sdb1 #将/dev/sdb1从Mylan卷组内删除 Removed "/dev/sdb1" from volume group "Mylab" [root@zhuzw-centos6 zhuzw]# pvs #查看PV简要信息 PV VG Fmt Attr PSize PFree /dev/sda2 vg_zhuzwcentos6 lvm2 a-- 29.51g 0 /dev/sdb1 lvm2 a-- 120.00g 120.00g #确保/dev/sdb1的vg项为空 /dev/sdc1 Mylab lvm2 a-- 79.99g 78.43g [root@zhuzw-centos6 ~]# pvremove /dev/sdb1 #这是删除PV的命令 Labels on physical volume "/dev/sdb1" successfully wiped #删除PV的输出 [root@zhuzw-centos6 ~]# pvcreate /dev/sdb1 #我们是要用这个PV的,再把它创建成PV [root@zhuzw-centos6 zhuzw]# vgextend vg_zhuzwcentos6 /dev/sdb1 #将/dev/sdb1加入到根分区所在的卷组内 Volume group "vg_zhuzwcentos6" successfully extended [root@zhuzw-centos6 zhuzw]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_zhuzwcentos6 lvm2 a-- 29.51g 0 /dev/sdb1 vg_zhuzwcentos6 lvm2 a-- 120.00g 120.00g /dev/sdc1 Mylab lvm2 a-- 79.99g 78.43g [root@zhuzw-centos6 tmp]# lvextend -L +30G /dev/vg_zhuzwcentos6/lv_root #调整根所在LV大小,增加30G空间 Extending logical volume lv_root to 57.57 GiB Logical volume lv_root successfully resized [root@zhuzw-centos6 mapper]# resize2fs /dev/vg_zhuzwcentos6/lv_root #在线扩容文件系统大小,挂载的情况下只吃菜扩容,卸载后支持扩容与缩减 resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/vg_zhuzwcentos6/lv_root is mounted on /; on-line resizing required old desc_blocks = 2, new_desc_blocks = 4 Performing an on-line resize of /dev/dm-0 to 15091712 (4k) blocks. The filesystem on /dev/dm-0 is now 15091712 blocks long. [root@zhuzw-centos6 mapper]# df -h #查看文件系统空闲空间情况 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_zhuzwcentos6-lv_root 57G 3.3G 51G 6% / tmpfs 491M 72K 491M 1% /dev/shm /dev/sda1 485M 35M 426M 8% /boot
四、离线缩减空间
步骤卸载挂载–强制修复文件系统–缩减文件系统空间–缩减LV空间–重新挂载。
[root@zhuzw-centos6 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_zhuzwcentos6-lv_root 57G 3.3G 51G 6% / tmpfs 491M 72K 491M 1% /dev/shm /dev/sda1 485M 35M 426M 8% /boot /dev/mapper/vg_zhuzwcentos6-labdata 44G 77M 41G 1% /data #目标将/data空间删减为20G [root@zhuzw-centos6 ~]# umount /data #卸载/data的挂载 [root@zhuzw-centos6 ~]# resize2fs /dev/dm-3 20G #缩减文件系统 resize2fs 1.41.12 (17-May-2010) 请先运行 'e2fsck -f /dev/dm-3'. #提示请先强制修复文件系统,看来缩减文件系统时必须对文件系统进行修复 [root@zhuzw-centos6 ~]# e2fsck -f /dev/dm-3 #强制修复文件系统 e2fsck 1.41.12 (17-May-2010) 第一步: 检查inode,块,和大小 第二步: 检查目录结构 第3步: 检查目录连接性 Pass 4: Checking reference counts 第5步: 检查簇概要信息 /dev/dm-3: 11/2816000 files (0.0% non-contiguous), 196357/11509760 blocks [root@zhuzw-centos6 ~]# resize2fs /dev/dm-3 20G #修复完成后再次缩减文件系统 resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/dm-3 to 5242880 (4k) blocks. The filesystem on /dev/dm-3 is now 5242880 blocks long. #缩减文件系统完成 [root@zhuzw-centos6 ~]# lvreduce -L 20G /dev/vg_zhuzwcentos6/labdata #缩减LV分区空间 WARNING: Reducing active logical volume to 20.00 GiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce labdata? [y/n]: y Reducing logical volume labdata to 20.00 GiB Logical volume labdata successfully resized #缩减完成 [root@zhuzw-centos6 ~]# mount /dev/dm-3 /data #重新挂载 [root@zhuzw-centos6 ~]# df -h #查看文件系统空间 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_zhuzwcentos6-lv_root 57G 3.3G 51G 6% / tmpfs 491M 72K 491M 1% /dev/shm /dev/sda1 485M 35M 426M 8% /boot /dev/mapper/vg_zhuzwcentos6-labdata 20G 75M 19G 1% /data #缩减成功
最后数据无价操作需谨慎啊。
原创文章,作者:东郭先生,如若转载,请注明出处:http://www.178linux.com/4452