From b5a40538170ca2c008534fa2b1e566b225990f34 Mon Sep 17 00:00:00 2001 From: xking Date: Tue, 6 Jun 2023 18:25:51 +0800 Subject: [PATCH] =?UTF-8?q?linux=20=20=20=E4=BD=BF=E7=94=A8=20lvm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- linux/linux使用lvm.md | 155 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 linux/linux使用lvm.md diff --git a/linux/linux使用lvm.md b/linux/linux使用lvm.md new file mode 100644 index 0000000..44620b0 --- /dev/null +++ b/linux/linux使用lvm.md @@ -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" \ No newline at end of file