Logic Volumn Manager
LVM 是对存储虚拟化的技术
原始的磁盘利用方案(暂时不关RAID)为
- (分区)
不分区可能存在磁盘检测自动挂载出错的问题 - 文件系统格式化
- 挂载
主要的问题在于: 跨盘扩容
terminology

- PV(Physical Volume): 物理卷 处于LVM最底层 可以是物理硬盘或者分区
- VG(Volume Group): 卷组 一个到多个PV的集合 可以添加PV
- LV(Logical Volume): 逻辑卷 从VG中分配 相当于原来分区的概念 可以动态更新大小
pre-LVM
lsblk 可以查看目前装上的磁盘
basis
首先是下载 LVM 一般发行版都会自带 Debian系通过
apt install lvm2下载和更新
相关命令的逻辑为 操作部分+具体操作 通用的操作有
displaycreateremove注意: 删除操作总是危险的 删除前确定自己知道会发生什么scanresize
PV
最基础的操作是创建和显示 PV
pvcreate /dev/sda将硬盘或者分区创建为物理卷pvs/pvscan/pvdisplay这三者的功能一致 只是展示内容详细程度有区别
VG
基础操作同上
vgcreate <VG_NAME> /dev/pv1 [/dev/sdb ...]用某些物理卷创建一个新的卷组vgs/vgscan/vgdisplayvgextend <VG_NAME> /dev/sdc将新的PV加入到卷组
LV
基础操作同上
lvcreate -L 100G -n <LV_NAME> <VG_NAME>从卷组创建逻辑卷lvs/lvscan/lvdisplaylvextend --size 120G <LV_NAME>扩容逻辑卷
具体逻辑卷大小的设置可以查看 tldr 文档
lvcreate-L 1T指定大小-l 60%VG按比例指定大小
lvextend--size 200G指定拓展目标--size +40G指定拓展大小--size +20%FREE按比例指定拓展大小
创建逻辑卷之后 就是建立文件系统 可以选择喜欢的文件系统
- Btrfs:
mkfs.btrfs /dev/<VG_NAME>/<LV_NAME> - Ext4:
mkfs.ext4 /dev/<VG_NAME>/<LV_NAME>
operations
新增磁盘并拓展逻辑卷
例如新增磁盘 /dev/sdf 需要拓展的逻辑卷为 /dev/svg/lvr
我们的操作如下
| |
RAID
LVM 可以在逻辑卷(LV)层级创建软RAID (RAID级别见此)
| |
此外可以使用 lvconvert 对逻辑卷进行 RAID 级别转换
- linear -> raid1
- striped/raid0 -> raid4/5/6
lvconvert --type RaidLevel LV [PVs]
post-LVM
blkid 可以查看分区的 UUID 方便修改 /etc/fstab 来实现自动挂载
可以看到在 /dev/<VG_NAME> 和 /dev/mapper/ 路径下都能找到对应的逻辑卷 而且它们相同
| |