2013-10-15 32 views
6

我們有一臺虛擬機,聲稱SampleVM在Windows Azure環境上運行並運行在&上,同樣我們創建了2個實例一個是WebRole &另一個是WorkerRole運行在Slot分段上。如何停止WebRole/WorkerRole的單實例/虛擬機

我的問題是我能夠通過powershell命令啓動/停止SampleVM,但是如何啓動/停止運行在SampleVM上的單個實例(WebRole或WorkerRole)。

但是,當我停止SampleVM時,實例也停止,但我只想停止一個實例/ VM,即WebRole或WorkerRole。

請提供一些PowerShell命令與參數傳遞給停止/啓動一個實例

+0

感謝您進行更多的澄清,但在閱讀後,我的印象並不清楚我的案例圖片,因此這裏是我的案例的一些可視化,如下所示:當我們點擊「SampleVM」時,在Azure Portal中,它打開了一個頁面,其中包含多個選項卡,例如儀表板,監視器,配置等,並且當我點擊它時顯示一個新框架,其中在頂部相同的標籤頁上顯示一個新框架, 2 ... – user2881983

+0

...第一個插槽是Production&另一個是Staging&當我點擊暫存時,它會顯示一個表,其中2個節點/虛擬機/實例顯示,狀態顯示在那裏運行,這只是可視化我的情況照片.....現在我能夠通過powershell命令啓動/停止「SampleVM」,因爲這兩個運行實例/節點/虛擬機/角色也停止....我的概率是我只想要st運行/啓動單個角色/虛擬機/節點/實例,無論我們稱之爲在臨時插槽下創建的那些節點...下面的 – user2881983

+0

是我可以停止/啓動雲服務的命令「Stop-AzureService -ServiceName」SampleVM「 -Slot Staging「......現在請大家指出一些問題並提供一些幫助或建議如何停止/啓動特定雲服務名稱」SampleVM「中的特定實例。 – user2881983

回答

3

簡單的答案是,截至今天,你不能阻止你的Web /輔助角色的單一實例。當您停止角色時,所有實例都會停止。 您可以從角色中刪除實例,但又無法指定要刪除的特定實例。請參閱下面的@ kwill的答案。

您還可以找到以下鏈接刪除特定角色實例有用:

http://gauravmantri.com/2013/10/16/a-new-version-of-windows-azure-service-management-api-is-available-with-delete-specific-role-instances-and-more-goodies/

https://github.com/richorama/Two10.Azure.SelfDestruct

6

由拉夫很好的答案,但我想添加更多的細節,因爲我覺得有可能會對網絡和工作者角色產生一些困惑。每個角色是一組虛擬機的定義,這些虛擬機執行的操作與您構建的相同(您不需要處理操作系統 - 只需啓動應用程序,Azure負責虛擬機本身)。

當Cloud Service運行時,每個角色類型至少有一個實例。所以在你的情況下,運行一個web角色和worker角色,你至少會有兩個虛擬機在運行。

如果您選擇將Web角色擴展爲3個實例,然後決定將其撥回2個實例,則無法選擇要關閉哪一個;這由Azure的結構來處理。請記住,角色的每個實例都運行相同的代碼,並且Azure將流量負載平衡到角色實例(通過您定義的外部端點)。唯一需要擔心的是關機。你有約。 5分鐘清理所有正在運行的進程(並且由於您收到Stopping()事件,因此您可以在關機期間輕鬆從負載平衡器中取出特定實例)。

您無法關閉雲服務中的整個角色(例如,角色的所有實例)(因此......您無法在保持Web角色實例運行的同時取消您的輔助角色實例)。如果這是一項要求,那麼您始終可以考慮在一個Cloud Service中運行Web角色,並在另一個Cloud Service中運行輔助角色。如果他們使用隊列傳遞數據,那麼所有內容仍然可以像以前一樣工作。如果Web角色實例需要直接訪問工作者角色實例,則可以將兩個Cloud Services都放入虛擬網絡中。

還有一件事要考慮:你不要必須有不同的角色。如果成本是一個因素,你可以在你的web角色中運行你所有的代碼。在OnStart()期間花費很少的工作來啓動Web角色中的其他進程/線程 - 記住角色實例是完整的Windows Server虛擬機;運行任何你想要的。對於單個角色定義,縮放比較粗糙:所有內容都縮放在一起。使用不同的角色,您可以微調您的縮放比例(在構建更大的系統時更重要)。

4

David關於如何建模PaaS服務的更廣泛的觀點都是正確的。但是爲了增加它,有一個新的服務管理API剛剛發佈,稱爲刪除角色實例,它可以讓你刪除一個角色的特定實例 - http://msdn.microsoft.com/en-us/library/windowsazure/dn469418.aspx。此功能是全新的功能,允許您選擇要刪除的實例,而不是遵循David描述的默認結構行爲(始終刪除最後一個實例)。

相關問題