如何就地移动 AWS t2.micro 实例的根分区?

如何就地移动 AWS t2.micro 实例的根分区?

情况:我在 AWS t2.micro 实例上使用 EBS SSD 存储(主实例)配置了 Ubuntu 14.04.5。在成功将根分区的大小从 8 GiB 调整为 12 GiB 时,我收到警告:“生成的分区未正确对齐以获得最佳性能。”我研究了解决此问题的方法,但没有一种方法符合我的要求,即在辅助实例中使用命令行选项来修改主实例的已停止和分离的卷(AWS 实例操作的 SOP)。

以下内容是根据@Michael 的回答编辑的。

使用分开,我发现现有分区的配置如下:

root@<domain>:~# blkid
/dev/xvda1: LABEL="cloudimg-rootfx" UUID="<uuid>" TYPE="ext4"
root@<domain>:~# parted
GNU Parted 2.3
Using /dev/xvda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s
(parted) print
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 25165824s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number   Start    End         Size        Type      File system   Flags
 1       16065s   25165823s   25149759s   primary   ext4          boot
(parted) quit
root@<domain>:~#

在查阅了多个来源,尤其是这个来源后,http://rainbow.chard.org/2013/01/30/how-to-align-partitions-for-best-performance-using-parted/分析表明所需的最优配置是:

Disk /dev/xvda: 25165824s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number   Start    End         Size        Type      File system   Flags
 1       2048s    25165823s   25163776s   primary   ext4          boot

进一步检查我的配置,我发现以下 IO 属性:

root@domain:/# cat /sys/block/xvda/queue/optimal_io_size 0
root@domain:/# cat /sys/block/xvda/queue/minimum_io_size 512
root@domain:/# cat /sys/block/xvda/alignment_offset 0
root@domain:/# cat /sys/block/xvda/queue/physical_block_size 512
root@domain:/# parted /dev/xvda
GNU Parted 2.3
Using /dev/xvda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) align-check minimal 1
1 aligned
(parted) align-check optimal 1
1 not aligned

这表明分区未最佳对齐,并且(根据引用的博客文章)最佳对齐是 1 MiB / 2048s。

我想使用 parted(或其他命令行选项)将分区从起始位置 16065s 移动到起始位置 2048s,并将分区的末尾移动到磁盘末尾 25165823s。这可以分为两个步骤完成;首先移动分区而不更改大小,然后执行调整大小操作。或者,如果可能的话,在一个操作中完成移动和调整大小。当然,我会在进行任何更改之前对已停止的主实例进行快照,并使用辅助实例对主实例的分区/文件系统进行操作。

我的问题是:

    1. 是否可以使用 parted move 子命令来执行此操作?如果可以,如何使用?
    2. 是否需要执行清理操作以确保更改的分区能够启动(从辅助实例分离并正确地重新连接到主实例之后)?
    3. 还有其他方法建议吗?
    4. 为什么即使@Michael 的回答表明对齐已经达到最佳状态,但仍然会发出警告?

赫斯特

答案1

(对我而言)该消息似乎是不正确的。

16065 是从 AWS 上的官方 Ubuntu AMI 启动的实例的根分区的起始位置。

Disk /dev/xvda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors

    Device Boot      Start         End      Blocks   Id  System    
/dev/xvda1   *       16065    16771859     8377897+  83  Linux

鉴于 EBS 卷声称有 255 个磁头和 63 个磁道,因此 16065 似乎是完美的理论对齐,因为 63 × 255 = 16065......所以假设我的计算是正确的,这是第二个圆柱体上第一个磁道的第一个扇区 - 尽管这些几何图形都不是真实的,因为磁盘是 EBS 卷。

我倾向于保持原样。如果这是错误的,那么 Canonical 和/或 AWS 似乎需要做出一些解释,因为有数百万个实例都采用这种配置。

相关内容