言归正转,我们今天来介绍下,如何给云主机(阿里云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,表示删除分区。

  1. 会继续提示,再提示输入命令,输入 n
  2. 然后让你选择 Partition type,分区的类型,这里输入 p,表示主分区
  3. 又让你选择分区号,输入 1
  4. 起始扇区,回车使用默认的值
  5. last 扇区,截止扇区,回车,使用默认值
  6. 提示输入命令,输入 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