阿里云(CentOS)磁盘扩容方法
本页仅对阿里云ECS数据盘扩容
涉及的linux操作命令记录,更详细的操作过程请点击这里。
注意:与磁盘相关的操作失误可能会引起数据遗失,没有linux基础谨慎操作,本站不为数据损失负责
在阿里云账号后台完成数据盘扩容操作支付完成后你需要做以下操作:
1.卸载主分区
用df -h
命令查看磁盘情况
[root@********** ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 2.4G 17G 13% / devtmpfs 487M 0 487M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 6.6M 490M 2% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup /dev/vdb1 9.8G 9.0G 225M 98% /mnt tmpfs 100M 0 100M 0% /run/user/0
可以看到我的数据盘/dev/vdb1
挂在位置在/mnt
,磁盘快要满了,首先卸载数据盘分区
umount /dev/vdb1
如果出现这样的错误:
[root@********* ~]# umount /dev/vdb1 umount: /mnt: target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))这时候
这时候我们需要用到命令
lsof | grep mnt
查看mnt目录有哪些进程在占用,需要停止服务的停止(我这里停止了httpd
和mariadb
的服务,记得后续完成数据扩容挂载后需要再次启动),无法停止的可以使用kill
命令结束进程。
在卸载成功后使用df -h
命令得到的信息应该是这样的:
[root@********** ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 2.4G 17G 13% / devtmpfs 487M 0 487M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 6.6M 490M 2% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup /dev/vdb1 9.8G 9.0G 225M 98% /mnt tmpfs 100M 0 100M 0% /run/user/0
2.使用fdisk
命令删除原来的分区并创建新分区:
运行命令 fdisk -l
命令可罗列分区信息并记录扩容前数据盘的最终容量、起始扇区(First sector)位置。
[root@********** ~]# fdisk /dev/vdb #运行命令 fdisk [数据盘设备名] 进入 fdisk 界面 Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): d #删除原来的分区,删除分区不会造成数据盘内数据的丢失。 Selected partition 1 Partition 1 is deleted Command (m for help): n #开始创建新的分区 Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p #选择创建主分区。因为创建的是一个单分区数据盘,所以只需要创建主分区;如果要创建 4 个以上的分区,您应该创建至少一个扩展分区,即选择 e Partition number (1-4, default 1): 1 #输入分区编号并按回车键。因为这里仅创建一个分区,所以输入 1。 First sector (2048-44040191, default 2048): #输入第一个可用的扇区编号:为了保证数据的一致性,First sector 需要与原来的分区保持一致。在本示例中,按回车键采用默认值。 Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-44040191, default 44040191): #输入最后一个扇区编号:因为这里仅创建一个分区,所以按回车键采用默认值。 Using default value 44040191 Partition 1 of type Linux and of size 21 GiB is set Command (m for help): wq #开始分区 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
3.(可选)部分操作系统里,修改分区后可能会重新自动挂载文件系统。建议先执行 df -h
重新查看磁盘空间和使用情况。如果文件系统重新被挂载,执行 umount [文件系统名称]
再次卸载文件系统。
umount /dev/vdb1
4.检查文件系统,并变更文件系统大小。
e2fsck -f /dev/vdb1 # 检查文件系统 resize2fs /dev/vdb1 # 变更文件系统大小
注意:
- 使用
e2fsck
时,由于系统需要检查并订正文件系统元数据,所以速度较慢、耗时较长,请耐心等待。- 正确使用
e2fsck
和resize2fs
指令,不会造成原有数据丢失。
5.将扩容完成的文件系统挂载到原来的挂载点(如本示例中的 /mnt)。
mount /dev/vdb1 /mnt
6.查看磁盘空间和使用情况:运行命令 df -h
。如果出现扩容后的文件系统信息,说明挂载成功,可以使用扩容后的文件系统了。
[root@********** ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 2.4G 17G 13% / devtmpfs 487M 0 487M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 6.6M 490M 2% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup tmpfs 100M 0 100M 0% /run/user/0 /dev/vdb1 21G 9.0G 11G 47% /mnt
7.恢复相关应用服务
别忘了在卸载分区时被我们停止的服务:
systemctl start httpd systemctl start mariadb