本文将介绍将根卷迁移到更小的云盘以节省磁盘空间。
迁移CentOS/RHEL 7所在系统盘至更小的云盘
此操作有风险,建议先对实例创建自定义镜像,保存原始数据
本期实验练习介绍如何把一个根卷迁移到一个更小的云盘上以节省磁盘空间,并导入为镜像。在开始实验前需要先进行如下准备工作:
预计部署时间:60分钟
级别:中级
相关产品:ECS云虚拟机
受众:通用
fdisk /dev/vdb
创建分区[root@i-7gr9y1grlnhir5dnwztk /]$ fdisk /dev/vdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x25213bde 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):n <----- 创建分区 Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p <----- 分区类型为primary 分区号 (1-4,默认 1): 起始 扇区 (2048-41943039,默认为 2048): <---- 设置大小,均为默认值 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039): 将使用默认值 41943039 分区 1 已设置为 Linux 类型,大小设为 40 GiB 命令(输入 m 获取帮助):w <----- 写入磁盘 The partition table has been altered!
[root@i-7gr9y1grlnhir5dnwztk /]$ mkfs.ext4 /dev/vdb1
[root@i-7gr9y1grlnhir5dnwztk ~]$ blkid /dev/vda1: UUID="223be8ec-241a-4abb-b290-44560b1bc3e5" TYPE="ext4" /dev/vdb1: UUID="9d23014a-9c2f-4fb0-b1af-f071086f07b8" TYPE="ext4" [root@i-7gr9y1grlnhir5dnwztk ~]# tune2fs -U 223be8ec-241a-4abb-b290-44560b1bc3e5 /dev/vdb1
mount /dev/vdb1 /mnt
mkdir /mnt/proc mkdir /mnt/sys mkdir /mnt/dev
mount -o bind /proc/ /mnt/proc/ mount -o bind /sys /mnt/sys/ mount -o bind /dev/ /mnt/dev/
cp -arf /boot/ /mnt/ cp -arf /etc /mnt/ cp -arf /home /mnt/ cp -arf /media /opt /root /srv /tmp /usr /var /mnt cd /mnt // 注意一定要进入/mnt目录后再执行以下命令 ln -s usr/bin bin ln -s usr/lib lib ln -s usr/lib64 lib64 ln -s usr/sbin sbin
chroot /mnt
跳转到新的操作系统grub2-install /dev/vdb
创建GRUB, 注意这里是/dev/vdb, 不是/dev/vdb1rm -rf /var/lib/cloud/
exit
umount /mnt/proc umount /mnt/sys umount /mnt/dev yum reinstall filesystem --installroot=/mnt
mkfs.ext4 /dev/vdc
/dev/vdb
的数据dd到/mnt1, 注意这里要把整个设备dd到/mnt1中mkdir /mnt1 mount /dev/vdb /mnt1 dd if=/dev/vdb of=/mnt1/disk.img
pip3 install awscli
# aws configure AWS Access Key ID [None]: AKLTZDA1NzI1YTg0NzFiNGU2MWIzZTNiZTBlZTQ2xxx AWS Secret Access Key [None]: Wm1ObE5EaGhNak0xT0Raa05ESTFOV0U1T1daaU9Exxxx Default region name [None]: cn-beijing Default output format [None]: json
# aws s3 mb s3://bucket-name --endpoint-url https://tos-s3-cn-beijing.ivolces.com make_bucket: bucket-name
aws s3 cp /mnt1/disk.img s3://bucket-name/disk.img --endpoint-url https://tos-s3-cn-beijing.ivolces.com
导入镜像
,输入获取的镜像地址,选择正确的操作系统版本,并点击确定,开始镜像导入