言归正转,我们今天来介绍下,如何给云主机(阿里云ecs)挂磁盘。刚我们购买云主机后,一般带的系统盘存储是有限的,阿里云ecs目前是40G>~<,但是对于一个线上服务来说,40G云盘时不够用的(一大堆乱七八糟的日志,啊啊啊啊),这时候,我们就需要为咱服务器购买额外云盘来扩容。
1、如何购买云盘呢
先登录阿里云控制台,找到你要扩容的磁盘,在更多下拉菜单那里,选择 “磁盘扩容”,选择想要的容量,并支付。下图里显示我有个数据盘,大小是 40G,这是我扩容之后的容量,之前它是一个 20G 的数据盘。
好了,钱花了,云盘到手了,我们该如何使用呢,请看下面分解。
磁盘挂载
1、 等于你的阿里云服务,执行下面命令(命令作用是查看云盘情况)
df -h
这时候会返回下面的信息
/dev/xvda1 20G 8.4G 11G 45% /
/dev/xvdb1 20G 5.7G 13G 31% /var/discourse
上面的 /dev/xvda1 是我的服务器的系统盘,大小是 20G,下面的 /dev/xvdb1 是我的数据盘,这是我要扩容的磁盘,现在显示它的大小仍然是 20G,这个磁盘让我挂载到了 /var/discourse 这个目录下面。
2、执行
fdisk -l
这时候会返回下面信息
磁盘 /dev/xvda:21.5 GB
设备 Boot Start End Blocks Id System
/dev/xvda1 * 2048 41943039 20970496 83 Linux
磁盘 /dev/xvdb:42.9 GB
设备 Boot Start End Blocks Id System
/dev/xvdb1 2048 41943039 20970496 83 Linux
显示 /dev/xvdb 是 42.9GB,其实 /dev/xvdb1 是 /dev/xvdb 这个磁盘的一个分区,它现在的大小是 20G,我们要去删除掉这个分区,重新再创建一个新的分区,新的分区的大小可以设置成 42.9G,就是我扩容以后的磁盘容量。
3、重建磁盘分区
注意:执行下面的操作之前,一定先在阿里云的控制台去给你要处理的磁盘打个快照,这样出了问题可以恢复。 先卸载掉挂载的 /var/discourse,我把 /dev/xvdb1 挂载到这个位置上了,你的这个挂载点可能跟我的不一样,你要根据自己的实际情况去执行下面的命令。卸载:
umount /var/discourse
删除并重建分区,执行:
fdisk /dev/xvdb
返回:
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
上面的提示挺吓人,不过没关系,你的数据不会丢,即使误操作,损坏了数据,你也可以用快照恢复。 输入:
命令(输入 m 获取帮助):d
已选择分区 1
分区 1 已删除
提示输入命令,输入 d,表示删除分区。
- 会继续提示,再提示输入命令,输入 n
- 然后让你选择 Partition type,分区的类型,这里输入 p,表示主分区
- 又让你选择分区号,输入 1
- 起始扇区,回车使用默认的值
- last 扇区,截止扇区,回车,使用默认值
- 提示输入命令,输入 wq,可以退出
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):
将使用默认值 83886079
分区 1 已设置为 Linux 类型,大小设为 40 GiB
命令(输入 m 获取帮助):wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
然后再执行命令:
e2fsck -f /dev/xvdb1
e2fsck 是检查 ext2/ext3/ext4 文件系统用的工具。 返回:
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/xvdb1: 24604/1310720 files (15.7% non-contiguous), 1593030/5242624 blocks
执行命令:
resize2fs /dev/xvdb1
resize2fs 可以改变 ext2/ext3/ext4 文件系统的容量。 返回:
Resizing the filesystem on /dev/xvdb1 to 10485504 (4k) blocks.
The filesystem on /dev/xvdb1 is now 10485504 blocks long.
现在你的数据盘应该就是扩容之后的容量了,可以重新再挂载一下它:
mount /dev/xvdb1 /var/discourse