179 lines
3.1 KiB
Markdown
179 lines
3.1 KiB
Markdown
## 1、LVM 概览
|
||
|
||
LVM(Logical Volume Manager,逻辑卷管理)用于在 Linux 中更灵活地管理磁盘空间。
|
||
|
||
相比传统分区,LVM 的优势在于:
|
||
|
||
- 可以把多块磁盘组合成一个逻辑空间
|
||
- 可以更灵活地扩容和缩容
|
||
- 更适合做在线扩容、统一存储管理
|
||
|
||
不过,LVM 也会增加一定的复杂度,实际生产中要根据业务场景使用。
|
||
|
||
## 2、LVM 核心概念
|
||
|
||
### 2.1 PV:物理卷
|
||
|
||
Physical Volume,物理卷。
|
||
|
||
可以理解为:把磁盘分区或整块磁盘初始化成 LVM 可识别的底层存储单元。
|
||
|
||
### 2.2 VG:卷组
|
||
|
||
Volume Group,卷组。
|
||
|
||
把一个或多个 PV 组合起来,形成一个大的存储池。
|
||
|
||
### 2.3 LV:逻辑卷
|
||
|
||
Logical Volume,逻辑卷。
|
||
|
||
从卷组里切分出来给文件系统使用的逻辑设备。
|
||
|
||
### 2.4 PE:物理扩展单元
|
||
|
||
Physical Extent,物理扩展单元。
|
||
|
||
是 LVM 中分配空间时的最小单位,通常是若干 MB。
|
||
|
||
## 3、LVM 的基本关系
|
||
|
||
可以把它理解成:
|
||
|
||
- **磁盘/分区** 先做成 **PV**
|
||
- 多个 **PV** 组成 **VG**
|
||
- 从 **VG** 中划分出 **LV**
|
||
- 再把 **LV** 格式化并挂载给系统使用
|
||
|
||
## 4、物理卷管理
|
||
|
||
### 4.1 创建物理卷
|
||
|
||
```shell
|
||
pvcreate /dev/sdb1
|
||
```
|
||
|
||
### 4.2 查看物理卷
|
||
|
||
```shell
|
||
pvscan
|
||
pvdisplay /dev/sdb1
|
||
```
|
||
|
||
### 4.3 删除物理卷
|
||
|
||
```shell
|
||
pvremove /dev/sdb1
|
||
```
|
||
|
||
## 5、卷组管理
|
||
|
||
### 5.1 创建卷组
|
||
|
||
```shell
|
||
vgcreate myvg /dev/sdb1 /dev/sdc1
|
||
```
|
||
|
||
### 5.2 查看卷组
|
||
|
||
```shell
|
||
vgscan
|
||
vgdisplay myvg
|
||
```
|
||
|
||
### 5.3 从卷组中移除物理卷
|
||
|
||
```shell
|
||
vgreduce myvg /dev/sdb1
|
||
```
|
||
|
||
### 5.4 删除卷组
|
||
|
||
```shell
|
||
vgremove myvg
|
||
```
|
||
|
||
### 5.5 重命名卷组
|
||
|
||
```shell
|
||
vgrename myvg newvg
|
||
```
|
||
|
||
## 6、逻辑卷管理
|
||
|
||
### 6.1 创建逻辑卷
|
||
|
||
```shell
|
||
lvcreate -L 10G -n mylv myvg
|
||
```
|
||
|
||
### 6.2 查看逻辑卷
|
||
|
||
```shell
|
||
lvscan
|
||
lvdisplay /dev/myvg/mylv
|
||
```
|
||
|
||
### 6.3 扩容逻辑卷
|
||
|
||
```shell
|
||
lvextend -L +5G /dev/myvg/mylv
|
||
```
|
||
|
||
扩容后,通常还需要继续扩展文件系统。
|
||
|
||
### 6.4 缩容逻辑卷
|
||
|
||
```shell
|
||
lvreduce -L -5G /dev/myvg/mylv
|
||
```
|
||
|
||
**缩容风险较高**,必须先确认文件系统支持、先备份数据,并严格按步骤操作。
|
||
|
||
### 6.5 删除逻辑卷
|
||
|
||
```shell
|
||
lvremove /dev/myvg/mylv
|
||
```
|
||
|
||
删除前如果已经挂载,通常要先卸载。
|
||
|
||
## 7、典型使用流程
|
||
|
||
### 7.1 新建 LVM 存储
|
||
|
||
常见步骤:
|
||
|
||
1. 分区或准备磁盘
|
||
2. `pvcreate`
|
||
3. `vgcreate`
|
||
4. `lvcreate`
|
||
5. `mkfs`
|
||
6. `mount`
|
||
7. 写入 `/etc/fstab`
|
||
|
||
### 7.2 逻辑卷扩容
|
||
|
||
常见步骤:
|
||
|
||
1. 确认 VG 还有剩余空间
|
||
2. `lvextend`
|
||
3. 扩展文件系统,例如 `resize2fs` 或 `xfs_growfs`
|
||
4. 再次检查容量是否生效
|
||
|
||
## 8、常见运维注意点
|
||
|
||
- 扩容通常比缩容安全得多
|
||
- 缩容前一定要备份数据
|
||
- 删除 PV、VG、LV 前要先确认是否还在使用
|
||
- 记清楚设备关系,避免误删底层磁盘
|
||
- 云服务器场景中,如果 LVM 跨多块盘,删除任意一块底层盘都可能导致卷组异常
|
||
|
||
## 9、小结
|
||
|
||
- LVM 让磁盘管理更灵活
|
||
- 核心对象是 `PV`、`VG`、`LV`
|
||
- `pvcreate`、`vgcreate`、`lvcreate` 是三步基础命令
|
||
- 扩容逻辑卷后通常还要扩展文件系统
|
||
- 缩容和删除操作都要格外谨慎
|