LVM逻辑卷管理
一. LVM逻辑卷是干什么的。
每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。
虽然有很多动态调整磁盘的工具可以使用,例如PartitionMagic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要 重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解决问题。
==因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。==幸运的是Linux提供的逻辑盘卷管理(LVM,LogicalVolumeManager)机制就是一个完美的解决方案。
简而言之,逻辑卷可以实现分区的在线格式化、扩容,等操作。可以在线添加硬盘到分区中。
二.优点
传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变:
- 不同的分区相对独立,无相互联系,各分区空间很易利用不平衡,空间不能充分利用。
- 当一个文件系统/分区已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中;或采用符号连接的方式使用其它分区的空间。
- 如果要把硬盘上的多个分区合并在一起使用,只能LVM采用再分区的方式,这个过程需要数据的备份与恢复。
当采用LVM时,情况有所不同:
- 硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间。
- 文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求。
- 文件系统建立在LVM上,可以跨分区,方便使用。
三.LVM常用的命令
功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | vgextend | lvextend | |
缩小 | vgreduce | lvreduce |
四. 操作演练
第一步:创建物理卷
pvcreate /dev/sd..或hd..(设备名)
第二步: 创建卷组
vgcreate 卷组名 /dev/sd..hd..(物理卷列表)
第三步: 创建逻辑卷
lvcreate -L +容量(-l 100%FREE) -n 逻辑卷名 卷组名
第四步: 扩容逻辑卷
lvextend -L +容量 逻辑卷名
- 扩容卷组
vgextend 卷组名 物理卷
五. 在线格式化
- xfs在线格式化:
xfs_growfs /逻辑卷设备
- ext4在线格式化
resize2fs /逻辑卷设备