如何调整EC2配置和EBS磁盘
应当有一个选项或一种方式,帮助我们快速推翻之前的想法,去尝试更好更合理的东西,这就是云带给我们的意义。
-- D.C
调整EC2配置
假设我们已经创建好了一台EC2,流程也已经部署好了,但是我发现配置太低/高了,因为某种偏执的原因,我就是不想创建镜像ami再从这个ami启动一个新的ec2,对!我就是要修改原来那个,怎么办呢?
- 第一步:进入ec2的控制界面,选中我们要调整的ec2 instance,点击上方的 Actions - Instance State - Stop,点击Yes, Stop。
- 第二步:等ec2是stop状态以后,选中,点击上方的 Actions - Instance Settings - Change Instance Type, 出现弹窗。
- 第三步:选择我们想更改的配置,比如 m5.large, 点击Apply。随后点击上方的 Actions - Instance State - Start, 启动之后就是 m5.large 的配置了。
调整EBS盘
假设我们给ec2预设的盘太小,需要扩容怎么办呢?有两种方案:
- 重新创建一个新磁盘,attach上去,不需要重启ec2。
- 调整现在磁盘的大小,需要重启ec2。
1. 重新创建磁盘
- 在ec2 控制界面,点击左侧的EBS下的 Volumes,可以看到右侧所有的磁盘列表,点击上方的 Create Volume,进入设置界面。
- 默认SSD gp2, 我需要一块100G的磁盘,Availability Zone 这里注意下,你的ec2在哪个可用区,这块磁盘就要创建在那个可用区(可以选中ec2,查看下方的Description信息来获知它所在的可用区哦~),这里我选择 cn-northwest-1c, Snapshot不选择,因为我是创建新盘,当然如果你想利用之前打的snapshot来恢复也是可以的,比如说保存数据库的snapshot。
- 好了,磁盘创建完毕,点击 Volume ID,选中这块磁盘,点击上方 Actions - Attach Volume,跳出弹窗。
- 选中对应的ec2,Device 会自动填充,点击 Attach。
- 登录ec2,查看命令
df -h
。
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 72K 3.8G 1% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
/dev/nvme0n1p1 50G 28G 22G 56% /
- 参照如何让 EC2 “妻妾成群” 这篇文章进行命令行设置。
[注意]: 以下命令省略了 重启后自动附加附加卷 的命令,需要的同学请完整参阅这篇文章。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 50G 0 disk
├─nvme0n1p1 259:1 0 50G 0 part /
└─nvme0n1p128 259:2 0 1M 0 part
nvme1n1 259:3 0 100G 0 disk
$ sudo file -s /dev/nvme1n1
/dev/nvme1n1: data
$ sudo yum install xfsprogs
$ sudo mkfs -t xfs /dev/nvme1n1
meta-data=/dev/nvme1n1 isize=512 agcount=4, agsize=6553600 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=0
data = bsize=4096 blocks=26214400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=12800, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
$ sudo mkdir /data
$ sudo mount /dev/nvme1n1 /data
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 72K 3.8G 1% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
/dev/nvme0n1p1 50G 28G 22G 56% /
/dev/nvme1n1 100G 135M 100G 1% /data
$ sudo chown -R ec2-user.ec2-user /data
$ touch /data/1.txt
$ ls /data
1.txt
2. 调整现有EBS磁盘
-
切记,先给需要调整的EBS磁盘打快照,世上木有后悔药!
-
选中这台ec2,查看下方的 Description 信息,找到它的磁盘信息,点击EBS ID进入。
- 点击上方 Actions - Modify Volumn。可以看到原来是50G,尝试输入20G试试会出现什么?对了,只能改大不能改小哦!这里我改成100G,点击Modify。 跳出说明弹窗,点击 Yes。
- 登录ec2看看呢?还是50G!
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 72K 3.8G 1% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
/dev/nvme0n1p1 50G 28G 22G 56% /
[选项1] 重启ec2。
[选项2] 不重启机器,登录ec2:
Step1 先用以下命令看下调整的磁盘属于哪种类型:
[ec2-user ~]$ sudo file -s /dev/nvme?n*
/dev/nvme0n1: x86 boot sector ...
/dev/nvme0n1p1: SGI XFS filesystem data ...
/dev/nvme0n1p128: data
/dev/nvme1n1: SGI XFS filesystem data ...
Step2 如果发现磁盘下面还有分区,那要用 growpart 命令先扩分区[option]
[ec2-user ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme1n1 259:0 0 30G 0 disk /data
nvme0n1 259:1 0 16G 0 disk
└─nvme0n1p1 259:2 0 8G 0 part /
└─nvme0n1p128 259:3 0 1M 0 part
[ec2-user ~]$ sudo growpart /dev/nvme0n1 1
[ec2-user ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme1n1 259:0 0 30G 0 disk /data
nvme0n1 259:1 0 16G 0 disk
└─nvme0n1p1 259:2 0 16G 0 part /
└─nvme0n1p128 259:3 0 1M 0 part
Step3 扩展文件系统
#如果是扩展 ext2、ext3 或 ext4 文件系统
[ec2-user ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 8.0G 1.9G 6.2G 24% /
/dev/xvdf1 8.0G 45M 8.0G 1% /data
#使用 resize2fs 命令扩展每个卷上的文件系统
[ec2-user ~]$ sudo resize2fs /dev/xvda1
[ec2-user ~]$ sudo resize2fs /dev/xvdf1
#再次使用 df -h 命令来验证每个文件系统是否反映增加的卷大小
[ec2-user ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 16G 1.9G 14G 12% /
/dev/xvdf1 30G 45M 30G 1% /data
#如果是XFS系统
$ sudo yum install xfsprogs
#使用 xfs_growfs 命令扩展每个卷上的文件系统
$ sudo xfs_growfs -d /
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 72K 3.8G 1% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
/dev/nvme0n1p1 99G 28G 72G 28% /
条条大路通罗马。