问题场景
Ubuntu Server系统上将新添加三块容量分别为2T、2T、8T的磁盘挂载到/home/titi/workspace/fdfs/目录,文件系统为ext4。
思考
同一目录无法重复挂载,后挂载的会覆盖之前挂载的磁盘,需要将三块硬盘合并到一个逻辑卷后挂载。
基本概念:
- PE(Physical Extent)
物理扩展单元,是LVM中最小的存储单元,默认大小为4MB。 - PV(Physical Volume)
物理卷在逻辑卷管理中处于最底层,它可以是物理硬盘的分区,也可以是整个物理硬盘,也可以是RAID设备。 - VG(Volume Group)
卷组建立在物理卷之上,一个卷组至少要包括一个物理卷,在卷组建立后可动态添加物理卷到卷组中。 - LV(Logical Volume)
逻辑卷建立在卷组之上,每个逻辑卷只能属于一个卷组。卷组中未分配的空间可以用于建立新的逻辑卷,
逻辑卷建立后可以动态地扩展和缩小空间。系统中可以创建多个逻辑卷,它们可以属于同一个卷组,也可以属于不同的卷组。
解决方法
查看当前状态
查看当前磁盘和分区信息:
1
2sudo fdisk -l
sudo lsblk

创建物理卷(PV)
在使用磁盘创建卷组之前,需要先将磁盘初始化为物理卷:
1
sudo pvcreate /dev/sda
查看物理卷:
1
2sudo pvs
sudo pvdisplay创建卷组(VG)
创建卷组的命令为
vgcreate,此命令将物理卷创建为一个卷组。在物理卷/dev/sda上创建一个名为vgfdfs的卷组:1
sudo vgcreate vgfdfs /dev/sda

添加新的物理卷到卷组
此步为将多块磁盘空间合为一体的关键步骤。当系统中新增了磁盘,需要先创建物理卷,然后将其添加到已有卷组时,使用
vgextend命令:1
2
3
4
5
6
7# 先创建物理卷
sudo pvcreate /dev/sdb
sudo pvcreate /dev/sdc
# 将物理卷添加到卷组
sudo vgextend vgfdfs /dev/sdb
sudo vgextend vgfdfs /dev/sdc
创建后查看卷组:
1
2sudo vgs
sudo vgdisplay vgfdfs
创建逻辑卷(LV)
创建逻辑卷的命令为
lvcreate,此命令在卷组上创建逻辑卷。在卷组vgfdfs上创建一个名为lvfdfs的逻辑卷,其大小为10.9T:1
2
3
4
5# 使用所有可用空间
sudo lvcreate -l 100%FREE -n lvfdfs vgfdfs
# 或指定具体大小
# sudo lvcreate -L 10.9T -n lvfdfs vgfdfs
创建后查看逻辑卷:
1
2sudo lvscan
sudo lvdisplay /dev/vgfdfs/lvfdfs
格式化逻辑卷
将创建的
lvfdfs逻辑卷格式化为ext4文件系统:1
sudo mkfs.ext4 /dev/vgfdfs/lvfdfs

挂载逻辑卷到目录
临时挂载
1
2
3
4
5# 确保目标目录存在
sudo mkdir -p /home/titi/workspace/fdfs/
# 挂载逻辑卷
sudo mount /dev/vgfdfs/lvfdfs /home/titi/workspace/fdfs/
开机自动挂载
编辑
/etc/fstab文件,添加以下内容:1
sudo vim /etc/fstab
添加一行:
1
/dev/vgfdfs/lvfdfs /home/titi/workspace/fdfs/ ext4 defaults 0 2

查看挂载状态
1
2
3df -h | grep fdfs
# 或
mount | grep fdfs
总结
通过LVM(逻辑卷管理)技术,成功将三块独立的物理磁盘(2T+2T+8T)合并为一个12T的逻辑卷,并挂载到指定目录。LVM的优势在于:
- 灵活性: 可以动态调整逻辑卷大小,无需重新分区
- 扩展性: 可以随时向卷组添加新的物理磁盘
- 统一管理: 多块磁盘作为一个整体进行管理,简化运维
注意事项
- 在创建物理卷前,确保磁盘上没有重要数据,该操作会清空磁盘
- 修改
/etc/fstab文件时要格外小心,配置错误可能导致系统无法启动 - 建议定期备份重要数据,即使使用了LVM也不能完全避免数据丢失风险
- 如需缩小逻辑卷,务必先卸载并备份数据,缩小操作有一定风险