GCE 中的根磁盘大小为 10 gig。我该如何增加这个?我在控制台或 gcutil 标志中找不到该选项。这可以在 AWS 中轻松完成。
9 回答
自 2016 年 3 月 31 日起,您可以在线调整永久性磁盘的大小,而无需停止或重新启动 VM,无需拍摄快照,也无需将其还原到更大的磁盘。
宣布该功能的博客文章有详细信息,您可以通过控制台查看有关如何执行此操作的文档:
在 Google Cloud Platform Console 中调整永久性磁盘的大小:
- 转到计算引擎页面。
- 单击边栏中的“磁盘”
- 单击要调整大小的磁盘的名称。
- 在磁盘详细信息页面的顶部,单击“编辑”。
- 在“大小”字段中,输入磁盘的新大小。
- 在磁盘详细信息页面的底部,单击“保存”以将更改应用到磁盘。
- 调整磁盘大小后,您必须调整磁盘分区的大小,以便操作系统可以访问额外的空间。
或通过 CLI:
gcloud compute disks resize example-disk --size 250
然后,在 Debian/Ubuntu/etc 上。跑:
$ sudo apt install -y cloud-utils # Debian jessie
$ sudo apt install -y cloud-guest-utils # Debian stretch, Ubuntu
$ sudo growpart /dev/sda 1
$ sudo resize2fs /dev/sda1
或者,对于 RedHat/Fedora/CentOS/等:
$ sudo dnf install -y cloud-utils-growpart
$ sudo growpart /dev/sda 1
$ sudo xfs_growfs -d / # CentOS 6 needs `resize2fs`
请注意,某些操作系统会在重新启动时自动调整分区大小,而无需您使用或等工具执行任何手动步骤fdisk
,因此只需调整磁盘大小并重新启动 VM 以使更改生效就足够了。resize2fs
xfs_growfs
- 从快照创建一个新磁盘,但这样做时会增加大小
- 使用新的扩展磁盘创建一个新实例
- embiggen 分区以识别新空间(https://cloud.google.com/compute/docs/disks/persistent-disks#repartitionrootpd)(注意:要特别注意起始扇区,不要只是盲目地按回车,你可以,但是盲目地点击结束扇区的返回)
- sudo resize2fs /dev/sda1 (注意,谷歌云文档中没有提到这一步)
在大多数情况下,创建第二个所需大小的数据盘并将其附加到实例会更简单、更灵活。
要调整永久磁盘(包括根磁盘)的大小,请对磁盘进行快照,然后从快照创建一个更大的新磁盘。
这更像是@user1130176 的回答的后续,但如果您运行的是 CentOS 7+,则需要对步骤 4 执行以下操作(扩展文件系统):
xfs_growfs /dev/sda1
CentOS 7 上的新磁盘类型为xfs
. 希望这会有所帮助,从周围的所有链接中都不是很清楚。
由于新的 GCoud 命令行工具,您可以在创建实例时选择引导磁盘大小和类型:
gcloud compute instances create foo-instance --boot-disk-size 100 --image "xxxxxx"
然后使用以下说明调整根分区的大小:https ://cloud.google.com/compute/docs/disks#repartitionrootpd
文档:https ://cloud.google.com/sdk/gcloud/reference/compute/instances/create
编辑:调整根分区大小后,您必须重新启动实例以强制系统重新读取分区表。这使得这个技巧在启动脚本中无法使用(在每次启动/重新启动时执行)。
我知道这是一个老话题,但我只是使用比上面解释的更简单的方法来做到这一点。一切都来自云控制台用户界面,无需担心或在几分钟内执行任何特殊命令并单击。
但是,它需要创建一个新实例,而不是在已经运行的实例上调整磁盘大小
创建要放大的磁盘的快照
单击实例,然后单击磁盘,然后您有“创建快照”,为其命名,然后等待创建快照。(您不需要为此关闭实例)
从快照创建一个新实例并指定新大小
单击快照,然后您有“创建实例”,然后您可以看到启动磁盘选项,单击更改,然后将其调整为新大小。(您可能还想将所有默认实例设置更改为您想要的设置)
这是一种在不引起任何分区错误的情况下扩大磁盘的简单方法,不需要任何命令或特殊操作。
唯一的缺点是您需要创建一个新实例。您不能只在已有的实例上执行此操作。
现在您可以就地调整永久磁盘的大小:
gcloud compute disks resize DISK_NAME [DISK_NAME …] --size SIZE [--zone ZONE]
这只会重新调整物理设备的大小。文件系统(之后可能还需要调整分区)
首先使用您想要的任何大小和映像创建一个磁盘,然后使用现有磁盘作为您的启动源创建您的实例。
对于其他无法找到有效答案的人,我发现有人友好地发布了这个脚本:
https://gist.github.com/xelwarto/6f5c6556613c9215b1e1
# Requires cloud-utils-growpart to be installed
# Resize ROOT FS
part=`df --output=source / |grep "/dev/"`
if [ ! -z "$part" ] ; then
len=${#part}
p=`echo $part|cut -c$len`
d=`echo $part|cut -c1-$(($len-1))`
growpart "$d" "$p"
xfs_growfs "$part"
fi