有台CentOS 7机器磁盘空间不足,扩展了一下,记录下相关步骤。
情况描述
有台虚拟机,CentOS 7.x系统,数据盘空间不足了。给该数据盘添加了100G的空间,需要在LVM和操作系统中识别并使用这100个G空间。
理论准备
- 使用
growpart
将增加的磁盘容量,添加到对应的设备块(block device)中
- 使用
pvresize
,让物理卷(Physical volume)和卷组(Volume group)中识别增加的磁盘容量。
- 使用
lvextend
,将增加的磁盘容量分配到对应的逻辑卷上(logical volume)
- 让文件系统识别增加的逻辑卷的容量
- ext4系统使用
resize2fs
命令
- xfs系统使用
xfs_growfs
命令
操作前系统信息
先查看系统磁盘使用情况,涉及到的命令如下:
lsblk
: 列出操作系统的块设备
df -hT
: 列出文件系统的磁盘使用情况
pvdisplay
: LVM中列出物理卷情况
vgdisplay
: LVM中列出卷组
lvdisplay
: LVM中列出逻辑卷
fdisk -l
: 列出磁盘分区表
依次执行上述命令,来显示对应的磁盘信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| [root@workstation ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 400G 0 disk ├─sda1 8:1 0 200M 0 part /boot ├─sda2 8:2 0 15.6G 0 part [SWAP] ├─sda3 8:3 0 84.2G 0 part / └─sda4 8:4 0 200G 0 part └─data-data 253:0 0 199G 0 lvm /data sr0 11:0 1 1024M 0 rom [root@workstation ~]# [root@workstation ~]# df -hT 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/sda3 xfs 85G 73G 12G 87% / devtmpfs devtmpfs 3.9G 0 3.9G 0% /dev tmpfs tmpfs 3.9G 228K 3.9G 1% /dev/shm tmpfs tmpfs 3.9G 492M 3.4G 13% /run tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/data-data ext4 196G 166G 20G 90% /data /dev/sda1 xfs 197M 174M 23M 89% /boot tmpfs tmpfs 783M 0 783M 0% /run/user/1003 tmpfs tmpfs 783M 8.0K 783M 1% /run/user/0 tmpfs tmpfs 783M 0 783M 0% /run/user/992 tmpfs tmpfs 783M 16K 783M 1% /run/user/42 tmpfs tmpfs 783M 0 783M 0% /run/user/1002 [root@workstation ~]# [root@workstation ~]# pvdisplay --- Physical volume --- PV Name /dev/sda4 VG Name data PV Size 200.00 GiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 51199 Free PE 255 Allocated PE 50944 PV UUID n3aowT-WZ5t-nuyC-ouxx-teg7-eSkH-LMsk13 [root@workstation ~]# [root@workstation ~]# vgdisplay --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 200.00 GiB PE Size 4.00 MiB Total PE 51199 Alloc PE / Size 50944 / 199.00 GiB Free PE / Size 255 / 1020.00 MiB VG UUID dzFXji-eFJW-qn9b-D1AS-i8FD-8wyy-AlUw3y [root@workstation ~]# [root@workstation ~]# lvdisplay --- Logical volume --- LV Path /dev/data/data LV Name data VG Name data LV UUID rd1LZS-v15P-ckwA-zX6b-9xat-rtt8-8DtPM1 LV Write Access read/write LV Creation host, time workstation.xxx.com, 2018-06-19 14:38:12 +0800 LV Status available # open 1 LV Size 199.00 GiB Current LE 50944 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 [root@workstation ~]# [root@workstation ~]# fdisk -l 磁盘 /dev/sda:429.5 GB, 429496729600 字节,838860800 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000f1626 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 411647 204800 83 Linux /dev/sda2 411648 33179647 16384000 82 Linux swap / Solaris /dev/sda3 33179648 209715199 88267776 83 Linux /dev/sda4 209715200 629145599 209715200 8e Linux LVM 磁盘 /dev/mapper/data-data:213.7 GB, 213674622976 字节,417333248 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 [root@workstation ~]#
|
实际操作步骤
安装growpart命令
使用yum
安装growpart命令
1
| yum install cloud-utils-growpart
|
扩展块容量
/dev/sda中有新增的100G没有分配,需要分配到/dev/sda4的数据盘中。
使用命令: growpart /dev/sda 4
来分配剩余的100G到/dev/sda4
中
如果操作过程中命令报类似unexpected output in sfdisk --version [sfdisk,来自 util-linux 2.23.2]
的错误, 是因为语言设置的问题。执行LANG=en_US.UTF-8
修改为英文,就可以解决该问题。
growpart
命令执行记录:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [root@workstation ~]# growpart /dev/sda 4 CHANGED: partition=4 start=209715200 old: size=419430400 end=629145600 new: size=629145567 end=838860767 [root@workstation ~]# [root@workstation ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 400G 0 disk ├─sda1 8:1 0 200M 0 part /boot ├─sda2 8:2 0 15.6G 0 part [SWAP] ├─sda3 8:3 0 84.2G 0 part / └─sda4 8:4 0 300G 0 part └─data-data 253:0 0 199G 0 lvm /data sr0 11:0 1 1024M 0 rom [root@workstation ~]#
|
可以看到,执行过后,sda4
的SIZE,从之前的199G变为了300G
扩容pv,vg
/dev/sda4
的块容量增加了,接下来需要将增加的容量反映到pv和vg中。
使用命令pvresize /dev/sda4
即可将/dev/sda4
的容量更新到对应的pv和vg中。
命令扩容前:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| [root@workstation ~]# pvdisplay --- Physical volume --- PV Name /dev/sda4 VG Name data PV Size 200.00 GiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 51199 Free PE 255 Allocated PE 50944 PV UUID n3aowT-WZ5t-nuyC-ouxx-teg7-eSkH-LMsk13 [root@workstation ~]# [root@workstation ~]# vgdisplay --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 200.00 GiB PE Size 4.00 MiB Total PE 51199 Alloc PE / Size 50944 / 199.00 GiB Free PE / Size 255 / 1020.00 MiB VG UUID dzFXji-eFJW-qn9b-D1AS-i8FD-8wyy-AlUw3y [root@workstation ~]#
|
命令扩容后:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| [root@workstation ~]# pvresize /dev/sda4 Physical volume "/dev/sda4" changed 1 physical volume(s) resized / 0 physical volume(s) not resized [root@workstation ~]# [root@workstation ~]# pvdisplay --- Physical volume --- PV Name /dev/sda4 VG Name data PV Size 300.00 GiB / not usable 2.98 MiB Allocatable yes PE Size 4.00 MiB Total PE 76799 Free PE 25855 Allocated PE 50944 PV UUID n3aowT-WZ5t-nuyC-ouxx-teg7-eSkH-LMsk13 [root@workstation ~]# [root@workstation ~]# vgdisplay --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 300.00 GiB PE Size 4.00 MiB Total PE 76799 Alloc PE / Size 50944 / 199.00 GiB Free PE / Size 25855 / 101.00 GiB VG UUID dzFXji-eFJW-qn9b-D1AS-i8FD-8wyy-AlUw3y [root@workstation ~]#
|
通过pvdisplay
可以看到 PV Size
从200G 变为了 300G
通过vgdisplay
可以看到 VG Size
从200G 变为了 300G,Free PE / Size
从255 / 1020.00 MiB
变为了 25855 / 101.00 GiB
对LV进行扩容
找到需要扩容的 lv path. /dev/data/data
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| [root@workstation ~]# lvdisplay --- Logical volume --- LV Path /dev/data/data LV Name data VG Name data LV UUID rd1LZS-v15P-ckwA-zX6b-9xat-rtt8-8DtPM1 LV Write Access read/write LV Creation host, time workstation.xxx.com, 2018-06-19 14:38:12 +0800 LV Status available # open 1 LV Size 199.00 GiB Current LE 50944 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 [root@workstation ~]#
|
对lv /dev/data/data
进行扩容 lvextend -l +100%FREE /dev/data/data
命令输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| [root@workstation ~]# lvextend -l +100%FREE /dev/data/data Size of logical volume data/data changed from 199.00 GiB (50944 extents) to 300.00 GiB (76799 extents). Logical volume data successfully resized. [root@workstation ~]# [root@workstation ~]# lvdisplay --- Logical volume --- LV Path /dev/data/data LV Name data VG Name data LV UUID rd1LZS-v15P-ckwA-zX6b-9xat-rtt8-8DtPM1 LV Write Access read/write LV Creation host, time workstation.xxx.com, 2018-06-19 14:38:12 +0800 LV Status available # open 1 LV Size 300.00 GiB Current LE 76799 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0
|
查看系统文件的大小情况。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| [root@workstation ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 400G 0 disk ├─sda1 8:1 0 200M 0 part /boot ├─sda2 8:2 0 15.6G 0 part [SWAP] ├─sda3 8:3 0 84.2G 0 part / └─sda4 8:4 0 300G 0 part └─data-data 253:0 0 300G 0 lvm /data sr0 11:0 1 1024M 0 rom [root@workstation ~]# [root@workstation ~]# df -PTh Filesystem Type Size Used Avail Use% Mounted on /dev/sda3 xfs 85G 73G 12G 87% / devtmpfs devtmpfs 3.9G 0 3.9G 0% /dev tmpfs tmpfs 3.9G 228K 3.9G 1% /dev/shm tmpfs tmpfs 3.9G 492M 3.4G 13% /run tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/data-data ext4 196G 166G 20G 90% /data /dev/sda1 xfs 197M 174M 23M 89% /boot tmpfs tmpfs 783M 0 783M 0% /run/user/1003 tmpfs tmpfs 783M 8.0K 783M 1% /run/user/0 tmpfs tmpfs 783M 0 783M 0% /run/user/992 tmpfs tmpfs 783M 16K 783M 1% /run/user/42 tmpfs tmpfs 783M 0 783M 0% /run/user/1002 [root@workstation ~]#
|
可以看到lvm磁盘扩容到300G了,但是系统能读取的容量还是196G。接下来进行文件系统的扩容
扩容文件系统
最后进行文件系统的在线扩容
由df -PTh
的输出,可以看到这边的文件挂载类型是ext4,所以应该使用resize2fs进行扩容
1
| resize2fs /dev/mapper/data-data
|
命令输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| [root@workstation ~]# resize2fs /dev/mapper/data-data resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/mapper/data-data is mounted on /data; on-line resizing required old_desc_blocks = 25, new_desc_blocks = 38 The filesystem on /dev/mapper/data-data is now 78642176 blocks long. [root@workstation ~]# [root@workstation ~]# df -PTh Filesystem Type Size Used Avail Use% Mounted on /dev/sda3 xfs 85G 73G 12G 87% / devtmpfs devtmpfs 3.9G 0 3.9G 0% /dev tmpfs tmpfs 3.9G 228K 3.9G 1% /dev/shm tmpfs tmpfs 3.9G 500M 3.4G 13% /run tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/data-data ext4 296G 166G 116G 60% /data /dev/sda1 xfs 197M 174M 23M 89% /boot tmpfs tmpfs 783M 0 783M 0% /run/user/1003 tmpfs tmpfs 783M 8.0K 783M 1% /run/user/0 tmpfs tmpfs 783M 0 783M 0% /run/user/992 tmpfs tmpfs 783M 16K 783M 1% /run/user/42 tmpfs tmpfs 783M 0 783M 0% /run/user/1002 [root@workstation ~]#
|
如果文件系统挂载类型是xfs, 那么应该使用xfs_growfs dev_block
的格式来进行挂载。
类似的输出如下:
1 2 3 4 5 6 7 8 9 10 11 12
| [root@localhost ~]# xfs_growfs /dev/mapper/centos-root meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=2424320 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=9697280, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=4735, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 9697280 to 10222592 [root@localhost ~]#
|
最终扩容后结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| [root@workstation ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 400G 0 disk ├─sda1 8:1 0 200M 0 part /boot ├─sda2 8:2 0 15.6G 0 part [SWAP] ├─sda3 8:3 0 84.2G 0 part / └─sda4 8:4 0 300G 0 part └─data-data 253:0 0 300G 0 lvm /data sr0 11:0 1 1024M 0 rom [root@workstation ~]# [root@workstation ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/sda3 xfs 85G 73G 12G 87% / devtmpfs devtmpfs 3.9G 0 3.9G 0% /dev tmpfs tmpfs 3.9G 228K 3.9G 1% /dev/shm tmpfs tmpfs 3.9G 500M 3.4G 13% /run tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/data-data ext4 296G 166G 116G 60% /data /dev/sda1 xfs 197M 174M 23M 89% /boot tmpfs tmpfs 783M 0 783M 0% /run/user/1003 tmpfs tmpfs 783M 8.0K 783M 1% /run/user/0 tmpfs tmpfs 783M 0 783M 0% /run/user/992 tmpfs tmpfs 783M 16K 783M 1% /run/user/42 tmpfs tmpfs 783M 0 783M 0% /run/user/1002 [root@workstation ~]# [root@workstation ~]# pvdisplay --- Physical volume --- PV Name /dev/sda4 VG Name data PV Size 300.00 GiB / not usable 2.98 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 76799 Free PE 0 Allocated PE 76799 PV UUID n3aowT-WZ5t-nuyC-ouxx-teg7-eSkH-LMsk13 [root@workstation ~]# [root@workstation ~]# vgdisplay --- Volume group --- VG Name data System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 300.00 GiB PE Size 4.00 MiB Total PE 76799 Alloc PE / Size 76799 / 300.00 GiB Free PE / Size 0 / 0 VG UUID dzFXji-eFJW-qn9b-D1AS-i8FD-8wyy-AlUw3y [root@workstation ~]# [root@workstation ~]# lvdisplay --- Logical volume --- LV Path /dev/data/data LV Name data VG Name data LV UUID rd1LZS-v15P-ckwA-zX6b-9xat-rtt8-8DtPM1 LV Write Access read/write LV Creation host, time workstation.xxx.com, 2018-06-19 14:38:12 +0800 LV Status available # open 1 LV Size 300.00 GiB Current LE 76799 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 [root@workstation ~]# [root@workstation ~]# fdisk -l Disk /dev/sda: 429.5 GB, 429496729600 bytes, 838860800 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: 0x000f1626 Device Boot Start End Blocks Id System /dev/sda1 * 2048 411647 204800 83 Linux /dev/sda2 411648 33179647 16384000 82 Linux swap / Solaris /dev/sda3 33179648 209715199 88267776 83 Linux /dev/sda4 209715200 838860766 314572783+ 8e Linux LVM Disk /dev/mapper/data-data: 322.1 GB, 322118352896 bytes, 629137408 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 [root@workstation ~]#
|
Reference