2013年9月21日

Windows Azure - 在Azure上建立SQL Server AlwaysOn需要的容錯移轉叢集

會出現這個主題,主要是因為最近在使用SQL Server AlwaysOn,而AlwaysOn需要架設在Windows Server Failover Clustering Cluster之上,如下圖;而又因為目前的環境全部都在Azure下,所以這篇主要是從Azure下的角度去建立,但基本上,和在Local環境下並無甚麼不同,另外,如果有興趣的朋友,也可以考慮使用Azure Virtual Network來建立混和雲的架構,而基於著個因緣,小弟就只能動手開始架設,並且做個紀錄。

P.S 這篇的建置文,主要是為了符合SQL Server AlwaysOn的架構,如果想真的學習容錯移轉叢集,請參考TechNet。

在開始前,需要提醒大家,如果要在Azure上架設WSFC,要先建立Azure Virtual Netowrk,而且也必須要有一台AD Server,建議是將此AD Server也放在Azure,如果要放在Local,則就必須利用Virtual Network的Site-To-Site或是Point-To-Site來進行VPN的連線;另外在Azure的VM,如果有設定Virtual Network,它會自動跳號,而每個IP會對應到前端的LB,所以Private IP是不可以改的!!(改了話,遠端就登不進去了- -+),所以請特別注意。( 總之,都不是件輕鬆的事情啊- -… )

如果是要在Local端建立,就輕鬆許多,只要有AD,然後有兩台Windows Server,就可以完成。

那接下來就是開始設定,這台的環境,目前還沒加入AD,後面會提到;雖然還沒加入AD,但還是可以先安裝,另外,因為叢集需要兩台以上,所以兩台都要記得安裝;當然,如果想先加入AD,也是可以,但要注意,在Azure上不可以改Private IP!! ( Local就沒差了~~ )

基本上就是從新增角色及功能精靈開始。

image

基本上沒有特殊的架構下,通常都直接選擇目前這台Server…(如果有特殊架構的人,我想大概也不會看這段安裝吧QQ )

image

這裡勾選應用程式伺服器。

image

然後功能的地方,選擇容錯移轉叢集。

image

這裡沒啥特別的,就按下一步吧。

image

角色服務這邊把分散式交易底下的那三個全部勾選。

image

關於加密憑證的部分,就先不用吧,未來有機會小弟再補上。

image

確定無誤就按下安裝吧,然後就祈禱人品ok~。

image

完成之後,就可以從工具那邊選到容錯移轉叢集管理員。

image

是的,就如前面所說,要使用容錯移轉叢集,必須要有AD,而且要把此電腦加入到AD之下,而且要用AD的帳號登入後,才可以開啟此管理員。

image

所以我們先來加入AD吧,首先我們要先設定網路IP,如下圖,在Azure下,請自動取得IP位置;而DNS伺服器的位址請使用AD那台IP( 是的,小弟AD那台IP是10.0.2.4 )。

image

接下來就是加入網域,這應該就不用教了吧~@@~

image

當加入網域的時候,會跳出要我們驗證,而這邊要注意一下,如果在Local,我們網域驗證這邊會使用STUDY4\Administrator的方式做登入,但在Azure上,如果你當初開啟的VM,設定的名稱為sky,那你安裝完AD後,sky這個人也會被加入到網域Admin的群組,所以,我們可以用STUDY4\sky來認證。( 在Azure下,STUDY4\Administrator理論上會登不進去,因為我們在創建VM的時候,根本沒設定密碼阿XDDD )

p.s 兩台都要加入網域喔….

image

加入網域後,我們可以先驗證設定。

image

就如遊戲一樣,都會有個開頭畫面。

image

接下來,我們要選擇準備要加入的Server,就如我所說的,這次是為了SQL Server AlwaysOn來的,所以我已經先準備好了兩台SQL Server;我們可以選擇瀏覽來進行選擇。

image

接下來,我們就執行所有測試!!

image

一樣,一個確認畫面。

image

然後經過一段時間的測試後,就會跳出警告…Orz…不過還好,畢竟我們是要用於SQL Server AlwaysOn AG層級的東西,所以她這邊的警告是可以忽略的。

( 這邊主要會有兩個大項警告,一個是沒有設定Share Storage,不過SQL Server AlwaysOn AG原本就不用Share Storage;另外一個是警告我們只有單張網卡,所以我們也可以忽略 )

image

確認無誤後,我們就可以開始建立叢集。

image

這邊可以選擇一個漂亮的叢集名稱。

image

接下來就是確認,看看有無錯誤。

image

到這邊就已經完成了,當然還有一些警告,但這些警告可以忽略。

image

完成之後,我們可以從 AD那台的Active Directory使用者和電腦這邊,看到剛剛我們建立的叢集已經完成。

image

另外,我們也可以從容錯移轉叢集管理員這邊,看到已經建立完成;另外,注意一下,如果下面這邊顯示失敗,又是在Azure的環境下,那有一種可能是把叢集網路設定成DHCP,那我們可以從左邊的網路、叢集網路1這邊,進去後,給他一個靜態的IP;然後再啟動,應該就可以完成了。

image

到這邊,符合SQL Server AlwaysOn的叢集就完成了。

後記

這次多虧了好友Cary的Blog的支援,如果有興趣想詳細了解的朋友們,也可以參考他那篇文章,內容有詳細的講到Share Storage等等的資訊。

參考資料

2013年9月15日

Windows Azure - 使用Windows Server 2012 R2 RRAS對Azure進行Site-To-Site連線-Server設定篇

前篇我們使用了Point-To-Site的方式,來讓單一台的電腦連線到Azure的網路,讓Local和Azure形成一個網段,而這篇呢,則使用Windows Server 2012 R2 ( 2012也可以 )來進行Site-To-Site的連線,讓Local和Azure兩地能連線,而Site-To-Site比較特別的是,我們會把這台Server當作中繼點,到時候,在這台Server底下的Client,只需要類似做pppoe(撥接數據機)的設定方式,就可以輕鬆地與Azure進行連線了喔!!

在官方,Windows Server 2012 的連線方式,是比較新的方式,早期官方推薦是使用貴森森的路由器等來進行VPN…但那貴森森的機器真的是太貴了…而後來推出了利用Windows Server 2012 RRAS連線的方式,但如果是企業用戶,還是建議買貴森森的機器,畢竟以效能等等來說,還是會比較強大 !!

而這次,小弟我利用一整天放假的時間(真的是消耗了一整天),來測試與完成設定,但這篇只講到Server的架設,後篇還會有一點點Client的設定,會分成兩篇,是因為小弟訂購的Ram還沒來…現在已經沒有足夠的Ram可以讓小弟測試另外一台了QQ….

最後,在開始之前,提醒大家一下,官方目前的說法是…"使用RRAS,不可以放在NAT之下",簡單的說,就是不可以掛在類似分享器底下,而且要有一個Public IP喔!!( 所以小弟這次直接拉了一條ADSL線,利用撥接的方式來達成… ),那以下就開始超長的設定過程了!!

安裝RRAS

這應該是最簡單的了…照著下面的圖,應該不會有啥問題。

image

這邊是一些提醒…

image

這邊當然是選擇角色型或功能型安裝啦…

image

因為小弟只有一台Server,也特別切分,所以直接選取就好。

image

這邊要選擇遠端存取。

image

選取功能這邊不用特別選取甚麼。

image

然後要進入遠端存取的設定。

image

他會提示我們,需要安裝一些東西,基本上當然就是默默接受了…. ( 除非不想裝XDD )

image

然後還需要裝上IIS。

image

一樣,用預設值就可以了。

image

確定無誤後,就開始跑跑跑。

image

到這邊,算是最簡單的步驟了….

設定RRAS

我們可以從下圖的位置,打開遠端存取管理。

image

因為是第一次,所以要執行精靈,因為我們只需要設定VPN,所以這邊指勾選VPN。

image

這邊出現一下提示的畫面…

image

我們這邊要選擇自訂設定。

image

然後選擇VPN存取,因為我們只要用到VPN。

image

然後就完成了…(是的,就完成了= = )

image

完成後,就會要求啟動服務了…

image

到這邊RRAS基本設定完成。

設定防火牆

接下來,要設定防火牆,要和Azure連線,要在防火牆的"輸入規則"那邊開啟以下幾個Port,其中1701的Port,小弟這邊預設就是開啟的了;那比較特別的Type=50,這邊不是小弟打錯啊…( 下面這也是Copy TechNet的…詳細可以看這裡 ),關於50這個協定,我們往下看就知道怎麼設定;至於其他的Port,小弟這邊就不教了…

  • IP Protocol Type=UDP, UDP Port Number=500 <- Used by IKEv2 (IPSec control path)
  • IP Protocol Type=UDP, UDP Port Number=4500 <- Used by IKEv2 (IPSec control path)
  • IP Protocol Type=UDP, UDP Port Number=1701 <- Used by L2TP control/data path
  • IP Protocol Type=50 <- Used by data path (ESP)

關於50這個協定,我們一樣從防火牆這邊新增輸入規則,只是我們要選擇自訂。

image

這邊沒甚麼特別的,反正就是全開吧。

image

就是這邊,我們通訊協定類型選擇自訂,並且在通訊協定號碼設定為50,後面幾乎就和一般的防火牆設定一樣,小弟就略過了。

image

到這邊,防火牆就設定完成了。

設定Azure的Local Network

接下來,我們要回到Azure,來增加一個Local Network。

image

按下去後,我們可以給一個漂亮的名子,然後VPN DEVICE IP ADDRESS這邊,要輸入RRAS這台機器的IP,如下圖,小弟是使用PPPOE連線,所以這邊會輸入的是PPPOE給的這個Public IP。

image

然後要輸入Local這邊的區網。

image

完成之後,我們就可以從下圖的位置看到,設定已經建立起來了。

image

接下來,要設定site-to-site

設定Virtual Network site-to-site

接下來,我們要進Virtual Netowork來設定site-to-site,下圖小弟這邊是已經先建立好了Virtual Network,然後要去改設定,但基本上,大家也不用擔心,因為這邊的設定算是簡單的,就算是新建立,勾選的內容和設定也還是一樣。

這邊,我們要勾選的是Connect The local network,並且選擇我們剛剛建立好的Local Network。

image

然後按下save,就好了~~簡單吧。

使用Azure提供的設定檔,設定RRAS

完成之後,我們就可以回到Azure Virtual Network得主頁面,來建立Gateway( 選擇CREATE GATEWAY ),這邊提醒大家一下,這個建立的過程非常的久,久到快要和部屬Cloud Service一樣久,小弟大概等10~20分鐘吧,所以這段時間,大家可以伸伸懶腰,洗洗澡~~;當完成之後,我們就可以下載設定檔( Download VPN Sevice Script )。

image

這邊,就有很多的設定檔可以下載,我們這次是使用Windows Server 2012 R2,所以這邊就選擇使用2012吧。

image

下載後,小弟看到一些文章,說要改這個設定檔的內容,但小弟下載後,都是已經調整好的內容,但為了怕有個萬一,還是在這邊紀錄一下。

第一,將設定檔裡面的<SP_AzureGatewayIpAddress>取代為Gateway IP Address,而Gataway IP Address在下圖框框這裡。

image

第二,將<SP_AzureVnetNetworkCIDR>取代為Windows Azure VNet的Address space,位置如下圖。

image

第三,將<SP_PresharedKey>取代為Shared Key,位置如下圖。

image

完成之後呢,把原本設定檔的附檔名,改成.ps1,然後我們就可以開啟PowerShell來執行(不是cmd阿… ),如下圖;基本上,那個設定檔會自動地幫我們把RRAS給設定好;而紅色的錯誤是正常的,因為有些東西我們之前就已經先設定好了。

image

另外,小弟在過程中,執行shell時,有發生以下錯誤。

因為這個系統上已停用指令碼執行,所以無法載入 C:\VpnDeviceScript.ps1 檔案。如需詳細資訊,請參閱
about_Execution_Policies,網址為 http://go.microsoft.com/fwlink/?LinkID=135170。

如下圖。

image

如果遇到此問題的朋友們,可以輸入此指令Set-ExecutionPolicy Unrestricted,那是因為限制規則的關係,我們可以先暫時解除。

image

當執行完上面RRAS的設定檔後,可以再下Set-ExecutionPolicy restricted來復原。

image

到這邊,終於把所有的設定給設定完成了!!

開始連線

接下來,我們就可以按下CONNECT了,這樣Azure就會開始與我們Local進行連線;如果你發現Azure告訴我們已經成功了,但是畫面還是如下圖一樣,是沒連起來,那是正常的;有時是因為時間差;但有時是真的連不到…所以,比較好確定的方法,還是從RRAS裡面來看。

image

要從RRAS裡面來看,我們可以先從遠端存取主控台這邊進來。

image

如果成功連線,我們就可以從下圖的位置中看到已連線;而如果這邊寫沒有連線,就要開始檢查IP是否正確,等等的設定,也是最耗時的… (所以可以確定,小弟今天人品不好0 0 )

image

過一陣子後,就可以發現Azure這邊的圖也已經更新完成了。

image

最後,小弟這邊在Azure上開了一台VM,並且使用Virtual Network,然後Local這邊的RRAS連上去後,我們就可以看到如下圖,透過網芳直接的存取。

image

基本上到這邊,Server端就算設定完成了!!(沒力氣寫後記了… )

參考資料