【发布时间】:2014-06-03 20:01:02
【问题描述】:
我需要使用特定映像启动大约 500 个实例,才能处理需要 POSIX 访问超过 10GB 的大文件。根据该文档https://developers.google.com/compute/docs/images,不可能创建超过 10GB 的引导磁盘,我需要 POSIX 访问超过 10GB。这是否意味着我需要在每个实例上使用我需要的磁盘空间创建另一个非引导磁盘?还有其他方法吗?
【问题讨论】:
我需要使用特定映像启动大约 500 个实例,才能处理需要 POSIX 访问超过 10GB 的大文件。根据该文档https://developers.google.com/compute/docs/images,不可能创建超过 10GB 的引导磁盘,我需要 POSIX 访问超过 10GB。这是否意味着我需要在每个实例上使用我需要的磁盘空间创建另一个非引导磁盘?还有其他方法吗?
【问题讨论】:
该文档是指对操作系统映像大小的限制,而不是引导磁盘的大小。
您可以创建任意大小的启动盘,然后在创建实例时使用,例如:
gcutil adddisk "disk-1" --size_gb="15" --zone="europe-west1-b" --source_image="https://www.googleapis.com/compute/v1/projects/debian -cloud/global/images/debian-7-wheezy-v20140522"
gcutil addinstance "instance-1" --zone="europe-west1-b" --machine_type="n1-standard-1" --network="default" --external_ip_address="ephemeral" --metadata= "sshKeys:" --disk="disk-1,deviceName=disk-1,mode=READ_WRITE,boot" --auto_delete_boot_disk="true"
见:https://developers.google.com/compute/docs/disks#create_disk
【讨论】:
您可以使用Packer 在 GCE 上创建图像,这些图像将在启动时自动调整大小。我专门为这个问题创建了一个repo,其中演示了使用最新版本的 Debian-7 反向端口或容器优化的 VM 映像的自动调整大小的映像。
首次启动时自动调整根分区的大小
此软件包为由 initramfs-tools 构建的 initramfs 添加了功能。安装后,initramfs 将对磁盘进行重新分区,以使根卷占用它后面的所有空间。
除非您知道自己在做什么,否则您很可能不想要这个包。当磁盘可以配置的大小大于其原始大小时,这主要在虚拟化环境中很有趣。在这种情况下,安装此软件包后,您可以自动使用新空间,而无需重新启动以重新读取分区表。
请参阅我的脚本growroot.sh 了解详细信息以及如何使其适应您的用例。
【讨论】:
你有两个选择:
创建一个大于 10GB 的启动盘,但是你需要重新分区,因为默认情况下,提供的 VM 映像会扩展到 10GB,所以你需要使用these instructions 并运行fdisk,重新启动,然后运行resize2fs 将可用空间扩展到磁盘的完整大小。您可以使用startup scripts 将其自动化,使其作为实例创建的一部分运行。
另一种选择是创建一个单独的永久磁盘并单独附加它,但它不会是启动磁盘,而只是一个数据磁盘。为此,您可以使用same page 上的说明,即:
gcutil adddisk [...]gcutil attachdisk [...],除非在实例创建过程中通过gcutil addinstance --disk=disk1 --disk=disk2 [...] 添加了启动盘和数据盘,在这种情况下不需要这样做/usr/share/google/safe_format_and_mount [...] 将其余部分自动化【讨论】:
您可以轻松地做到这一点,而无需手动调整磁盘大小/分区/格式化磁盘或 StackOverflow 上所有其他答案中引入的任何并发症。请在此处查看我的回答,了解如何做到这一点:How to get a bigger boot disk on Google Compute Engine
【讨论】: