跳到正文
TURNKEYGNU / LINUX
应用文档博客截图GitHubTurnKey Hub
文中文
EnglishEspañol中文日本語PortuguêsDeutsch
ưμ㼯A/Amazon EC2: 如何扩展一个已有根卷的大小

文档

Amazon EC2: 如何扩展一个已有根卷的大小

注: 说明

  • 截止2019年,如果想要增加根积的大小,则此路径为推荐路径. 最佳的做法就是停止您的服务器进行初始快照,但严格地说,它并不需要.
  • 或者,请参见 遗留文件 数据迁移到新实例(数量较大)时,数据仍应相关。
  • 此页面仅与 EBS 备份 AWS EC2 实例相关。 如果您实例具有“ 存储” * , 建议您考虑 将文件移动到您的实例存储.

* - "Instance story"只可用在较旧的AWS实例大小上. I. 即较旧的TurnKey版本和/或较旧的AWS实例大小上. 如果您有 v14.2+ TurnKey 服务器, 几乎肯定会被 EBS 支持 。 早在v13.0的版本也可能是 EBS 备份,但双检查 AWS 控制台内部以确认,或者请发至 论坛 说明 TurnKey 版本和 AWS 实例大小/类型。

问题: 根文件系统已耗尽空间

这里有一个例子来说明这个问题. Alon通过TurnKey Hub发射一个Micro服务器. 几个月后,阿隆注意到他10GB根文件系统的空间几乎耗尽.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            486M     0  486M   0% /dev
tmpfs           100M  4.1M   96M   5% /run
/dev/xvda2       9.8G  9.8G   19M   100% /
tmpfs           498M     0  498M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           498M     0  498M   0% /sys/fs/cgroup

问题是服务器的根文件系统中只有10GB.

那么,Alon是如何增加存储大小的?

使用 AWS 控制台增加根音量大小

预期完成时间:40分钟至1小时。

这些指令假设您的服务器正在运行于 TurnKey Hub 密码,但还需要使用 AWS 控制台。如果你没有使用Hub(或TurnKey用于此事项),它们仍然一般应该相关,尽管你也许希望与该程序协商。 AWS 文档 更详细的细节 严格地说,与 AWS 控制台。

只要您能承受少量的服务器故障时间, 那么可以说解决这个问题的最佳方法就是通过AWS控制台来扩展根积. 如果你买不起任何停机时间,那么这个可以做现场直播, 但我会说,几分钟的停机时间值得考虑。

准备

首要任务就是创建备份。您可以为此使用 TKLBAM, 虽然在这种情况下, 我建议使用“ snapshot” ( 也?) 。 如果您空间极短, TKLBAM 可能不是一个选项 。 一个快照可以让你回到你现在所处位置, 并且可以减少麻烦( 不需要启动新服务器等) 。

虽然你可以拍摄运行服务器的快照,但为了备份的目的,亚马逊建议您拍摄停用的服务器的快照. 这是因为在拍摄运行中的服务器的快照时,数据腐败的可能性(非常小). 除非几分钟的停机时间会成为一个问题(甚至那时),否则似乎没有学识者听从这个建议。

如果你阻止服务器,从枢纽 服务器页面,选择您的服务器,使完整的信息滚动并点击停止。

一旦你准备好拍一个快照,仍然在Hub Server的页面上,寻找写着"x快照"的文本链接(其中的"x"是您已经拍到的快照的数量: 如果您以前没有拿过任何照片,则会变为“ 0 ”。单击该页和打开的页面,单击“创造快照”按钮。最初将显示“0%”,并需要一分钟或2分钟。 任何进展都看不到,请尝试刷新页面。一旦完成,您应该看到一个绿色圆圈。

在 AWS 控制台中查找您的 TurnKey 服务器

回到Hub的服务器页面(如果需要,再次滚动您的服务器信息),查找它写到的区域并注意这一点. 现在,在一个新的浏览器标签/窗口中打开您的 Amazon 控制台到 EC2 - 实例页面. . . . . . . . . 在顶端栏的 AWS 控制台中,向右上方(在显示您的用户名和“ 支持” 之间)单击下拉, 并确保区域匹配 您的Hub服务器已经进入(如果已经进入,请跳过该步骤)。

如果您只有一个停止的服务器/ 静态( 或者确定您需要与哪个服务器合作), 那么您可以跳过下一步 。 如果你们有两个或更多例子, 我建议你们做一个“搜索”。

为此,回Hub的服务器页面复制EC2例ID(我的情况下是"i-0c04e369a3d987199"). 粘贴到AWS控制台标签/页面顶端的搜索栏(默认情况下,搜索栏将包含"通过标签和属性或关键词搜索的Filter"的文本). 粘贴您的服务器/ 内置ID 并点击输入 。

增加体积大小

现在只有一次显示在您的 AWS 控制台上。 如果您没有得到任何结果, 请双次检查您是否选择了正确的区域, 并签名输入正确的 AWS 账户( 如果您使用多个账户) 。 关于您的服务器的进一步信息现在应该在下方的窗格中可行。在看到“ Root设备”之前,通过此盘滚动,它很可能是“ /dev/xvda”。

点击设备(例如我的情况中的/dev/xvda)和小黑弹出式(pop-over)应该出现一些关于EBS音量的信息. 点击 EBS ID(我的情况是"vol 02110c92a873ad915"),您应该重新定向到 AWS 控制台 - Volumes 页面,只显示所期望的音量.

右键点击您的音量并选择“ 修改音量 ” 。 弹出应打开。 请查看“ 音量” 在哪里。 我的“ 10” 正在使用 。 将这个数字增加到理想的音量大小( GB) 。 我要制作我的 20GB。 然后点击“ 修改” 按钮, 在下一个屏幕上点击“ 是 ” 。 汝应问讯绿语曰:"修卷请求成功". 这应该几乎立即发生,但可能需要刷新AWS控制台,以看到您音量显示达到理想大小(例如我的情况为20 GiB). 如果它不这样做,再试一次新鲜。

回中心: 重新启动您的服务器( 如果停止) , 并确认更大的音量

我们只需要AWS控制台, 所以你可以登录并关闭它。 如果您停止了服务器, 请返回 Hub 服务器的页面 。 在您的服务器上, 点击“ Start” 让它复活。 和往常一样, 需要一段时间才能使用 。 对于大多数服务器来说,这只需要几分钟(最多5分钟).

一旦您的服务器运行( 或如果它没有被停止的话, 直接离开) , 请通过 SSH 登录。 如果您要再次运行 df 命令, 您会注意到没有变化 。 这是因为我们只增加了音量大小。如果您愿意,可以检查音量是否确实更大,并使用格盘:

# gdisk -l /dev/xvda
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/xvda: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 8A333A04-DB02-4249-870C-EC5665D405BF
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 20971486
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            6143   2.0 MiB     EF02  grub
   2            6144        20969471   10.0 GiB    8300  rootfs

注意"Disk /dev/xvda: 41943040区段,20.0 GiB".

修改分区表并调整分区大小

接下来我们需要修正分区表(GPT),然后可以扩展分区以使用新的自由空间. 要扩展文件系统(并修复 GPT),我们将使用分机(默认应在所有 v15.x 服务器上安装) 。 用“ 分机” 命令启动它 。

# parted
GNU Parted 3.2
Using /dev/xvda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

首先, 使用“ 打印” 命令双重检查现有信息( 重用) 。 它应该提醒您并非所有空间都在使用, 并有选择修正它 。

(parted) print
Warning: Not all of the space available to /dev/xvda appears to be used, you can fix the GPT to use all of the
    space (an extra 20971520 blocks) or continue with the current setting?
Fix/Ignore?

允许它进行修补( 输入“ f” 之后输入) 。 它现在应该显示与我们早些时候运行的 df 检查相似的信息 。 虽然注意此显示GigaBytes(1Byte x 1000 x 1000),而不是GigiBytes(1Byte x 1024 x 1024),但如果数字不完全匹配,不要惊慌. 以我为例,显示21.5GB(即20GiB).

Fix/Ignore? f
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name    Flags
 1      1049kB  3146kB  2097kB               grub    bios_grub
 2      3146kB  10.7GB  10.7GB  ext4         rootfs

(parted)

要调整分区大小,请使用“ 调整分区” 命令 。 在默认设置中, 您想要更改分区 2 的大小, 但双向检查您的输出( 从“ print ” ) , 以确保您的匹配 。 请注意, 我忽略了修改使用中的分区的警告。 请注意, 我使用了全部空格( 即进入磁盘的最终大小 : 21. 5GB) 。

(parted) resizepart
Partition number? 2
Warning: Partition /dev/xvda2 is being used. Are you sure you want to continue?
Yes/No? y
End?  [10.7GB]? 21.5GB
(parted)

双倍检查是否全部与“ 打印” 同步。 如果有东西看起来不对, 您可以重运行“ 调整大小” 命令。 但是我的看起来还不错 。

(parted) print
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name    Flags
 1      1049kB  3146kB  2097kB               grub    bios_grub
 2      3146kB  21.5GB  21.5GB  ext4         rootfs

(parted)

接近完成; 扩展文件系统并完成

即使现在,如果你要退出并重新检查 df 的输出,你仍然看不到额外的新空间. 这是因为最后一步是扩展文件系统以填充分区. Parted的一些版本也可以做到这一点(IIRC命令是"rescorfs"),但那个我似乎没有这种能力,所以退出Parted ("quit"). 您可以安全忽略 /etc/fstab 的信息

(parted) quit
Information: You may need to update /etc/fstab.

然后在分区上运行“ 调整大小2fs ” :

# resize2fs  /dev/xvda2

如果我们现在检查df,我们会看到,免费的空间现在已经可以使用.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            486M     0  486M   0% /dev
tmpfs           100M  4.1M   96M   5% /run
/dev/xvda2       20G  9.8G   10.2G   48% /
tmpfs           498M     0  498M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           498M     0  498M   0% /sys/fs/cgroup

YAY,全部完成 ! (英语)

最后清理

个人来说,我想在删除快照之前 花几天时间安顿下来,以防万一,有些事情不太对劲,但不会马上出现。 说了这些,我以前就用不着了,不过,还是要给AWS多点钱,换个想法. 一旦你感到自信,你可以删除快照。如果您愿意,可以按照第一部分和这次找到快照,而不是创建,删除。

TURNKEYGNU / LINUX

无需从零开始,掌控自己的基础设施。

探索 TurnKey
关于文档常见问题博客GitHub
自由开源默认安全随时可部署