我想在不丢失数据的情况下降低EBS卷容量
我想将容量从1TB更改为200 GB
请提供详细步骤。
答案 0 :(得分:13)
我采用的降低EBS根卷的方法如下:
停止(不终止)目标实例,并分离根EBS卷。或者,您可以快照根卷(或使用现有快照)并从中创建新的EBS卷。 (例如/ dev / xvda1)
注意:您在上述步骤中使用的音量将被更改 - 因此您可能想拍摄快照(如果您尚未拍摄)。
Create a new EBS volume that is the desired size (e.g. /dev/xvdg)
Launch an instance, and attach both EBS volumes to it
Check the file system (of the original root volume): (e.g.) e2fsck -f /dev/xvda1
Maximally shrink the original root volume: (e.g. ext2/3/4) resize2fs -M -p /dev/xvda1
Copy the data over with dd:
Choose a chunk size (I like 16MB)
Calculate the number of chunks (using the number of blocks from the resize2fs output): blocks*4/(chunk_size_in_mb*1024) - round up a bit for safety
Copy the data: (e.g.) dd if=/dev/xvda1 ibs=16M of=/dev/xvdg obs=16M count=80
Resize the filesystem on the new (smaller) EBS volume: (e.g.) resize2fs -p /dev/xvdg
Check the file system (of the new volume): (e.g.) e2fsck -f /dev/xvdg
Detach your new EBS root volume, and attach it to your original instance
答案 1 :(得分:0)
来自ezhilrean的回答没问题,但有一种更简单的方法。
假设您在/ dev / sdf1上有/ var分区的实例,并且希望将其从300GB减少到200GB(假设/ var上有<200GB的数据)
在与原始卷相同的AZ中创建新卷 将其作为/ dev / sdg附加到实例 使用root权限登录实例
fdisk /dev/sdg
n (for New)
p (for Primary)
Accept defaults for other fdisk options
w (for Write)
fdisk将退出。您现在需要在新分区上创建文件系统
mkfs.ext4 /dev/sdg1 (presuming that ext4 was used on existing partition)
接下来,在临时挂载点挂载新分区
mkdir /new
mount /dev/sdg1 /new
现在,复制您的数据
cd / var cp -ax * / new /
更新/ etc / fstab以使用/ var
的新分区/dev/sdg1 /var ext4 defaults 0 0
重新启动
init 6
如果您需要/ var分区具有标识符/ dev / sdf1,则可以停止实例,分离两个EBS卷,并将新的较小的重新附加为/ dev / sdf 记住更改/ etc / fstab在你这样做之前