Suse Linux 磁盘动态扩容

1. 背景

       Suse Linux本身非常少见,在实际项目中用过最多的是CentOs和RedHat版本的Linux,Linux各个发行版只是微小差异,命令基本上一样。有一个数仓的测试环境中,总磁盘大小为1T,根目录/挂载了300G,剩下的600多G挂载到了/home目录下,磁盘空间分配非常不合理,根目录磁盘已经被Oracle的数据库占满了,而/home目录只使用了几十个G,根目录占满之后,数仓的调度几乎无法运行,有些时候连接Oracle都成问题。甲方又不给增加容量,还要我们自己去扩容。

2. 操作步骤

2.1 备份home目录

    服务器的根目录已经100%,根本没有办法存放备份文件,不过我自己的机器发现/run目录下有空间可以存放,备份文件存放在/run目录有方向,后面的操作步骤可能要重启才能完成,重启之后/run目录底下的备份文件自动删除了,可能再也无法恢复,因此备份之后,最后拷贝一份到别的机器上。

     tar cvf /run/home.tar /home

2.2 卸载home目录

     要先终止所有使用/home文件系统的进程,也可以自己手动停止。

     fuser -km /home

     我的由于docker是在home底下的,因此我手动停止了docker

    service docker stop

    卸载home目录

    umount /home

2.3 删除逻辑分区

    lvremove /dev/mapper/system-home

其中system-home主要取决于你的磁盘逻辑分区卷的名称,一般情况centos-home之类的,我的suse的linux默认的名称是system-xxx的名称,下图已经完成了扩容的,只是展示一下逻辑分区的名称,开始的时候有一个

/dev/mapper/system-home逻辑卷挂载到/home目录下

(base) localhost:~ # df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 7.8G     0  7.8G   0% /dev
tmpfs                    7.8G     0  7.8G   0% /dev/shm
tmpfs                    7.8G  4.5G  3.3G  58% /run
tmpfs                    7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/mapper/system-root  788G  277G  477G  37% /
/dev/sda1                500M  5.2M  495M   2% /boot/efi
tmpfs                    1.6G     0  1.6G   0% /run/user/461
tmpfs                    1.6G     0  1.6G   0% /run/user/0

选择y,如果没有弹出选择项或报错,证明还有程序未停止,需要用到/home目录,这个只能自己猜测可能是那个进程了。

(base) localhost:~ # lvremove /dev/mapper/system-home
Do you really want to remove and DISCARD active logical volume system/home? [y/n]: y
  Logical volume "home" successfully removed

2.4 扩大根目录所在逻辑卷

        服务器的/dev/mapper/system-root的逻辑挂载在/根目录,既然要扩容,我就把已经删除/dev/mapper/system-home的磁盘空间全部扩展给了/dev/mapper/system-root,一般需要根据自己的实际情况进行调整,命令如下:

(base) localhost:~ # lvextend -L +606G /dev/mapper/system-root
  Rounding size to boundary between physical extents: 606 GiB.
  Size of logical volume system/root changed from 801.12 GiB (205088 extents) to 806.69 GiB (206512 extents).
  Logical volume system/root successfully resized.

lvextend逻辑扩展命令,+606G 则表示在原有基础上扩大606G ,/dev/mapper/system-root是需要扩大的逻辑卷名称

2.5 查看逻辑卷类型

     后面要根据逻辑卷类型选择不同的命令,因此首先要查看逻辑卷类型,根据类型执行扩容命令,相当于格式化

(base) localhost:~ # df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  7.8G     0  7.8G   0% /dev
tmpfs                   tmpfs     7.8G     0  7.8G   0% /dev/shm
tmpfs                   tmpfs     7.8G   18M  7.8G   1% /run
tmpfs                   tmpfs     7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/mapper/system-root ext4      892G  312G  541G  37% /
/dev/sda1               vfat      500M  5.2M  495M   2% /boot/efi
overlay                 overlay   892G  312G  541G  37% /var/lib/docker/overlay2/d64369565a31e8f9c46905d2ae8d6d4856e1188f0e3ef9a26e9ec1e527af881f/merged
overlay                 overlay   892G  312G  541G  37% /var/lib/docker/overlay2/af28b27b6eb4cd23c9c636f3ca5626f2c626c9f2be1d8311b93ef2c3ccf7ff1d/merged
overlay                 overlay   892G  312G  541G  37% /var/lib/docker/overlay2/ca4ce43a1c24873f6eafe9a6b256c223f0622989050c150bbe33dfbd36588e0f/merged
overlay                 overlay   892G  312G  541G  37% /var/lib/docker/overlay2/d1ec937a44b57d702284d26c17c2757f58d995ce6e63b70751a93b0f0c47efd6/merged
shm                     tmpfs      64M     0   64M   0% /var/lib/docker/containers/3ed03aee3cd32a20b9c898ca8da9e67258a5f4a1866d982c66886a4c79e8faca/mounts/shm
shm                     tmpfs      64M     0   64M   0% /var/lib/docker/containers/64d5077f1266ba607620eb7de0b3ede2b17577eff894576e2b615b0cf234187d/mounts/shm
shm                     tmpfs      64M     0   64M   0% /var/lib/docker/containers/c031ddedbc5dcd36b8dbc6d7c77007566d8eb35d23e556a8c5c8a64fa3370a7d/mounts/shm
shm                     tmpfs      64M     0   64M   0% /var/lib/docker/containers/dd58a8469740466b13584f04229220cfaf362a705d777e5df1b1219dcbecf80a/mounts/shm
tmpfs                   tmpfs     1.6G  8.0K  1.6G   1% /run/user/0
(base) localhost:~ # 

  上面显示/dev/mapper/system-root为ext4的类型

2.6  执行扩容

        我这边的逻辑卷的类型为ext4,命令如下:

       resize2fs /dev/mapper/system-root

(base) localhost:~ # resize2fs /dev/mapper/system-root
resize2fs 1.43.8 (1-Jan-2018)
Filesystem at /dev/mapper/system-root is mounted on /; on-line resizing required
old_desc_blocks = 101, new_desc_blocks = 114
The filesystem on /dev/mapper/system-root is now 237682688 (4k) blocks long.

      如是xfs类型,命令就不一样了。命令可能是

      xfs_growfs /dev/mapper/system-root    这个没有测试过

2.7 恢复home目录

      因为是测试环境,我没有选择重建home的分区,把所有磁盘空间都分配给了/根目录。

       tar xvf /run/home.tar -C /

        上面的命令只是恢复了home目录,千万要记住/run/home.tar执行命令过程中需要重启,一定要拷贝到其他地方去,不然重启之后,home.tar文件就不存在了,无法恢复

2.8 检查开机启动挂载的目录

       到2.7解决基本已经完成了根目录的扩容了,但不是万事大吉,重启可能无法正常进入到系统,原因可能有很多,我也不能打包票说大家碰到的问题都一样。我碰到的问题时无法正常登录系统,是因为已经删除/dev/mapper/system-home的挂载信息还在/etc/fstab里面,机器重启之后,会读取/etc/fstab配置,自动挂载磁盘。

因此需要删除掉已经删除的逻辑卷/dev/mapper/system-home,删除之后下图所示:

(base) localhost:~ # vi /etc/fstab 
/dev/system/swap  swap       swap  defaults      0  0
/dev/system/root  /          ext4  defaults      0  1
UUID=3960-7C74    /boot/efi  vfat  codepage=936  0  2
~

上面主要删除已经不存在逻辑卷配置。如果是因为逻辑卷不存在,导致挂载问题,无法直接进入系统,则不要慌,可能还是可以通过root来登录的,只是挂载失败,导致无法直接进入系统。一般根据提示进行操作即可。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值