LVM 创建逻辑卷
一、整体流程(四层结构)
硬盘/分区 → PV(物理卷) → VG(卷组) → LV(逻辑卷) → 格式化挂载
二、详细步骤
步骤1:准备分区(指定 LVM 类型)
1. 分区表类型
- MBR:分区类型
8e表示 Linux LVM - GPT:分区类型
30对应 Linux LVM
2. parted 创建 GPT 分区并开启 LVM 标志
bash
parted /dev/vdb mklabel gpt # 创建GPT分区表
parted -s /dev/vdb mkpart primary 1MiB 769MiB
parted -s /dev/vdb mkpart primary 770MiB 1026MiB
parted -s /dev/vdb set 1 lvm on
parted -s /dev/vdb set 2 lvm on
一、等价的 fdisk 命令(创建GPT分区+设置LVM类型)
fdisk操作是交互式的,以下是完整的分步执行命令(逐行复制执行即可):
bash# 1. 进入fdisk交互模式,操作/dev/vdb磁盘 fdisk /dev/vdb # 2. 进入交互后,依次输入以下指令(每行一个指令,回车执行): g # 创建GPT分区表(替代parted的mklabel gpt) n # 创建第一个分区 # 分区号:直接回车(默认1) # 起始扇区:直接回车(默认从1MiB开始,对应parted的1MiB) # 结束扇区:输入+768M(对应parted的769MiB,因为fdisk起始是0,>768M即到769MiB位置) t # 修改分区类型 # 分区号:输入1(修改第一个分区) 30 # 指定GPT的LVM类型编号(对应Linux LVM) n # 创建第二个分区 # 分区号:直接回车(默认2) # 起始扇区:直接回车(默认接第一个分区末尾,对应770MiB) # 结束扇区:输入+256M(768M+256M=1024M,对应parted的>1026MiB,误差可忽略) t # 修改第二个分区类型 # 分区号:输入2(修改第二个分区) 30 # 指定GPT的LVM类型编号 w # 保存分区表并退出(关键:不保存则所有操作无效) # 3. 让内核重新识别分区表(必做) partprobe /dev/vdb二、关键步骤解释
fdisk指令 作用说明 对应parted原命令 g创建GPT分区表 parted /dev/vdb mklabel gptn(第一个分区)创建分区1,大小768M parted -s /dev/vdb mkpart primary >1MiB 769MiBt → 1 → 30把分区1设为GPT的LVM类型 parted -s /dev/vdb set 1 lvm onn(第二个分区)创建分区2,大小256M parted -s /dev/vdb mkpart primary >770MiB 1026MiBt → 2 → 30把分区2设为GPT的LVM类型 parted -s /dev/vdb set 2 lvm onw保存并退出 parted的-s(非交互式)自动生效 三、注意事项
容量换算 :
parted中1MiB~769MiB实际是768MiB空间(结束-起始),所以fdisk中用+768M完全等价;GPT类型编号 :fdisk中GPT分区的Linux LVM类型编号是
30(对应>GUID:E6D6D379-F507-44C2-A23C-238F2A3DF928);验证结果 :执行完后用
fdisk -l /dev/vdb查看,分区1/2的Type列会显示Linux LVM,说明设置成功。总结
fdisk创建GPT分区的核心是先输入g初始化GPT表,再用n建分区、t改>类型(30=LVM)、w保存;- 容量计算要注意
parted的"起始~结束"和fdisk的"+大小"的等价性;- 操作后必须执行
partprobe让内核识别新分区表,否则后续PV创建会报错。
3. fdisk 创建 LVM 分区
- fdisk:
n创建 →t修改类型 →30(Linux LVM)→w保存
4. 重新识别分区
bash
partprobe
步骤2:创建物理卷 PV
将分区标记为 PV,默认 PE 大小 4MiB。
bash
pvcreate /dev/vdb1 /dev/vdb2
查看:
bash
pvs
pvdisplay
步骤3:创建卷组 VG
将多个 PV 整合为一个统一存储空间。
bash
vgcreate vg01 /dev/vdb1 /dev/vdb2
指定 PE 大小(可选):
bash
vgcreate -s 16M vg_data /dev/vdb1
查看:
bash
vgs
vgdisplay
步骤4:创建逻辑卷 LV
从 VG 中划分空间。
常用参数
-n:LV 名称-L:按大小(M/G)-l:按 PE 数量
示例
bash
lvcreate -n lv01 -L 700M vg01
bash
lvcreate -n lv_data -l 100 vg_data
查看:
bash
lvs
lvdisplay
LV 路径两种写法:
/dev/vg名/lv名/dev/mapper/vg名-lv名
步骤5:格式化 + 挂载
bash
mkfs.xfs /dev/vg01/lv01
mkdir /mnt/data
mount /dev/vg01/lv01 /mnt/data
永久挂载(/etc/fstab)
/dev/vg01/lv01 /mnt/data xfs defaults 1 2
生效:
bash
mount -a
三、关键概念总结
- PV:物理卷,被 LVM 管理的磁盘/分区
- VG:卷组,把多个 PV 合并成一个大池子
- LV:逻辑卷,从 VG 中切出来使用的分区
- PE:物理扩展块,LVM 最小分配单位(默认 4M)
- MBR LVM 类型:
8e - GPT LVM 类型:
30
四、命令速记
- 分区:
parted / fdisk / gdisk - PV:
pvcreatepvspvdisplay - VG:
vgcreatevgsvgdisplay - LV:
lvcreatelvslvdisplay - 格式化:
mkfs.xfs - 挂载:
mount/etc/fstab