我想执行以下操作:创建一个 VHD,在那里复制一个文件树,然后将 VHD 文件上传到 Azure blob 存储,然后当我的 Azure 角色启动时,我将下载 VHD 并将其挂载并以只读方式使用它。我事先知道文件树,因此我可以在固定大小的 VHD 和可扩展的 VHD 之间进行选择。
可扩展看起来更方便,但我怀疑它可能有一些开销,然后我可能会得到比固定文件更大的文件。
使用可扩展的 VHD 会产生更大的文件吗?在这种情况下,可扩展 VHD 有什么问题吗?
我想执行以下操作:创建一个 VHD,在那里复制一个文件树,然后将 VHD 文件上传到 Azure blob 存储,然后当我的 Azure 角色启动时,我将下载 VHD 并将其挂载并以只读方式使用它。我事先知道文件树,因此我可以在固定大小的 VHD 和可扩展的 VHD 之间进行选择。
可扩展看起来更方便,但我怀疑它可能有一些开销,然后我可能会得到比固定文件更大的文件。
使用可扩展的 VHD 会产生更大的文件吗?在这种情况下,可扩展 VHD 有什么问题吗?
“捕获”不是增加文件大小,事实上,精简配置/动态可扩展磁盘的真正目的是减少它们在磁盘上的大小。
[主要]权衡是在所有情况下的性能,以及在大多数情况下过度承诺的风险(随着容量的增长而耗尽空间)。如果您监控磁盘使用情况并小心避免让可扩展 VHD 增长超过存储大小,则可以相对轻松地避免过度承诺问题(但这取决于您拥有的数量和虚拟环境的复杂性) ,您可以通过某些磁盘设置在一定程度上缓解性能问题。
(关于 VHD 架构的 MS 文章可能会有用。)
动态大小的 VHD 的读取性能较慢,您可能还需要考虑其他性能因素 - 例如如果您有一堆 VHD 同时增长,您的主机和/或存储会发生什么情况,因为您将采取那里的表演也很成功。加上其他与存储相关的考虑因素,例如动态大小的 VHD 变得碎片化/不连续,以及与重复数据删除和快照的交互,您的环境限制可能决定它们是否是一个好主意。
作为一般规则,如果您知道所需的大小,并且现在有足够的空间来分配它,那么固定大小/厚置备磁盘是更好的选择。至少,您会获得稍微好一点的性能,并且少了一件需要担心的事情。但是,如果您迫于空间压力,并牢记这几点,那么走动态/瘦路线也没有错。事实上,有人可能会说动态磁盘并不是一个可怕的默认选择,因为可扩展的虚拟磁盘在需求发生变化并且有人需要将几十个额外的东西塞到你的磁盘上时让你有更大的灵活性。与其他一切一样,这取决于您的环境。