LVM 解析
传统磁盘管理
无法扩充其大小, 只能通过添加硬盘, 创建新的分区来扩充空间.
逻辑卷管理下, 可以不中断上层业务扩充文件系统的大小.
介绍
Logical Volume Manager, 封装底层物理硬盘, 以逻辑卷的形式表现给上层系统, 大小可动态调整. 就是你不知道下面干了什么, 操作系统帮你干了这些工作.
这样底层的操作就不会影响上层的操作系统.
就是一种磁盘管理机制.
但需要注意, 在 LVM 中, 建议不使用 XFS 文件系统, 存在一些不兼容.
相关概念
PE
PE, Physical Extend, 物理拓展, 是逻辑卷空间管理的最基本单位, 默认是 4M 大小
PV
PV, Physical Volume, 物理卷. 和基本的物理介质, 如分区, 硬盘相比, 只是多了与 LVM 相关的参数, 因此可以把一个分区, 硬盘设置为 PV.
VG
VG, Volume Group, 卷组,相当于一个内存池. 一个 VG 由多个 PV 组成, 但一个 PV 只能分配给一个 VG.
LV
LV, Logical Volume, 逻辑卷, 相当于是我们在 LVM 上创建的硬盘分区.
我们最终操作使用的是逻辑卷,逻辑卷是为了取代原本的硬盘和分区。
工作流程
- 先将底层硬盘格式化为 PV 物理卷, 实质上是把硬盘划分为一个一个的 PE 物理扩展
- 创建 VG 卷组, 其作用是装 PE, 可以把多个 PV 加到 VG 中. VG 的大小是所有 PV 的大小之和
- 创建 LV 逻辑卷, 就是分配 VG 中的 PE
- 为创建好的 LV 逻辑卷创建文件系统
- 将格式化好的 LV 逻辑卷挂载使用
VG 和 LV 都要创建名称作为标识
创建好一个卷组之后就会出现一个以卷组名字命名的文件夹 /dev/vgname/lvname
每一个逻辑卷的空间可能来自不同的物理硬盘, 因为组成 VG 的 PE 来自不同的硬盘.
VG 大小不够就往里面加硬盘, 也就是加 PE 的数量.
先分割硬盘, 然后把内存块放进池子, 把一些内存块划为一块, 就得到了 LV.
基本使用
物理卷 PV
pvcreate 创建物理卷 PV
先用 fdisk
, gdisk
或 parted
分区工具对想要进行分区的硬盘进行分区 (也可以直接用硬盘).
假如现在有 /dev/sdb
, /dev/sdc1
, /dev/sdc2
可用:
1 |
|
此时这些裸磁盘在被做成物理卷后, 会被切分为若干个 PE, 大小为 4MB.
查看物理卷 PV 的信息
可以用 pvs
“PV Show” 查看所有的简略信息:
1 |
|
用 pvdisplay
查看详细信息:
1 |
|
(也可以查看具体的某一个)
将磁盘由物理卷还原
如将 /dev/sdc2
还原:
1 |
|
此时文件系统类型不再是物理卷类型.
修改 PV 属性
设置为不可分配:
1 |
|
-x
,--allocatable
, 是否可分配,n
表示 no,y
表示 yes
设置为可分配:
1 |
|
卷组 VG
vgcreate 创建卷组 VG
假如现在 /dev/sdb
, /dev/sdc1
, /dev/sdc2
已为物理卷.
将 /dev/sdb
和 /dev/sdc1
加入卷组 vg0
1 |
|
逻辑卷实际位置在, dev/mapper 中.
查看卷组 VG 的信息
vgs
, vgdisplay
vgextend 扩容 VG
将 /dev/sdc2
加入到 vg0
中:
1 |
|
vgreduce 缩减 VG
将 /dev/sdc2
移除 vg0
:
1 |
|
vgremove 删除一个 VG
将 vg0
删除:
1 |
|
(此时 vg0
中的物理卷并未被删除, 只是被移出了 vg0
)
卷组误操作与恢复
查看卷组的操作:
1 |
|
-l
,--list
, 列出日志
(注意这里的路径显示可能有问题)
恢复到一个状况:
1 |
|
-f
,--file
, 指定日志文件
修改卷组属性
是否激活一个卷组 (是否可使用):
1 |
|
-a
,--activate
, 是否激活, y 表示 yes, n 表示 no
(未激活表示其下的 LV 不可用)
逻辑卷 LV
查看逻辑卷
查看简略信息:
1 |
|
查看详细信息:
1 |
|
创建逻辑卷
1 |
|
-L
,--size
, 指定逻辑卷大小-n
,--name
, 指定逻辑卷名称-l
,--extends
, 指定 PE 个数
最后的参数为使用的卷组.
这个逻辑卷的路径为 /dev/vg0/lv01
(等价于 /dev/mapper/vg0-lv01
).
格式化逻辑卷并挂载使用
1 |
|
删除逻辑卷
1 |
|
扩容逻辑卷
只要卷组中还有空间, 就可以扩容逻辑卷:
1 |
|
-L
,--size
, 指定新的大小-l
,--extends
, 指定新的 PE 数量-r
,--resizefs
, 此时会同步扩容文件系统
(此时只扩展了逻辑卷, 还需要接着扩展文件系统)
扩展文件系统, 针对 XFS 以外的:
1 |
|
针对 XFS 文件系统:
1 |
|
(这里加挂载点)
缩容逻辑卷
注意 XFS 不支持缩容, 可以用 EXT4 为例:
1 |
|
-L
,--size
, 指定新的大小-l
,--extends
, 指定新的 PE 数量
修改逻辑卷属性
1 |
|
-a
,--active
, 是否启用, y 表示 yes, n 表示 no-p
,--permission
, r 表示 read-only, rw 表示可读可写
逻辑卷快照
创建快照:
1 |
|
-s
,--snapshot
, 表明要创建快照-n
,--name
, 指定快照名称
(此时快照的 UUID 和逻辑卷一样, 对于 XFS 挂载时需指定nouuid
)
挂载快照:
1 |
|
卸载快照:
1 |
|
快照恢复:
1 |
|
移除快照:
1 |
|