伺服器虛拟化已經做的越來越成熟和普及了,不管是Xen還是ESX或者是Hyper-V,其實難分伯仲,就我接觸過的客戶,大部分人的慣性思維是覺得Hyper-V是基于作業系統層面之上的,不如思傑或者威睿的效果好,其實不然;各家實作機制其實差異不大,最重要的還是上層所能提供的服務,是否切合使用者需要,能否實作一些客戶想要的功能,這才是有力的賣點,這次主要說一下在SCVMM裡做服務模版的一些方法
###################################################################################
我先用包含SQL服務的單層服務模版為例,之後再介紹一下包含Web應用程式的單層模闆,最後結合在一起來說一下雙層且支援負載平衡和橫向擴充的服務模版,那麼我們現在開始:
先通俗的說一下服務模版的概念,你就把他當成一套打包好的虛拟機組,當然也可以是單台,這一組虛機資源可以是隻有純作業系統(可以用服務模版來實作批量部署);或者是攜帶了你要推送出去的某種服務,SQL或者Web應用程式或者一些其他的虛拟化應用程式,總之就是說提供給使用者一套環境,這套環境可大可小,還可擴充,還可以實作負載平衡等,最好是讓使用者開箱即用;
以SQL服務模闆為例,首先你得有一個VM模闆,來作為服務模版的計算機層,那麼咱們就先來準備一個封裝好的OS,我的環境以Windows Server 2012 R2+SQL2012 SP1為基礎,先做SQLPrep,執行SQL安裝媒體,然後在進階中找到“映像準備”(我對微軟的翻譯特别不敢苟同。。。)
<a href="http://blog.51cto.com/attachment/201311/110524982.png" target="_blank"></a>
選擇你要用的功能,本來就沒提供幾種,都選了吧,另外說一下,不帶管理控制台,如果你想裝的話,可以封裝完了之後安裝,不沖突
<a href="http://blog.51cto.com/attachment/201311/110527690.png" target="_blank"></a>
注意這個執行個體ID,一定要用心記住,這個你起什麼名字都可以,但是無論你手動完成鏡像,還是通過SCVMM自動完成鏡像,你都需要再次輸入這個ID,這個ID不是執行個體名,是以,請,記,下,它
<a href="http://blog.51cto.com/attachment/201311/110529566.png" target="_blank"></a>
确認無誤之後直接點選“準備”
<a href="http://blog.51cto.com/attachment/201311/110532973.png" target="_blank"></a>
可以看到完成之後的一些幫助提示,這裡我不做過多說明;完成SQLprep之後我們需要把SQL的安裝檔案拷貝到這台機器的硬碟下,一般虛機我們可能習慣使用127GB+僅C槽這樣的配置,那麼我們就放在C:\SQL下,随便你建立個檔案夾都行,總之記得放進去,然後記住路徑
<a href="http://blog.51cto.com/attachment/201311/110535933.png" target="_blank"></a>
然後你就可以做Windows系統的sysprep了,這個我想大家都很熟練了,我個人習慣在做sysprep之前關閉防火牆,關閉IE安全設定,開啟遠端桌面,安裝.NET3.5;做好一切準備之後,我們把這台計算機轉換成模闆,留作接下來使用
<a href="http://blog.51cto.com/attachment/201311/110537189.png" target="_blank"></a>
############################################################################
我們有了VM模闆資源後,就開始準備做服務模版了,首先我們要做一個SQL的配置檔案,位置如下圖,起一個名字,比如SQLPrep
<a href="http://blog.51cto.com/attachment/201311/110540113.png" target="_blank"></a>
然後添加一個SQL server部署,這裡可以看到需要你輸入之前的執行個體ID,執行個體名你可以随意,預設用MSSQLSERVER就好,你起别的名字無所謂,然後可以輸入你的産品序列,不輸入自然就是評估版了,然後選擇運作方式賬戶,這裡用域管或者有足夠權限的賬戶就行
<a href="http://blog.51cto.com/attachment/201311/110544625.png" target="_blank"></a>
接下來輸入你SQL安裝檔案的存放路徑,我們之前放在了虛機的C:\SQL下,然後輸入你想賦予的管理者賬戶,若要啟用SA的話就在下面進行配置,然後選擇是否開啟命名管道或者遠端連接配接,此外你還可以上傳SQL的安裝配置檔案來進行更進階的自定義部署
<a href="http://blog.51cto.com/attachment/201311/110547912.png" target="_blank"></a>
最後設定服務賬戶,這裡我選擇了LOCAL SYSTEM,有關LOCAL SYSTEM,LOCAL SERVICE,NETWORK SERVICE之間的差别大家可以自己去百度一下
<a href="http://blog.51cto.com/attachment/201311/110551863.png" target="_blank"></a>
有了SQL配置檔案和VM模闆之後,我們就可以來做服務模版了;下圖是我做好的一個服務模版,我們就來看一下他的具體内容
<a href="http://blog.51cto.com/attachment/201311/110601560.png" target="_blank"></a>
點選服務模版,選擇“打開設計器”來進行編輯或檢視
<a href="http://blog.51cto.com/attachment/201311/110604210.png" target="_blank"></a>
這裡再提示一下:為了友善起見,請在你的VM模闆裡面選擇SQLserver配置,然後把我們建立的那個SQL配置檔案挂上去,這樣你的VM模闆和SQL配置就整合在一起了
<a href="http://blog.51cto.com/attachment/201311/110608523.png" target="_blank"></a>
打開設計器後,你可以建立一個服務模版,起一個名字,然後選擇層級類型,咱們是做單層,那麼你可以選擇single,或者你用空白更靈活一些
<a href="http://blog.51cto.com/attachment/201311/110611406.png" target="_blank"></a>
我選擇空白模闆,然後就會出來一個十分空曠的界面。。僅僅一個服務模闆名稱,這裡我們馬上來豐富一下内容,按照下圖添加一個VM模闆
<a href="http://blog.51cto.com/attachment/201311/110615432.png" target="_blank"></a>
選擇我們做好的那個包含SQL配置檔案以及SQL安裝檔案的VM模闆,直接拖拽出來即可
<a href="http://blog.51cto.com/attachment/201311/110618307.png" target="_blank"></a>
看到沒!有沒有?!完成了!沒錯,完成了,你現在看到下面的圖示,就是一個單層的服務模版,有沒有一種“你這不是坑爹呢麼”的感覺~~~;但是作為單層服務模版而言,确實就是這麼簡單,主要工作是你之前的資源準備,你可以看到在這個計算機層裡面,包含了一個SQL的内容,以及這個VM後面連接配接的VM網絡和邏輯網絡;之後點選左上方的“儲存和驗證”或者可以直接點選“配置部署”來建立這個服務
<a href="http://blog.51cto.com/attachment/201311/110622401.png" target="_blank"></a>
點選配置部署後,需要輸入一個服務名稱,這個名稱什麼意思,就是說你部署之後,這台虛拟機會帶有一個服務名稱,對客戶而言,他獲得不是一台空空如也的虛拟機而已,而是一個可以開箱即用的SQL執行個體,而且你可以選擇要把這個服務部署到什麼位置,是哪個Cloud
<a href="http://blog.51cto.com/attachment/201311/110625116.png" target="_blank"></a>
我們回到服務模版界面,上面的Publish與Revoke是可以把這個服務模版釋出到App-controller,或者撤回釋出,很靈活
<a href="http://blog.51cto.com/attachment/201311/110629807.png" target="_blank"></a>
下圖就是部署好的這個叫做“SQL setup”的服務,你可以認為這不就是一台虛拟機麼,是的,他所對應的背景資源确實僅有一台虛機,但如果你開啟了上方的“Scale-Out”橫向擴充功能呢?如果你這個模闆的計算機層是10台虛機呢?如果是包含Web應用+中間件+DB的三層結構呢?
那顯然我們需要一個統一的标示名稱,也就是一個服務名稱來傳遞給使用者,你不可能說“親,你申請的這套環境包含10台虛機,分别叫做VM01,02,03。。。”;是以說服務模版的意義就在于此,在概念上和普通VM模闆是有很大差别的,應用的場景不一樣
<a href="http://blog.51cto.com/attachment/201311/110632968.png" target="_blank"></a>
那麼服務推送出來之後,你可以對這個服務進行操作,停止,暫停,關閉等等;那麼他其實對應的是這套服務而言,舉例來說,你這個服務後面100台虛機,你一關,就全都shutdown了
最重要的是:一你點“delete”就全TM删除了。。。。。是以千,萬,别,手,欠
<a href="http://blog.51cto.com/attachment/201311/110636189.png" target="_blank"></a>
#####################################################################################
服務模版的概念以及建立單層模闆的方法先說這麼多,可能我講的比較潦草,當然這也是我個人對這項功能的一些認識,接下來我會寫一個Web應用的服務模版,然後再做一個兩層的支援負載以及可擴充的說明;其實多層的服務模版會複雜一些,可能需要依賴一些腳本來執行,否則無法實作開箱即用的效果;對于這方面如果有朋友能提供一些實際案例,非常歡迎交流~謝謝!
本文轉自maomaostyle 51CTO部落格,原文連結:http://blog.51cto.com/maomaostyle/1318411,如需轉載請自行聯系原作者