Windows Azure自從2012預覽版開始添加了新的虛擬機功能。作為這個新功能的一部分,Windows Azure發布了一個新版本的Windows Azure管理門戶,這個門戶在原有的基礎上增加了額外的新功能。
這篇文章提供了作為Windows Azure中提供新服務的新基礎構架的預覽。
- Windows Azure虛擬機
- Windows Azure虛擬網絡
- 遷移Windows Azure虛擬機需考慮事項
- 使用Windows Azure虛擬機時的高可用性和災難恢復
Windows Azure虛擬機
您可以使用下述三種方法之一在Windows Azure中創建虛擬機:
-
使用平台提供的虛擬鏡像:您可以直接使用由Windows Azure管理門戶提供的鏡像畫廊作為模版創建您自己的虛擬機。使用這種方法不需要上傳任何您在本地創建的Windows Server或是Linux鏡像。您可以通過管理門戶,PowerShell或是可編程的API接口(REST)甚至是為Mac或Linux桌面提供的命令行程序。當虛擬機創建成功后,您可以登錄到虛擬機並對其進行管理。對於運行Windows Server曹旭哦系統的虛擬機來說,您可以在管理門戶中點擊“連接”按鈕來開始遠程桌面連接。對於運行Linux操作系統的虛擬機,您可以使用安全Shell(SSH)客戶端來登錄,關於如何在Windows,Max,Linux創建、部署、管理虛擬機的詳細信息,請參閱WindowsAzure.com網站。
-
使用您自己的鏡像:您可以使用由Windows Azure軟件開發包(SDK)所提供的CSUpload命令行工具來上傳作為鏡像的VHD文件到Windows Azure。您僅僅需要將鏡像上傳到您的Blob存儲賬戶后使用這個鏡像來實例化一個虛擬機。更多信息,請參閱 Creating and Uploading a Virtual Hard Disk that Contains the Windows Server Operating System。
-
使用您自己的磁盤:操作系統鏡像實際上就是一個您可以用於作為模版創建虛擬機的虛擬硬盤文件。鏡像僅僅是一個文件是因為其並沒有設置諸如用戶賬戶信息等配置文件。但是如果您的程序需要一些已經在本地配置好的的配置信息才能運行您或許就不能通過模版創建虛擬機文件了。在這種情況下,您可以使用CSUpload命令行工具上傳作為磁盤的VHD文件。舉個例子,您的磁盤中已經安裝了SQL Server,此時如果您依然從模版創建虛擬機,那您就的負責授權文件的配置。
在您初始化虛擬機鏡像之后,您就需要為操作系統和軟件的打補丁、配置和維護。Windows Azure會定期更新Windows Azure平台提供的基本鏡像文件。但是Windows Azure並不會強制已經由客戶部署的操作系統對應升級。類似的,Linux系統鏡像也會定期更新。更多關於價格的詳細信息和服務級別協議,請在WindowsAzure.com參閱Windows Azure法律信息。注意您可以在下面列表中查看有關鏡像和磁盤定義的重要信息。
下述列表是在Windows Azure上運行的虛擬機所支持的程序。
程序 | 細節 |
Microsoft SQL Server |
|
Windows Server 活動目錄 |
支持版本:Windows Server 2008 R2。 |
Microsoft SharePoint |
支持版本:SharePoint 2010 的所有版本。 |
Linux Support |
您可以上傳一個Linux虛擬硬盤(VHD)文件到Windows Azure中,更多關於Windows Azure支持Linux的版本的信息,請參閱Windows Azure管理門戶 。 |
對於最新關於Windows Auzre虛擬機中支持的微軟的軟件信息,請參閱微軟服務器軟件支持部門。
關於虛擬機的基礎信息,請參閱MSDN中關於虛擬機的主題。
關於如何在Windows Azure中管理虛擬機的細節信息,請參閱管理中心,這部分信息也可以在WindowsAzure.com網站下載到。站點中還有how-to指南,PowerShell命令集合以及您可以在Windows,Mac,Linux平台上使用的命令行工具。您還可以使用REST API和PowerShell命令行工具來管理您的程序和虛擬機。更多洗洗,請在MSDN中參閱WIndows Azure服務管理API參考和Windows Azure管理命令集合。
重要概念的列表
- 操作系統鏡像是一個您可以用來作為模版創建新的虛擬機的虛擬硬盤文件。鏡像被成為模版是由於其上不像配置好的虛擬機那樣有特定的配置,這些配置包括電腦名稱和用戶賬戶設置。
- 虛擬機磁盤是可以被當作一個當前的操作系統裝載和啟動的虛擬硬盤。磁盤還可以被作為獨立於操作系統磁盤的磁盤附加到一個運行中的實例中。當您在Windows Azure管理門戶創建了一個虛擬機之后就會默認為操作系統創建一個磁盤。我們推薦您為您的數據和日志文件創建一塊額外的磁盤。更多信息,請參閱How to Attach a Data Disk to a Virtual Machine 和 How to Detach a Data Disk from a Virtual Machine。
- 您可以將正在運行的虛擬機捕獲為一個鏡像,但這個操作並不會捕獲附加磁盤。被捕獲的虛擬機可以用於創建多個虛擬機。最終結果是在相同的存儲賬戶中多了一個剛捕獲的虛擬機操作系統所在磁盤的鏡像。更多關於捕獲虛擬機的鏡像的相關信息,請參閱How to Capture an Image of a Virtual Machine Running Windows Server 2008 R2 和 How to Capture an Image of a Virtual Machine Running Linux。
- 一個Windows Azure程序可以存在多個虛擬機。您在Windows Azure中創建的虛擬機都可以和在同一個Could Service或是虛擬網絡的其它虛擬機使用私有網絡通道進行交互。Windows Azure允許您在這多個虛擬機之間進行負載均衡。Windows Azure Training Kit中ntroduction to Windows Azure Virtual Machines Hands-on-Lab 這篇文章闡述了如何連接到多個Windows Azure虛擬機,除此之外,您還應該看看下面的指南:
Windows Azure虛擬網絡
作為新的Windows Azure預覽版功能的一部分,Windows Azure提供了一個新的網絡虛擬化集合以及基於VPN跨域的站點到站點的網絡。您可以通過Windows Azure管理門戶或是一個網絡配置文件來提供和管理虛擬網絡。Windows Auzre虛擬網絡提供了下述功能:
- 在雲端的分支辦事處或是專用的私有虛擬網絡:您可以通過VPN將您企業網絡的一部分擴展到Windows Azure上。通過配置VPN設備連接到Windows Azure VPN網關,您可以為您的企業網絡和Windows Azure之間建立一個安全的站對站連接。您在Windows Azure上的虛擬機可以加入到您運行在企業內部的域。更多關於建立安全的跨域解決方案的信息,請參閱:Windows Azure Virtual Network and About VPN Devices for Virtual Network。
- 為虛擬機配置靜態的IPV4地址:您可以為您在Windows Azure上運行的虛擬機設置IPV4地址空間。當您創建虛擬網絡時,你可以為機器指定IPV4地址空間。虛擬機接收的IP地址是靜態的並且不會隨着虛擬機的重啟而改變。IP地址會被DNS記錄並且您可以通過主機名來連接虛擬機。更多關於創建虛擬網絡的信息,請參閱:Windows Azure Virtual Network。
- 對於虛擬網絡的名稱解析(DNS):有很多方式可以為您的虛擬網絡提供名稱解析。您可以使用Windows Azure的名稱解析方案或是您可以使用自己的DNS服務器。更多關於名稱解析和Windows Azure的解決方案,請參閱:Windows Azure Virtual Network 和 Windows Azure Name Resolution Overview。
- Windows Azure虛擬機上的活動目錄: 您可以在雲上利用企業內部現有的活動目錄和DNS服務器。Windows Azure虛擬機特性允許您通過企業內部的活動目錄服務使得運行在Windows Azure上的虛擬機加入到企業內部的域。更多信息,請參閱:Guidelines for Deploying Active Directory on Windows Azure Virtual Machines。
下圖展示了Windows Azure虛擬機使得客戶可以輕松的將企業網絡延伸到Windows Azure上。這使得將現有的程序遷移到Windows Azure上變得很有優勢。您可以更簡單的支持橫跨雲端和企業內部的混合應用程序。您還可以管理Windows Azure中您自己的虛擬網絡並通過VPN網關建立企業內部和雲端的連接。因此您就可以使運行在Windows Azure上的虛擬機加入到運行在企業內部的域。
如圖所示,在Windows Azure虛擬網絡中,您可以設立活動目錄域並開啟DNS服務同時SQL Server安裝在另一個虛擬機中。然后您的程序代碼可以托管到在另一台Windows Azure虛擬機中Windows Azure Web角色中。
關於更詳細的虛擬網絡指南以及How-to指南,請參閱WindowsAzure.com的Networking。
當遷移到Windows Azure虛擬機時需要考慮的方面
使用Windows Azure虛擬機可以消除程序對某些資源的依賴。您可以將應用程序直接作為虛擬機遷移以便快速直接的利用Windows Azure的優勢。除此之外,您可以連接諸如Web Sites或是Cloud Services Web或是Worker角色的虛擬機。
下面例子是可以利用Windows Azure優勢的一些模式:
- 遷移存在的非關鍵數據庫程序
- 由於Windows Azure SQL Database並不支持SQL Server所有的特性,所以將程序部署到虛擬機中的SQL Server當中
- 為新的數據庫應用程序快速簡單的部署開發和測試環境
- 對於企業內部數據庫程序的備份方案
- 對於企業內部高峰期的一個擴展方案
- 客服企業內部虛擬化平台效率過低的解決方案
- 對於需要的某些資源比如SQL Server,互動目錄,MongoDB,MySQL,SharePoint等依賴於虛擬機的解決方案
當您考慮將企業內部的程序遷移到雲平台時,我們推薦您自習的計划好每一步。通常來講這些步驟會包括分析階段、應用程序遷移階段、數據遷移階段、測試和優化階段、操作和管理階段。關於每一個步驟的更詳細信息,請參閱:Overview of the Migration Life Cycle in Windows Azure。
我們推薦通過在MSDN中Migrating to SQL Server in a Windows Azure Virtual Machine章節所描述的方式將您的SQL Server數據庫以及其中的數據遷移到Windows Azure的虛擬機中。然后,上傳和附加包含數據的數據盤到虛擬機中,或是附加一個空盤。您可以使用數據磁盤存儲SQL Server的日志和數據文件,比如說看Windows Azure Training Kit的Connecting a PAAS application to an IAAS Application with a Virtual Network Hands-on-Lab章節。這個動手實驗營講述了如何附加一個空盤以及如何更新數據庫的位置以便使用剛剛附加的空盤。除此之外,您還可以看WindowsAzure.com站點的下述指南:
- How to Attach a Data Disk to a Virtual Machine
- How to Detach a Data Disk from a Virtual Machine
- Provisioning a SQL Server Virtual Machine on Windows Azure
在Windows Azure虛擬機上的性能取決於多個因此,包括VM的大小、磁盤的數量和配置、網絡、數據庫軟件的配置以及應用程序負載。我們推薦開發人員在不同大小的VM測試性能基線。關於更多在虛擬機中使用SQL Server時需要考慮的性能問題,請參閱:Running SQL Server in Windows Azure Virtual Machine - Performance Guidelines for Preview。對於虛擬機中使用SQL Server的入門指導,請參閱:Getting started with SQL Server on a Windows Azure Virtual Machine。
使用Windows Azure虛擬機時的高可用性和災難恢復
為了給數據和磁盤提供災難恢復,Windows Azure利用最近發布的Windows Azure Storage中的Geo-Replication功能。所有由程序或者客戶對於客戶自己磁盤所做的操作都會被保留以便在硬件失敗的情況下進行恢復,通過使用Windows Azure Blob Storage,正如在Introducing Geo-replication for Windows Azure Storage這篇博文所述的那樣,Windows Azure 中的Blob和表會在同一個大陸上的不同數據中心進行復制,這樣就可以在不為客戶增加額外成本的基礎上提供了額外的數據持久性保障。當啟動虛擬機時,Windows Azure Storage會自動將您的操作系統和數據磁盤復制到另一個地理位置。
除此之外,您還要保證虛擬機處於同一個可用集合。同一個可用集合中的多個虛擬機可以保證在網絡故障,本地硬盤故障以及計划內的停機故障時程序依然可用。
關於使用在Windows Azure虛擬機中的SQL Server所涉及的高可用性和數據恢復技術,請參閱Migrating to SQL Server in a Windows Azure Virtual Machine。