扩容实验参考上一篇博客:

https://blog.csdn.net/wenxiaocsdn/article/details/141932877?spm=1001.2014.3001.5502

LVM基础知识附录红帽官方文档

配置和管理逻辑卷 | Red Hat Enterprise Linux | 8 | Red Hat Documentation

LVM逻辑结构图

LVM 管理命令速查表(中英文对照)

LVM 管理命令速查表(中英文对照)

操作分类

命令

英文说明

中文说明

创建 PV

pvcreate /dev/sdX1

Initialize a physical volume

初始化物理卷

查看 PV

pvdisplay / pvs

Show physical volume details / summary

查看物理卷详情 / 摘要

删除 PV

pvremove /dev/sdX1

Remove a physical volume

删除物理卷

创建 VG

vgcreate vg_name /dev/sdX1

Create a volume group

创建卷组

添加 PV 到 VG

vgextend vg_name /dev/sdY1

Add physical volume to volume group

向卷组添加物理卷

从 VG 删除 PV

vgreduce vg_name /dev/sdY1

Remove physical volume from VG

从卷组移除物理卷

查看 VG

vgdisplay / vgs

Show volume group info

查看卷组信息

删除 VG

vgremove vg_name

Delete a volume group

删除卷组

创建 LV

lvcreate -L 10G -n lv_name vg_name

Create logical volume

创建逻辑卷

查看 LV

lvdisplay / lvs

Show logical volume info

查看逻辑卷信息

扩容 LV

lvextend -L +5G /dev/vg_name/lv_name

Extend logical volume

扩展逻辑卷大小

缩容 LV

lvreduce -L 5G /dev/vg_name/lv_name

Reduce logical volume

缩小逻辑卷

删除 LV

lvremove /dev/vg_name/lv_name

Delete logical volume

删除逻辑卷

检查文件系统(ext4)

e2fsck -f /dev/vg/lv

Check ext4 filesystem

检查 ext4 文件系统一致性

扩展 ext4

resize2fs /dev/vg/lv

Resize ext4 filesystem

扩展 ext4 文件系统

扩展 xfs

xfs_growfs /mountpoint

Grow xfs filesystem

扩展 xfs 文件系统

格式化 ext4

mkfs.ext4 /dev/vg/lv

Format LV as ext4

格式化为 ext4

格式化 xfs

mkfs.xfs /dev/vg/lv

Format LV as xfs

格式化为 xfs

创建快照

lvcreate -L 1G -s -n lv_snap /dev/vg/lv

Create snapshot

创建逻辑卷快照

删除快照

lvremove /dev/vg/lv_snap

Remove snapshot

删除快照

查看挂载情况

lsblk / df -hT

Show block devices / mount info

查看磁盘与挂载信息

刷新分区表

partprobe / udevadm settle

Reload partition table

刷新分区表

重命名 LV

lvrename vg old_lv new_lv

Rename LV

重命名逻辑卷

重命名 VG

vgrename old_vg new_vg

Rename VG

重命名卷组

适用于虚拟机linux磁盘调整大小步骤,这里介绍几种案例

实验环境:

vmware workstation 17

centos7.9 版本

场景分类

类型文件系统是否支持在线扩容是否需重启备注
非LVM 分区磁盘ext4✅ 是❌ 否常见于直接分区使用场景
非LVM 分区磁盘xfs✅ 是❌ 否xfs 不支持缩容
LVM 分区磁盘ext4✅ 是❌ 否支持弹性扩容
LVM 分区磁盘xfs✅ 是❌ 否建议用于大数据场景

场景命令示例

类型文件系统命令示例
非LVM + ext4ext4fdiskresize2fs /dev/sdX1
非LVM + xfsxfsfdiskxfs_growfs /mountpoint
LVM + ext4ext4lvextendresize2fs
LVM + xfsxfslvextendxfs_growfs /mountpoint

🧾关键区别:MBR vs GPT

分区类型最大支持容量最大主分区数推荐使用场景
MBR(msdos)2TB4(主分区)小磁盘(≤2TB)
GPT(gpt)理论 18EB128(主分区)大磁盘(>2TB)

小于2T环境

实验准备:

初始磁盘大小为80G,未划分逻辑卷,默认安装分区类型为xfs,远程登录命令示例如下

[root@test ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 1024M  0 rom
sda      8:0    0   80G  0 disk
├─sda2   8:2    0  3.9G  0 part [SWAP]
├─sda3   8:3    0 75.9G  0 part /
└─sda1   8:1    0  300M  0 part /boot
sr1     11:1    1 1024M  0 rom
[root@test ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs          tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs          tmpfs     2.0G  9.5M  2.0G   1% /run
tmpfs          tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda3      xfs        76G  5.6G   71G   8% /
/dev/sda1      xfs       297M  204M   94M  69% /boot
tmpfs          tmpfs     392M     0  392M   0% /run/user/0
[root@test ~]# pvs
[root@test ~]# vgs
[root@test ~]# lvs
[root@test ~]#

        分别新增四块盘分别为100G,分区按照非LVM + ext4,非LVM + xfs,LVM + ext4,LVM + xfs,分别挂在data1,data2,data3,data4,挂载分区后,再次修改虚拟磁盘为200G ,如下:

[root@test ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdd           8:48   0  200G  0 disk
└─data3-lv0 253:1    0  100G  0 lvm  /data3
sdb           8:16   0  200G  0 disk
└─sdb1        8:17   0  100G  0 part /data1
sr0          11:0    1 1024M  0 rom
sde           8:64   0  200G  0 disk
└─data4-lv0 253:0    0  100G  0 lvm  /data4
sdc           8:32   0  200G  0 disk
└─sdc1        8:33   0  100G  0 part /data2
sda           8:0    0   80G  0 disk
├─sda2        8:2    0  3.9G  0 part [SWAP]
├─sda3        8:3    0 75.9G  0 part /
└─sda1        8:1    0  300M  0 part /boot
[root@test ~]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
devtmpfs              devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                 tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                 tmpfs     2.0G  9.5M  2.0G   1% /run
tmpfs                 tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda3             xfs        76G  5.6G   71G   8% /
/dev/sda1             xfs       297M  204M   94M  69% /boot
tmpfs                 tmpfs     392M     0  392M   0% /run/user/0
/dev/sdb1             ext4       99G   61M   94G   1% /data1
/dev/sdc1             xfs       100G   33M  100G   1% /data2
/dev/mapper/data3-lv0 ext4       99G   61M   94G   1% /data3
/dev/mapper/data4-lv0 xfs       100G   33M  100G   1% /data4
[root@test ~]#
非LVM + ext4操作步骤 (小于2T磁盘环境)

# 删除原分区(不丢数据,别格式化)
# 重建新的分区起始扇区必须与原来相同
# 类型为 Linux (83)

[root@test ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdd           8:48   0  200G  0 disk
└─data3-lv0 253:1    0  100G  0 lvm  /data3
sdb           8:16   0  200G  0 disk
└─sdb1        8:17   0  100G  0 part /data1
sr0          11:0    1 1024M  0 rom
sde           8:64   0  200G  0 disk
└─data4-lv0 253:0    0  100G  0 lvm  /data4
sdc           8:32   0  200G  0 disk
└─sdc1        8:33   0  100G  0 part /data2
sda           8:0    0   80G  0 disk
├─sda2        8:2    0  3.9G  0 part [SWAP]
├─sda3        8:3    0 75.9G  0 part /
└─sda1        8:1    0  300M  0 part /boot
[root@test ~]#
[root@test ~]# umount /data1
[root@test ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): pDisk /dev/sdb: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xf87f8475Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   419430399   209714176   83  LinuxCommand (m for help): d
Selected partition 1
Partition 1 is deletedCommand (m for help): n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-419430399, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-419430399, default 419430399):
Using default value 419430399
Partition 1 of type Linux and of size 200 GiB is setCommand (m for help): pDisk /dev/sdb: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xf87f8475Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   419430399   209714176   83  LinuxCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
[root@test ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdd           8:48   0  200G  0 disk
└─data3-lv0 253:1    0  100G  0 lvm  /data3
sdb           8:16   0  200G  0 disk
└─sdb1        8:17   0  200G  0 part
sr0          11:0    1 1024M  0 rom
sde           8:64   0  200G  0 disk
└─data4-lv0 253:0    0  100G  0 lvm  /data4
sdc           8:32   0  200G  0 disk
└─sdc1        8:33   0  100G  0 part /data2
sda           8:0    0   80G  0 disk
├─sda2        8:2    0  3.9G  0 part [SWAP]
├─sda3        8:3    0 75.9G  0 part /
└─sda1        8:1    0  300M  0 part /boot[root@test ~]# resize2fs  /dev/sdb1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/sdb1 is mounted on /data1; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 25
The filesystem on /dev/sdb1 is now 52428544 blocks long.[root@test ~]# umount /dev/sdb1
[root@test ~]# resize2fs  /dev/sdb1
resize2fs 1.42.9 (28-Dec-2013)
Please run 'e2fsck -f /dev/sdb1' first.[root@test ~]# e2fsck -f /dev/sdb1
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 12/13107200 files (0.0% non-contiguous), 870745/52428544 blocks
[root@test ~]# mount /dev/sdb1 /data1
[root@test ~]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
devtmpfs              devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                 tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                 tmpfs     2.0G  9.4M  2.0G   1% /run
tmpfs                 tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda3             xfs        76G  5.6G   71G   8% /
/dev/sda1             xfs       297M  204M   94M  69% /boot
tmpfs                 tmpfs     392M     0  392M   0% /run/user/0
/dev/sdc1             xfs       100G   33M  100G   1% /data2
/dev/mapper/data3-lv0 ext4       99G   61M   94G   1% /data3
/dev/mapper/data4-lv0 xfs       100G   33M  100G   1% /data4
/dev/sdb1             ext4      197G   60M  188G   1% /data1
[root@test ~]#

扩容完毕

非LVM + xfs操作步骤 (小于2T磁盘环境))

步骤同上

# 删除原分区(不丢数据,别格式化)
# 重建新的分区起始扇区必须与原来相同
# 类型为 Linux (83)

xfs分区执行xfs_growfs ,xfs_growfs需要设备是挂载才可以执行扩容

[root@test ~]# umount /dev/sdc1
[root@test ~]# fdisk /dev/sdc
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): pDisk /dev/sdc: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xa9790030Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048   209715199   104856576   83  LinuxCommand (m for help): d
Selected partition 1
Partition 1 is deletedCommand (m for help): n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-419430399, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-419430399, default 419430399):
Using default value 419430399
Partition 1 of type Linux and of size 200 GiB is setCommand (m for help): pDisk /dev/sdc: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xa9790030Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048   419430399   209714176   83  LinuxCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
[root@test ~]#
[root@test ~]# xfs_growfs /dev/sdc1
xfs_growfs: /dev/sdc1 is not a mounted XFS filesystem
[root@test ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdd           8:48   0  200G  0 disk
└─data3-lv0 253:1    0  100G  0 lvm  /data3
sdb           8:16   0  200G  0 disk
└─sdb1        8:17   0  200G  0 part /data1
sr0          11:0    1 1024M  0 rom
sde           8:64   0  200G  0 disk
└─data4-lv0 253:0    0  100G  0 lvm  /data4
sdc           8:32   0  200G  0 disk
└─sdc1        8:33   0  200G  0 part
sda           8:0    0   80G  0 disk
├─sda2        8:2    0  3.9G  0 part [SWAP]
├─sda3        8:3    0 75.9G  0 part /
└─sda1        8:1    0  300M  0 part /boot
[root@test ~]# mount /dev/sdc1 /data2
[root@test ~]# xfs_growfs /dev/sdc1
meta-data=/dev/sdc1              isize=512    agcount=4, agsize=6553536 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=26214144, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=12799, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 26214144 to 52428544
[root@test ~]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
devtmpfs              devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                 tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                 tmpfs     2.0G  9.4M  2.0G   1% /run
tmpfs                 tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda3             xfs        76G  5.6G   71G   8% /
/dev/sda1             xfs       297M  204M   94M  69% /boot
tmpfs                 tmpfs     392M     0  392M   0% /run/user/0
/dev/mapper/data3-lv0 ext4       99G   61M   94G   1% /data3
/dev/mapper/data4-lv0 xfs       100G   33M  100G   1% /data4
/dev/sdb1             ext4      197G   60M  188G   1% /data1
/dev/sdc1             xfs       200G   33M  200G   1% /data2
[root@test ~]#

扩容完毕

LVM + ext4操作步骤(小于2T磁盘环境))
[root@test ~]# pvsPV         VG    Fmt  Attr PSize    PFree/dev/sdd   data3 lvm2 a--  <100.00g    0/dev/sde   data4 lvm2 a--  <100.00g    0
[root@test ~]# vgsVG    #PV #LV #SN Attr   VSize    VFreedata3   1   1   0 wz--n- <100.00g    0data4   1   1   0 wz--n- <100.00g    0
[root@test ~]# lvsLV   VG    Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv0  data3 -wi-ao---- <100.00glv0  data4 -wi-ao---- <100.00g
[root@test ~]# pvresize /dev/sddPhysical volume "/dev/sdd" changed1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@test ~]# pvsPV         VG    Fmt  Attr PSize    PFree/dev/sdd   data3 lvm2 a--  <200.00g 100.00g/dev/sde   data4 lvm2 a--  <100.00g      0
[root@test ~]# vgsVG    #PV #LV #SN Attr   VSize    VFreedata3   1   1   0 wz--n- <200.00g 100.00gdata4   1   1   0 wz--n- <100.00g      0
[root@test ~]# lvsLV   VG    Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv0  data3 -wi-ao---- <100.00glv0  data4 -wi-ao---- <100.00g
[root@test ~]# lvextend -l +100%free /dev/mapper/data3-lv0Size of logical volume data3/lv0 changed from <100.00 GiB (25599 extents) to <200.00 GiB (51199 extents).Logical volume data3/lv0 successfully resized.
[root@test ~]# lvsLV   VG    Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv0  data3 -wi-ao---- <200.00glv0  data4 -wi-ao---- <100.00g
[root@test ~]# resize2fs  /dev/mapper/data3-lv0
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/data3-lv0 is mounted on /data3; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 25
The filesystem on /dev/mapper/data3-lv0 is now 52427776 blocks long.[root@test ~]# umount /dev/mapper/data3-lv0
[root@test ~]# resize2fs  /dev/mapper/data3-lv0
resize2fs 1.42.9 (28-Dec-2013)
Please run 'e2fsck -f /dev/mapper/data3-lv0' first.[root@test ~]# e2fsck -f /dev/mapper/data3-lv0
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/data3-lv0: 12/13107200 files (0.0% non-contiguous), 870745/52427776 blocks
[root@test ~]# resize2fs  /dev/mapper/data3-lv0
resize2fs 1.42.9 (28-Dec-2013)
The filesystem is already 52427776 blocks long.  Nothing to do![root@test ~]# mount /dev/mapper/data3-lv0 /data3
[root@test ~]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
devtmpfs              devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                 tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                 tmpfs     2.0G  9.4M  2.0G   1% /run
tmpfs                 tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda3             xfs        76G  5.6G   71G   8% /
/dev/sda1             xfs       297M  204M   94M  69% /boot
tmpfs                 tmpfs     392M     0  392M   0% /run/user/0
/dev/mapper/data4-lv0 xfs       100G   33M  100G   1% /data4
/dev/sdb1             ext4      197G   60M  188G   1% /data1
/dev/sdc1             xfs       200G   33M  200G   1% /data2
/dev/mapper/data3-lv0 ext4      197G   60M  188G   1% /data3
[root@test ~]#

扩容完毕

LVM + xfs操作步骤 (小于2T磁盘环境)
[root@test ~]# pvsPV         VG    Fmt  Attr PSize    PFree/dev/sdd   data3 lvm2 a--  <200.00g    0/dev/sde   data4 lvm2 a--  <100.00g    0
[root@test ~]# vgsVG    #PV #LV #SN Attr   VSize    VFreedata3   1   1   0 wz--n- <200.00g    0data4   1   1   0 wz--n- <100.00g    0
[root@test ~]# lvsLV   VG    Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv0  data3 -wi-ao---- <200.00glv0  data4 -wi-ao---- <100.00g
[root@test ~]# pvresize /dev/sdePhysical volume "/dev/sde" changed1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@test ~]# pvsPV         VG    Fmt  Attr PSize    PFree/dev/sdd   data3 lvm2 a--  <200.00g      0/dev/sde   data4 lvm2 a--  <200.00g 100.00g
[root@test ~]# vgsVG    #PV #LV #SN Attr   VSize    VFreedata3   1   1   0 wz--n- <200.00g      0data4   1   1   0 wz--n- <200.00g 100.00g
[root@test ~]# lvextend -l +100%free /dev/mapper/data4-lv0Size of logical volume data4/lv0 changed from <100.00 GiB (25599 extents) to <200.00 GiB (51199 extents).Logical volume data4/lv0 successfully resized.
[root@test ~]# lvsLV   VG    Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv0  data3 -wi-ao---- <200.00glv0  data4 -wi-ao---- <200.00g
[root@test ~]# xfs_growfs /dev/mapper/data4-lv0
meta-data=/dev/mapper/data4-lv0  isize=512    agcount=4, agsize=6553344 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=26213376, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=12799, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 26213376 to 52427776
[root@test ~]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
devtmpfs              devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                 tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                 tmpfs     2.0G  9.4M  2.0G   1% /run
tmpfs                 tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda3             xfs        76G  5.6G   71G   8% /
/dev/sda1             xfs       297M  204M   94M  69% /boot
tmpfs                 tmpfs     392M     0  392M   0% /run/user/0
/dev/mapper/data4-lv0 xfs       200G   33M  200G   1% /data4
/dev/sdb1             ext4      197G   60M  188G   1% /data1
/dev/sdc1             xfs       200G   33M  200G   1% /data2
/dev/mapper/data3-lv0 ext4      197G   60M  188G   1% /data3
[root@test ~]#

大于2T环境

注意:

✅对于 大于 2TB 的磁盘,如果你使用的是 非 LVM + ext4/xfs 分区,在扩容时需要特别注意:MBR 分区表的限制 —— 最大只支持到 2TB

✅磁盘原本为 MBR,需要重新分区为 GPT(数据会清除)

✅ 大于 2TB 的磁盘必须使用 GPT 分区表

✅LVM 下的扩容,LVM 的核心机制不依赖分区表,但在你用分区做 PV 或操作大于 2TB 磁盘时,分区表就变得相关了

关键区别:MBR vs GPT

分区类型最大支持容量最大主分区数推荐使用场景
MBR(msdos)2TB4(主分区)小磁盘(≤2TB)
GPT(gpt)理论 18EB128(主分区)大磁盘(>2TB) ✅

实验准备

将实验环境磁盘修改大小为4T

[root@test ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdd           8:48   0    4T  0 disk
└─data3-lv0 253:1    0  200G  0 lvm
sdb           8:16   0    4T  0 disk
└─sdb1        8:17   0  200G  0 part
sr0          11:0    1 1024M  0 rom
sde           8:64   0    4T  0 disk
└─data4-lv0 253:0    0  200G  0 lvm
sdc           8:32   0    4T  0 disk
└─sdc1        8:33   0  200G  0 part
sda           8:0    0   80G  0 disk
├─sda2        8:2    0  3.9G  0 part [SWAP]
├─sda3        8:3    0 75.9G  0 part /
└─sda1        8:1    0  300M  0 part /boot
[root@test ~]#

非LVM + ext4操作步骤(4T磁盘环境)

扩容采用的分区表是mbr,最大支持2T,多余的空间则无法使用,如需要全部空间投入使用,则需要备份原有数据,清除原有分区,重建gpt分区表。重新执行扩容,可考虑新增磁盘扩容方案。

fdisk 查看分区表命令如下

[root@test ~]# fdisk -l /dev/sdbDisk /dev/sdb: 4398.0 GB, 4398046511104 bytes, 8589934592 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xf87f8475Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048  4294967294  2147482623+  83  Linux
[root@test ~]#

parted查看分区表如下

[root@test ~]#  parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:Number  Start   End     Size    Type     File system  Flags1      1049kB  2199GB  2199GB  primary  ext4

非LVM + xfs操作步骤(4T磁盘环境)

同上,大于2T的空间需要重建分区表才可以使用,可考虑新增磁盘扩容方案。

LVM + ext4操作步骤(4T磁盘环境)

由于我们使用整块磁盘做pv,此时,分区表完全无关,扩容步骤同上

命令输出示例:

[root@test ~]# pvsPV         VG    Fmt  Attr PSize    PFree/dev/sdd   data3 lvm2 a--  <200.00g    0/dev/sde   data4 lvm2 a--  <200.00g    0
[root@test ~]# vgsVG    #PV #LV #SN Attr   VSize    VFreedata3   1   1   0 wz--n- <200.00g    0data4   1   1   0 wz--n- <200.00g    0
[root@test ~]# lvsLV   VG    Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv0  data3 -wi-a----- <200.00glv0  data4 -wi-a----- <200.00g
[root@test ~]# pvresize /dev/sddPhysical volume "/dev/sdd" changed1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@test ~]# pvsPV         VG    Fmt  Attr PSize    PFree/dev/sdd   data3 lvm2 a--    <4.00t 3.80t/dev/sde   data4 lvm2 a--  <200.00g    0
[root@test ~]# vgsVG    #PV #LV #SN Attr   VSize    VFreedata3   1   1   0 wz--n-   <4.00t 3.80tdata4   1   1   0 wz--n- <200.00g    0
[root@test ~]# lvextend -l +100%free /data/data3-lv0"/data/data3-lv0": Invalid path for Logical Volume.Run `lvextend --help' for more information.
[root@test ~]# lvextend -l +100%free /data/mapper/data3-lv0"/data/mapper/data3-lv0": Invalid path for Logical Volume.Run `lvextend --help' for more information.
[root@test ~]# lvextend -l +100%free /dev/mapper/data3-lv0Size of logical volume data3/lv0 changed from <200.00 GiB (51199 extents) to <4.00 TiB (1048575 extents).Logical volume data3/lv0 successfully resized.
[root@test ~]# lvsLV   VG    Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv0  data3 -wi-a-----   <4.00tlv0  data4 -wi-a----- <200.00g
[root@test ~]# umount /dev/mapper/data3-lv0
umount: /dev/mapper/data3-lv0: not mounted
[root@test ~]# resize
resize2fs   resizecons  resizepart
[root@test ~]# resize2fs /dev/mapper/data3-lv0
resize2fs 1.42.9 (28-Dec-2013)
Please run 'e2fsck -f /dev/mapper/data3-lv0' first.[root@test ~]# e2fsck -f /dev/mapper/data3-lv0
e2fsck 1.42.9 (28-Dec-2013)
/dev/mapper/data3-lv0: recovering journal
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/data3-lv0: 12/13107200 files (0.0% non-contiguous), 870745/52427776 blocks
[root@test ~]# resize2fs /dev/mapper/data3-lv0
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mapper/data3-lv0 to 1073740800 (4k) blocks.
The filesystem on /dev/mapper/data3-lv0 is now 1073740800 blocks long.[root@test ~]# mount /dev/mapper/data3-lv0  /data3
[root@test ~]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
devtmpfs              devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                 tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                 tmpfs     2.0G  9.4M  2.0G   1% /run
tmpfs                 tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda3             xfs        76G  5.6G   71G   8% /
/dev/sda1             xfs       297M  204M   94M  69% /boot
tmpfs                 tmpfs     392M     0  392M   0% /run/user/0
/dev/sdb1             ext4      197G   60M  188G   1% /data1
/dev/mapper/data3-lv0 ext4      4.0T   46M  3.8T   1% /data3
/dev/sdc1             xfs       200G   33M  200G   1% /data2
/dev/mapper/data4-lv0 xfs       200G   33M  200G   1% /data4
[root@test ~]#
LVM + xfs操作步骤(4T磁盘环境)

由于我们使用整块磁盘做pv,此时,分区表完全无关,扩容步骤同上

命令输出示例:

[root@test ~]# pvsPV         VG    Fmt  Attr PSize    PFree/dev/sdd   data3 lvm2 a--    <4.00t    0/dev/sde   data4 lvm2 a--  <200.00g    0
[root@test ~]# vgsVG    #PV #LV #SN Attr   VSize    VFreedata3   1   1   0 wz--n-   <4.00t    0data4   1   1   0 wz--n- <200.00g    0
[root@test ~]# lvsLV   VG    Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv0  data3 -wi-ao----   <4.00tlv0  data4 -wi-ao---- <200.00g
[root@test ~]# pvresize /dev/sdePhysical volume "/dev/sde" changed1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@test ~]# lvextend -l +100%free /dev/mapper/data4-lv0Size of logical volume data4/lv0 changed from <200.00 GiB (51199 extents) to <4.00 TiB (1048575 extents).Logical volume data4/lv0 successfully resized.
[root@test ~]# pvsPV         VG    Fmt  Attr PSize  PFree/dev/sdd   data3 lvm2 a--  <4.00t    0/dev/sde   data4 lvm2 a--  <4.00t    0
[root@test ~]# vgsVG    #PV #LV #SN Attr   VSize  VFreedata3   1   1   0 wz--n- <4.00t    0data4   1   1   0 wz--n- <4.00t    0
[root@test ~]# lvsLV   VG    Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv0  data3 -wi-ao---- <4.00tlv0  data4 -wi-ao---- <4.00t
[root@test ~]# xfs_growfs /dev/mapper/data4-lv0
meta-data=/dev/mapper/data4-lv0  isize=512    agcount=9, agsize=6553344 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=52427776, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=12799, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 52427776 to 1073740800
[root@test ~]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
devtmpfs              devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                 tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                 tmpfs     2.0G  9.4M  2.0G   1% /run
tmpfs                 tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda3             xfs        76G  5.6G   71G   8% /
/dev/sda1             xfs       297M  204M   94M  69% /boot
tmpfs                 tmpfs     392M     0  392M   0% /run/user/0
/dev/sdb1             ext4      197G   60M  188G   1% /data1
/dev/mapper/data3-lv0 ext4      4.0T   46M  3.8T   1% /data3
/dev/sdc1             xfs       200G   33M  200G   1% /data2
/dev/mapper/data4-lv0 xfs       4.0T   40M  4.0T   1% /data4
[root@test ~]#

✅ 总结:

🧾分区表与 LVM 的关系详解

操作类型是否与分区表有关说明
扩展已有 PV(磁盘扩容)✅ 有一定关系需要调整分区大小才能让 PV 感知新空间
添加新磁盘为 PV✅ 有关必须使用 GPT 才能识别 >2TB 空间
原始磁盘整盘用作 PV(不分区)❌ 无关可以不使用分区表,直接 /dev/sdX
LV 扩容❌ 无关与底层 PV 和分区表无关
文件系统扩容❌ 无关只与文件系统本身有关,如 resize2fsxfs_growfs


🧾 非 LVM vs LVM 环境使用与扩容总结

对比项非 LVM 分区LVM(逻辑卷管理)
是否推荐⚠️ 一般场景可用✅ 强烈推荐用于数据增长环境
初始部署简单✅ 简单⚠️ 略复杂(需了解 PV/VG/LV)
后期扩容灵活性❌ 差(几乎不可动态扩容)✅ 支持在线扩容 / 多盘扩容
支持多磁盘聚合❌ 不支持✅ 支持多个磁盘聚合为一卷组
数据快照❌ 不支持✅ 支持快照备份
整盘直接使用✅ 直接分区挂载✅ 推荐整盘做 LVM
扩容操作步骤复杂度✅ 简单(但功能少)⚠️ 步骤多,但灵活强大
支持文件系统ext4/xfs/btrfs 等ext4/xfs 等主流文件系统
缺点无法在线扩容操作稍复杂,不熟悉需学习

🧾推荐使用 LVM 的典型场景

场景

是否推荐 LVM
数据量不断增长的服务器(如 /data✅ 强烈推荐
需要做快照备份的业务(如数据库)✅ 推荐
使用虚拟机、云主机(可动态加磁盘)✅ 推荐
需要多个磁盘合并使用✅ 推荐
宿主系统的根分区⚠️ 可选(需小心操作)
嵌入式或单用途小系统❌ 不推荐

🧾LVM vs 非 LVM 性能对比

对比项非 LVM(裸分区)LVM
IO 性能(随机/顺序)✅ 最佳原始性能⚠️ 理论略低,实际可忽略(<1-3%)
文件系统支持✅ 所有支持✅ 所有支持(xfs/ext4/btrfs)
缓存机制✅ OS cache✅ 一样的 OS cache
CPU 占用最低略高,但通常 <1%
多路径存储支持手动配置✅ 更好整合(尤其 SAN)
系统资源占用✅ 少⚠️ 略高(<1% CPU)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/86342.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/86342.shtml
英文地址,请注明出处:http://en.pswp.cn/web/86342.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hbase高可用部署

要实现HBase集群的高可用部署&#xff08;High Availability, HA&#xff09;&#xff0c;核心在于消除单点故障&#xff08;特别是HMaster节点&#xff09;&#xff0c;并确保数据冗余和服务自动恢复。以下是、关键步骤和配置要点&#xff1a; 一、核心配置步骤‌ ‌1.1 启用…

STM32F103ZET6开发板【项目工程创建】+具体实现步骤流程

硬件介绍 芯片为STM32F103ZET6 STM32F103 资源简介 STM32 的优异性 1&#xff0c;超低的价格。8 位机的价格&#xff0c;32 位机的性能&#xff0c;是 STM32 最大的优势。 2&#xff0c;超多的外设。STM32 拥有包括&#xff1a;FMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、…

CyberGlove触觉反馈手套遥操作机器人灵巧手解决方案

CyberGlove触觉反馈手套确实可以实时捕捉运动信号和触觉反馈&#xff0c;并将其重新定位到人形机器人上。CyberGlove触觉反馈手套遥操作机器人是通过手套上的传感器捕捉手部动作&#xff0c;将信号传输给机器人&#xff0c;同时接收机器人反馈的触觉信息&#xff0c;实现远程操…

[C#]C# winform部署yolov13目标检测的onnx模型

yolov13官方框架&#xff1a;github.com/iMoonLab/yolov13/releases/tag/yolov13 【测试环境】 vs2019 netframework4.7.2 opencvsharp4.8.0 onnxruntime1.16.3 【效果展示】 【调用代码】 using System; using System.Collections.Generic; using System.ComponentMode…

创客匠人 AI 赋能:创始人 IP 打造的效率革命与信任重构

在注意力经济时代&#xff0c;创始人 IP 面临内容生产效率与信任构建的双重挑战。创客匠人 2025 年战略升级为 “IP 变现整体解决方案服务商”&#xff0c;其推出的 AI 销售信、免训数字人、智能客服三大工具&#xff0c;正通过技术重构破解行业痛点&#xff0c;为知识变现开辟…

飞轮储能VSG控制策略辅助双馈风机一次调频的仿真模型研究

以下是为您撰写的《飞轮储能VSG控制策略辅助双馈风机一次调频的仿真模型研究》技术报告,包含完整的理论分析、控制策略设计及MATLAB/Simulink仿真实现细节: 飞轮储能VSG控制策略辅助双馈风机一次调频的仿真模型研究 摘要 针对双馈感应发电机(DFIG)参与电网一次调频时存在…

临床开发计划:从实验室到市场的战略蓝图

一、临床开发计划概述 1.1 定义与重要性 1.1.1 CDP核心定义 临床开发计划(CDP)是药物、生物制品或医疗器械从实验室走向市场的核心路线图,详细规划临床研究及其策略、时间表和资源需求,以满足监管机构审批要求。 1.1.2 指导意义 CDP为开发团队提供清晰指引,指导资源规划…

【大模型实战】微调Qwen2.5 VL模型,增强目标检测任务。

文章目录 制作数据集使用微调的模型制作数据集 制作数据集 这个章节将详细解析一个将Labelme标注数据集转换为Qwen2.5-VL模型训练格式的Python脚本。该工具实现了图像大小调整、边界框坐标转换和数据格式标准化等功能。生成适用Qwen2.5-VL的数据集。 核心功能概述 图像处理&a…

【python实用小脚本-118】基于Flask的用户认证系统:app.py、forms.py与user.py解析

在当今的网络应用中&#xff0c;用户认证是一个不可或缺的功能。无论是社交平台、电商平台还是企业管理系统&#xff0c;都需要确保只有授权用户才能访问特定的资源。本文将详细介绍一个基于 Flask 框架的用户认证系统&#xff0c;该系统由三个主要文件组成&#xff1a;app.py、…

phpstudy apache伪静态.htaccess文件置空丢失问题解决

phpstudy apache伪静态.htaccess文件置空丢失 在使用phpstudy本地部署项目的时候&#xff0c;创建网站-根目录选择public等运行目录&#xff0c;并且点击确认后&#xff0c;会碰到原本项目中的apache伪静态.htaccess文件被置空丢失的问题&#xff0c;导致项目无法正常访问。 解…

【thinkphp5】Session和Cache记录微信accesstoken

记录一个项目实际遇到的坑&#xff0c;不要把token存放在session&#xff0c;要存在在cache里面&#xff01;&#xff01; 因为Session并不能设置expire过期时间&#xff0c;Session::set()方法第三个参数是作用域&#xff0c;而非过期时间&#xff01;&#xff01;&#xff0…

网络协议完全指南:从HTTP长短连接到TCP-UDP的深度对话

&#x1f310; 网络协议完全指南&#xff1a;从HTTP长短连接到TCP-UDP的深度对话 本文采用对话形式&#xff0c;通过小李和小王的问答&#xff0c;深入浅出地讲解网络协议、长短连接等核心概念&#xff0c;帮助读者建立完整的网络知识体系。 引言 在Java后端开发中&#xff0c…

04-StarRocks集群运维FAQ

StarRocks集群运维FAQ 概述 本文档整理了StarRocks集群运维过程中常见的问题和解决方案,涵盖了集群管理、节点维护、监控告警、故障处理等各个方面,帮助运维人员高效管理StarRocks集群。 集群管理FAQ Q1: 如何查看集群状态? A: 集群状态查看方法: 1. 查看FE节点状态 …

通过Prompt提示构建思维链

《DEEPSEEK原生应用与智能体开发实践 王晓华 书籍 图书》【摘要 书评 试读】- 京东图书 思维链技术开启了人工智能通向人类智能的崭新路径。它让模型不再仅仅是机械地执行指令&#xff0c;而是开始具备类似人类的思考方式&#xff0c;能够理解问题的本质&#xff0c;进行深层次…

OpenCV边缘填充方式详解

一、边缘填充概述 在图像处理中&#xff0c;边缘填充&#xff08;Border Padding&#xff09;是一项基础而重要的技术&#xff0c;特别是在进行卷积操作&#xff08;如滤波、边缘检测等&#xff09;时&#xff0c;处理图像边缘像素需要用到周围的像素值。由于图像边缘的像素没…

如何评估RAG系统?全面指标体系

构建一个可靠的 检索增强生成&#xff08;Retrieval-Augmented Generation, RAG&#xff09;系统&#xff0c;不仅要关注模型的构建&#xff0c;更重要的是对系统性能进行科学、系统的评估。评估不仅衡量系统的效果&#xff0c;也为迭代优化提供依据。 本文将围绕 RAG 系统的评…

力扣-合并区间

题目 56. 合并区间 - 力扣&#xff08;LeetCode&#xff09; 解析: 先按开始维度排序&#xff0c;之后依次合并&#xff0c;如果开头 < 当前区间的最后就合并&#xff0c;> 就开辟新区间 代码: class Solution {public int[][] merge(int[][] intervals) {int n in…

【软考高级系统架构论文】论基于构件的软件开发方法及其应用

论文真题 基于构作的 软件开发 (Component-Based Software Development,CBSD) 是一种基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。基于构件的软件系统中的构件可以是COTS (Commercial-Off-the-Shelf) 构件,也可以是通过其它途径获得的构件(如自…

recipes的版本比较老如何更新到新版本?

在 Yocto 项目中,当你发现 “meta-openembedded” 层中的某些 recipe 版本太旧,而你想使用更新版本时,最佳实践是在你自己项目的自定义层 (custom layer) 中使用 “bbappend” 文件进行覆盖或升级。 核心思路: 不要直接修改 “meta-openembedded” 层的 recipe ( “*.bb”…

【软件系统架构】系列四:嵌入式软件-NPU(神经网络处理器)系统及模板

目录 一、什么是 NPU? 二、NPU 与 CPU/GPU/DSP 对比 三、NPU 的工作原理 核心结构: 数据流架构: 四、NPU 芯片架构(简化图) 五、NPU 的优势 六、NPU 应用场景 视觉识别 语音识别 自动驾驶 智能监控 AIoT 设备 七、主流 NPU 芯片/架构实例 八、开发者工具生…