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

  摘  要: 基于OpenStack本身的塊存儲設計,,在云計算平臺中實現(xiàn)了多節(jié)點塊存儲iSCSI SAN配置,為虛擬機提供了跨網(wǎng)段,、跨節(jié)點的獨立塊存儲服務,,并在不同節(jié)點間、虛擬機上分別對其進行測試,,對學習和實際構建云平臺中跨網(wǎng)段多節(jié)點的塊存儲服務有參考價值,。

  關鍵詞: OpenStack;多節(jié)點塊存儲,;iSCSI SAN

0 引言

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

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

1 OpenStack塊存儲服務

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

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

001.jpg

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

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

  而OpenStack云平臺中只提供類似于EBS塊存儲的API框架,,當前的實現(xiàn)方式是Ceph。它并沒有實現(xiàn)對多個節(jié)點塊設備的管理和實際服務的提供,。

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

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

2 iSCSI存儲服務

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

3 多節(jié)點塊存儲實現(xiàn)步驟

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

009.jpg

  3.1 準備存儲服務器

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

  3.2 iSCSI的配置

  3.2.1 開啟iSCSI target服務

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

  創(chuàng)建target,id=1,,iqn=iqn.33.cinder,,iqn是target在局域網(wǎng)內的唯一描述符。給指定的target增加一個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é)點磁盤信息就可以看到在本地主機上多出一個/dev/sdb,。

  3.3 存儲卷軸的管理與操作

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

002.jpg

  在openStack的Horizion操作平臺上點擊“create volume”即可對存儲服務器上提供的15 TB存儲資源進行管理與操作。

4 基于iSCSI的多節(jié)點存儲的OpenStack云平臺性能評測

  針對搭建好的OpenStack云平臺的存儲性能研究可以分為節(jié)點測試和虛擬機測試兩個方面,。節(jié)點測試是對物理層面上的存儲資源性能的評測指標,,虛擬機測試則是確定云平臺提供服務以及云存儲性能研究的層次,。

  4.1 節(jié)點測試

  本文提供存儲服務采用的存儲服務器為Dell的R510。此存儲服務器具有最多12個硬盤,,可提供超大內部存儲容量,,本實驗為9個做raid5的2 TB硬盤,提供的可用存儲容量為16 TB,。

  在存儲節(jié)點上對其提供存儲服務的存儲區(qū)/dev/sdb1進行讀寫測試,,測試結果如圖3所示。

003.jpg

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

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

004.jpg

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

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

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

005.jpg

  將其掛載在虛擬機上,隨后對其進行測試,。

  4.2 虛擬機測試

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

006.jpg

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

007.jpg

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

008.jpg

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

5 結論

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

參考文獻

  [1] 汪楠.基于OpenStack云平臺的計算資源動態(tài)調度及管理[D].大連:大連理工大學,,2013.

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

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

  [4] Marc Farley.SAN存儲區(qū)域網(wǎng)絡[M].孫功星,,蔣文保,范勇,,譯.北京:機械工業(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.


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