linux 使用 lvm
This commit is contained in:
		
							
								
								
									
										155
									
								
								linux/linux使用lvm.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								linux/linux使用lvm.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,155 @@
 | 
			
		||||
# LVM
 | 
			
		||||
 | 
			
		||||
> LVM 是一种可用在 Linux 内核 的逻辑分卷管理器 ;可用于管理磁盘驱动器或其他类似的大容量存储设备。
 | 
			
		||||
 | 
			
		||||
## 结构和术语介绍
 | 
			
		||||
 | 
			
		||||
##### **物理卷 (PV)**
 | 
			
		||||
 | 
			
		||||
一个可供存储 LVM 的块设备. 例如: 一块硬盘, 一个 MBR 或 GPT分区 , 一个回环文件, 一个被内核映射的设备 (例如dm-crypt 它包含一个特殊的 LVM 头。
 | 
			
		||||
 | 
			
		||||
##### **卷组 (VG)**
 | 
			
		||||
 | 
			
		||||
物理卷的一个组,作为存放逻辑卷的容器。 PEs are allocated from a VG for a LV.
 | 
			
		||||
 | 
			
		||||
##### **逻辑卷 (LV)**
 | 
			
		||||
 | 
			
		||||
"虚拟 / 逻辑卷" 存放在一个卷组中并由物理块组成。是一个类似于物理设备的块设备,例如,你可以直接在它上面创建一个文件系统文件系统 。
 | 
			
		||||
 | 
			
		||||
##### **物理块 (PE)**
 | 
			
		||||
 | 
			
		||||
一个卷组中最小的连续区域 (默认为 4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。
 | 
			
		||||
 | 
			
		||||
逻辑结构大概像是这个样子
 | 
			
		||||
 | 
			
		||||
```text
 | 
			
		||||
|----------|   |----------|
 | 
			
		||||
| 逻辑卷 LV |   |  逻辑卷...|
 | 
			
		||||
|----------|   |----------|
 | 
			
		||||
    |               |
 | 
			
		||||
      \           /
 | 
			
		||||
      |-----------|
 | 
			
		||||
      |  卷组 VG   |
 | 
			
		||||
      |-----------|
 | 
			
		||||
      /           \
 | 
			
		||||
     |              |
 | 
			
		||||
|----------|   |----------|
 | 
			
		||||
| 物理卷 PV |   |  物理卷...|
 | 
			
		||||
|----------|   |----------|
 | 
			
		||||
graph TB
 | 
			
		||||
A(逻辑卷 LV) --> B(卷组 VG)
 | 
			
		||||
C(逻辑卷...) --> B
 | 
			
		||||
B --> D(物理卷 PV)
 | 
			
		||||
B --> E(物理卷...)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
> 我们并不需要太过关心 PE
 | 
			
		||||
 | 
			
		||||
记好这三层的缩写 我们待会要把这三层定义和创建出来。
 | 
			
		||||
 | 
			
		||||
## 使用 LVM
 | 
			
		||||
 | 
			
		||||
> 在继续配置 LVM 前,必须对设备进行 分区。
 | 
			
		||||
 | 
			
		||||
这里假设有两个硬盘 两个分区
 | 
			
		||||
并且会同时演示如何拓展空间 所以有些命令不是最佳路径
 | 
			
		||||
 | 
			
		||||
- /dev/sdb1
 | 
			
		||||
- /dev/sdc1
 | 
			
		||||
 | 
			
		||||
#### 创建物理卷(PV)
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
pvcreate /dev/sdb1
 | 
			
		||||
pvcreate /dev/sdc1
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
***查看创建好的物理卷***
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
pvdisplay
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### 创建卷组(VG)
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
vgcreate vg_demo /dev/sdb1
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
> 这里 vg_demo 是你的卷组名
 | 
			
		||||
> 后面的分区可以为多个 这里用一个方便后续演示扩容
 | 
			
		||||
 | 
			
		||||
***查看已创建好的卷组***
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
vgdisplay
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### 创建逻辑卷
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
lvcreate -L 10G vg_demo -n lv_demo
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
> 创建一个大小为 10G,名字为 lv_demo,所属 vg_demo 的逻辑卷。
 | 
			
		||||
 | 
			
		||||
***查看已创建的逻辑卷\***
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
lvdisplay
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### 格式化并挂载逻辑卷
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
# 查看逻辑卷挂载位置
 | 
			
		||||
vgscan
 | 
			
		||||
 | 
			
		||||
# 格式化逻辑卷
 | 
			
		||||
mkfs -t ext4 /dev/vg_demo/lv_demo
 | 
			
		||||
 | 
			
		||||
# 创建待挂载目录
 | 
			
		||||
mkdir /demo
 | 
			
		||||
 | 
			
		||||
# 挂载
 | 
			
		||||
mount /dev/vg_demo/lv_demo /demo
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
用`df -hl` 就可以看到已经挂载的存储空间了
 | 
			
		||||
 | 
			
		||||
接下来我们进行扩容
 | 
			
		||||
 | 
			
		||||
#### 对 VG 增加 PV
 | 
			
		||||
 | 
			
		||||
首先 需要创建好 PV
 | 
			
		||||
 | 
			
		||||
> 步骤在上面 不再重复写了
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
vgextend vg_demo /dev/sdc1
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### 调整 LV 大小
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
lvresize -l 102398 /dev/vg_demo/lv_demo
 | 
			
		||||
 | 
			
		||||
#or
 | 
			
		||||
 | 
			
		||||
lvresize -L +20G /dev/vg_demo/lv_demo
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
> 102398 是扩容后的 PE 总大小
 | 
			
		||||
> PE 大小通过 pvdisplay 查看
 | 
			
		||||
 | 
			
		||||
#### 调整分区大小
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
resize2fs /dev/vg_demo/lv_demo
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[wayne-programming-studio-wiki]: https://wiki-wayne.surge.sh/#/os/lvm	"lvm"
 | 
			
		||||
		Reference in New Issue
	
	Block a user