我需要在 EBS 卷上创建分区吗?哪种方法更好?

我需要在 EBS 卷上创建分区吗?哪种方法更好?

我正在向 AWS EC2 上现有的 Ubuntu 服务器添加新的 EBS 卷。

我创建了卷并且它已连接到服务器,我可以在那里看到它,一切正常。

在卷上创建分区(因此我将像“/dev/xvdf1”一样使用它)与按原样使用它(“/dev/xvdf”)并在卷上直接创建文件系统相比,有什么好处/负担?

答案1

在我看来,在 EC2 内部,将整个卷用于文件系统才真正有意义,因为 Elastic Block Store (EBS) 卷具有灵活性,这与许多物理磁盘有很大不同,因为您可以根据需要配置它们,根据需要销毁它们,无需重新启动即可将它们附加到实例上或从实例上分离它们,无需使用实例的处理器、内存或 I/O 即可拍摄快照并克隆它们。而且,如果没有分区表,当您需要更多空间时调整大小就很容易了。

需要更大的文件系统吗?如果您使用整个卷而没有分区表,这很简单。

使用 AWS 控制台对卷进行 EBS 快照,此时卷仍处于挂载和使用状态。您实际上不会使用此快照,但请相信我。如果您最近对卷进行了快照,并且仍保留着它,则可以跳过此步骤,因为此处的目的是使其余步骤更快。

卸载该卷。

拍摄第二个快照。这是您想要的。我们制作了前一个快照,因为它会使此快照更快。当 EBS 拍摄快照时,它会将磁盘内容保存到 S3 上的隐藏存储库中。对于同一卷的每个连续快照,只有已更改块需要被存储,因此这个快照将主要使用指向已捕获的所有数据位置的存储指针来构建,并且只有更改的块才会被物理备份。

使用最后的快照创建一个新卷。

将新卷附加到实例以替代旧卷,然后挂载它。根据需要验证数据。

然后,您可以resize2fs在使用卷时扩大文件系统以填充新卷上的可用大小。

然后删除上面的第一个快照。EBS 将“前滚”其包含的最终快照所需的所有内容,因此最终快照仍然有效。

最后一步,您可能希望使用 预热新卷sudo dd if=/dev/xvdx of=/dev/null bs=1M。从快照创建卷时,卷的内容会“懒惰地”从快照加载到实际卷上,这意味着卷在其性能达到最佳之前就完全可用。如果您从卷中请求某些内容,而这些内容尚未被后台进程加载,您仍会几乎立即获得它,但速度不如后台进程加载所有内容那么快。上述操作对dd整个卷进行物理读取,使整个卷以尽可能低的延迟可用,比其他方式更快。据记录,这应该在卷卸载时执行,但无论您是在调整大小之前还是之后执行此操作都不是很重要。预热 EBS 卷的各种方式在http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-prewarm.html...

对我来说,使用整个卷作为文件系统,而不使用分区表,似乎是唯一的选择,因为它可以最大限度地减少停机时间和出错的机会。我所有的 EBS(以及临时卷)都是这样完成的,除了一些非常早期的卷。

当然,您可以按照惯常方式使用fdiskparted创建和修改分区表,但 - 在我看来 - 这是不必要地添加额外的“移动部件”......这通常意味着更多的错误机会。

如果您知道如何让本地计算机的 X-Server 工作,并接受来自 EC2 实例的传入连接以便在本地显示 GUI 输出,那么您也可以轻松使用gpartedEC2 实例上的图形工具,并将图形界面显示在本地工作站屏幕上 - 是的,这有效,我已经做到了 - 但让它工作超出了这个问题的范围。

答案2

今天我遇到了同样的问题,当您创建新的 ec2 实例时,默认情况下 EBS 为 8GB。您可以修改附加 EBS 的大小,而无需创建新实例或拍摄快照或分离 EBS。以下是您可以遵循的三个步骤:

  1. 调整 EBS 卷大小
  2. 调整分区大小
  3. 调整分区大小 第一步,转到您的 AWS 控制台并单击 EBS,更改所需的大小,然后单击修改。

其余步骤请按照本文 如果您有任何问题,请随时提问。

谢谢!

相关内容