我有一个产品,它使用CPU ID,网络MAC和磁盘卷序列号进行验证。基本上,当我的产品首次安装时,会记录这些值,然后在加载应用程序时,将这些当前值与旧值进行比较。
最近发生了一件非常神秘的事。在几周内未重新启动的Azure VM内部,我的应用程序无法加载,因为其中一些值不同。不幸的是,发现错误的人在引起我注意之前删除了VM。
我的问题是,当Azure VM运行时,哪些硬件资源可能会发生变化?这甚至可能吗?
谢谢!
答案 0 :(得分:5)
回答这个问题需要简要了解Azure的工作原理。
在每个数据中心,有数千台个人计算机。每台机器都运行一个虚拟机管理程序,允许许多操作系统共享相同的底层硬件。
当您启动角色时,Azure会查找可用资源 - 磁盘空间CPU RAM等,并在可用资源中启动相应OS VM的副本。我从您的问题中了解到这是一个VM角色 - 所以这个VM就是您上传或创建的VM。
只要您的VM正在运行,管理程序提供的基础虚拟资源就不会发生变化。 (需要注意的是,即使在运行时,Windows Server 2012的超级遮阳板也可以通过网络移动虚拟机。无论azure是否利用了这一点,我都不知道)
现在,即使您的角色已停止,Azure仍会向您收取费用,因为它会考虑您的角色并且已部署了#34;。所以从理论上讲,那些潜在的资源仍然属于"你的角色。
这不保证。 Azure可能会出于各种原因决定在不同的虚拟化硬件集上启动您的VM - 硬件故障位于列表顶部,容量不足是第二位。
甚至可能(不太可能)您的资源由不同的硬件节点提供。
另一个需要考虑的问题是,Azure策略是灾难恢复(或其他主要事件)可能包括将您的角色转移到完全在单独的数据中心中运行。
我的观点是底层硬件是虚拟的,否则处理它是最不明智的。角色受Azure管理例程的支配,我们无法提前预测他们可能做出的决策。
因此,您的问题的答案是所有底层资源都可能发生变化。而且非常非常可能。