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
下载和更新
相关命令的逻辑为 操作部分+具体操作 通用的操作有
display
create
remove
注意: 删除操作总是危险的 删除前确定自己知道会发生什么scan
resize
PV
最基础的操作是创建和显示 PV
pvcreate /dev/sda
将硬盘或者分区创建为物理卷pvs
/pvscan
/pvdisplay
这三者的功能一致 只是展示内容详细程度有区别
VG
基础操作同上
vgcreate <VG_NAME> /dev/pv1 [/dev/sdb ...]
用某些物理卷创建一个新的卷组vgs
/vgscan
/vgdisplay
vgextend <VG_NAME> /dev/sdc
将新的PV加入到卷组
LV
基础操作同上
lvcreate -L 100G -n <LV_NAME> <VG_NAME>
从卷组创建逻辑卷lvs
/lvscan
/lvdisplay
lvextend --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/
路径下都能找到对应的逻辑卷 而且它们相同
|
|