如何判断虚拟机是否受管理(未管理)?这意味着虚拟机是否只有(非)托管磁盘,因为这些磁盘不能混合(据我所知)。
我最初使用Azure Fluent SDK 。但我在这方面遇到了一些麻烦,甚至还有一些 issues .
找出答案的唯一方法是检查磁盘(或仅检查一个,因为它们不能混淆)并检查磁盘本身是否受(未)管理。是这样吗?
问题是如何查明磁盘是否受(未)管理?我的第一个想法是检查 OSDisk属性(或 DataDisk)
- 如果它具有 ManagedDisk/id 属性,那么它显然是托管磁盘。
- 如果它具有 vhd/uri 属性,那么它显然是非托管磁盘。
这看起来很简单(我很确定它至少在 99% 的情况下有效,但我真的需要 100% 确定),但如果你检查 source code Fluent SDK 库(由 Microsoft 提供,那么更好的事实来源是什么?)的逻辑要复杂得多。另外,我怀疑它是否正确(参见上面的错误)。
简而言之,在 100% 情况下检查虚拟机是否受管理的可靠方法是什么?
最佳答案
您对(非)托管虚拟机的所有认知都是正确的,我只是可以确认一下。而要区分虚拟机是否为托管虚拟机,只需检查操作系统磁盘是否为托管磁盘,即操作系统磁盘的属性 managementDisk
是否不为 null。
如您所知,托管磁盘和非托管磁盘不能混合使用。因此,如果操作系统磁盘是托管的,那么该虚拟机必须是托管虚拟机,因为每个虚拟机必须有一个操作系统磁盘。
关于azure - 如何查明 Azure 虚拟机是否受管理(未管理)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66030205/