一、SRC
https://www.cnblogs.com/xs104/p/4642406.html
1. 传统的分区+挂载的局限、痛点
一个目录只能挂载1个硬盘或分区,同时挂载后面的会覆盖前面的。一个目录只能在一个分区下,目录不能跨分区更不能跨硬盘,这就限制了目录的大小。
那如果分区空间不够如何扩展空间呢?
一般的解决办法是将原分区卸载,把数据复制到新分区,然后把新分区挂上。但是在企业的生产系统往往不允许停机或者允许停机的时间很短
或者使用符号链接,或者使用调整分区大小的工具
这些方式都有缺点,需要停机、有可能造成数据损坏、不优雅
==》
LVM就能很好的解决在线扩充空间的问题,而且不会对数据造成影响,LVM还能通过快照在备份的过程中保证日志文件和表空间文件在同一时间点的一致性。
lvm可以让目录可以跨硬盘,更加灵活。
2. lvm的优点、作用
{1} 为了实现对目录空间的动态管理,可以在不改变挂载分区的情况下增加磁盘空间,也不需要停机。
将磁盘分区转为pv,然后把pv加到vg上
同时把lv挂到目录上
这样,vg作为中介,可以灵活的把pv的空间分给lv
二、COM
1. 工作原理https://zhuanlan.zhihu.com/p/62597195
将物理磁盘切割为多个pe,以pe为最小单元进行磁盘分配,而不是像之前以分区为单位。这样就突破了分区、磁盘数量、大小固定不灵活的局限,可以以PE为单位自由组合,实现了细粒度的模块化
将1个物理磁盘格式化为pv,pv由很多pe组成,默认1个4m。多个pv组成1个vg,vg可以设置多个lv。vg、lv都是可以跨磁盘的
。这样,一个lv就能获取的空间就超过1个pv也就是1个物理磁盘的空间。
实际场景进行空间规划时,可以给一个目录分配1个lv,空间不足时,直接给这个lv增加pe即可。如果pe不够了,增加一个硬盘,格式化为pv,把这个pv加到vg中,这样总的pe又增加了。
example
-
现在有2个硬盘,sda和sdb,都格式化为pv并放到同一个vg中,这样,/dev/sda对应的挂载目录就可以获取到比sda还大的空间。
-
如果sda+sdb都满足不了需求,增加sdc硬盘,格式化为pv,加到同一个vg中就可以了
实际场景中,不需要再将分区挂载到dir,而是直接把lv挂载到dir,之后的扩展空间操作直接操作lv + PE即可
2. role
2.1. 物理卷(Physical Volume,PV)
指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元;
2.2. PE
物理卷的最小单元,LV=PE*n;
2.3. 卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷);
2.4. 逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
三、相关命令
1.df
磁盘挂载和空间使用信息
如果一个硬盘只是插上了但没有分区,在df中是查不到的。
df -hl或df -Th
2.vgdisplay
3.fdisk
硬盘分区工具,也可以查看硬盘信息
fdisk -l 查看硬盘及分区信息。这里查看的硬盘就是物理硬盘,只要插在机器上的,就能查到。
4.pvcreate
基于分区创建pv
5.vgextend
把pv加到vg上
6.lvextend
基于vg扩容lv
四、usage
1.需求
系统初始化后,/文件夹挂载的lv容量很小,需要扩容
实现
- 1.使用df -hl查看
磁盘挂载和空间信息
,获取目标文件夹的挂载的lv、剩余空间
可以看到,c-r的lv挂到了/目录下
- 2.看看vg还剩下多少
已没有空间,如果有空间,直接跳到7
- 3.fdisk -l查看硬盘使用情况
查看硬盘还剩下多少空间。
vda硬盘一共107,2个分区,其中vda2是lvm的,
lv可以看做逻辑上的硬盘,跟硬盘是平级的,但lv中的空间,都是来自于vda,上图中,总共的空间可不是107 + 32,而是只有107,centos-root的32是来源于vda。可以这么说,lv是硬盘的下级 - 4.硬盘格式化,创建新的lvm分区
- 5.将新创建的lvm分区转为PV
- 6.将新创建的PV加到VG中
- 7.此时VG有剩余的空间,那么就可以给lv扩容了
lvextend -L +2G /dev/zhi/lv-zhi - 8.刷新
重新识别,也叫刷新磁盘
磁盘为ext4格式,用 resize2fs /dev/zhi/lv-zhi
磁盘为xfs格式,用 xfs_growfs /dev/zhi/lv-zhi,兴业用的是这个 - 9.验证
- lv信息,会发现lv容量增大了
lvdisplay xxx - 空间使用信息
df -hl
- lv信息,会发现lv容量增大了
五、异常
1. Couldn’t create temporary archive name
/目录剩余空间太小,lvextend是在/下创建临时文件,清理下/,