<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

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

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

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

          最近,部分廠家指出1Gb/sec產(chǎn)品會大幅降價,不過這種產(chǎn)品不是采用的的光纖通道技術(shù),而是利用了1000Base T以太網(wǎng)技術(shù),使用傳統(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術(shù)語,在iSCSI下,分兩部分:initiator(需要數(shù)據(jù)的機器)和target(提供數(shù)據(jù)的機器),在基于光纖通道的SAN下,initiator是一臺計算機,target是一個RAID陣列,但在我們的例子中,我們將要建立一個由兩臺PC組成的主--被動服務(wù)器對的iSCSI target,其中一臺機器擔任target處理來自initiator的iSCSI請求,然后將其磁盤鏡像到另一臺作為后備主機的機器是,如果活動主機失效,后備主機將接管并提供iSCSI服務(wù),當主服務(wù)器修好后,重新同步后備機器的磁盤,并重新取回iSCSI服務(wù)權(quán),這個任務(wù)非常艱巨,寫本文時我都沒有信心它是否能正常工作,可能會正常運轉(zhuǎn),我們試目以待吧!

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

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

          在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://www.ex-cimer.com/article/201706/354623.htm

          配置iSCSI

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

          IncomingUser joe secretsecret

          這一行設(shè)置只允許一個用戶訪問(我們使用了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設(shè)備,然后我們在另一臺機器上做類似的事情。

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

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

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

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

          machine1 10.0.0.46 drbddisk::r0 iscsi-target

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

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

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

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

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



          Windows上的iSCSI

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

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



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

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

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



          關(guān)鍵詞: SAN

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();