2014-04-01 48 views
1

我有一個產品使用CPU ID,網絡MAC和磁盤卷序列號進行驗證。基本上,當我的產品首次安裝時,會記錄這些值,然後在加載應用程序時,將這些當前值與舊版本進行比較。Azure更改硬件

最近發生了一件非常神祕的事情。在數週內尚未重新啓動的Azure虛擬機中,我的應用程序無法加載,因爲其中一些值不同。不幸的是,在引起我的注意之前,發現錯誤的人刪除了虛擬機。

我的問題是,當Azure虛擬機正在運行時,可能會更改哪些硬件資源?這甚至有可能嗎?

謝謝!

+0

它是一個完整的VM還是一個服務角色? –

+0

這是一個完整的虛擬機。 – BigHands79

回答

4

回答此問題需要簡短介紹Azure的工作原理。

在每個數據中心中都有數千臺獨立機器。每臺機器運行一個管理程序,允許多個操作系統共享相同的底層硬件。

當您啓動一個角色時,Azure會查找可用資源 - 磁盤空間CPU RAM等,並在相應的資源中啓動相應OS虛擬機的副本。我從你的問題中瞭解到,這是虛擬機角色 - 所以這個虛擬機就是你上傳或創建的虛擬機。

只要您的虛擬機正在運行,虛擬機管理程序提供的底層虛擬資源不太可能發生變化。 (需要注意的是,windows server 2012的hyper visor可以通過網絡將虛擬機移動到網絡中,無論azure如何利用這一點,我都不知道)

現在,Azure不斷收費即使您的角色由於認爲您的角色「已部署」而已停止。所以從理論上講,這些底層資源仍然「屬於」你的角色。

這不能保證。 Azure可能會決定在不同的虛擬化硬件集上啓動虛擬機,原因有很多 - 硬件故障位居榜首,容量不足是次要的。

甚至有可能(不太可能)您的資源由不同的硬件節點提供。

另一個需要考慮的問題是,Azure的政策是災難恢復(或其他主要事件)可能包括將您的角色轉移到完全獨立的數據中心中運行。

我的觀點是,底層硬件是虛擬的,否則它是最不明智的。角色受到Azure管理例程的控制,我們無法事先預測他們會做出什麼決定。

所以你的問題的答案是,所有的底層資源可能會改變。這是非常非常可能的。

+0

感謝這個奇妙的信息,羅伯託。瞭解你所做的細節,你會對Azure VM「常量」有任何建議,我可以用它來代替硬件常量(這在Azure中顯然不是常量)。 – BigHands79

+0

這個答案的整體情緒是正確的(硬件可能會隨時改變),但有幾件事情要清理: * Azure今天不做虛擬機的實時遷移 *容量不足不會導致你的VM。只有硬件故障會導致這種情況。 *一個虛擬機在一個物理節點上運行。沒有爲一個虛擬機提供資源的不同硬件節點的概念。 * Azure不會將您的虛擬機移動到不同的數據中心。 – kwill

+0

謝謝kwill。我一直無法找到關於這個話題的很多信息;你能分享一些你的資料嗎? – BigHands79