许钊华 发表于 2021-8-19 11:58

海康定制版 CentOS 7.6 根目录扩容纪实

这是多日来第一次成功的操作。海康定制版与纯净版 CentOS,系统目录有区别。海康 OS 使用 Device mapper 机制管理安装目录(逻辑分区),扩容的话,就是增加这个逻辑分区的容量。

一、纯净版 CentOS 7.6 扩容默认分区 /dev/vda1 很容易
# df -h
Filesystem      SizeUsed Avail Use% Mounted on
/dev/vda1      20G1.9G   17G10% /
devtmpfs      234M   0234M   0% /dev
tmpfs         244M   0244M   0% /dev/shm
tmpfs         244M428K244M   1% /run
tmpfs         244M   0244M   0% /sys/fs/cgroup
tmpfs            49M   0   49M   0% /run/user/0
步骤1:扩容分区
yum install -y cloud-utils-growpart

# growpart /dev/vda 1
CHANGED: partition=1 start=2048 old: size=41940992 end=41943040 new: size=62912479 end=62914527

步骤2:扩容文件系统,扩容系统盘 /dev/vda1 的文件系统。
resize2fs /dev/vda1
# df -h
Filesystem      SizeUsed Avail Use% Mounted on
/dev/vda1      30G2.0G   27G   7% /
devtmpfs      234M   0234M   0% /dev
tmpfs         244M   0244M   0% /dev/shm
tmpfs         244M428K244M   1% /run
tmpfs         244M   0244M   0% /sys/fs/cgroup
tmpfs            49M   0   49M   0% /run/user/0
二、海康定制版 CentOS 7.6 扩容根目录(位于逻辑卷 /dev/mapper/centos_hikvisionos-root)

这是初始状态:
# df -h
Filesystem                           SizeUsed Avail Use% Mounted on
devtmpfs                           3.7G   03.7G   0% /dev
tmpfs                              3.7G   03.7G   0% /dev/shm
tmpfs                              3.7G8.5M3.7G   1% /run
tmpfs                              3.7G   03.7G   0% /sys/fs/cgroup
/dev/mapper/centos_hikvisionos-root   18G2.4G   16G14% /
/dev/vda2                           1014M177M838M18% /boot
/dev/vda5                            128M4.0K128M   1% /boot/efi
/dev/mapper/centos_hikvisionos-opt    18G   33M   18G   1% /opt
# ls /dev/vd*
/dev/vda/dev/vda1/dev/vda2/dev/vda3/dev/vda4/dev/vda5/dev/vda6/dev/vdb/dev/vdb1

# vgs
VG               #PV #LV #SN Attr   VSizeVFree
centos_hikvisionos   1   2   0 wz--n- 34.99g    0

开始操作:

首先,创建一个物理卷(physical volume,PV)
# pvcreate /dev/vdb1 [这是加进来的一个 50GB 阿里云盘]
WARNING: ext4 signature detected on /dev/vdb1 at offset 1080. Wipe it? : y
Wiping ext4 signature on /dev/vdb1.
Physical volume "/dev/vdb1" successfully created.

然后,把PV加入到一个卷组(volume group,VG)中,相当于扩充VG的大小
# vgextend centos_hikvisionos /dev/vdb1
Volume group "centos_hikvisionos" successfully extended

再次查看 VG 信息
# vgs
VG               #PV #LV #SN Attr   VSize   VFree
centos_hikvisionos   2   2   0 wz--n- <84.99g <50.00g

这个时候,变更不生效。需要使用lvextend命令,扩展LV
# lvextend -L +50G /dev/mapper/centos_hikvisionos
"/dev/mapper/centos_hikvisionos": Invalid path for Logical Volume.
Run `lvextend --help' for more information.

# lvextend -L +50G /dev/centos_hikvisionos
"/dev/centos_hikvisionos": Invalid path for Logical Volume.
Run `lvextend --help' for more information.

# lvextend -L +50G /dev/mapper/centos_hikvisionos-root
Insufficient free space: 12800 extents needed, but only 12799 available

微调一下尺寸,终于成功了。
# lvextend -L +49G /dev/mapper/centos_hikvisionos-root
Size of logical volume centos_hikvisionos/root changed from <17.50 GiB (4479 extents) to <66.50 GiB (17023 extents).
Logical volume centos_hikvisionos/root successfully resized.

最后一步才是成功扩容
# xfs_growfs /dev/mapper/centos_hikvisionos-root
meta-data=/dev/mapper/centos_hikvisionos-root isize=512    agcount=4, agsize=1146624 blks
         =                     sectsz=512   attr=2, projid32bit=1
         =                     crc=1      finobt=0 spinodes=0
data   =                     bsize=4096   blocks=4586496, imaxpct=25
         =                     sunit=0      swidth=0 blks
naming   =version 2            bsize=4096   ascii-ci=0 ftype=1
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 4586496 to 17431552

比较一下效果
# df -h
Filesystem                           SizeUsed Avail Use% Mounted on
devtmpfs                           3.7G   03.7G   0% /dev
tmpfs                              3.7G   03.7G   0% /dev/shm
tmpfs                              3.7G8.5M3.7G   1% /run
tmpfs                              3.7G   03.7G   0% /sys/fs/cgroup
/dev/mapper/centos_hikvisionos-root   67G2.4G   65G   4% /
/dev/vda2                           1014M177M838M18% /boot
/dev/vda5                            128M4.0K128M   1% /boot/efi
/dev/mapper/centos_hikvisionos-opt    18G   33M   18G   1% /opt

需要说明:本方法加进来的云盘,如果卸载,会造成系统无法启动损坏!
VNC 控制台报错:
Failed to mount /sysroot.
Buffer I/O error on dev dm-1, logical block 17431535, async page read


=======================
主要参照了两篇网文:

1. Linux系统/dev/mapper目录浅谈(讲得很好,逻辑卷的方式就是动态分配硬盘空间了)
https://blog.csdn.net/u011495642/article/details/80197155

2. 虚拟机 /dev/mapper/centos-root 动态扩容
https://www.cnblogs.com/wjoyxt/p/11573464.html

页: [1]
查看完整版本: 海康定制版 CentOS 7.6 根目录扩容纪实