如何增加Amazon EC2上正在运行的实例上磁盘的大小


13

我使用Ubunto获得了EC 2服务器设置的运行实例。在没有停机时间和最小风险的情况下增加磁盘大小的最佳方法是什么?

通读指南,一种方法是创建新磁盘,迁移数据,关闭实例交换磁盘并将其重新打开。这种方法听起来有点风险,需要一些停机时间。我想知道是否有更好的方法?

Answers:


14

Amazon AWS刚刚于2017年2月13日发布了一项新功能,该功能允许更改EBS卷的大小。

来源:https : //aws.amazon.com/blogs/aws/amazon-ebs-update-new-elastic-volumes-change-everything/

这样,可以在现有实例运行时增加其上EBS卷的大小。

重要的是要注意,更改卷大小并不会更改卷上文件系统的大小(对于大多数文件系统)。操作系统本身可能需要其他步骤(取决于文件系统)。例如resizefsext4当今大多数Linux OS使用的文件系统。

有关该过程的AWS完整文档可在http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html中找到

在某些情况下,块设备已映射了分区,然后只有一个(或多个)分区包含一个文件系统。在这种情况下,首先需要调整分区的大小,然后才需要调整文件系统的大小。文档中也描述了此过程。

博客中描述的新的“在线”调整大小功能仅适用于当前实例,并且在尝试调整卷大小之前还需要检查一些其他注意事项和限制


在调整文件系统大小之前,您还必须调整基础分区的大小,这实际上阻止了物理分区上的热调整。
Tensibai'3

@Tensibai对不起,我不明白“阻止物理分区进行热调整”是什么意思。您是否意味着使用AWS API修改卷大小将阻止对卷的写入/读取?
Evgeny

不,我的意思是磁盘会更大,但是磁盘上的分区将保持不变,您必须使用fdisk它来调整其大小,关于根分区,通常在挂载磁盘时无法写入磁盘分区表,并且您无法卸载它。您必须在某一点重新启动:)
2015年

正确,如果在添加文件系统层之前使用了多个分区,则需要首先调整分区的大小。谢谢,我将尝试将其添加到答案中,并提供一些有关其完成方法的指南。
Evgeny

提到的问题没有停机时间。但是,要调整根卷的大小,您似乎需要将实例断开以执行此步骤?
克里斯·斯特里钦斯基

2

我所做的事情(并不能完全回答您的问题)如下:

  1. 在此处创建一个EBS卷并将其附加到实例文档
  2. 重新扫描scsi总线echo '- - -' > /sys/bus/scsi/devices/host1/scsi_host/host1/scan(您可能需要修改主机号)
  3. pvcreate在找到的新磁盘上创建一个物理卷(fdisk -l列出所有磁盘)
  4. 创建一个卷组,然后在其上创建逻辑卷(vgcreatelvcreate
  5. 使用所需的文件系统格式化逻辑卷
  6. tar 目标安装点以还原它。
  7. 在需要新空间的位置安装该卷。
  8. 将tar恢复到这个新安装的空间中。

如果在安装某些组件之前使用新空间,则步骤6和8是可选的。如果要替换现有目录,则必须避免在归档末尾和还原之间写入一些内容。

您可以对不同的安装点重复步骤4到8,这可以扩展所需的空间,然后在不中断的情况下在线调整这些卷的大小。


0

AWS(或其他地方)的ZFS零宕机时间文件系统存储扩展

放大

  1. 在EC2上安装ZFS。

    http://serverascode.com/2016/09/05/aws-zfs-user-data.html

  2. 使用EBS卷为您的批量数据创建zpool。
  3. 添加另一个EBS以获取更多的块存储。(或将池设置为autoexpand = true并增加EBS)
  4. 将新的EBS添加到您的zpool中以使空间可用。(除非您使用自动扩展并增加了EBS大小)

缩小尺寸

  1. 在新的EBS上创建一个新的zpool,使其足以容纳缩小的数据。(甚至不需要安装,甚至不需要安装在同一EC2上)
  2. 快照旧的太大zpool
  3. zfs-将快照发送到新的zpool
  4. 在新池中升级收到的快照并将其挂载
  5. 摧毁旧水池
  6. 销毁旧池的EBS

0

调整EBS卷的大小之后,这是我在需要扩展ZFS池时刚刚执行的操作:

parted -l # Get the list of partitions 
parted /dev/xvdf rm 9 # Remove the buffer partition
parted /dev/xvdf resizepart 1 100% # Resize the partition
zpool online -e <zfs partition name> /dev/xvdf # Expand the zpool and the filesystem it holds
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.