示例環(huán)境介紹
在概述部分已經(jīng)提到,本文主要以VMware vSphere 4.1環(huán)境下的DS5100為例來介紹存儲的HA架構(gòu)和配置,下面圖1則是的筆者要介紹的虛擬化架構(gòu)環(huán)境SAN組網(wǎng)示意圖。
▲圖1 SAN網(wǎng)絡示意圖
在圖1中,在整個架構(gòu)中包括三種類型的設備,Host Server, SAN Switch和Storage System。Server Group中的Host Server是用于部署vSphere4.1的應用服務器,用于運行所有的虛擬機,每一個Server Group在VMware環(huán)境中會配置為一個Cluster,每個Cluster中的所有機器會共享一定的存儲空間。上圖中的Storage System為這些應用服務器提供虛擬化需要用的存儲空間, SAN Switch則是實現(xiàn)了Host Server和Storage System的連接。為了實現(xiàn)SAN網(wǎng)絡上的高可用性,所有的Server和Storage System同時連接兩臺SAN Switch。在上述的虛擬化環(huán)境下, 每個Server Group只連接一個Storage System,Server Group 1/2/3分享Storage System1上面的存儲空間,Server Group 4/5/6分享Storage System2上面的存儲空間。在后面的組網(wǎng)、架構(gòu)設計和配置時,會依據(jù)這個組網(wǎng)結(jié)構(gòu)為基礎進行說明。
IBM DS5100的基本內(nèi)部結(jié)構(gòu)
IBM System Storage DS5000系列磁盤存儲系統(tǒng)是IBM的中端高性能磁盤存儲系統(tǒng),集成度非常高,從架構(gòu)上能夠支持線性的可擴張性,同時也能夠非常容易的根據(jù)用戶需求來進行負載均衡的定制,來實現(xiàn)高IOPS和MBPs的要求,能夠在支持大容量的同時保證優(yōu)異的性能,非常適合于虛擬化和整合。
為了有效的提升存儲的I/O性能并做到高可靠性,就需要設計一套符合該存儲特點的組網(wǎng)模式,因此,我們需要先大概了解一下DS5100的基本內(nèi)部結(jié)構(gòu),在此基礎上,便可以設計出能夠充分發(fā)揮其優(yōu)勢的架構(gòu)連接模式。如圖2所示,DS5100主柜有兩個相同的Controller模塊,每個Controller模塊有8個磁盤通道端口(紅框部分,連接存儲擴展柜),共分為4組,每一組的2個端口是通過一個回路開關(loop Switch)來控制的。每個Controller模塊還有8個主機連接端口(籃框部分,連接主機或者SAN Switch),這8個主機連接端口由2個主機接口卡提供,每個卡上有4個端口,所有這些端口可以根據(jù)需要定制為4GB FC接口或者8GB FC接口。
▲圖2 DS5100主機后面板接口示意圖
DS5100的兩個Controller模塊之間通過內(nèi)部連接模塊連接,能夠?qū)崿F(xiàn)快速有效的控制交互和數(shù)據(jù)傳輸。每個Controller模塊內(nèi)部有一個專有ZIP ASIC芯片,該芯片被設計于專門支持I/O操作,來計算RAID的冗余信息,通過這個芯片來實現(xiàn)基于硬件的奇偶校驗計算,這樣會比通過軟件計算快很多,這能夠有效的保證整個系統(tǒng)的性能。
圖3是DS5100的內(nèi)部機構(gòu)示意圖,從圖中可以看到,每個DS5100 Controller內(nèi)部的磁盤通道端口模塊和主機連接端口模塊以Zip Processor模塊為樞紐實現(xiàn)了內(nèi)部連接,在DS5100內(nèi)部這些通信是通過PCI Express總線來實現(xiàn)的。每個Controller模塊的兩個主機接口卡提供了8個主機接口,兩個4口的4GB FC芯片組來連接磁盤通道接口, 其中一個4口4GB FC芯片組通過回路開關(loop Switch)連接本Controller模塊上面的8個磁盤通道接口,另一個4口的4GB FC芯片組連接另外一個Controller模塊上面的8個磁盤通道接口。
同理,另外一個Controller模塊上的兩個4口4GB FC芯片組也通過回路開關分別連接兩個Controller模塊上的16個磁盤通道端口。這樣,就可以實現(xiàn)每個Controller都可以隨時訪問16個磁盤通道端口,每個主機接口通道的數(shù)據(jù),都可以通過主機接口卡、Zip Processor模塊、4口的4GB FC模塊和回路開關來連接所有的磁盤通道接口。DS5100內(nèi)部的處理芯片會根據(jù)各個通道接口的負載、擴展柜的連接情況、LUN的劃分情況和數(shù)據(jù)讀寫目的來判斷如何進行分流和回路開關的控制,最大程度上實現(xiàn)負載的均衡。
▲圖3 DS5100主機內(nèi)部結(jié)構(gòu)示意圖
高可靠性的SAN架構(gòu)設計:主機與擴展柜鏈接
1.存儲系統(tǒng)主機和擴展柜的連接
通過上一節(jié)DS5100的內(nèi)部結(jié)構(gòu)介紹可以了解到,DS5100有2個Controller,多個內(nèi)部模塊和端口,要實現(xiàn)高可靠性的架構(gòu),就必須要充分考慮冗余和負責均衡,即應該把主機通信和存儲擴展柜的連接盡量的分布到所有的模塊,芯片組和端口。
在連接磁盤存儲擴展柜時,考慮到冗余和負載均衡,每個擴展柜都要同時連接Controller A和Controller B。同時考慮相鄰的磁盤通道端口是通過一個回路開關控制,因此,建議使用如圖4所示的配對方式。這樣,在只有4個存儲擴展柜的時候,可以采用圖5所示的連接方式,可以完全使用所有的內(nèi)部模塊和回路開關模塊。當存儲擴展柜有8個時候,采用圖6所示的連接方式,這樣會使用了全部的磁盤通道端口。當擴展柜的數(shù)量大于8個時候,就需要兩個或多個擴展柜先串聯(lián),然后再按照圖6的方式連接到主柜。
▲圖4 DS5100存儲柜連接配對圖
▲圖5 四個擴展柜時連接示意圖
▲圖6 八個擴展柜時連接示意圖
高可靠性的SAN架構(gòu)設計:存儲與SAN Switch連接
2.存儲主機系統(tǒng)和SAN Switch的連接
在圖1所示的組網(wǎng)示意圖中提到,該環(huán)境里面是有兩套存儲系統(tǒng)和兩個SAN Switch,每個存儲系統(tǒng)將會支持3個Server Group.為了實現(xiàn)高可用性和負載均衡,兩個DS5100主機需要同時連接兩個SAN Switch。考慮到在可能的SAN Switch損壞或者某個Controller損壞的情況下還能夠?qū)崿F(xiàn)一定的負載均衡,建議采用如圖7所示的連接方式,每個Controller的兩個主機接口模塊分別連接不同的SAN Switch,即兩個Controller的1~4號主機連接端口連接到SAN Switch1, 5~8號主機連接端口連接到SAN Switch2。在這種情況,若任何一個SAN Switch損壞,DS5100的Controller A和Controller B還是能夠有效的進行負載均衡;若DS5100的任何一個Controller損壞,兩個SAN Switch也能夠進行負載均衡。極端情況下,任何一個SAN Switch和一個Controller同時損壞的情況下,還是能夠?qū)崿F(xiàn)Host Server到DS5100存儲系統(tǒng)的路徑可達。
為了便于理解,在圖7僅僅列出一個DS5100和2臺Host Server跟SAN Switch的連接方式, 第二個DS5100和其他所有的Host Server也采用類似的方式同時連接。
SAN Switch的選擇:在保證系統(tǒng)接口速度滿足的基礎上,要保證有足夠的端口數(shù),連接兩個DS5100總共需要16個端口,連接Host Server時,每個Host Server只需要一個端口。
▲圖7 SAN Switch組網(wǎng)示意圖(1個DS5100和部分host Server)
3.Host Server和SAN Switch的連接
同存儲主機系統(tǒng)類似,為了保證Host Server的高可用性,每個Host Server都配置了兩個HBA光纖適配卡,兩個HBA卡分別連接SAN Swith1和SAN Switch2.如圖7所示。為了便于在SAN Switch上的配置,也為了便于后期的維護和糾錯,建議每個Host Server的兩個HBA接口連接到兩個SAN Switch的相同編號的接口上。
光纖交換機Zone的設計
把DS5100和Host Server都連接SAN Switch后,整個SAN網(wǎng)絡的物理連接部分基本完成。要實現(xiàn)所有的Host Server能夠方便的連接到所需要的存儲空間,同時要保證高可靠性和負載均衡,在光纖交換機和存儲內(nèi)部的配置也非常關鍵,本節(jié)先介紹光纖交換機想過的設計和配置。
1.光纖交換機Zone的設計
在SAN網(wǎng)絡中,Zone是一個非常重要的概念,非常好的設計和配置Zone,能夠消除許多潛在的常見問題,同時還能夠保證充分發(fā)揮系統(tǒng)的性能。FC SWITCH上的Zone功能類似于以太網(wǎng)交換機上的VLAN功能,它是將連接在SAN網(wǎng)絡中的設備(主機和存儲),邏輯上劃到為不同的區(qū)域內(nèi),使得不同區(qū)域中的設備相互間不能通過網(wǎng)絡直接訪問,從而實現(xiàn)網(wǎng)絡中的設備之間的相互隔離。由于本文描述的場景是用于虛擬化的場景之下,有效的配置Zone還能夠在保障性能的同時減低Host Server上面Multipath的數(shù)量,優(yōu)化Host Server上vSphere的尋址管理能力。
在這里,我們推薦一個創(chuàng)建Zone的最佳實踐,那就是為每一個主機到存儲的連接單獨創(chuàng)建一個Zone,在圖7中可以看到,每個DS5100存儲的Controller A和Controller B分別有4個FC主機接口連接到SAN Switch上,因此,在創(chuàng)建Zone的時候,在SAN Switch上面,我們應該為每個Host創(chuàng)建至少2個Zone,分別連接到相應存儲的Controller A和Controller B。 同理,在另外一個SAN Switch上,也為相同的主機建立兩個Zone,分別連接到相應存儲Controller A和Controller B的另外一組主機接口卡。這種方式,能夠?qū)崿F(xiàn)所有連接的完全隔離,也利于以后出現(xiàn)問題時的排查糾錯。
以圖7中的Host Server 1為例,可以分別在兩個SAN Switch上創(chuàng)建如表1所示的Zone配置。在不同的應用場景中,也可以根據(jù)存儲系統(tǒng)接口和Host Server接口的數(shù)量來復用存儲系統(tǒng)的接口。
▲表1 SAN Switch ZONE配置表(Host Server 1)
按照這樣建立Zone之后,每個Host Server會有4條路徑到達存儲系統(tǒng),這4條路徑覆蓋了Host Server的2個HBA卡,2個SAN Switch和2個Controller的全部4個主機接口卡。 其中每個HBA有兩條路徑,每個SAN Switch有兩條路徑,每個Controller有兩條路徑。在存儲系統(tǒng)上,每個4口的主機接口卡上都會有一條路徑連接到主機。在這種情況下,即便出現(xiàn)壞掉一個SAN Switch同時還壞掉一個Controller的極端情況,也能夠保證主機和存儲數(shù)據(jù)的連通性。對于其他所有的Host Server,都可以根據(jù)上述示例來完成相應的Zone的設計。
SAN Switch Zone的基本配置
在完成了Zone的設計后,下面簡單介紹一下Zone的創(chuàng)建主要過程,在這里,本文以IBM的24口交換機SAN24B為例來簡單說明創(chuàng)建Zone操作步驟。IBM SAN24B光纖交換機的配置工具是基于Web的Storage Area Network Web tool,可以直接通過網(wǎng)絡瀏覽器http連接SAN Switch的IP就可以。 在本節(jié),僅僅列出配置Zone的基本必要操作步驟,具體的操作步驟細節(jié),請參考其他文檔。
步驟1、創(chuàng)建別名
為了便于管理和后期Zone的創(chuàng)建,我們可以根據(jù)SAN Switch上面主機或者存儲的連接情況來創(chuàng)建別名,建議以Host Server的名字和Storage System的名字相應端口的名別。這樣又有利后面Zone的創(chuàng)建,也利于以后出現(xiàn)問題是錯誤的排查。創(chuàng)建的過程如圖8所示。
▲圖8 SAN Switch創(chuàng)建別名步驟示意圖
步驟2、創(chuàng)建Zone
別名創(chuàng)建好后,就可以根據(jù)Zone的設計逐個來創(chuàng)建Zone,創(chuàng)建Zone的時候,要明確每個 host server需要跟哪個DS5100的哪個Controller建立連接。創(chuàng)建過程如圖9所示。
▲圖9 SAN Switch創(chuàng)建ZONE步驟示意圖
步驟3、創(chuàng)建配置文件并激活Zone
所有1對1 的Zone都創(chuàng)建完成后,把需要生效的Zone添加到Zone的配置文件中,然后激活這個配置文件,這樣我們關于Zone的配置就正式生效了。創(chuàng)建過程如圖10所示。
▲圖10 SAN Switch創(chuàng)建Zone Config步驟示意圖
存儲系統(tǒng)DS5100的基本配置設計
在存儲網(wǎng)絡環(huán)境中,LUN Mapping是和Zone同樣重要的一個概念。在多業(yè)務系統(tǒng)中,存儲上的LUN Mapping或LUN Masking要與SAN Switch上的Zone功能配合起來使用,目的是使用不同的主機只能訪問到不同的存儲空間。一方面做到存儲空間的隔離,同時能夠充分利用存儲上的空間,從而更方便的進行存儲資源的管理與調(diào)配。
在LUN Mapping之前,Array的劃分和Hot Spare Drive的設置也非常重要。尤其在虛擬化環(huán)境中,host Server需要持續(xù)的跟存儲系統(tǒng)進行數(shù)據(jù)的交換,由于每個Host Server可能會由于用戶的需求不同,導致對存儲的訪問流量不同,為了能夠更好的實現(xiàn)高可用性和負載均衡,推薦如圖11所示的配置方式。
▲圖11 DS5100內(nèi)部Array和HotSpare設計示意圖
上述配置是在虛擬化環(huán)境下常用的一種配置模式,有如下的優(yōu)勢
Hot Spare Drive在每個擴展柜里面預留一個,能夠?qū)崿F(xiàn)在任何一個硬盤損壞的情況下主動進行處理。對于系統(tǒng)管理員來說,可以非常輕松無時間壓力的去處理壞掉的硬盤。
每個Array都跨所有的存儲擴展柜,配置RAID5后,基本上所有的數(shù)據(jù)操作都會把負載分配到所有的擴展柜,這樣可以有效的實現(xiàn)各個擴展柜的負載均衡,同時能夠有效的均衡不同主機上不同規(guī)模的數(shù)據(jù)讀寫需求。
由于所有的Array都跨多個擴展柜,任何一個硬盤損壞或者任何一個擴展柜損壞,都不會影響整個存儲系統(tǒng)的數(shù)據(jù)丟失,保證了高可用性。由于虛擬化環(huán)境下,每個存儲空間上都可能運行著多個不同的虛擬業(yè)務系統(tǒng),數(shù)據(jù)的高可靠性就顯得更加重要。
按照圖5或者圖6所示的組網(wǎng)方式連接存儲主柜和擴展柜后,同時按照圖11所示的模式來劃分Array,則可以在存儲系統(tǒng)內(nèi)部實現(xiàn)有效的負載均衡和性能優(yōu)化。如圖12所示,假定Controller A的主機連接端口8有1MB的數(shù)據(jù)流量,這些數(shù)據(jù)被分成4個256KB的塊寫到1到4號擴展柜上,同時還有256KB的奇偶校驗數(shù)據(jù)到5號擴展柜上,則如圖12所示,整個1.25MB的數(shù)據(jù)流量是以5個256KB的流量同時寫到5個存儲上去的,在實現(xiàn)數(shù)據(jù)操控的時候,DS5100系統(tǒng)會自動計算盡量通過更多的端口實現(xiàn)數(shù)據(jù)的并發(fā)操作,這樣有效的保證了整個存儲系的高可靠性和負載均衡。
▲圖12 DS5100端口負載均衡示意圖
存儲系統(tǒng)DS5100的基本配置步驟
在完成整個存儲系統(tǒng)的Array設計后,就可以開始對DS5100進行配置。在本文,以IBM公司對DS系列的存儲提供了一個專業(yè)Client配置工具IBM System Storage DS Storage Manager10為例來簡單介紹一些必要的配置過程,其他具體的操作步驟,請參考其他文檔。
步驟1、配置存儲的Hot Spare
Hot Spare硬盤是指該硬盤被預先插到擴展柜里面,當其他硬盤損壞是能夠自動去替換損壞的硬盤,這可以為整個存儲系統(tǒng)在出現(xiàn)硬盤故障時提供額外的保護。 如圖11所示,考慮到不同擴展柜的數(shù)據(jù)通信需要通過存儲主機,因此,我們建議hot spare drive保護的硬盤盡量在每一個擴展柜的內(nèi)部,同時考慮到虛擬化環(huán)境下存儲空間的需求非常大,因此,只在一個擴展柜上指定一個hot spare driver就夠了。
初始配置入口如圖13所示,進入配置界面后,選擇所有的enclosure的slot16作為hot spare.
▲圖13 配置HotSpare基本步驟示意圖
步驟2、配置Array和LUN
在配置Array和LUN之前,應該確認目前存儲系統(tǒng)已經(jīng)升級了最新的微碼,同時所有的Hot Spare已經(jīng)全部配置完畢。同時,還要完成Array、LUN的設計,以及命名方式和RAID的配置模式。配置過程如圖14所示,可以根據(jù)設計逐個創(chuàng)建Array,進入配置界面后,輸入Array的名字,選擇手工配置Array的模式,然后選擇各個enclosure中slot號相同的disk來創(chuàng)建Array.
▲圖14 Array創(chuàng)建示意圖
然后,可以在Array下面創(chuàng)建LUN,為了實現(xiàn)較好的performance,若無特殊容量的邏輯硬盤需求,建議每個LUN的大小等同于單個物理硬盤的大小。
步驟3、配置主機組
在vSphere4.1的環(huán)境中,為了能夠更好的實現(xiàn)資源共享和HA,建議采用Cluster的模式,把幾臺Host Server放到一個Cluster里面,每個Cluster作為一個Group共享一些相同存儲空間。為了實現(xiàn)把LUN能夠方便的映射到這個Server Group上面,需要在存儲上面配置Host Group,如圖15所示,創(chuàng)建Host Group之后,逐一添加每個Host的兩個HBA 卡的port identifier。為了便于配置工作,建議在Storage配置之前,預先準備好所有Host Server的HBA WWPN地址。
▲圖15 配置Host Group示意圖
步驟4、Mapping LUN到主機
配置完Host Group,同時完成Array和LUN的創(chuàng)建之后,就可以Mapping LUN到相應的主機了。在進行該配置之前,一定要根據(jù)每個Server Group里面VM的數(shù)量需求和硬盤需求預先計算好需要的存儲空間,完成LUN和Server Group的對應關系設計。設計完成后,可以如圖16所示,進行LUN到Host Group的Mapping。Mapping完成之后,同時確認SAN Switch上面Zone正確的配置并激活了,那么所有的Host Server便可以實現(xiàn)到相應存儲空間的正常訪問了。
▲圖16 Host Group的LUN Mapping示意圖
總結(jié)
本文介紹了在企業(yè)級虛擬化環(huán)境中部署存儲系統(tǒng)時,如何根據(jù)存儲系統(tǒng)的結(jié)構(gòu)特點來設計SAN網(wǎng)絡的構(gòu)架和配置,來實現(xiàn)整個存儲系統(tǒng)的高可靠性和負載均衡,從而為整個企業(yè)級虛擬化平臺的高質(zhì)量的可靠服務奠定基礎。本文從SAN的架構(gòu)設計,SAN Switch的設計和配置,存儲系統(tǒng)內(nèi)部Array的設計和配置等多個層次,充分考慮和設計了高可靠性和負載均衡,并能夠在一個SAN Switch、一個存儲Controller和一個存儲擴展柜失效的極端情況下實現(xiàn)正常的數(shù)據(jù)訪問。
本文通過分析了IBM DS5100存儲系統(tǒng)的基本結(jié)構(gòu),給出了一套最佳實踐的SAN HA架構(gòu)連接,該架構(gòu)連接能夠均衡的發(fā)揮DS5100的所有的內(nèi)部模塊和接口模塊,實現(xiàn)了架構(gòu)層面的高可靠性和負載均衡。同時以IBM的SAN24B光纖交換機為例,介紹了如何進行Zone的設計和配置,一方面實現(xiàn)了不同主機到存儲系統(tǒng)訪問的隔離,同時也實現(xiàn)了SAN網(wǎng)絡連接的HA,并保證了SAN Switch各個端口的負載均衡。在DS5100的內(nèi)部配置部分,介紹了如何進行Host Spare和Array的設計和配置,并給出了主要的配置步驟,實現(xiàn)了存儲數(shù)據(jù)層面的高可靠性和負載均衡。