Linux中使用Parted进行硬盘分区和LVM逻辑卷管理完整指南

一、基础概念理解

LVM核心概念

  • PV (Physical Volume):物理卷,即物理磁盘或磁盘分区,可通过fdisk -l查看

  • VG (Volume Group):卷组,由多个物理卷组成的逻辑单元

  • LV (Logical Volume):逻辑卷,从卷组中划分出的逻辑存储单元

工作原理

PV → VG → LV → 文件系统使用(挂载到某个目录)

二、使用Parted进行硬盘分区

1. Parted命令模式

分为两种模式:

  • 命令行模式parted [option] device [command]

  • 交互模式parted [option] device(推荐新手使用)

2. 分区表类型选择

MBR vs GPT区别:

  • MBR:最大支持2T,最多4个主分区或3个主分区+1个扩展分区

  • GPT:最大支持18EB,最多128个分区,支持大于2T的分区

3. Parted常用命令

# 创建gpt分区表
parted /dev/sdb mklabel gpt
​
# 创建分区(方法1:使用完整空间)
parted /dev/sdb mkpart primary 1 100%
​
# 创建分区(方法2:指定大小)
parted /dev/sdb mkpart primary 4G 5G
parted /dev/sdb mkpart primary 0 20GB
​
# 显示分区信息
parted /dev/sdb print
parted /dev/sdb print free
​
# 设置分区标志
parted /dev/sdb set 1 lvm on
​
# 删除分区
parted /dev/sdb rm 1
​
# 退出parted
(parted) quit

4. 实际分区操作步骤

# 进入parted交互模式
[root@localhost ~]# parted /dev/sdc
​
# 创建gpt标签
(parted) mklabel
New disk label type? gpt
​
# 创建主分区
(parted) mkpart
Partition name? []? 
File system type? [ext2]? 
Start? 0
End? 2996G
​
# 设置LVM标志
(parted) toggle 1 lvm
​
# 查看分区结果
(parted) print
​
# 退出parted
(parted) quit
​
# 重新读取分区表(无需重启)
[root@localhost ~]# partprobe

三、创建LVM逻辑卷

1. 创建物理卷 (PV)

[root@localhost ~]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created
​
[root@localhost ~]# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created

2. 创建卷组 (VG)

[root@localhost ~]# vgcreate logdata /dev/sdc1 /dev/sdd1
Volume group "logdata" successfully created
​
# 查看卷组信息
[root@localhost ~]# vgdisplay
[root@localhost ~]# vgs

3. 创建逻辑卷 (LV)

[root@localhost ~]# lvcreate -n logdata01 -L 5500G logdata
Logical volume "logdata01" created
​
# 查看逻辑卷信息
[root@localhost ~]# lvdisplay
[root@localhost ~]# lvs

4. 格式化和挂载逻辑卷

# 格式化为ext4文件系统
[root@localhost ~]# mkfs.ext4 /dev/logdata/logdata01
​
# 创建挂载点
[root@localhost ~]# mkdir /logdata
​
# 挂载逻辑卷
[root@localhost ~]# mount /dev/logdata/logdata01 /logdata
​
# 查看挂载结果
[root@localhost ~]# df -Th

5. 设置开机自动挂载

编辑 /etc/fstab 文件:

/dev/logdata/logdata01 /logdata ext4 defaults 1 1

四、LVM逻辑卷扩容

情况一:卷组内有空闲空间

# 1. 扩展逻辑卷大小
[root@localhost ~]# lvextend -L +500G /dev/logdata/logdata01
​
# 2. 刷新文件系统(ext4)
[root@localhost ~]# resize2fs /dev/logdata/logdata01
​
# 3. 查看扩容结果
[root@localhost ~]# df -h

情况二:卷组内没有空闲空间(需要添加新硬盘)

步骤1:添加新硬盘并分区

# 1. 使用parted为新硬盘分区
[root@localhost ~]# parted /dev/sde

(parted) mklabel gpt
(parted) mkpart primary 0 100%
(parted) toggle 1 lvm
(parted) quit

# 2. 重新读取分区表
[root@localhost ~]# partprobe

步骤2:创建物理卷并扩展卷组

# 1. 创建新的物理卷
[root@localhost ~]# pvcreate /dev/sde1
Physical volume "/dev/sde1" successfully created

# 2. 扩展现有卷组
[root@localhost ~]# vgextend logdata /dev/sde1
Volume group "logdata" successfully extended

# 3. 查看卷组扩容结果
[root@localhost ~]# vgdisplay

步骤3:扩容逻辑卷和文件系统

# 1. 扩展逻辑卷(使用所有可用空间)
[root@localhost ~]# lvextend -l +100%FREE /dev/logdata/logdata01

# 2. 刷新文件系统(根据文件类型选择相应命令)
# ext4文件系统
[root@localhost ~]# resize2fs /dev/logdata/logdata01

# xfs文件系统
[root@localhost ~]# xfs_growfs /dev/logdata/logdata01

# 3. 查看最终扩容结果
[root@localhost ~]# df -h

五、删除LVM(可选)

# 1. 卸载逻辑卷
[root@localhost ~]# umount /dev/logdata/logdata01

# 2. 删除逻辑卷
[root@localhost ~]# lvremove /dev/logdata/logdata01

# 3. 删除卷组
[root@localhost ~]# vgremove logdata

# 4. 删除物理卷
[root@localhost ~]# pvremove /dev/sdc1 /dev/sdd1

# 5. 删除分区
[root@localhost ~]# parted /dev/sdc
(parted) rm 1
(parted) quit

# 清理/etc/fstab中的相关条目

六、重要注意事项

安全注意事项

  1. 备份数据:在进行任何磁盘操作前,务必备份重要数据

  2. 操作前检查:所有操作前使用 pvdisplayvgdisplaylvdisplay 等命令检查当前状态

  3. 避免操作中断:磁盘操作过程中避免中断,防止文件系统损坏

技术要点

  1. 分区类型:LVM分区必须设置为类型"8e"或使用parted的"lvm"标志

  2. 分区表格式:大硬盘(>2TB)必须使用GPT格式

  3. 文件系统兼容性

    • ext4使用 resize2fs 命令

    • xfs使用 xfs_growfs 命令

  4. PE大小:默认PE大小为4MB,可通过调整提高空间利用率

性能考虑

  1. 条带化:对于多物理卷配置,考虑启用条带化提高性能

  2. 监控:定期监控磁盘使用情况,及时进行扩容规划

  3. 空间预留:为文件系统预留适当的空间(通常5%)

常见问题解决

  1. 分区表未更新:使用 partprobe 命令重新读取分区表

  2. 设备文件未创建:检查 /dev/ 目录下对应的设备文件

  3. 权限问题:确保操作用户具有适当的权限

  4. 文件系统支持:确认文件系统支持在线扩容

通过以上详细的步骤和注意事项,您可以安全有效地在Linux系统中使用parted进行硬盘分区、创建LVM逻辑卷以及后期扩容操作。建议在非生产环境中先进行测试操作,熟悉整个流程后再应用到生产环境。