gpt4 book ai didi

google-compute-engine - 在不关闭实例的情况下调整云 VM 磁盘的大小(谷歌云)

转载 作者:行者123 更新时间:2023-12-03 19:07:09 25 4
gpt4 key购买 nike

所以我看到谷歌计算中有一个选项(我假设其他云 VM 供应商中存在相同的选项,所以问题不是专门针对谷歌计算,而是底层技术)来调整磁盘大小而无需重新启动机器,我问,这怎么可能?

即使它对磁盘使用了某种抽象,并且他们实际上并没有为 VM 分配物理磁盘,而是只是磁盘的一部分(或多个磁盘的一部分),一旦在 guest 中创建了磁盘VM 有一定的大小,如何在不重启的情况下改变它?它以某种方式利用 NFS 吗?

最佳答案

如今,这已直接内置到磁盘协议(protocol)中。这种功能已经存在了一段时间,因为自 1990 年代末以来磁盘已经虚拟化(通过 iSCSI/FibreChannel 等网络协议(protocol),或通过 VMware 等硬件的软件模拟版本)。

与 VMware 模型一样,GCE 不需要任何额外的网络跃点或协议(protocol)来执行此操作;管理程序只是将虚拟磁盘作为物理设备公开, guest 知道其大小可以更改并进行处理。 GCE 为其磁盘使用一种特定于虚拟化的驱动程序类型,称为 VirtIO SCSI,但此功能也在许多其他驱动程序类型(跨许多操作系统)中实现。


由于磁盘可以随时调整大小,因此磁盘协议(protocol)需要一种方法来告诉 guest 已发生更新。一般而言,这在大多数协议(protocol)中的工作方式如下:

  • 管理员通过管理程序 UI(或他们正在使用的任何存储虚拟化 UI)调整磁盘大小。
  • guest 内部不会发生任何事情,直到它向磁盘发出 IO。
  • guest 操作系统通过 guest 操作系统中的设备驱动程序向磁盘发出 IO 命令。
  • Hypervisor 模拟该 IO 命令,注意到磁盘的大小已调整且访客尚未收到警报,并向访客返回一个响应,告诉它更新其设备 View 。
  • guest 操作系统识别此响应并通过其他命令重新查询设备大小和其他详细信息。

我不是 100% 确定,但我相信其结构如此的原因是传统上磁盘无法向操作系统发送更新,除非操作系统首先请求它们。这可能是因为磁盘无法知道哪些内存可以自由写入,即使知道,也无法与操作系统同步对该内存的访问。但是,这些限制在启用超高吞吐量/超低延迟 SSD 和 NVRAM 方面变得越来越不真实,因此新的磁盘协议(protocol)(如 NVMe)可能会略有不同(我不知道)。

关于google-compute-engine - 在不关闭实例的情况下调整云 VM 磁盘的大小(谷歌云),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53248096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com