今天公司的阿里云服务器(服务器系统为centos 7 64位)硬盘不够用了,于是选购了阿里云的在线扩容云盘服务,在线扩容后在阿里云控制台查看云盘已经从原来的100G扩容到了140G,在SSH端用fdisk -l
查看硬盘/etc/vdb/
也确实扩容到了140G,但是用df -h
查看分区挂载大小还是原来的100G。代表还需要在服务器内部进行扩容分区和扩容文件系统,这两个步骤是必须要操作的,否则云盘还是原来的大小,没办法使用新增加的空间。
由于是centos系统,跟以前使用的Windows系统的磁盘扩容不一样,在Windows里面很简单,直接进入磁盘管理工具,进行扩展卷即可。在centos中会相对来说复杂一点点,毕竟是操作磁盘,稍有不慎,数据就会丢失,风险极大。公司的数据全部存在盘中,如果操作不慎造成数据丢失,罪孽深重啊。为了保险起见,请仔细阅读以下操作。
一、创建磁盘快照备份
由于磁盘存了100G数据,特别多而且很重要,必须在操作磁盘前进行快照备份,如果有什么闪失,还能回滚磁盘进行挽救,这个步骤是最重要的,一定不要心存侥幸。快照很简单,在阿里云后台找到对应的云盘,创建快照就好了,等创建完成了再进行操作磁盘扩容。
二、磁盘分区扩容
扩容之前我们先查看一下分区的情况:磁盘总共大小98G,已经使用98G,空闲0 此刻磁盘已经爆满了,数据特别多。
1、把原来挂载的目录卸载,我的分区是/etc/vdb/
挂载在/www/
目录。卸载命令如下:
umount /etc/vdb/ /www/
a、如果不知道哪个分区挂在哪个目录,可以使用df -h命令查看。
b、通常情况下,当你直接卸载,会提示 Device is busy ,这是因为磁盘里有服务在运行,所以需要先把进程都杀掉再操作,执行 fuser -m -k -v /dev/vdb1 将所有的进程都kill掉。然后再进行如上操作卸载即可。
2、使用fdisk工具删除旧分区,一般情况下不会丢失数据,按照步骤操作即可(提示:建议一定要进行第一步操作,创建快照备份数据)。
a、运行fdisk -u /dev/vdb
:分区数据盘。记录下分区起始位置:2048
b、输入p:打印分区表。
c、输入d:删除分区。
d、输入p:确认分区已删除。
e、输入w:保存修改并退出。
[root@iZbp18vj2il5razqprg8dnZ /]# fdisk -u /dev/vdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/vdb: 140 GiB, 150323855360 bytes, 293601280 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
Disklabel type: dos
Disk identifier: 0xdb798a36
Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 209715199 209713152 100G 83 Linux
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
Command (m for help): p
Disk /dev/vdb: 140 GiB, 150323855360 bytes, 293601280 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
Disklabel type: dos
Disk identifier: 0xdb798a36
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
3、创建新分区
a、使用fdisk
命令新建分区。
b、运行fdisk -u /dev/vdb
分区数据盘。
c、输入p:打印分区表。
d、输入n:新建分区。
e、输入p:选择分区类型为主分区。
f、输入<分区号>:选择分区号:1。
g、输入分区起始位置(新分区的起始位置必须和旧分区的起始位置相同,结束位置必须大于旧分区的结束位置,否则会导致扩容失败。):2048,然后回车。
h、输入w:保存修改并退出。
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/vdb: 140 GiB, 150323855360 bytes, 293601280 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
Disklabel type: dos
Disk identifier: 0xdb798a36
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-293601279, default 2048): 2048
Last sector, +sectors or +size{K,M,G,T,P} (2048-293601279, default 293601279):
Created a new partition 1 of type 'Linux' and of size 140 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
4、更新内核分区表
partprobe /dev/vdb 或者 partx -u /dev/vdb1
5、运行以下命令确保分区表已经增加
lsblk /dev/vdb
6、运行以下命令再次检查文件系统,确认扩容分区后的文件系统状态
e2fsck -f /dev/vdb1
三、扩容文件系统
本磁盘的文件系统问ext4,所以依次运行以下命令调整ext4文件系统大小并重新挂载分区。
1、调整ext4文件系统大小。
resize2fs /dev/vdb1
执行后提示:Please run ‘e2fsck -f /dev/vdb’ first. 参数-f意思就是需要强制执行一下,否则执行不了。
resize2fs -f /dev/vdb
执行之后就成功扩容文件系统。
[root@iZbp18vj2il5razqprg8dnZ /]# resize2fs -f /dev/vdb
resize2fs 1.45.4 (23-Sep-2019)
Resizing the filesystem on /dev/vdb to 36700160 (4k) blocks.
The filesystem on /dev/vdb is now 36700160 (4k) blocks long.
2、重新挂载分区到www目录
mount /dev/vdb/ /www/
[root@iZbp18vj2il5razqprg8dnZ /]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.7G 0 3.7G 0% /dev
tmpfs 3.7G 0 3.7G 0% /dev/shm
tmpfs 3.7G 516K 3.7G 1% /run
tmpfs 3.7G 0 3.7G 0% /sys/fs/cgroup
/dev/vda1 40G 3.3G 37G 9% /
tmpfs 755M 0 755M 0% /run/user/0
/dev/vdb 138G 98G 33G 75% /www
挂载完成后,www目录大小达到138G,已使用:98G,空闲:33G,
3、查看一下是否已经设置服务器启动自动挂载
对于centos的新磁盘挂载分区格式化不清楚的朋友,可以查看之前的文章:centos6分区与格式化数据盘、挂载磁盘的方法
cat /etc/fstab
有以上红框内的信息,代表已经设置好自动挂载。如果没有的话,执行以下命令进行设置。
echo '/dev/vdb /www ext4 defaults 0 0' >> /etc/fstab
由于之前分区内有安装宝塔服务,需要在扩容挂载完成后,重新启动以下宝塔服务。其他服务也类似操作。
[root@iZbp18vj2il5razqprg8dnZ /]# service bt start
Starting Bt-Panel.... done
Starting Bt-Tasks... done
[root@iZbp18vj2il5razqprg8dnZ /]# cat /etc/fstab
扩容完成后,检查一下磁盘数据完好,服务启动正常,大功告成。
操作到此,阿里云磁盘扩容全部完成,无损扩容磁盘,数据完好。做个简单的记录,希望能给经验不多的朋友提供一些参考。
发表评论
还没有评论,快来抢沙发吧!