通读指南,一种方法是创建新磁盘,迁移数据,关闭实例交换磁盘并关闭磁盘。重新开始。这种方法听起来有点风险,将需要一些停机时间。我想知道是否有更好的方法?
#1 楼
Amazon AWS刚刚于2017年2月13日发布了一项新功能,该功能允许更改EBS卷的大小。来源:https://aws.amazon.com/blogs/aws/amazon- ebs-update-new-elastic-volumes-change-everything /
这样可以增加现有实例在运行时的EBS卷的大小。
重要的是要注意,更改卷大小并不会更改卷上文件系统的大小(对于大多数文件系统)。操作系统本身可能需要其他步骤(取决于文件系统)。例如,当今大多数Linux操作系统使用的
resizefs
文件系统上的ext4
。来自AWS的完整文档(描述了该过程)可以在http://docs.aws.amazon.com/AWSEC2/latest/UserGuide中找到。 /ebs-expand-volume.html
在某些情况下,块设备具有映射的分区,然后只有一个(或多个)分区包含文件系统。在这种情况下,首先需要调整分区的大小,然后才需要调整文件系统的大小。文档中也描述了此过程。
博客中描述的新的“在线”调整大小功能仅适用于当前实例,并且还需要检查一些其他注意事项和限制。尝试调整卷大小。
#2 楼
我要做的事情(并不能完全回答您的问题)如下:创建EBS卷并将其附加到实例文档在这里
重新扫描scsi总线
echo '- - -' > /sys/bus/scsi/devices/host1/scsi_host/host1/scan
(您可能必须修改主机号)在找到的新磁盘上使用
pvcreate
创建一个物理卷(fdisk -l
列出所有磁盘)在其上创建一个卷组,然后进行逻辑卷(
vgcreate
和lvcreate
)使用所需的文件系统格式化逻辑卷
tar
将目标安装点还原以恢复它。将该卷安装在需要新空间的地方。
将tar还原到此新安装的空间中。
如果在安装某些东西之前使用新空间,则步骤6和8是可选的。如果要替换现有目录,则必须避免在存档末尾和还原之间写一些东西。
您可以对不同的安装点重复步骤4到8,这可以扩展需要的空间,然后在不中断的情况下在线调整这些卷的大小。
#3 楼
在AWS(或其他地方)上的ZFS零宕机时间文件系统存储扩展upsize
在EC2上安装ZFS。
http://serverascode.com/2016/09/05/aws-zfs-user-data.html
使用EBS卷为您的批量数据创建zpool。
添加另一个EBS获得更多的块存储。 (或将池设置为autoexpand = true并增加您的EBS)
将新的EBS添加到您的zpool中以使空间可用。 (除非您使用了autoexpand并增加了EBS的大小)
减小尺寸
在新的EBS上创建一个新的zpool,使其足以容纳缩小的数据。 (甚至不需要挂载,甚至不需要安装在同一EC2上)
快照旧的太大的zpool
zfs-将快照发送到新的zpool
,将接收到的快照升级到新池并安装
销毁旧池
销毁旧池的EBS
#4 楼
调整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
评论
在调整文件系统大小之前,您还必须重新调整基础分区的大小,这实际上阻止了物理分区上的热调整。
–滕西拜
17 Mar 1 '17 at 9:03
@Tensibai对不起,我不明白“阻塞物理分区以进行热调整”是什么意思。您是否意味着使用AWS API修改卷大小将阻止对卷的写入/读取?
– Evgeny Zislis
17年1月1日在9:05
不,我的意思是磁盘会更大,但是磁盘上的分区将保持不变,您必须使用fdisk调整其大小,关于根分区,通常在挂载磁盘时无法写入磁盘分区表,而且您无法卸载它。您必须在某一时刻重启:)
–滕西拜
17 Mar 1 '17 at 9:08
正确,如果在添加文件系统层之前使用了多个分区,则需要首先调整分区的大小。谢谢,我将尝试将其添加到答案中,并提供一些有关其完成方法的指南。
– Evgeny Zislis
17年1月1日在9:09
提到的问题没有停机时间。但是,要重新调整根卷的大小,您似乎需要将实例断开以执行此步骤?
–克里斯·斯特里钦斯基(Chris Stryczynski)
17年7月21日在12:35