LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
实操篇:
查看机器磁盘情况,目前查看得出结果:系统盘为50G,一块100G数据盘(dev/vdb)。
lsblk
现在我们把这块数据盘做成LVM,并且挂载分出50G空间给/data目录。
创建流程逻辑:PV物理卷→VG卷组-LV逻辑卷
创建PV物理卷:
pvcreate /dev/vdb
进行查看创建好的PV
pvs
或者
pvdisplay
创建VG组
vgcreate testvg /dev/vdb
查看VG信息:
vgs 或者 vgdisplay
创建LV逻辑卷
1.创建一个指定大小的lv,并指定名字为lv_2 lvcreate -n testlv -L 49.99G testvg 2.创建一个占全部卷组大小的lv,并指定名字为(注意前提是vg并没有创建有lv) lvcreate -n testlv -l 50%VG testvg
查看创建好的LVS
lvs
或
lvdisplay
通过查看可以得到我们刚刚创建的LVM大小为49.99G,磁盘路径为/dev/testvg/testlv
格式化并挂在/data下
格式化逻辑卷 mkfs.xfs -f /dev/testvg/testlv 挂载到/data mount /dev/testvg/testlv /data 查看挂载情况 df -Th
扩容操作:
目前是拿着一块100G的磁盘来做的LVM,刚刚已经给/data分配了将近50G,那么如果想把未使用的50G再拿出10G扩容到/data下如下操作
查看VG组容量情况
vgdisplay
目前空闲容量是50G,那么拿出10G扩容到/data下
进行扩容操作
lvextend -L +10G /dev/testvg/testlv
刷新逻辑卷
xfs_growfs /dev/testvg/testlv
查看目前/data目录是否扩容成功到60G。
扩容逻辑组
把剩下的容量扩容到一个新的逻辑组里,并且挂载到/data1下
查看VG目前信息
vgdisplay
目前还有多余40G容量,那么就把它全部给到/data1下,首先需要新创建个LV
lvcreate -n test-data1-lv -l 100%VG testvg
我这次创建LV的方式是刚刚提到的第二种创建方式,目前通过创建信息可以看出,新创建的LV名字test-data1-lv,并且容量是40G
现在就是做格式化,然后挂载。
格式化 mkfs.xfs -f /dev/testvg/test-data1-lv 挂载 mount /dev/testvg/test-data1-lv /data1 查看 df -h