3.4.2 LVM创建与初始化流程
3.4.2 LVM创建与初始化流程#
目标与前提#
- 目标:将物理磁盘初始化为 PV,组建 VG,创建 LV 并格式化挂载
- 前提:磁盘分区完成且类型为 LVM(8e),或直接使用整盘;系统已安装 LVM 工具
原理草图(LVM数据流)#
安装与环境准备#
yum install -y lvm2
apt-get update && apt-get install -y lvm2
lsblk
fdisk -l
标准创建与初始化流程(完整示例)#
fdisk /dev/sdb <<'EOF'
n
p
1
t
8e
w
EOF
fdisk /dev/sdc <<'EOF'
n
p
1
t
8e
w
EOF
pvcreate /dev/sdb1 /dev/sdc1
pvs
vgcreate vg_data /dev/sdb1 /dev/sdc1
vgs
lvcreate -L 100G -n lv_app vg_data
lvs
mkfs.xfs /dev/vg_data/lv_app
mkdir -p /data/app
mount /dev/vg_data/lv_app /data/app
blkid /dev/vg_data/lv_app
UUID=$(blkid -s UUID -o value /dev/vg_data/lv_app)
echo "UUID=${UUID} /data/app xfs defaults 0 0" >> /etc/fstab
mount -a
df -h | grep /data/app
关键命令解释(带示例)#
pvcreate /dev/sdb1:把分区初始化为 PV,写入 LVM 元数据
vgcreate vg_data /dev/sdb1 /dev/sdc1:把多个 PV 聚合成 VG
lvcreate -L 100G -n lv_app vg_data:在 VG 中创建 100G LV
mkfs.xfs /dev/vg_data/lv_app:在 LV 上创建文件系统
mount /dev/vg_data/lv_app /data/app:挂载到目录
blkid:获取 UUID,fstab 推荐用 UUID
最小化可执行示例(快速体验)#
pvcreate /dev/sdb1
vgcreate vg_test /dev/sdb1
lvcreate -L 5G -n lv_test vg_test
mkfs.ext4 /dev/vg_test/lv_test
mkdir -p /mnt/test
mount /dev/vg_test/lv_test /mnt/test
df -h | grep /mnt/test
常见错误与排错#
wipefs -a /dev/sdb1
pvcreate /dev/sdb1
pvs
pvcreate /dev/sdb1
ls -l /dev/vg_data/
mount /dev/vg_data/lv_app /data/app
mount -a
练习题#
- 创建一个由
/dev/sdb1 和 /dev/sdc1 组成的 VG,名称为 vg_lab。
- 在
vg_lab 中创建 lv_web,大小为 20G,格式化为 XFS,挂载到 /srv/web。
- 使用 UUID 写入
/etc/fstab,并验证 mount -a 无报错。
- 故意写错 fstab 行,练习如何修复并恢复正常启动。