《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > OpenStack云環(huán)境下多節(jié)點(diǎn)塊存儲(chǔ)研究
OpenStack云環(huán)境下多節(jié)點(diǎn)塊存儲(chǔ)研究
2015年微型機(jī)與應(yīng)用第2期
曹嶸暉1,李秦偉2,呂曉丹2
(1.貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽 550025; 2.貴州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴州 貴陽 550025)
摘要: 基于OpenStack本身的塊存儲(chǔ)設(shè)計(jì),在云計(jì)算平臺(tái)中實(shí)現(xiàn)了多節(jié)點(diǎn)塊存儲(chǔ)的iSCSI SAN配置,為虛擬機(jī)提供了跨網(wǎng)段、跨節(jié)點(diǎn)的獨(dú)立塊存儲(chǔ)服務(wù),并在不同節(jié)點(diǎn)間、虛擬機(jī)上分別對(duì)其進(jìn)行測(cè)試,對(duì)學(xué)習(xí)和實(shí)際構(gòu)建云平臺(tái)中跨網(wǎng)段多節(jié)點(diǎn)的塊存儲(chǔ)服務(wù)有參考價(jià)值。
Abstract:
Key words :

  摘  要: 基于OpenStack本身的塊存儲(chǔ)設(shè)計(jì),在云計(jì)算平臺(tái)中實(shí)現(xiàn)了多節(jié)點(diǎn)塊存儲(chǔ)iSCSI SAN配置,為虛擬機(jī)提供了跨網(wǎng)段、跨節(jié)點(diǎn)的獨(dú)立塊存儲(chǔ)服務(wù),并在不同節(jié)點(diǎn)間、虛擬機(jī)上分別對(duì)其進(jìn)行測(cè)試,對(duì)學(xué)習(xí)和實(shí)際構(gòu)建云平臺(tái)中跨網(wǎng)段多節(jié)點(diǎn)的塊存儲(chǔ)服務(wù)有參考價(jià)值。

  關(guān)鍵詞: OpenStack;多節(jié)點(diǎn)塊存儲(chǔ);iSCSI SAN

0 引言

  隨著云計(jì)算的不斷發(fā)展,各種云計(jì)算管理平臺(tái)應(yīng)運(yùn)而生,如Eucalyptus、OpenStack。而在各種各樣的云計(jì)算管理平臺(tái)中只有OpenStack是完全開源的,而開源的云計(jì)算管理平臺(tái)則一致被業(yè)界和學(xué)術(shù)界認(rèn)為是未來云計(jì)算發(fā)展的方向[1]。

  OpenStack是由Rackspace和NASA共同開發(fā)的云計(jì)算平臺(tái),幫助服務(wù)商和企業(yè)內(nèi)部實(shí)現(xiàn)類似于Amazon EC2和S3的云基礎(chǔ)架構(gòu)服務(wù)(Infrastructure as a Service,IaaS)。前者是NASA開發(fā)的虛擬服務(wù)器部署和業(yè)務(wù)計(jì)算模塊;后者是Rackspace開發(fā)的分布式云存儲(chǔ)模塊,兩者可以一起用,也可以分開單獨(dú)用。OpenStack是一個(gè)開源項(xiàng)目,除了有Rackspace和NASA的大力支持外,后面還有包括Dell、Citrix、Cisco、Canonical這些重量級(jí)公司的貢獻(xiàn)和支持,其發(fā)展非常之迅速[2]。

1 OpenStack塊存儲(chǔ)服務(wù)

  OpenStack創(chuàng)建出來的實(shí)例是沒有永久存儲(chǔ)的,關(guān)閉實(shí)例后數(shù)據(jù)都會(huì)丟失,所以需要存儲(chǔ)卷來保存每個(gè)instance的數(shù)據(jù)。這項(xiàng)工作由nova-volume實(shí)現(xiàn),提供類似亞馬遜EBS的塊存儲(chǔ)服務(wù)。

  其中,nova-volume專門管理卷的創(chuàng)建、刪除、掛載等,這些卷基于lvm管理,使用iSCSI提供服務(wù),并通過libvirt與虛擬機(jī)交互。存儲(chǔ)池在libvirt中分配的id標(biāo)志著它成為libvirt可管理的對(duì)象,生成卷組vg(volume group,OpenStack中必須nova-volumes)就有了可劃分存儲(chǔ)卷的存儲(chǔ)池,狀態(tài)為活躍(active)狀態(tài)才可以執(zhí)行劃分存儲(chǔ)卷的操作,其流程如圖1所示。

001.jpg

  在單機(jī)塊存儲(chǔ)中,一個(gè)塊設(shè)備指一個(gè)磁盤分區(qū)。以Linux操作系統(tǒng)為例,在設(shè)備目錄/dev/下會(huì)看到掛載的塊存儲(chǔ)設(shè)備。再通過fdisk分區(qū)工具將磁盤分區(qū)。

  但是,在當(dāng)前海量數(shù)據(jù)存儲(chǔ)和超高任務(wù)訪問量的需求下,單機(jī)的塊存儲(chǔ)已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足大數(shù)據(jù)量的要求。通過光纖通道存儲(chǔ)(SAN)將不同種類、性能和大小的存儲(chǔ)設(shè)備集合在一起統(tǒng)一向外提供服務(wù),能夠滿足性能和價(jià)格方面的需求[3]。

  而OpenStack云平臺(tái)中只提供類似于EBS塊存儲(chǔ)的API框架,當(dāng)前的實(shí)現(xiàn)方式是Ceph。它并沒有實(shí)現(xiàn)對(duì)多個(gè)節(jié)點(diǎn)塊設(shè)備的管理和實(shí)際服務(wù)的提供。

  OpenStack目前作為商業(yè)應(yīng)用云計(jì)算平臺(tái)并不多見,而將多節(jié)點(diǎn)的物理存儲(chǔ)資源在OpenStack上進(jìn)行統(tǒng)一管理是商業(yè)應(yīng)用必需的[4]。

  為此本文引入光纖通道存儲(chǔ)局域網(wǎng)技術(shù)(Fibre Channel Storage Area Network,F(xiàn)C SAN)。這是一種用可靠的小型計(jì)算機(jī)系統(tǒng)接口(Small Computer System Interface,SCSI)協(xié)議將存儲(chǔ)設(shè)備與相關(guān)的服務(wù)器連接起來的高速子網(wǎng)。

2 iSCSI存儲(chǔ)服務(wù)

  iSCSI把SCSI命令封裝在TCP包中,通過TCP/IP協(xié)議連接Initiator(發(fā)起端)與Target(目標(biāo)端),利用TCP連接傳送控制信息、SCSI命令、參數(shù)和數(shù)據(jù)[5]。

3 多節(jié)點(diǎn)塊存儲(chǔ)實(shí)現(xiàn)步驟

  本文中實(shí)驗(yàn)環(huán)境為1臺(tái)控制節(jié)點(diǎn),3臺(tái)計(jì)算節(jié)點(diǎn),1臺(tái)存儲(chǔ)服務(wù)器,由于控制節(jié)點(diǎn)本身帶塊存儲(chǔ)服務(wù),所以將存儲(chǔ)服務(wù)器并入OpenStack云平臺(tái)中以提供多節(jié)點(diǎn)塊存儲(chǔ)服務(wù)。表1為各個(gè)節(jié)點(diǎn)基本配置參數(shù)。

009.jpg

  3.1 準(zhǔn)備存儲(chǔ)服務(wù)器

  由于搭建OpenStack云平臺(tái)開始前須先用Ubuntu-12.04.2-server-amd64.iso做為底層操作系統(tǒng),因此存儲(chǔ)服務(wù)器在安裝操作系統(tǒng)對(duì)硬盤進(jìn)行分區(qū)時(shí),分出15 TB的空間掛載在nova-volume上,為提供塊存儲(chǔ)服務(wù)作資源準(zhǔn)備。

  3.2 iSCSI的配置

  3.2.1 開啟iSCSI target服務(wù)

  在Ubuntu環(huán)境下安裝iSCSI target相關(guān)的軟件tgt、iscsitarget、iscsitarget-source、iscsitarget-dkms。修改iSCSI target的配置文件:將ISCSITARGET_ENABLE的值改成true。

  創(chuàng)建target,id=1,iqn=iqn.33.cinder,iqn是target在局域網(wǎng)內(nèi)的唯一描述符。給指定的target增加一個(gè)lun,通過tid來制定target,這里將/dev/sdb添加到tid=1的target中,并使其能被initiator訪問。

  3.2.2 iSCSI initiator端的配置

  安裝open-scsi并發(fā)現(xiàn)iscsi target。

  其顯示信息為:192.168.3.3:3260 iqn.33.cinder。通過下面指令使用target:

  sudo iscsiadm-m node—targetname iqn.33.cinder-p 192.168.3.3--login

  執(zhí)行上述操作后,使用df╞h查看控制節(jié)點(diǎn)磁盤信息就可以看到在本地主機(jī)上多出一個(gè)/dev/sdb。

  3.3 存儲(chǔ)卷軸的管理與操作

  分區(qū)格式化后,可以看到多出來的/dev/sdb1。對(duì)其進(jìn)行物理卷和卷組的創(chuàng)建,卷組名稱為:nova-volume。通過vgdisplay可以看到卷組信息,如圖2所示。

002.jpg

  在openStack的Horizion操作平臺(tái)上點(diǎn)擊“create volume”即可對(duì)存儲(chǔ)服務(wù)器上提供的15 TB存儲(chǔ)資源進(jìn)行管理與操作。

4 基于iSCSI的多節(jié)點(diǎn)存儲(chǔ)的OpenStack云平臺(tái)性能評(píng)測(cè)

  針對(duì)搭建好的OpenStack云平臺(tái)的存儲(chǔ)性能研究可以分為節(jié)點(diǎn)測(cè)試和虛擬機(jī)測(cè)試兩個(gè)方面。節(jié)點(diǎn)測(cè)試是對(duì)物理層面上的存儲(chǔ)資源性能的評(píng)測(cè)指標(biāo),虛擬機(jī)測(cè)試則是確定云平臺(tái)提供服務(wù)以及云存儲(chǔ)性能研究的層次。

  4.1 節(jié)點(diǎn)測(cè)試

  本文提供存儲(chǔ)服務(wù)采用的存儲(chǔ)服務(wù)器為Dell的R510。此存儲(chǔ)服務(wù)器具有最多12個(gè)硬盤,可提供超大內(nèi)部存儲(chǔ)容量,本實(shí)驗(yàn)為9個(gè)做raid5的2 TB硬盤,提供的可用存儲(chǔ)容量為16 TB。

  在存儲(chǔ)節(jié)點(diǎn)上對(duì)其提供存儲(chǔ)服務(wù)的存儲(chǔ)區(qū)/dev/sdb1進(jìn)行讀寫測(cè)試,測(cè)試結(jié)果如圖3所示。

003.jpg

  可以看到直接插在服務(wù)器上的硬盤2 s讀取了17 214 MB的緩存,約合8 615.97 MB/s。在3.02 s讀取了828 MB磁盤(物理讀),讀取速度約合274 MB/s。

  回到控制節(jié)點(diǎn),通過iSCSI的Initator端指令找到其提供存儲(chǔ)服務(wù)的存儲(chǔ)資源,并使用它。由于其存儲(chǔ)資源大于2 TB,因此采取GPT分區(qū)的方式。分區(qū)完成后使用mkfs.ext3格式化。對(duì)其進(jìn)行物理卷和卷組的創(chuàng)建。并對(duì)其進(jìn)行相同的硬盤測(cè)試,測(cè)試結(jié)果如圖4所示。

004.jpg

  這時(shí)看到在使用其存儲(chǔ)服務(wù)的控制節(jié)點(diǎn)上對(duì)其提供的存儲(chǔ)資源的讀取測(cè)試中,其2 s讀取了12 268 MB的緩存,約合6 140.78 MB/s。在3.34 s中讀取了334 MB磁盤(物理讀),讀取速度約合110.72 MB/s。

  對(duì)比其本地資源的讀取,其速度有明顯下降。由于其存儲(chǔ)節(jié)點(diǎn)與控制節(jié)點(diǎn)間是交換機(jī)連接的,并且處于不同的網(wǎng)段,因此網(wǎng)絡(luò)是存儲(chǔ)節(jié)點(diǎn)性能的一個(gè)制約因素,其速度下降值在可以接受的范圍之內(nèi),不影響控制節(jié)點(diǎn)對(duì)其存儲(chǔ)資源的正常使用。

  在控制節(jié)點(diǎn)創(chuàng)建用以提供給虛擬機(jī)使用的物理卷軸,大小為1 TB,具體信息如圖5所示。

005.jpg

  將其掛載在虛擬機(jī)上,隨后對(duì)其進(jìn)行測(cè)試。

  4.2 虛擬機(jī)測(cè)試

  在OpenStack云平臺(tái)上創(chuàng)建4核、8 GB內(nèi)存、100 GB硬盤的虛擬機(jī)。其鏡像為windows2008server。虛擬機(jī)啟動(dòng)后再將之前創(chuàng)建的1 TB的物理卷掛載在虛擬機(jī)上,對(duì)其格式化分區(qū)后如圖6所示。

006.jpg

  使用HD Tune Pro工具。分別選取512 KB、16 MB、64 MB、512 MB大小的文件對(duì)其掛載的1 TB硬盤進(jìn)行讀寫測(cè)試,測(cè)試結(jié)果如圖7所示。

007.jpg

  從4組測(cè)試結(jié)果可以看到,不同大小文件對(duì)其掛載的1 TB的硬盤均在512 GB~8 192 GB的區(qū)間達(dá)到峰值。說明其不同大小的文件讀取對(duì)其提供的存儲(chǔ)服務(wù)在讀寫區(qū)間沒有區(qū)別。同時(shí)其讀取速度4次取平均值為讀取109.6 MB/s、寫入105.7 MB/s,結(jié)果如圖8所示。

008.jpg

  對(duì)比其在控制節(jié)點(diǎn)上對(duì)存儲(chǔ)資源的測(cè)試,其讀取速度沒有變化,不受云平臺(tái)本身的影響。同時(shí)對(duì)不同大小的文件的讀寫也沒有明顯的區(qū)別,足以說明此種方案的可信性。

5 結(jié)論

  本文在分析OpenStack云平臺(tái)其自身塊存儲(chǔ)服務(wù)基礎(chǔ)上給出了Linux下通過iSCSI協(xié)議實(shí)現(xiàn)多節(jié)點(diǎn)存儲(chǔ)的實(shí)現(xiàn)方案,在此實(shí)現(xiàn)的基礎(chǔ)上研究了節(jié)點(diǎn)與虛擬機(jī)兩方面對(duì)多節(jié)點(diǎn)塊存儲(chǔ)管理與應(yīng)用,并給出了相應(yīng)的實(shí)驗(yàn)測(cè)試。通過測(cè)試結(jié)果發(fā)現(xiàn),在物理層上不同節(jié)點(diǎn)間的存儲(chǔ)資源的使用是受其網(wǎng)絡(luò)性能的影響,而在OpenStack本身的云平臺(tái)內(nèi),其物理層的網(wǎng)絡(luò)設(shè)置對(duì)塊存儲(chǔ)服務(wù)的影響幾乎微乎其微。如果節(jié)點(diǎn)間網(wǎng)絡(luò)配置不當(dāng),就會(huì)嚴(yán)重影響存儲(chǔ)服務(wù)的性能;反之,就能充分發(fā)揮其基于iSCSI協(xié)議塊存儲(chǔ)的優(yōu)越性。

參考文獻(xiàn)

  [1] 汪楠.基于OpenStack云平臺(tái)的計(jì)算資源動(dòng)態(tài)調(diào)度及管理[D].大連:大連理工大學(xué),2013.

  [2] OpenStack[EB/OL].[2014-09-16].http://openstack.org/.

  [3] 張江陵,馮丹.海量信息存儲(chǔ)[M].北京:科學(xué)出版社,2003.

  [4] Marc Farley.SAN存儲(chǔ)區(qū)域網(wǎng)絡(luò)[M].孫功星,蔣文保,范勇,譯.北京:機(jī)械工業(yè)出版社,2001.

  [5] iSCSI Draft[EB/OL].(2003-01-xx)[2014-09-16]. http://www.ietf.org/int-ernet-drafts/draft-ietf-ips-iscsi-20.txt,2003-01.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。