新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 用開源軟件建立一個經(jīng)濟型SAN

用開源軟件建立一個經(jīng)濟型SAN

作者: 時間:2017-06-12 來源:網(wǎng)絡 收藏
Simon Brock和Ian Wrigley使用現(xiàn)成的開源軟件建立了一個使用iSCSI設備的。

近年來,存儲區(qū)域網(wǎng)絡或受到許多人關注,但只有極少數(shù)人知道它究竟是什么,為什么想要建立一個,一個最主要的原因是當你坐下來仔細看一看它的造價時,事情就明白了,本文會一一為你解答什么是SAN,你為什么想要建立一個,以及如何使用開源軟件建立一個經(jīng)濟型的SAN。

根據(jù)你的IT背景不同,你可能會認為SAN是一個偉大的重新也可能會認為是一個很老的想法,但我們跳過歷史因素認為SAN是一個新的創(chuàng)意,在普通PC中,任何東西都是安裝在一個盒子(機箱)中的:如CPU,內(nèi)存,硬盤。當你向其中添加硬盤時,可能會很困難,因此有人想出了在盒子(機箱)外面再放一個盒子來安放新添加的設備,硬盤盒子可能有它自身的一些功能,如通過某種類型的RAID控制器基于條帶,鏡像(或二者同時)實現(xiàn)彈性存儲,如何將這個硬盤盒子附加到包括處理器的盒子就顯得非常重要了。

SCSI就是一種可以實現(xiàn)這個任務的技術,它在短距離環(huán)境下工作得很好,但在長距離(長線纜)環(huán)境下就不行了,就是在這種情況下,光纖通道出現(xiàn)了,正好彌補SCSI技術的不足,說簡單點就是:光纖通道使用的是光纖維發(fā)送SCSI命令而不是傳統(tǒng)的電信號電纜,光纖通道也實現(xiàn)了類似以太網(wǎng)交換的交換技術,它允許多臺PC同時與同一個硬盤盒子進行會話,或一臺PC同時與多個硬盤盒子會話,此外,這些機器有多種途徑從硬盤盒子獲取數(shù)據(jù)(訪問路徑冗余),這就是SAN最基本的功能,SAN是通過光纖網(wǎng)絡連接到硬盤盒子的機器集合,它的速度非??欤畛醯牡谝淮饫w通道就達到了1Gb/sec,目前已經(jīng)出現(xiàn)了10Gb/sec的光纖通道產(chǎn)品。

乍一看,SAN并不是如傳說中那么優(yōu)秀,如果你的數(shù)據(jù)非常多,并且需要從多個不同的地方訪問(實現(xiàn)冗余),搭建一個SAN拓撲是解決你的需求的一種辦法,你必須要為此進行存儲投資預算,而不是簡單地分布式部署多臺機器。

最近,部分廠家指出1Gb/sec產(chǎn)品會大幅降價,不過這種產(chǎn)品不是采用的的光纖通道技術,而是利用了1000Base T以太網(wǎng)技術,使用傳統(tǒng)的銅纜作為傳輸介質(zhì),但為了讓SCSI命令能在以太網(wǎng)上傳輸,需要尋找一種新的方法,以便SAN能在1000Base T上正常運轉(zhuǎn),于是iSCSI誕生了,它將所有SCSI命令都封裝在ip包中進行傳輸,也就是說,如果你手上有一臺機器并有一個支持iSCSI的硬盤盒子,那你現(xiàn)在就可以利用現(xiàn)有的以太網(wǎng)獲得一個SAN,它允許你利用以太網(wǎng)和ip提供的所有特性對路線進行排序,并輸出可選的路徑,不用考慮光纖通道是如何完成轉(zhuǎn)換的,這樣iSCSI SAN就誕生了,目前大量廠家都開始支持iSCSI SAN,本文剩下的部分,我將向你介紹如何使用開源軟件(大部分開源)搭建一個可靠的,有彈性的iSCSI SAN。

Initiator和target

在繼續(xù)之前,我們先了解幾個iSCSI術語,在iSCSI下,分兩部分:initiator(需要數(shù)據(jù)的機器)和target(提供數(shù)據(jù)的機器),在基于光纖通道的SAN下,initiator是一臺計算機,target是一個RAID陣列,但在我們的例子中,我們將要建立一個由兩臺PC組成的主--被動服務器對的iSCSI target,其中一臺機器擔任target處理來自initiator的iSCSI請求,然后將其磁盤鏡像到另一臺作為后備主機的機器是,如果活動主機失效,后備主機將接管并提供iSCSI服務,當主服務器修好后,重新同步后備機器的磁盤,并重新取回iSCSI服務權,這個任務非常艱巨,寫本文時我都沒有信心它是否能正常工作,可能會正常運轉(zhuǎn),我們試目以待吧!

為了實現(xiàn)這個計劃,我們將使用兩臺一樣的Dell 1U機架式服務器,用兩個千兆以太網(wǎng)端口交叉連接,在這兩臺服務器上我們將安裝一組開源軟件,首先,我們需要安裝一個操作系統(tǒng),我們選擇使用Linux,千萬不要覺得驚奇,在各種發(fā)行版中我們選擇了CentOS 4,它是基于Red Hat Enterprise Linux(RHEL)的社區(qū)企業(yè)級Linux發(fā)行版,如果你不想支付Red Hat的年度升級服務費用,但又想使用優(yōu)秀的RHEL,那么CentOS就是你的首選,CentOS只是獲取RHEL的源碼,重新編譯,重新進行打包并發(fā)布,因此你可以免費獲取來自RHEL的優(yōu)秀軟件包,即使你不能獲取Red Hat的升級服務,你也能進行升級。

最近,CentOS已經(jīng)開始吸收額外的軟件進入它自己的發(fā)行版,我們將使用到其中的兩個,第一個是Heartbeat,它來自Linux高可用項目(http://www.linux-ha.org/),使用它我們可以實現(xiàn)主--被動服務器故障轉(zhuǎn)移,正如它的名字暗示的那樣,Heartbeat允許一組PC相互監(jiān)視對方的活動(通過心跳信號),檢測到‘死亡’信號就接管該節(jié)點的服務,第二個軟件包是DRBD,它允許在兩臺機器之間共享一個塊設備(通常是一個磁盤分區(qū)),使用該設備的機器就是主服務器,它對設備產(chǎn)生的任何更新都會傳輸給后備服務器,如果主服務器失效,后備服務器就成為主服務器,當失效的服務器修好后,重新同步當前的主服務器,然后接管資源提供服務,后備服務器重新成為后備。

在CentOS上安裝這兩個軟件非常簡單,輸入命令‘yum groupinstall drbd-heartbeat’,然后將drbd安裝為內(nèi)核模塊,用‘uname -r’獲取操作系統(tǒng)的版本,在我們的系統(tǒng)上輸出內(nèi)容是‘2.6.9-22.0.1.ELsmp’,因此要將drbd安裝為內(nèi)核模塊,只需要輸入‘yum install kernel-module-drbd-2.6.9-22.0.1.ELsmp’。

剩下的就是安裝iSCSI target軟件本身了,在互聯(lián)網(wǎng)上一搜會搜到一大把,但很多都是不能用的,我們選擇了最近才創(chuàng)建的項目,叫做iSCSI Enterprise Target(http://iscsitarget.sourceforge.net/),但從其網(wǎng)站上的消息指出它不能在我們的CentOS 4上運行,因為至少需要2.6.13或更高的內(nèi)核支持(我們的內(nèi)核是2.6.9),然而,這是由Red Hat提供的內(nèi)核,多少都經(jīng)過特殊修改,Red Hat所有的軟件包都傾向于從基層開始(這里是2.6.9),然后不停地打補丁,因此在2.6.9和以后的內(nèi)核之間有差別,但已經(jīng)被集成到Red Hat的內(nèi)核中去了,在基于Wiki的文檔上已經(jīng)有如何在Red Hat上安裝的記錄了,按照這些命令在這兩臺機器上安裝好target軟件。

本文引用地址:http://m.butianyuan.cn/article/201706/354623.htm

配置iSCSI

讓我們從一個簡單的情景開始,我們在一臺只有一塊硬盤的機器,通過iSCSI將其發(fā)布出去,所有配置都放在一個文件中,/etc/ietd.conf,編輯這個文件,包括下面三行內(nèi)容:

IncomingUser joe secretsecret

這一行設置只允許一個用戶訪問(我們使用了12個字母的密碼secretsecret,它在Windows下也能工作),下一行是:

Target iqn.2005-11.uk.co.widearea:storage2.diskc

這一行安裝常規(guī)iSCSI規(guī)范命名了一個target,它由年-月,后面跟一個反向的域名和主機標識符組成,最后一行必須縮進:

Lun 0 Path=/dev/sdb,Type=fileio

這一行指出我們將要使用SCSI磁盤/dev/sdb作為iSCSI設備,然后我們在另一臺機器上做類似的事情。

現(xiàn)在我們需要一個initiator,為了證明能跨平臺運行,我們選擇了Microsoft iSCSI initiator,boxout顯示了它如何與iSCSI Enterprise Target一起工作,在我們的例子中,我們從每個機器上加載了在Windows機器上的iSCSI磁盤,我們將它們設為動態(tài)磁盤并加入鏡像,在格式化和同步后,這樣我們就在Windows機器上具有一個彈性的鏡像,它是通過在Linux盒子上建立IP SAN實現(xiàn)的,如果其中一臺機器消失了,鏡像會中斷,但Windows會繼續(xù)向其他機器更新,當其他機器返回時,鏡像可能已經(jīng)修復,Windows將會進行磁盤同步,然而,最大的問題是Microsoft還不支持使用iSCSI作為動態(tài)磁盤,因此我們必須另覓它法。

首先我們要做的是要讓DRBD運行起來,如果你參閱了預安裝的/etc/drbd.conf文件,這會非常簡單,需要做的是從這個文件中找到第一個有兩個“on”標志的資源小節(jié),它定義了如何將磁盤塊設備整合到一起,需要提供機器名,ip地址和磁盤分區(qū),然后將這個文件拷貝到兩臺機器上,運行/etc/init.d/drbd start,所有都會工作起來,文件/proc/drbd顯示了探測到的東西和兩臺機器上的輔助、輔助狀態(tài)的磁盤,當它正常工作起來后,其中一臺機器就成為主服務器,另一臺就成為后備機器,然而,最初會顯示狀態(tài)不一致,不允許你將某一臺機器設為主服務器,第一次設備DRBD設備時,你需要告訴哪一臺是主服務器,然后你才能在其上運行‘drbdadm’命令完成主服務器的設置,然后再看/proc/drbd時就會發(fā)現(xiàn)正在做同步操作。

現(xiàn)在DRBD設備已經(jīng)運行起來了,需要修改/etc/ietd.conf,要將新設備/dev/drbd0包括進來,也就是前面談到的/dev/sdb,然后啟動iSCSI target,并在另一臺機器上掛載。

如果一切工作正常,開始下一步工作,下一階段就是安裝Heartbeat軟件,我們需要修改三個文件,/etc/ha.d目錄下的Readme文件會告訴你在哪里去找例子,首先需要安裝ha.cf文件,每臺機器上都應該不一樣,在這個文件中,我們需要添加‘node’行指出這兩個節(jié)點的名字,并且還要一行‘ucast’指出其他機器的地址,然后我們需要安裝authkeys文件,在這兩臺機器上這個文件應該一樣,最后我們需要在這兩臺機器上安裝haresources文件,它的內(nèi)容如下:

machine1 10.0.0.46 drbddisk::r0 iscsi-target

這里的machine1是在ha.cf中定義的主服務器名,ip地址是對外提供服務的地址,它與普通的ip地址有點不一樣,最后兩項告訴Heartbeat軟件使用drbd磁盤r0,并啟動iscsi-target服務。

啟動好Heartbeat和iscsi-target服務后,從Windows機器掛載新的卷,并格式化,拷貝一些文件看是否能正常工作,接下來干一件齷齪的事情,拷貝一個非常大的文件,然后將主服務器上的Heartbeat關閉,這時拷貝過程肯定會暫停,但當Windows重新發(fā)現(xiàn)ip地址后,又會恢復繼續(xù)拷貝。

然后我們干點更具破壞性的操作,拔下主服務器的電源線,看它是否還會繼續(xù)工作,正如預料之中的,Heartbeat會從主服務器將資源轉(zhuǎn)移到后備服務器,Windows initiator看上去好像暫停了一下,但馬上接著又繼續(xù)拷貝直至結(jié)束,我不太相信在這種破壞環(huán)境下它還能工作得很好,于是我用MD5校驗工具校驗了放在iSCSI驅(qū)動器上的文件,結(jié)果報告與源文件的校驗值一致,意味著它的確工作得很好,所有的數(shù)據(jù)塊都被正確地傳輸過去了。

最后關于iSCSI target軟件要注意的是它在Linux上的可用性:它允許你導出塊設備,前面我們已經(jīng)看到,包括raw磁盤,磁盤上的分區(qū),仿真塊設備等。在這個例子中,我們使用DRBD仿真塊設備,當我們曾經(jīng)從系統(tǒng)中導出過軟RAID設備,在寫本文的時候,開源解決方案還不支持導出字符設備,意味著你還不能導出磁帶驅(qū)動器,即使iSCSI協(xié)議支持,目前只有一些商業(yè)解決方案支持導出字符設備。

我們使用開源軟件建立起一套經(jīng)濟的SAN,也只接觸到最基礎的知識,SAN是什么,iSCSI是什么,但這是一個偉大的開始。



Windows上的iSCSI

在文章的前面部分,我們使用Linux作為服務器,Windows作為客戶端,但我們認為多寫幾行文字來描述如何Windows上實現(xiàn)iSCSI也是值得的,可以從微軟公司的存儲網(wǎng)站http://www.microsoft.com/windowsserversystem/storage下載到Microsoft iSCSI initiator軟件,安裝它非常簡單,安裝后會有一個控制面板,從它可以訪問到iSCSI服務器,假設你已經(jīng)按照我前面說的方法安裝了一臺Linux服務器,打開控制面板,然后點擊Discovery標簽,然后點擊Add按鈕,將會顯示如下圖所示的一個對話框。

1、輸入服務器或集群的ip地址,端口保持不變,然后點擊Advanced按鈕,顯示



2、如果你沒有看到輸出設備,點Refresh,選擇你想要的設備,然后點擊Log On,顯示

3、在General標簽頁,你需要開啟CHAP登陸,并輸入與ietd.conf中一樣的登錄名和密碼,然后點兩次Ok按鈕回到控制面板,如果你的密碼少于16個字符,會提示你,但這樣還是能工作的,選擇Target標簽,顯示

4、如果你打算每次重啟系統(tǒng)都使用iSCSI卷,請選中'Automatically restore'選項,至此,你就擁有一個附加的磁盤了,在磁盤管理器中也能看到它,并可以當正常磁盤使用了,值得注意的是目前在Windows上iSCSI還不支持動態(tài)磁盤,它可以用于諸如exchange,sql server等應用程序。



關鍵詞: SAN

評論


相關推薦

技術專區(qū)

關閉