LVM 是一种可以支持动态调整磁盘空间大小的功能,当你的磁盘空间满了的时候,通过给服务器在添加一块新的硬盘,然后将两块硬盘合并在一起,就拥有了更多的空间。使用 LVM 分区,稍微要比普通分区更为复杂一点。第一步从设置分区的类型开始。在我们使用 fdisk 分区的时候,选择完了分区的类型,大小之后,在按 t
命令,这个步骤是填写分区的类型,我们写上 8e
,这时候这个分区就变成了一个 lvm
分区。
建立了 lvm
分区,并不是就完成了,而是这件事情才刚刚开始,还需要在经历三个步骤:物理卷
- 卷组
- 逻辑卷
。
首先第一步,我们要把分出来的 lvm
分区变成物理卷。
$ pvcreate /dev/sda1 /dev/sda2 // 把 sda1 sda2 变成物理卷
$ pvdisplay /dev/sda1 // 显示物理卷的详情
第二步,分出来的一个个物理卷,在把它们拼装成 卷组
。
vgcreate vgname /dev/sda1 /dev/sda2 // 创建卷组 | vgname 是卷组的名称,是自定义的
vgextend vgname /dev/sda3 // 在把一个物理卷拼装到 vgname 这个卷组
vgremove vgname /dev/sda3 // 从 vgname 卷组中移除 /dev/sda3 这个物理卷
vgdisplay // 显示卷组详情信息
/*
完成之后
*/
vachange -a y vgname // 激活卷组
/*
如果不要了
*/
vachange -a n vgname // 停止卷组
卷组是一个磁盘的集合,在这个磁盘的集合中,可以分出无数的 逻辑卷
,这些逻辑卷就像真实的磁盘分区,这可以挂载使用。但由于他们基于 lvm
,是建立在一个抽象层的上面,从而能够动态的调整它们的大小。
lvcreate -L 1G -n lvname vgname // 从 vgname 卷组中分割出一个逻辑卷,大小为 1G | -L 参数是填写磁盘的大小,支持 G M K 等单位
/*
动态大小
*/
lvextend -L +1G /dev/vgname/lvname // 为逻辑卷添加 1G 大小
lvreduce -L +1G /dev/vgname/lvname // 减去逻辑卷 1G 的大小
/*
如果逻辑卷已经挂载,调整大小之后需要刷新
*/
resize2fs /dev/vgname/lvname
逻辑卷跟我们直接分区出来的磁盘在使用和功能上没有实质的区别,所以同样也要经历 格式化
和 挂载
才能使用。
mke2fs -t ext4 /dev/vgname/lvname // 格式化
mount /dev/vgname/lvname path // 挂载
lvremove lvname // 删除逻辑卷,需要 umount 之后才能删除
vgremove vgname // 删除卷组,需要 lvremove 删除完 逻辑卷 才能删除
pvremove /dev/sda1 // 删除物理卷,需要 umount > lvremove > vgremove 解除所有的依赖才能删除