標籤:伺服器 虛擬化 nlb sql 高可用
一、項目背景
公司有5台伺服器託管在ISP中心,其中3台DELL720,2台DELL910,託管費為7.8萬元/年。每個伺服器的負荷非常低,同時公司對軟體的著作權有強制要求,不允許使用盜版軟體。VMware5.5版本時,每台物理主機只允許1顆CPU免費使用,新發布的VMware6.0取消了該限制,只要每台物理機上的邏輯CPU數不超過480顆,在其內部每台虛擬機器的邏輯CPU不超過8顆,就可以免費申請使用。於是就有了將所有的伺服器集中到1台上的想法。
二、前期準備
在遷移前,需要收集現階段每台物理主機的負荷情況,主要是CPU、記憶體和硬碟使用方式,以便估算出將來這1台物理機所需要的最低配置。記憶體和硬碟可以直接從工作管理員中看到,所以此處重點介紹CPU的負荷計算方法。CPU的負荷計算方法為:
CPU最低配置=CPU主頻率*個數*使用率
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/71/52/wKioL1XLRtPCXtX5AAQlpWklZtg434.jpg" title="10.jpg" alt="wKioL1XLRtPCXtX5AAQlpWklZtg434.jpg" />
以為例,當前CPU的主頻為2.5G,所以遷移後CPU的最低要求為:2.5*8*8%=1.6G。
三、設計思路
考慮到伺服器容錯和網路的單點故障,設計出如下結構:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/71/56/wKiom1XLWXXQpRVVAAIHkuDnNPs799.jpg" title="1.png" alt="wKiom1XLWXXQpRVVAAIHkuDnNPs799.jpg" />
紫色背景為安裝VMware6.0的物理主機,將網卡1、2作為管理網卡,地址為10.0.0.7/24;網卡3、4作為生產網卡,設定一個虛擬交換器。前端2台Web伺服器做NLB負載平衡和容錯,後端3台伺服器做SQL的鏡像高可用(實際生產環境中沒有共用儲存,所以無法用Cluster實現SQL的高可用),NLB和SQL的鏡像高可用可以在工作群組環境下搭建,為了方便後期管理,所以還是在域環境下搭建。需要注意的是:ESXI的地址雖然為10.0.0.7/24與其他虛擬機器主機同是10.0.0.0/24網段,但是不在同一區域網路,所以相互之間無法Ping通。生產網路的伺服器位址為10.0.0.2/24--10.0.0.6/24,網關為防火牆的地址10.0.0.1/24,後面的是在實驗環境中搭建的,未考慮防火牆因素,所以伺服器的地址為10.0.0.1/24--10.0.0.5/24,網關為空白,在此特別說明。
四、成本追加預算
公司現有4套WindowsServer2008R2企業版和2套SQLServer2008R2,其中作為見證伺服器上的SQLServer可以使用微軟免費的Express版,所以需要再購買一套WindowsServer2008R2。
五、操作步驟
本章重點是介紹NLB和SQL高可用在虛擬環境下的應用,所以安裝ESXI和搭建域環境就不再贅述。伺服器08Server1--08Server5對應的IP地址為10.0.0.1/24--10.0.0.5/24。
1.安裝NLB服務
1)在08Server1和08Server2伺服器角色中找到並安裝IIS服務。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/71/57/wKiom1XLYseBl6B0AAKGdBmEbMw130.jpg" title="11.jpg" alt="wKiom1XLYseBl6B0AAKGdBmEbMw130.jpg" />
2)在08Server1和08Server2上建立一個網站,將index.htm排在第1位。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/71/53/wKioL1XLZOrzPRdkAAI8jcP09F0367.jpg" style="float:none;" title="13.jpg" alt="wKioL1XLZOrzPRdkAAI8jcP09F0367.jpg" />
3)分別到08Server1和08Serve2的網站根目錄下建立一個index.htm檔案夾,為了方便後面區分,將08Server1的內容編寫成Welcome to contoso1.com,08Serve2的內容編寫成Welcome to contoso2.com。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/71/57/wKiom1XLYueR3yhKAAHy3VtdpBk939.jpg" style="float:none;" title="14.jpg" alt="wKiom1XLYueR3yhKAAHy3VtdpBk939.jpg" />
4)在08Server1功能中找到並安裝網路Server Load Balancer。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/71/57/wKiom1XLYubwFZiGAAKffG-EFMQ846.jpg" title="12.jpg" style="float:none;" alt="wKiom1XLYubwFZiGAAKffG-EFMQ846.jpg" />
5)開啟網路和Server Load Balancer管理器。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/71/53/wKioL1XLZOvzK6GEAAEBUpPrsIU164.jpg" style="float:none;" title="15.jpg" alt="wKioL1XLZOvzK6GEAAEBUpPrsIU164.jpg" />
6)建立一個NLB群集,此處需要注意:一定是將群集建好後,再新增成員伺服器。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/71/57/wKiom1XLYuixNMujAAIKrgxqYcI683.jpg" style="float:none;" title="16.jpg" alt="wKiom1XLYuixNMujAAIKrgxqYcI683.jpg" />
7)為NLB群集配置一個IP地址,該地址統一對外提供服務,將收到的請求連結按比例分給群集內的各個伺服器。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/71/53/wKioL1XLZOyirG7ZAAIFyXttw-w222.jpg" style="float:none;" title="17.jpg" alt="wKioL1XLZOyirG7ZAAIFyXttw-w222.jpg" />
8)設定NLB群集的FQDN名稱,選擇群及操作模式。注意:如果加入群集的伺服器只有一塊網卡,則一定要選擇多播模式。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/71/57/wKiom1XLYuria3L7AAIEmjKIV5k167.jpg" style="float:none;" title="18.jpg" alt="wKiom1XLYuria3L7AAIEmjKIV5k167.jpg" />
9)待狀態變為為“已彙總”,則表示NLB群集建立成功。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/71/53/wKioL1XLZO7BsA18AAKcZn81cQM416.jpg" style="float:none;" title="19.jpg" alt="wKioL1XLZO7BsA18AAKcZn81cQM416.jpg" />
10)再將08Server2添加到NLB叢集中。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/71/57/wKiom1XLYuyxJpEaAALR233i8JI313.jpg" style="float:none;" title="20.jpg" alt="wKiom1XLYuyxJpEaAALR233i8JI313.jpg" />
11)成功添加後,狀態同樣會變為“已彙總”。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/71/53/wKioL1XLZPCBgUhhAAMOsjs1xDs276.jpg" style="float:none;" title="21.jpg" alt="wKioL1XLZPCBgUhhAAMOsjs1xDs276.jpg" />
12)在NLB群幾內的伺服器連接埠規則裡可以設定負載平衡的比例。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/71/57/wKiom1XLYu7D2ChzAAPib4j4Tkk348.jpg" style="float:none;" title="22.jpg" alt="wKiom1XLYu7D2ChzAAPib4j4Tkk348.jpg" />
13)找一個Win7電腦,設定IP地址為10.0.0.100/24,將host檔案中的www.contoso.com指向為NLB群集對外提供服務的IP地址,並在瀏覽器中訪問測試。此時我們可以看到它串連到了08Server2伺服器上。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/71/53/wKioL1XLZPKyVlBiAAJIIj4qja4907.jpg" style="float:none;" title="23.jpg" alt="wKioL1XLZPKyVlBiAAJIIj4qja4907.jpg" />
14)將08Server2伺服器關機後再次串連,可以看到它已經重新定向到了08Server1伺服器上。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/71/53/wKioL1XLZPOQ_KilAAKWfYquGPQ681.jpg" style="float:none;" title="25.jpg" alt="wKioL1XLZPOQ_KilAAKWfYquGPQ681.jpg" />
15)再將08Server1伺服器關機,它又重新串連到了08Server2伺服器上。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/71/54/wKioL1XLaxvASQKsAAJIIj4qja4451.jpg" title="23.jpg" alt="wKioL1XLaxvASQKsAAJIIj4qja4451.jpg" />
虛擬化環境下對公司商務服務器實現NLB+SQL高可用(一)