對於很多中小企業來說,虛擬化已經成為節省IT開支的一種重要手段,下面就根據公司Vmware虛擬化產品部署案例,同大家來詳細分享一下在使用vSphere產品組建虛擬化數據中心的一些小小經驗,希望對企業虛擬化產品以及服務器、存儲選擇有所幫助。
一、虛擬化產品的選擇
在組建虛擬化數據中心時,虛擬化產品選擇至關重要,作為專業的虛擬化解決方案提供商,一直以來都選擇的是VMware vSphere;其實,在此期間,我們也選擇過其它產品,但都出現過或多或少的問題,有一次嘗試使用另一個虛擬化產品,在安裝配置的期間沒有任何問題,但在模擬生產環境時發現問題,用戶在從局域網及互聯網訪問該服務器的虛擬機時每個連接的速度被限制在700Kbps/s,而在該服務器的虛擬機之間、虛擬機到物理主機之間速度正常,能達到7、8百兆。后來我們按照同樣的環境,在其他服務器上測試,發現有的服務器通過網絡訪問虛擬機速度正常,有的服務器卻被限制在700K多不到1M,后來和客戶溝通,還是換成VMware ESXi,最后網絡正常。
使用Vmware vSphere虛擬化的服務器不僅非常穩定、可靠、安全,同時VMware ESXi虛擬化核心很少,可以安裝在1GB的U盤上運行,並且在多年的運行時,除了產品版本升級以及必要的補丁更新外,VMware ESXi虛擬化主機不需要重啟-只要機房不停電、不升級,VMware ESXi可以一直運行多年。
二、如何解除中小企業在虛擬化部署前的疑慮
對於中小企業用戶來說,在實施虛擬化之前,總有或多或少的顧慮,尤其是現有業務已經平穩運行了很長時間、信息化比較成熟的企業。他們最大的顧慮就是:實施虛擬化后,整個系統是否安全。例如,原來單位有100個應用,每個應用在1台物理服務器上,整個系統有100台物理服務器;在虛擬化之后,每個應用在1台“虛擬”服務器上,每個主機有10台甚至更多的虛擬機,這樣虛擬化10台甚至更少的物理服務器代替了原來的100台服務器。原來某個服務器壞了,最多只是影響這一個應用;現在如果某個服務器壞了,則會影響10個甚至更多的應用,這樣會給信息主管帶來壓力。另外,把多台服務器遷移、合並到一個主機中,性能是否足夠呢?
其實以上的顧慮無非就是安全和性能的問題,下面一一為大家解惑:
安全問題:在沒有采用虛擬化的時候,一台服務器對應一個應用,這看似安全,實際風險比較大,一台服務器是對應一個應用,從數量上來看,分散了風險,但現在這台服務器使用的是“本地硬盤”,所有這個服務器的應用都在“本地硬盤”上,一旦服務器當機、死機,系統不能進入,那么,在服務器不可用的情況下,怎么將數據從這台“當機”的服務器上拷貝或遷移到其他能用的主機上呢?這不是和我們平常的工作站一樣,計算機壞了,將硬盤拆下來裝到別的機器上就能用。要知道,任何重要的服務器,都是多個硬盤並做着RAID的,無論是最簡單的RAID1,還是RAID5、RAID50、RAID10,都是多個硬盤,而簡單的將這些進行了RAID配置的硬盤拿到別的服務器,不一定能用,不一定保證數據不丟失(這需要比較高的技術)。
而使用虛擬化技術,每台服務器對應多個應用,相比一台服務器對應一個應用,從數量對比來看,看似不安全,但不能只看簡單的數字對比,從使用虛擬化開始,我們應該明白一個原則:數據與系統(或應用)分開。簡單來說,所有的數據都沒有保存在“本地硬盤”,而是保存在安全性極高的“共享存儲”上面,在虛擬化的數據中心中,服務器本地不配硬盤,或配置的硬盤只用來安裝虛擬化系統軟件(VMware ESXi)本身,而在虛擬化層之上運行的虛擬機,其數據是保存在共享存儲上面,服務器“本地”不保存虛擬機數據,這就好比在一個單位中,為每個房間配置一個空調,或者使用中央空調的區別。
在虛擬化之前的大多數的企業中,每台服務器大多配置了1個CPU、2個硬盤做RAID1或3個硬盤做RAID5、單電源、單網絡(服務器兩塊網卡只用一塊),而在虛擬化的項目中,虛擬化主機服務器大多配置2~4個CPU、6~10個甚至更多硬盤做RAID5或RAID50、RAID10、2~4個電源、4個或更多的物理網卡冗余。虛擬化中每台服務器都有冗余,在服務器中的單一網卡、硬盤、電源甚至CPU出現問題時都會有冗余設備接替,另外,在虛擬化項目中,普通采用共享的存儲,虛擬機保存在共享的存儲中,即使某台主機完全損壞,運行在該主機上的虛擬機會在其他物理主機啟動,保證業務系統不會中斷。
再說性能問題:單一的應用主機,大多配置2個硬盤做RAID1,或者3個硬盤做RAID5,這樣磁盤性能較為低下。在虛擬化主機中,通常用6塊或更多的硬盤,采用RAID5、RAID50或者RAID10,磁盤性能較高。另外,雖然虛擬化后,在同一個主機上跑多個虛擬機,但這些虛擬機並不會在同一時刻都會要求較高的CPU與磁盤、內存利用率。根據多年的虛擬化實施經驗,在虛擬化后,不會降低原來的每個應用的響應速度而是會略有增加。
三、企業虛擬化步驟
在企業實施虛擬化的過程中,大多是先虛擬化不太重要的物理機,將這些物理機遷移到虛擬機中運行一段時間(通常為1周的時間),查看虛擬化后是否對業務應用有所影響,並模擬一些故障、對以后可能出現的問題進行實驗,等這些測試完成之后,再虛擬化其他的物理機。而一些不適合虛擬化的應用仍然會運行在原來的物理主機上,例如用做視頻點播的服務器、重要的數據庫服務器等這些應用。
四、企業如何利用現在的設備架構虛擬化環境
企業在虛擬化過程中,大多會考慮目前企業的服務器、存儲、交換機等基礎設備是否可以使用,其實這得根據服務器、存儲的性能以及參數綜合考慮。
如果是近一、兩年新購買的服務器,則考慮將這些服務器整合、擴充,用做虛擬化主機,一般來說大多數標配不高的服務器都能擴充到很高的配置。例如,IBM 3850 X5服務器最大可以擴充到4個CPU、1TB內存、雙電源,以CPU為例,IBM 3850 X5出廠標配2個CPU,這CPU可以是6核、8核,如果企業現有多台IBM 3850 X5服務器(例如2台或更多),可以將這2台的CPU放到其中一台,而另一台則可以新購4個8核的CPU,同樣,內存也可以集中到一台,另一台則配置多個單條8GB的內存,同樣,對於其他廠家的服務器也可以這樣處理,例如華為rh2485(如圖1所示),標配2個CPU,最大支持4個CPU、1.5TB內存、2冗余電源,可以多台進行整合,然后再進行服務器的升級。
圖1 華為rh2485機架服務器
在虛擬化實施的過程中,如果使用現有的服務器,推薦優先為服務器添加內存、網卡,其次是配置冗余電源、CPU,至於硬盤,在企業虛擬化項目中,優先是配置共享的存儲,其次是添加本地硬盤。
除了做虛擬化主機外,還可以將原有的服務器改做存儲服務器,例如,如果某服務器配置較低並且不具有升級的價值,但具有較多的本地硬盤時,可以將硬盤集中到某台服務器中,將這台服務器通過安裝openfiler(32位或64位產品都有)或Windows Server 2008 R2或Windows Server 2012,組成存儲服務器,通過千兆網絡為虛擬化環境提供iSCSI的網絡存儲,這些存儲可以用來做數據備份或擴展。
五、服務器性能與容量規划
在實施虛擬化的前期,有一個虛擬機容量規划,就是一台物理服務器上,最大能放多少虛擬機。實際上這是一個綜合的問題,即要考慮主機的CPU、內存、磁盤(容量與性能),也要考慮運行的虛擬機需要的資源,在實際使用時,系統總有至少30%甚至更高的富余容量,不可能讓一個主機上的資源利用率超過80%以致接近100%,否則一旦達到這些數值,整個系統響應會比較慢。
在估算虛擬化的容量時,在只考慮CPU的情況下,可以將物理CPU與虛擬CPU按照1:4~1:10甚至更高的比例規划,例如一台物理的主機具有4個8核心的CPU,在內存、存儲足夠的情況下,按照1:5的比例,則可以虛擬出4×8×5=160個vcpu,假設每個虛擬機需要2個vcpu,則可以創建80個虛擬機。在實際實施虛擬化的項目中,大多數虛擬機對CPU的要求並不是非常的高,即使為虛擬機分配了4個或更多的CPU,但實際上該虛擬機的CPU使用率只有10%以下,這時候所消耗的物理主機CPU資源不足0.5個。如圖2所示,這是使用vCenter Operations Manager統計的容量分配過剩的虛擬機,從列表中可以看出,大多數虛擬機的CPU利用率不足10%,實際使用的內存也較低(盡管為大多數虛擬機分配了2GB內存,但實際使用只有256~576MB內存之間)。
圖2 使用vcos統計的容量過剩的虛擬機
在虛擬化的項目中,對內存占用是最大、要求最高的,在實際使用中也是如此,管理員會發現,物理主機的內存會接近80%甚至90%,因為在同一物理主機上,規划的虛擬機數量較多,而且每個虛擬機分配的內存又較大(總是超過該虛擬機實際使用的內存),所以會導致主機可用內存減少,如圖3所示,這是某正在運行中的VMware ESXi 5.1主機的CPU與內存使用情況。
圖3 某企業運營中的ESXi摘要
在為物理主機配置內存時,要考慮將要在該主機上運行多少虛擬機、這些虛擬機一共需要多少內存,一般情況下,每個虛擬機需要的內存在1GB~4GB甚至更多,還要為VMware ESXi預留一部分內存。通常情況下,配置了4個8核心CPU的主機,一般需要配置96GB甚至更高的內存;在配置2個6核心CPU的主機,通常要配置32~64GB內存。
六、統計與計算現有服務器容量
如果要將現有的物理服務器遷移到虛擬機中,可以制作一張統計表這包括現有物理服務器的CPU型號、數量、CPU利用率、現有內存及內存利用率、現有硬盤數量、大小、RAID及使用情況,然后根據這些來計算,圖41是某單位現有服務器的情況統計(在實際情況下,該單位服務器大約有100台,圖4及后文圖5只是列出了部分服務器的型號及資源使用統計)。
圖4 某單位現有服務器資源利用情況
根據上圖,我們計算每台服務器實際需要的CPU、內存與磁盤空間,計算方式為:
實際CPU資源=該台服務器CPU頻率×CPU數量×CPU使用率
實際內存資源=該台服務器內存×內存使用率
實際硬盤空間=硬盤容量-剩余空間
例如,對於該表中第一台服務器需要3.0Ghz×2×15%=0.9Ghz,內存為2GB×30=0.6GB,硬盤為73GB-30GB=43GB。
然后在圖4后面計算,實際得出情況如圖5所示。
圖5 每台服務器實際使用資源及最后資源統計(只列出部分服務器)
經過計算,本項目中已經使用了91.1944Ghz的CPU資源,以CPU頻率3.0HzCPU為例,則需要30核心(負載100%),但要考慮整體項目中CPU的負載率為60%~75%,以及管理等其他開銷,則至少需要40個CPU核心,如果配置4個6核心的服務器,則需要大約4台物理主機。至少內存,現在已經使用了182GB,加上管理以及富余,以360GB計算,每服務器96GB~128GB即可。
如果不購買新的服務器,而從中選擇4~8台高配置的服務器(例如6台),將這100台服務器使用虛擬化技術,遷移到其中的6台,則節省的電費(以每台服務器400W、工業用電1.1元/度計算)約34.69萬。
如果要使用現有的服務器,則需要為某些做虛擬化主機的服務器擴充內存。使用現有服務器,如果不擴充現有服務器的CPU,在2個CPU的主機中,將內存擴充到64GB為宜。
根據圖5計算可知,己使用6.9T的容量,則要為整個虛擬化系統規划10TB甚至更多的存儲。在備份原有服務器數據的情況下,可以集中300GB、146GB的硬盤到虛擬化主機上,統一使用。在使用6台物理服務器做虛擬化主機的情況下,每台服務器需要1.5TB~3TB的空間。在使用RAID5時,使用6塊300GB即可提供1.5TB可用容量,使用8塊300GB做RAID50時可提供1.8TB可用容量。使用12塊300GB硬盤、RAID50時可提供3TB的容量。
七、服務器虛擬化時的服務器選擇
在實施虛擬化的過程中,如果現有服務器可以滿足需求虛擬化需求,可以使用現有的服務器,如果現有服務器不能完全滿足需求,可以部分采用現有服務器,然后再采購新的服務器。
如果采購新的服務器,可供選擇的產品比較多,如果單位機房在機櫃存放,則優先采購機架式服務器,服務器采購的原則是:
(1)如果2U的服務器能滿足需求,則采用2U的服務器,通常情況下,2U的服務器最大支持 、2個CPU,標配1個CPU,在這個時候,就要配置2個CPU。
如果2U的服務器不能滿足需求,則采用4U的服務器,通常情況下,4U的服務器最大支持4個CPU並標配2個CPU,在購置服務器時,為服務器配置4個CPU為宜,如果對服務器的數量不做限制,采購兩倍的2U服務器要比采購4U的服務器節省更多的資金,並且性能大多數也能滿足需求。
(2)CPU:在選擇CPU時,選擇6核或8核的Intel系列的CPU為宜,10核或更多核心的CPU較貴,不推薦選擇,當然,單位對CPU的性能、空間要求較高時除外。
(3)內存:在配置服務器的時候,近可能為服務器配置較大內存。在虛擬化項目中,內存比CPU更重要。一般情況下,2個6核心的2U服務器配置64GB內存,4個6核心或8核心的4U服務器配置128GB或更多的內存。
(4)網卡:在選擇服務器的時候,還要考慮服務器的網卡數量,至少要為服務器配置2接口的千兆網卡,推薦4端口千兆網卡。
(5)電源:近可能配置兩個電源。一般情況下,2U服務器選擇2個450W的電源可以滿足需求,4U服務器選擇2個750W電源可以滿足需求。
(6)硬盤:如果虛擬機保存在服務器的本地存儲,而不是網絡存儲,則為服務器配置6個硬盤做RAID5,或者8個硬盤做RAID50為宜。由於服務器硬盤槽位有限,故不能選擇太小的硬盤,當前性價比高的是600GB的SAS硬盤,2.5寸SAS硬盤轉速是10000轉,3.5寸SAS硬盤轉速為15000轉,選擇2.5寸硬盤具有較高的IOPS。
至於服務器的品牌,則可以選擇華為、IBM、HP或Dell,當對服務器占用空間有較高要求時,可以配置刀片服務器,例如華為Tecal E6000服務器,8U的空間,可以最大配置10個刀片服務器,每個服務器可以配2個CPU、2個SAS硬盤、12個內存插槽、雙端口網卡。
八、存儲設備的選擇
在虛擬化項目中,推薦采用存儲設備而不是服務器本地硬盤,在配置共享的存儲設備時,只有虛擬機保存在存儲時,才能快速實現並使用HA、FT、vMotion等技術。在使用VMware vSphere實施虛擬化項目時,一個推薦的作法是將VMware ESXi安裝在服務器的本地硬盤上,這個本地硬盤可以是一個固態硬盤(5.2~10GB即可),也可以是一個SD卡(配置8GB即可),甚至可以是1GB的U盤,如果服務器沒有配置本地硬盤,也可以從存儲上為服務器划分8~16GB的分區用於啟動。
在選擇存儲設備的時候,要考慮整個虛擬化系統中需要用到的存儲容量、磁盤性能、接口數量、接口的帶寬。對於容量來說,整個存儲設計的容量要是實際使用容量的2倍以上,例如,整個數據中心已經使用了1TB的磁盤空間(所有己用空間加到一起),則在設計存儲時,要至少設計2TB的存儲空間(是配置RAID之后而不是沒有配置RAID、所有磁盤相加的空間)。
例如:如果需要2TB的空間,在使用600GB的硬盤,用RAID10時,則需要8塊硬盤,實際容量是4個硬盤的容量,600GB×4≈2.4TB。如果要用RAID5時,則需要5塊硬盤。
在存儲設計中另外一個重要的參數是IOPS (Input/Output Operations Per Second),即每秒進行讀寫(I/O)操作的次數,多用於數據庫等場合,衡量隨機訪問的性能,存儲端的IOPS性能和主機端的IO是不同的,IOPS是指存儲每秒可接受多少次主機發出的訪問,主機的一次IO需要多次訪問存儲才可以完成。例如,主機寫入一個最小的數據塊,也要經過“發送寫入請求、寫入數據、收到寫入確認”等三個步驟,也就是3個存儲端訪問,每個磁盤系統的IOPS是有上限的,如果設計的存儲系統,實際的IOPS超過了磁盤組的上限,則系統反應會變慢,影響系統的性能。簡單來說,15000轉的磁盤的IOPS是150,10000轉的磁盤的IOPS是100,普通的SATA硬盤的IOPS大約是70~80。一般情況下,在做桌面虛擬化時,每個虛擬機的IOPS可以設計為3~5個;普通的虛擬服務器IOPS可以規划為15~30個(看實際情況),當設計一個同時運行100個虛擬機的系統時,IOPS則至少要規划為2000個,如果采用10000轉的SAS磁盤,則至少需要20個磁盤,當然這只是簡單的測算,在真正實施時需要考慮多方面的因素。
在規划存儲時,還要考慮存儲的接口數量及接口的速度,通常來說,在規划一個具有4主機、1個存儲的系統中,采用具有2個接口器、4個SAS接口的存儲服務器是比較合適的,如果有更多的主機,或者主機需要冗余的接口,則可以考慮配FC接口的存儲,並采用光纖交換機連接存儲與服務器,目前像華為s2600t、IBM 3524等產品參數均能滿足小企業虛擬化部署要求。
九、網絡及交換機選擇
在一個虛擬化環境里,每台物理服務器一般擁有更高的網卡密度,虛擬化主機有6個、8個甚至更多的網絡接口卡(NIC)是常見的,反之,沒有被虛擬化的服務器只有2個或4個NIC,這成為數據中心里的一個問題,因為邊緣或分布交換機放在機架里,以簡化網絡布線,然后向上傳輸到網絡核心,在這種解決方案里,一個典型的48端口的交換機僅能處理4~8台虛擬主機,為了完全添滿機架,需要更多的邊緣或分布交換機。
在虛擬化環境里,當多個工作負荷整合到這些主機里時,根據運行在主機上的工作負荷數量,網絡流量增加了,網絡利用率將不再像過去每台物理服務器上那樣低了。
為了調節來自整合工作負荷增加的網絡流量,可能需要增加從邊緣或分布交換機到網絡核心的向上傳輸數量,這時對交換機的背板帶寬及上行線路就達到較高的要求。
另一個關鍵的改變來自最新一代虛擬化產品的動態性質,擁有諸如熱遷移和多主機動態資源管理。虛擬化里固有的動態更改性能意味着不能再對服務器之間的流量流動作任何假設。
在進行虛擬機之間的動態遷移,或者將虛擬機從一個存儲遷移到另一個存儲時,為了減少遷移的時間,不對關鍵業務造成影響,在遷移期間會占用大量的網絡資源,另外,在遷移的時候,雖然可以減少並發遷移的數量,但在某些應用中,可能會同時遷移多台虛擬機,這對交換機背板帶寬以及交換機的性能的要求達到更高。
另外,虛擬化使數據中心里網絡層的一些能見度降低了,網絡工程師在虛擬交換機里沒有能見度,也不能輕松決定哪個物理NIC對應哪個虛擬交換機,這在故障檢修中是最重要的信息,為了減少故障率,為交換機配置冗余的業務板及冗余電源也應該考慮,同時,在近可能的前提下,配置更高的交換機。
在大多數的情況下,物理主機配置4端口千兆網卡,並且為了冗余,近可能是每兩個網卡綁定在一起,用做負載均衡及故障轉移。
對於中小企業虛擬化環境中,為虛擬化系統配置華為S5700系列千兆交換機即可滿足大多數的需求,華為S5700系列分24端口、48端口兩種,如果需要更高的網絡性能,可以選擇華為S9300系列交換機,如果在虛擬化規划中,物理主機中的虛擬機只需要在同一個網段(或者在兩個等有限的網段中),並且對性能要求不高但對價錢敏感的時候,可以選擇華為的S1700系列普通交換機。無論是VMware ESXi還是Hyper-V Server,都支持在虛擬交換機中划分VLAN,即將主機網卡連接到交換機的Trunk端口、然后在虛擬交換機一端划分VLAN,這樣可以在只有一到兩個物理網卡時,可以讓虛擬機划分到所屬網絡中的不同VLAN中。