linux虛擬機基礎-磁盤擴容詳細版本模擬實驗

擴容實驗參考上一篇博客:

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 芯片/架構實例 八、開發者工具生…