必须通过lvm实现linux动态存储结构,包含五种路径:一、安装时手动分区建pv/vg/lv;二、运行中加新盘扩vg;三、在线扩lv及文件系统(ext4用resize2fs,xfs用xfs_growfs);四、裸盘直建lvm;五、多盘聚合建高可用vg。

如果您需要在Linux系统中构建可动态调整的存储结构,则必须通过LVM逻辑卷管理实现磁盘空间的抽象化与弹性分配。以下是完成LVM创建与扩容操作的多种可行路径:
一、安装前手动分区并初始化LVM结构
该方法适用于新装系统阶段,在安装器中启用自定义分区模式,直接基于未分配空间构建LVM底层组件。其核心在于确保物理卷来源为类型标识为8e(Linux LVM)的分区,并避免覆盖正在使用的系统盘。
1、启动安装介质后选择“手动分区”或“自定义分区”选项。
2、在磁盘列表中定位目标硬盘(如/dev/sda),确认存在未分配空间或已删除旧分区产生的空闲区域。
3、选中空闲空间,设置新分区类型为physical volume for LVM,指定大小(可全用或预留部分)。
4、点击“创建”生成物理卷条目(如/dev/sda2),随后进入卷组配置界面。
5、输入卷组名称(如vg_root),勾选刚创建的物理卷,提交完成VG建立。
6、在卷组内添加逻辑卷,设定名称(如lv_root)、大小(如20G)及挂载点(如/),选择ext4或xfs文件系统类型。
二、运行中系统添加新磁盘并扩展现有卷组
该方法用于已有LVM环境需扩容场景,通过引入新物理磁盘并将其纳入原有卷组,从而为逻辑卷提供额外PE资源。操作全程无需重启,但需确保新磁盘未被其他进程占用。
1、使用lsblk或fdisk -l确认新磁盘设备名(如/dev/sdb)已被系统识别。
2、执行fdisk /dev/sdb创建一个主分区(如sdb1),并将分区类型设为8e。
3、运行partprobe强制内核重读分区表,使/dev/sdb1节点立即生效。
4、执行pvcreate /dev/sdb1将该分区初始化为物理卷。
5、使用vgextend centos /dev/sdb1将新PV加入名为centos的现有卷组。
6、验证扩容结果:运行vgdisplay centos检查Free PE数值是否增加。
三、在线扩展逻辑卷及其文件系统
该方法针对已挂载且空间告急的逻辑卷,通过增大LV容量并同步调整上层文件系统边界,实现无缝扩容。注意ext4与xfs处理方式不同,且xfs仅支持扩容不支持缩容。
1、确认目标逻辑卷路径(如/dev/centos/root)及所属卷组剩余空间充足。
2、执行lvextend -l +100%FREE /dev/centos/root将卷组全部空闲PE分配给该LV。
3、若文件系统为ext4,运行resize2fs /dev/centos/root更新inode与块位图。
4、若文件系统为xfs,运行xfs_growfs /(挂载点路径)而非设备路径。
5、使用df -h验证根目录可用空间是否已反映新增容量。
四、从裸盘直建LVM而不依赖分区表
该方法跳过传统MBR/GPT分区步骤,直接将整块磁盘作为物理卷使用,简化结构层级,适合SAN、iSCSI等无本地分区需求的存储环境。所有数据将被彻底清除,操作不可逆。
1、确认待用磁盘未挂载且无重要数据(如/dev/sdc),执行lsblk二次核对。
2、运行pvcreate /dev/sdc初始化整盘为物理卷,忽略任何“device is not partitioned”的警告。
3、创建新卷组:vgcreate vg_data /dev/sdc。
4、从中划分逻辑卷:lvcreate -L 50G -n lv_db vg_data。
5、格式化并挂载:mkfs.xfs /dev/vg_data/lv_db && mount /dev/vg_data/lv_db /data。
五、基于多磁盘聚合构建高可用卷组
该方法利用多个物理磁盘组成单一卷组,提升I/O并发能力与故障容忍度。各PV可来自不同控制器通道,避免单点硬件瓶颈,同时为后续跨盘LV迁移奠定基础。
1、添加三块磁盘(/dev/sdb、/dev/sdc、/dev/sdd),分别执行pvcreate初始化。
2、统一加入同一卷组:vgcreate vg_cluster /dev/sdb /dev/sdc /dev/sdd。
3、查看PE总数:vgdisplay vg_cluster | grep "Total PE"。
4、创建跨盘逻辑卷:lvcreate -l 3000 -n lv_app vg_cluster(3000个PE约12GB)。
5、格式化并启用自动挂载:编辑/etc/fstab,追加行/dev/vg_cluster/lv_app /app xfs defaults 0 0。










