lvm
LVM创建过程:创建分区格式为8e->PV(物理卷)->VG(卷组)->LV(逻辑卷)
在做逻辑卷之前先做出分区来
Device Boot Start End Blocks Id System /dev/sda1 * 1 39 307200 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 39 2101 16567296 83 Linux /dev/sda3 2101 2611 4096000 82 Linux swap / Solaris /dev/sda4 2611 3916 10483750 5 Extended /dev/sda5 2611 2742 1053563+ 8e Linux LVM /dev/sda6 2743 2874 1060258+ 8e Linux LVM /dev/sda7 2875 3006 1060258+ 8e Linux LVM
1.PV 物理卷
· pvcreate /dev/sda{5,6,7}:创建pv,之前需要将分区类型调整为8e。
[root@localhost ~]# pvcreate /dev/sda{5,6,7} Physical volume "/dev/sda5" successfully created Physical volume "/dev/sda6" successfully created Physical volume "/dev/sda7" successfully created
· pvremove /dev/sda5:删除pv,删除之前需要将pv上的数据移动到别的地方
[root@localhost ~]# pvremove /dev/sda{5,6,7} Labels on physical volume "/dev/sda5" successfully wiped Labels on physical volume "/dev/sda6" successfully wiped Labels on physical volume "/dev/sda7" successfully wiped
· pvmove /dev/sda5:移动/dev/sda5中的数据至别的地方
[root@localhost ~]# pvmove /dev/sda{5,6,7} Physical volume /dev/sda5 not in a volume group Run `pvmove --help' for more information. 由于我的卷本来就是新建的,所以提示空
· pvs;pvscan;pvdisplay:显示当前系统上物理卷的信息
[root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda5 myvg lvm2 a- 1.00g 924.00m /dev/sda6 myvg lvm2 a- 1.01g 1.01g /dev/sda7 myvg lvm2 a- 1.01g 1.01g ------------------------------------------------ [root@localhost ~]# pvscan PV /dev/sda5 VG myvg lvm2 [1.00 GiB / 924.00 MiB free] PV /dev/sda6 VG myvg lvm2 [1.01 GiB / 1.01 GiB free] PV /dev/sda7 VG myvg lvm2 [1.01 GiB / 1.01 GiB free] Total: 3 [3.02 GiB] / in use: 3 [3.02 GiB] / in no VG: 0 [0 ] -------------------------------------------------- [root@localhost ~]# pvdisplay --- Physical volume --- PV Name /dev/sda5 VG Name myvg PV Size 1.00 GiB / not usable 4.87 MiB Allocatable yes PE Size 4.00 MiB Total PE 256 Free PE 231 Allocated PE 25 PV UUID VIpxlf-eka9-D0d1-PvgQ-wCdo-jpbo-7G56a2 。。。。。。。。。。。。。。。。。。。。。。。。。。。。 --- Physical volume --- PV Name /dev/sda7 VG Name myvg PV Size 1.01 GiB / not usable 3.41 MiB Allocatable yes PE Size 4.00 MiB Total PE 258 Free PE 258 Allocated PE 0 PV UUID OFHqZa-SdoL-rEhJ-EN2f-Xa0O-heTB-CLod08
2.VG 卷组
· vgcreate myvg /dev/sda{5,6,7}:将已经创建好的pv加入到vg组中,并给vg组命名
[root@localhost ~]# vgcreate myvg /dev/sda{5,6,7} Volume group "myvg" successfully created
· vgreduce myvg /dev/sda5:将myvg组中的sda5pv移除,需要先迁移sda5中的数据
[root@localhost ~]# pvmove /dev/sda5 No data to move for myvg [root@localhost ~]# vgreduce myvg /dev/sda5 Removed "/dev/sda5" from volume group "myvg"
· vgextend myvg /dev/sda5:向myvg组中添加sda5pv。
[root@localhost ~]# vgextend myvg /dev/sda5 Volume group "myvg" successfully extended
· vgremove myvg:整个移除myvg组
[root@localhost ~]# vgremove myvg Volume group "myvg" successfully removed [root@localhost ~]# vgs No volume groups found [root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda5 lvm2 a- 1.00g 1.00g /dev/sda6 lvm2 a- 1.01g 1.01g /dev/sda7 lvm2 a- 1.01g 1.01g
· vgrename myvg yourvg :vg重命名
[root@localhost ~]# vgrename myvg yourvg Volume group "myvg" successfully renamed to "yourvg" [root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree yourvg 3 0 0 wz--n- 3.02g 3.02g
· vgs;vgscan;vgdisplay:显示当前系统上卷组信息
[root@localhost ~]# vgscan Reading all physical volumes. This may take a while... Found volume group "myvg" using metadata type lvm2 [root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree myvg 3 0 0 wz--n- 3.02g 3.02g [root@localhost ~]# vgdisplay --- Volume group --- VG Name myvg System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size 3.02 GiB PE Size 4.00 MiB Total PE 772 Alloc PE / Size 0 / 0 Free PE / Size 772 / 3.02 GiB VG UUID tOavVo-rP7K-F86r-n3a3-qRjL-ahP8-LAA7Hk
3.LV 逻辑卷
· lvcreate -n mylv -L 100M myvg:在myvg组中创建一个大小为100M,名字为mylv的逻辑卷
[root@localhost ~]# lvcreate -n mylv -L 100M myvg Logical volume "mylv" created [root@localhost ~]# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert mylv myvg -wi-a- 100.00m
创建完逻辑卷后,存在位置为/dev/vg组/lv
[root@localhost ~]# ls /dev/myvg/mylv -l lrwxrwxrwx. 1 root root 7 Mar 7 04:35 /dev/myvg/mylv -> ../dm-0 [root@localhost ~]# ls -l /dev/dm-0 brw-rw----. 1 root disk 253, 0 Mar 7 04:35 /dev/dm-0
· lvresize -l [+|-] 100M /dev/myvg/mylv:调整lv大小,可以增加多少(同等于lvextend),减少多少(同等于lvreduce),或者等于多少;
[root@localhost ~]# lvresize -L -10M /dev/myvg/mylv Rounding up size to full physical extent 8.00 MiB WARNING: Reducing active logical volume to 92.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce mylv? [y/n]: y Reducing logical volume mylv to 92.00 MiB Logical volume mylv successfully resized 减小大小可能会导致数据被损坏 ----------------------------------------------------- [root@localhost ~]# lvresize -L 100M /dev/myvg/mylv Extending logical volume mylv to 100.00 MiB Logical volume mylv successfully resized ------------------------------------------------------ [root@localhost ~]# lvresize -L +100M /dev/myvg/mylv Extending logical volume mylv to 200.00 MiB Logical volume mylv successfully resized
· lvremove /dev/myvg/mylv:直接删除逻辑卷
[root@localhost ~]# lvremove /dev/myvg/mylv Do you really want to remove active logical volume mylv? [y/n]: y Logical volume "mylv" successfully removed
· lvs;lvscan;lvdisplay:显示当前系统上逻辑卷信息
[root@localhost ~]# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert mylv myvg -wi-a- 100.00m ------------------------------------------------------- [root@localhost ~]# lvscan ACTIVE '/dev/myvg/mylv' [100.00 MiB] inherit ------------------------------------------------------- [root@localhost ~]# lvdisplay --- Logical volume --- LV Name /dev/myvg/mylv VG Name myvg LV UUID UbxtI0-pSLs-luwF-Av4K-JKcw-iVCV-gf4aI3 LV Write Access read/write LV Status available # open 0 LV Size 100.00 MiB Current LE 25 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
4.挂载lvm
在挂载lvm前,需要先给逻辑卷进行分区格式化。
[root@localhost ~]# mke2fs -j /dev/myvg/mylv mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 25688 inodes, 102400 blocks 5120 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=67371008 13 block groups 8192 blocks per group, 8192 fragments per group 1976 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 29 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
在格式化完成之后,将逻辑卷挂载至/test下
[root@localhost ~]# mount /dev/myvg/mylv /test [root@localhost ~]# df -lh Filesystem Size Used Avail Use% Mounted on /dev/sda2 16G 2.2G 13G 15% / tmpfs 996M 88K 996M 1% /dev/shm /dev/sda1 291M 30M 246M 11% /boot /dev/mapper/myvg-mylv 97M 5.6M 87M 7% /test
5.扩容(先调整逻辑卷在调整分区)
resize2fs /dev/myvg/mylv [100M]:重新设定分区大小,不加参数代表重读逻辑卷。
ext3格式支持resize2fs在线扩容,即挂载状态下扩容。需要先将逻辑卷增加容量后再去调整分区
[root@localhost ~]# lvresize -L +100M /dev/myvg/mylv Extending logical volume mylv to 200.00 MiB Logical volume mylv successfully resized 先扩容逻辑卷 --------------------------------------------------------- [root@localhost ~]# resize2fs /dev/myvg/mylv resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/myvg/mylv is mounted on /test; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/myvg/mylv to 204800 (1k) blocks. The filesystem on /dev/myvg/mylv is now 204800 blocks long. 再去重读分区 ---------------------------------------------------------- [root@localhost ~]# df -lh Filesystem Size Used Avail Use% Mounted on /dev/sda2 16G 2.2G 13G 15% / tmpfs 996M 88K 996M 1% /dev/shm /dev/sda1 291M 30M 246M 11% /boot /dev/mapper/myvg-mylv 194M 5.6M 179M 4% /test 查看到已经增加值200M容量
6.缩小(先调整分区在调整逻辑卷)
resize2fs /dev/myvg/mylv [100M]:重新设定分区大小,不加参数代表重读逻辑卷。
xfs_growfs 针对逻辑卷的动态调整
注意事项:
a.不能在线缩减,得先卸载;
b.确保缩减后的空间大小可以容下原有的数据;
第一步,卸载分区
[root@localhost ~]# umount /test
第二部,检查文件系统完整性
[root@localhost ~]#e2fsck -f /dev/myvg/mylv
第三部,调整分区大小和逻辑卷大小
[root@localhost ~]#resize2fs /dev/myvg/mylv 100M [root@localhost ~]# lvresize -L 100M /dev/myvg/mylv WARNING: Reducing active and open logical volume to 100.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce mylv? [y/n]: y Reducing logical volume mylv to 100.00 MiB Logical volume mylv successfully resized
第四部,格式化,仅针对xfs文件系统,ext234不用
[root@localhost ~]# mkfs.ext4 /dev/myvg/mylv
第五部,挂载分区
[root@localhost ~]# mount /dev/myvg/mylv /test [root@localhost ~]# df -lh Filesystem Size Used Avail Use% Mounted on /dev/sda2 16G 2.2G 13G 15% / tmpfs 996M 88K 996M 1% /dev/shm /dev/sda1 291M 30M 246M 11% /boot /dev/mapper/myvg-mylv 97M 5.6M 87M 7% /test 这时看到分区大小已经为100M