AWS系统盘缩容
AWS支持EBS盘动态扩容,但不支持缩容。如果需要缩小系统盘,可以采用如下的方式。
1、创建一个新的小磁盘卷(new_small_volume)。
2、把新磁盘连接到要修改对服务器
3、运行lsblk查看磁盘信息(“list block”,即用于列出所有可用块设备的信息)
NAME:这是块设备名
MAJ:MIN:本栏显示主要和次要设备号
RM:本栏显示设备是否可移动设备
SIZE:本栏列出设备的容量大小信息
RO:该项表明设备是否为只读
TYPE:本栏显示块设备是否是磁盘或磁盘上的一个分区
MOUNTPOINT:本栏指出设备挂载的挂载点
4、 mkfs -t ext4/dev/nvme1n1
(分区完成后,如果不格式化写入文件系统,则是不能正常使用的。所以我们需要使用 mkfs 命令即make file system进行格式化。
mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
- device : 预备检查的硬盘分区,例如:/dev/sda1
- -t : 给定档案系统的型式,Linux 的预设值为 ext2
- -c : 在制做档案系统前,检查该partition 是否有坏轨
- -l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
- block : 给定 block 的大小
- mkfs 命令非常简单易用,不过是不能调整分区的默认参数的(比如块大小是 4096 Bytes),这些默认参数除非特殊清况,否则不需要调整。如果想要调整,就需要使用 mke2fs 命令重新格式化。命令格式如下:mke2fs [选项] 分区设备文件名)
5、mkdir /mnt/new-volume
6、mount
/dev/nvme1n1 /mnt/new-volume
7、rsync -axv / /mnt/new-volume/
(remote synchronizetion rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份的功能,这个功能类似ssh 带的scp命令,但是又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷 贝。当然,rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这又类 似cp命令。但是同样也优于cp命令,cp每次都是全量拷贝,而rsync可以增量拷贝。
rsync是不支持实时同步的,通常我们借助于inotify这个软件来实时监控文件变化,一旦inotify监控到文件变,则立即调用rsync进行同步。
)
8、grub2-install --root-directory=/mnt/new-volume/ --force /dev/nvme1n1
9、umount /mnt/new-volume
10、blkid
确认旧系统盘的uuid
11. fsck -f /dev/nvme1n1
12. tune2fs -U "运行blkid看到的旧系统盘uuid" /dev/nvme1n1
13、e2label /dev/nvme0n1p1
14、e2label /dev/nvme1n1 /
15、退出登录,停止实例。
16、用实例id到卷中查找卷,并断开所有新旧卷,然后添加小的新卷/dev/sda1
17、启动实例,这时系统盘就是新的小磁盘。
注意: 1、第八步是centos的命令 grub2-install。 有的系统是grub-install命令
2、第二步 mkfs -t ext4/dev/nvme1n1。 格式如果写xfs,后面会提示失败。
原系统盘是xfs,新系统盘是ext4,也可以顺利完成,并且不需要修改/etc/fstab
参考链接:
https://www.joe0.com/2021/09/27/how-to-reduce-the-size-of-aws-ebs-root-volume/
https://fitdevops.in/how-to-reduce-aws-ebs-root-volume-size/