CentOS7的LVM動態擴容
阿新 • • 發佈:2019-08-20
# 問題
CentOS7上面的磁碟空間有點緊張,需要擴容。
解決
查詢當前磁碟狀態
[root@xxx ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 200G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 15.5G 0 part ├─centos-swap 253:0 0 1.6G 0 lvm [SWAP] └─centos-root 253:1 0 13.9G 0 lvm / sr0 11:0 1 1024M 0 rom loop0 7:0 0 4.3G 0 loop /mnt/iso
查詢當前檔案系統狀態
[root@xxx ~]# df -h 檔案系統 容量 已用 可用 已用% 掛載點 /dev/mapper/centos-root 14G 14G 20K 100% / devtmpfs 3.8G 0 3.8G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 442M 3.4G 12% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda1 497M 295M 202M 60% /boot tmpfs 782M 12K 782M 1% /run/user/42 /dev/loop0 4.3G 4.3G 0 100% /mnt/iso tmpfs 782M 0 782M 0% /run/user/0
檢視當前磁碟分割槽情況
[root@xxx ~]# gdisk /dev/sda GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: MBR only BSD: not present APM: not present GPT: not present *************************************************************** Found invalid GPT and valid MBR; converting MBR to GPT format in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if you don't want to convert your MBR partitions to GPT format! *************************************************************** Command (? for help): p Disk /dev/sda: 419430400 sectors, 200.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): FE64D670-2841-445E-974F-12A258105C57 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 419430366 Partitions will be aligned on 2048-sector boundaries Total free space is 385877949 sectors (184.0 GiB) Number Start (sector) End (sector) Size Code Name 1 2048 1026047 500.0 MiB 8300 Linux filesystem 2 1026048 33554431 15.5 GiB 8E00 Linux LVM
lvm擴容
建立8e
[root@xxx ~]# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************
Command (? for help): n
Partition number (3-128, default 3):
First sector (34-419430366, default = 33554432) or {+-}size{KMGTP}:
Last sector (33554432-419430366, default = 419430366) or {+-}size{KMGTP}: +84G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): L
0700 Microsoft basic data 0c01 Microsoft reserved 2700 Windows RE
3000 ONIE boot 3001 ONIE config 4100 PowerPC PReP boot
4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS
7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved
8200 Linux swap 8300 Linux filesystem 8301 Linux reserved
8302 Linux /home 8400 Intel Rapid Start 8e00 Linux LVM
a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap
a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID
a580 Midnight BSD data a581 Midnight BSD boot a582 Midnight BSD swap
a583 Midnight BSD UFS a584 Midnight BSD ZFS a585 Midnight BSD Vinum
a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS
a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted
a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+
af01 Apple RAID af02 Apple RAID offline af03 Apple label
af04 AppleTV recovery af05 Apple Core Storage be00 Solaris boot
bf00 Solaris root bf01 Solaris /usr & Mac Z bf02 Solaris swap
bf03 Solaris backup bf04 Solaris /var bf05 Solaris /home
bf06 Solaris alternate se bf07 Solaris Reserved 1 bf08 Solaris Reserved 2
bf09 Solaris Reserved 3 bf0a Solaris Reserved 4 bf0b Solaris Reserved 5
c001 HP-UX data c002 HP-UX service ea00 Freedesktop $BOOT
eb00 Haiku BFS ed00 Sony system partitio ed01 Lenovo system partit
Press the <Enter> key to see more codes: 8e00
ef00 EFI System ef01 MBR partition scheme ef02 BIOS boot partition
fb00 VMWare VMFS fb01 VMWare reserved fc00 VMWare kcore crash p
fd00 Linux RAID
Hex code or GUID (L to show codes, Enter = 8300): 8e00
Changed type of partition to 'Linux LVM'
Command (? for help): p
Disk /dev/sda: 419430400 sectors, 200.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): F8A75D30-20AF-412A-A7CD-F66D4A57D232
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 419430366
Partitions will be aligned on 2048-sector boundaries
Total free space is 209717181 sectors (100.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 1026047 500.0 MiB 8300 Linux filesystem
2 1026048 33554431 15.5 GiB 8E00 Linux LVM
3 33554432 209715199 84.0 GiB 8E00 Linux LVM
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.
這裡需要注意的地方就是,擴容了84G,並且使用8e00。
更新8e
[root@xxx ~]# partprobe -s
/dev/sda: gpt partitions 1 2 3
[root@xxx ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 15.5G 0 part
│ ├─centos-swap 253:0 0 1.6G 0 lvm [SWAP]
│ └─centos-root 253:1 0 13.9G 0 lvm /
└─sda3 8:3 0 84G 0 part
sr0 11:0 1 1024M 0 rom
loop0 7:0 0 4.3G 0 loop /mnt/iso
驗證8e
[root@xxx ~]# gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 419430400 sectors, 200.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): F8A75D30-20AF-412A-A7CD-F66D4A57D232
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 419430366
Partitions will be aligned on 2048-sector boundaries
Total free space is 209717181 sectors (100.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 1026047 500.0 MiB 8300 Linux filesystem
2 1026048 33554431 15.5 GiB 8E00 Linux LVM
3 33554432 209715199 84.0 GiB 8E00 Linux LVM
PV階段
現有PV
[root@xxx ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size 15.51 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 3970
Free PE 0
Allocated PE 3970
PV UUID S13vMN-W0wQ-HCae-fPKa-bClZ-RzW0-39xc9C
現在PV的大小是15G。
建立PV
[root@xxx ~]# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created.
驗證PV
[root@xxx ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size 15.51 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 3970
Free PE 0
Allocated PE 3970
PV UUID S13vMN-W0wQ-HCae-fPKa-bClZ-RzW0-39xc9C
"/dev/sda3" is a new physical volume of "84.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sda3
VG Name
PV Size 84.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID Ssb5Y6-gD5q-heAE-sil9-oIU3-kdX8-B0pqLS
VG階段
現有VG
[root@xxx ~]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <15.51 GiB
PE Size 4.00 MiB
Total PE 3970
Alloc PE / Size 3970 / <15.51 GiB
Free PE / Size 0 / 0
VG UUID F3IvIs-uz92-m9d6-XYYL-0QvN-xqs8-qxD9fC
VG也是15G。
擴容VG
[root@xxx ~]# vgextend centos /dev/sda3
Volume group "centos" successfully extended
在這個階段遇到Couldn't create temporary archive name.
問題,只需要清理一部分無用檔案騰出一點點磁碟空間即可。
驗證VG
[root@xxx ~]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 99.50 GiB
PE Size 4.00 MiB
Total PE 25473
Alloc PE / Size 3970 / <15.51 GiB
Free PE / Size 21503 / <84.00 GiB
VG UUID F3IvIs-uz92-m9d6-XYYL-0QvN-xqs8-qxD9fC
Free部分已經不是0了。
LV階段
現有LV
[root@xxx ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID c2sXrl-GC3c-nXbi-lED4-MqXx-5FPx-872laM
LV Write Access read/write
LV Creation host, time tamtest.hngytobacco.com, 2017-06-26 12:02:56 +0800
LV Status available
# open 2
LV Size 1.60 GiB
Current LE 410
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID r2qZe6-X3zx-D7te-U0t0-iJDF-VyWf-xl5by8
LV Write Access read/write
LV Creation host, time tamtest.hngytobacco.com, 2017-06-26 12:02:57 +0800
LV Status available
# open 1
LV Size <13.91 GiB
Current LE 3560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
這裡主要擴容這個LV:/dev/centos/root。
擴容LV
[root@xxx ~]# lvresize -L +83.99GB /dev/centos/root
Rounding size to boundary between physical extents: 83.99 GiB.
Size of logical volume centos/root changed from <13.91 GiB (3560 extents) to <97.90 GiB (25062 extents).
Logical volume centos/root successfully resized
驗證LV
[root@xxx ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID c2sXrl-GC3c-nXbi-lED4-MqXx-5FPx-872laM
LV Write Access read/write
LV Creation host, time tamtest.hngytobacco.com, 2017-06-26 12:02:56 +0800
LV Status available
# open 2
LV Size 1.60 GiB
Current LE 410
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID r2qZe6-X3zx-D7te-U0t0-iJDF-VyWf-xl5by8
LV Write Access read/write
LV Creation host, time tamtest.hngytobacco.com, 2017-06-26 12:02:57 +0800
LV Status available
# open 1
LV Size <97.90 GiB
Current LE 25062
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
更新擴容
[root@xxx ~]# xfs_growfs /
meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=911360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0 spinodes=0
data = bsize=4096 blocks=3645440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 3645440 to 25663488
驗證擴容
[root@xxx ~]# df -lh
檔案系統 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 98G 14G 84G 15% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 442M 3.4G 12% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 497M 295M 202M 60% /boot
tmpfs 782M 12K 782M 1% /run/user/42
/dev/loop0 4.3G 4.3G 0 100% /mnt/iso
tmpfs 782M 0 782M 0% /run/user/0
總結
主要就是建立8e分割槽,然後用pvcreate命令建立PV,再使用vgextend命令來擴容VG,再使用lvresize命令擴容LV,最後使用xfs_growfs命令更新擴容。