前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【逐鹿信息技术原创】倾心制作:扩容云硬盘之后的重要操作!

【逐鹿信息技术原创】倾心制作:扩容云硬盘之后的重要操作!

原创
作者头像
逐鹿信息技术
修改2021-05-21 14:35:26
8420
修改2021-05-21 14:35:26
举报
文章被收录于专栏:centos经验centos经验centos经验

本文仅适合MBR 分区!!!

扩容云硬盘 完成后,需要将扩容部分的容量划分至已有分区内。

一、以 root 用户执行以下命令,查询云硬盘使用的分区形式。

fdisk -l

结果如下图所示(根据操作系统不同略有不同),则说明使用 MBR 分区形式。

二、将扩容部分的容量划分至原有分区(MBR 分区形式)

fdisk/e2fsck/resize2fs 自动扩容工具适用于 Linux 操作系统,用于将新扩容的云硬盘空间添加到已有的文件系统中,扩容能够成功必须满足以下四个条件:

n 文件系统是 EXT2/EXT3/EXT4/XFS。

n 当前文件系统不能有错误。

n 扩容后的磁盘大小不超过2TB。

n 当前工具仅支持 Python 2 版本,不支持 Python 3 版本。

(一)以 root 用户执行以下命令,卸载分区:

卸载磁盘之前最好在控制面板停止能够停止的进程,如服务器、数据库、PHP程序、FTP服务等等。

本文以挂载点是/www为例,则执行:

umount /www

卸载磁盘可能会遇到以下问题:

这是因为磁盘正在被一些程序所占用,需要结束这些占用磁盘的进程和服务。

首先列出正在使用磁盘的服务:

lsof /www

然后杀死对应的 PID {kill -9 pid pid pid} 即可ok

kill -9 pid pid pid

如果还是被占用,就进行强制卸载:

umount /www -f

有时候可能强制卸载还是不行,再执行强行解除挂载,基本就能够卸载掉了:

umount -l /www

重复执行:

lsof /www

umount /www

已经能够顺利卸载分区。

(二)使用扩容工具进行扩容。

1、执行以下命令,使用扩容工具进行扩容。 中国大陆地区推荐使用:

wget -O /tmp/devresize.py https://tencentcloud.coding.net/p/tencentcloud/d/tencentcloud-cbs-tools/git/raw/master/devresize/devresize.py

2、本文以硬盘路径是/dev/vdb且文件系统在 vdb1 上为例,则执行:

python /tmp/devresize.py /dev/vdb

3、若输出 “The filesystem on /dev/vdb1 is now XXXXX blocks long.” 则表示扩容成功,请执行第5步。

4、若输出如下,则需要执行解除开机自动挂载某设备之后再卸载。

出现上述问题的原因是取消磁盘挂载后,使用df -lh确实未发现挂载信息。

但当执行扩容命令【python /tmp/devresize.py /dev/vdb】磁盘又自动挂载上去,导致扩容磁盘失败。

解决方法:解除开机自动挂载该磁盘,重启服务器后即可。

实现开机自动挂载或者解除开机自动挂载某设备,只要修改/etc/fstab文件即可。

(1)查看挂载设备的配置文件

cat /etc/fstab

查看结果如下:

/dev/vdb1就是服务器开机自动挂载的磁盘,我们解除这个磁盘的开机自动挂载,就对这个磁盘进行扩容了。

(2)我们使用vi编辑器(vi编辑器是所有Unix及Linux系统下标准的编辑器)编辑一下 /etc/fstab。

输入:

vi /etc/fstab

默认进入命令行模式command mode),在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了,只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

注释掉 #/dev/vdb1

注释完成后,按「ESC」键可回到命令行模式,然后输入: wq「wq」,存盘并退出vi):

: wq

(输入: wq「wq」,存盘并退出vi)。

(3)以上完成了设备挂载的配置文件 /etc/fstab 的修改,接下来重启服务器

(4)重启之后就可以轻松卸载磁盘了,执行:

umount /www

非常顺利,成功卸载了/www挂载的磁盘!

(5)再次执行:

python /tmp/devresize.py /dev/vdb

若输出的是 “[ERROR] - e2fsck failed!!”,请执行以下步骤: (6)执行以下命令,修复文件系统所在分区。

本文以硬盘路径是/dev/vdb且文件系统在 vdb1 上为例,则执行:

fsck -a /dev/vdb1

(7)修复成功后,再次执行以下命令,使用扩容工具进行扩容。

python /tmp/devresize.py /dev/vdb

提示是否创建快照,确保做好快照后输入y继续。

It will resize (/dev/vdb1).

This operation may take from several minutes to several hours, continue? [Y/n]  

确认输入y

[INFO] - Backup MBR to /tmp/MBR_vdb1_2020-01-14_16:04:40_bak

[INFO] - mount /dev/vdb1 /tmp/mount_point_vdb_2020-01-14_16:04:30

[INFO] - resize filesystem

输出 “The filesystem on /dev/vdb1 is now XXXXX blocks long.” 表示扩容成功。

5、执行以下命令,手动挂载扩容后的分区。

本文以挂载点是/www为例,扩容前已有分区,分区路径是/dev/vdb1,则执行:

mount /dev/vdb1 /data

执行以下命令,查看扩容后的分区容量。

df -h

若返回类似如下图所示的信息,说明挂载成功:

执行以下命令,查看扩容后原分区的数据信息,确认新增加的存储空间是否扩容到文件系统中。

ll /www

如图上所示,大功告成!本人亲手制作!!!累死啦!!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云硬盘
云硬盘(Cloud Block Storage,CBS)为您提供用于 CVM 的持久性数据块级存储服务。云硬盘中的数据自动地在可用区内以多副本冗余方式存储,避免数据的单点故障风险,提供高达99.9999999%的数据可靠性。同时提供多种类型及规格,满足稳定低延迟的存储性能要求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档