如何减少具有 xfs 文件系统的 AWS EBS 卷的大小

如何减少具有 xfs 文件系统的 AWS EBS 卷的大小

我有一个 50 GB 的 EBS 卷,我想将其减少到 20 GB。操作系统是 centos 7,有 XFS 文件系统。我已按照此操作关联 但它更具体到 ext4 和 Ubuntu,有人能告诉我如何处理 XFS 文件系统类型吗

答案1

您可能能够更改 XFS 文件系统大小,但不能减小 EBS 卷的大小。

您需要创建一个新的 EBS 卷,将其附加到您的实例,在新 EBS 卷上创建一个文件系统,然后将文件从旧 EBS 卷复制(迁移)到新 EBS 卷。

答案2

以下是(不是很基础的)有关如何执行此操作的说明:

  1. 启动一个 ec2 实例,它将是您的“Dupe”服务器。mX.large 就足够了。一旦您可以连接到它,就将其关闭,因为您需要安装一些卷。
  2. 创建一个 EBS 卷作为“新”卷。我建议在 AWS 控制台中标记新卷和旧卷。
  3. 关闭要缩小的 EC2 实例“TooBig”。希望您能在 5-10 分钟内完成此操作。根据您的卷大小,此过程不应超过此时间。
  4. 将卷“Old”从“TooBig”中分离。
  5. 将卷“Old”附加到“Dupe”
  6. 将卷“New”附加到“Dupe”。
  7. 启动“Dupe”。您需要检查卷是否按此顺序安装。如果不是,则必须修改附加的脚本。

-> /dev/nvme0n1p1(这是您的“Dupe”启动分区)

-> /dev/nvme1n1p1(这应该是您的“旧”EBS)

-> /dev/nvme2n1p1(这应该是您的“新”EBS)

运行blkid以获取所有块 ID。您需要将它们添加到以下脚本中。

“blkidold” 是您的“旧”EBS 的块 ID。

#!/bin/bash

fdisk /dev/nvme2n1
sleep 1
mkfs.xfs /dev/nvme2n1p1
mount -o ro /dev/nvme1n1p1 /mnt/nvme1n1p1
mount /dev/nvme2n1p1 /mnt/nvme2n1p1
xfsdump -l0 -J - /mnt/nvme1n1p1 | xfsrestore -J - /mnt/nvme2n1p1
umount /mnt/*
xfs_admin -U blkidold /dev/nvme1n1p1
xfs_admin -U blkidold /dev/nvme2n1p1
chroot / grub2-install /dev/nvme2n1
  1. 停止重复。分离“旧”和“新”
  2. 将“新”附加到“太大”

你现在可以走了。

相关内容