用開源軟體建立一個經濟型SAN

2021-01-13 電子產品世界

Simon Brock和Ian Wrigley使用現成的開源軟體建立了一個使用iSCSI設備的SAN。

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

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

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

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

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

Initiator和target

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

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

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

在CentOS上安裝這兩個軟體非常簡單,輸入命令『yum groupinstall drbd-heartbeat』,然後將drbd安裝為內核模塊,用『uname -r』獲取作業系統的版本,在我們的系統上輸出內容是『2.6.9-22.0.1.ELsmp』,因此要將drbd安裝為內核模塊,只需要輸入『yum install kernel-module-drbd-2.6.9-22.0.1.ELsmp』。

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

本文引用地址:http://www.eepw.com.cn/article/201706/354623.htm

配置iSCSI

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

IncomingUser joe secretsecret

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

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

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

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

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

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

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

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

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

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重新發現ip地址後,又會恢復繼續拷貝。

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

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

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



Windows上的iSCSI

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

1、輸入伺服器或集群的ip地址,埠保持不變,然後點擊Advanced按鈕,顯示



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

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

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


相關焦點

  • 谷歌開源量子計算軟體原始碼,便利科學家利用量子計算機
    開源、開源、開源,重要的事情說三遍。繼開源tensorflow、caffe等深度學習開發框架後,當地時間10月24日,谷歌在自己的官方博客上宣布,開源量子計算軟體OpenFermion,從而讓科學家更方便的使用量子計算機。
  • 開源軟體之Audacity:改編周杰倫Mojito新歌,把原唱消音重新配音
    這裡是開源軟體系列的Audacity的學習應用文章,我們之前就簡單介紹過這款開源音樂軟體,不了解這款軟體的可以翻看以前的開源系列文章,一人客在本文則是以簡單應用為主。本文重點不是為了學習改編某一首音樂,而是以學習Audacity這個開源的音頻編輯軟體使用為主介紹常用操作。
  • 小米聯合中科院計算機網絡信息中心舉辦 「第二屆中國開源科學軟體...
    讓大學生成為開源舞臺上的新力量   中國科學院計算機網絡信息中心主任廖方宇表示,開源是促進網際網路企業發展、科學創新的一個重要的力量。本次開源軟體大賽,不僅僅是科學家的專利,也是廣大的軟體愛好者,特別是大學生、研究生、博士生,發揮自己聰明才智一個重要的平臺。   小米集團副總裁、集團技術委員會主席崔寶秋博士希望通過開源賽事,讓大學生們可以站在巨人的肩膀上,展示自己的創新能力,並期待更多的開源愛好者共同努力,把中國的開源水平呈現給世界。
  • 第七屆開源作業系統年度技術會議(OS2ATC)盛大開幕,從編譯器到軟體...
    演講者——魏永明:北京飛漫軟體技術有限公司 CEO、HybridOS 作業系統開源協作項目發起人議題:圖形棧、交互技術及應用生態的發展現狀及趨勢應用生態的發展趨勢是應用的開發門檻越來越低,先入者通過技術和市場優勢建立的壁壘越來越高,雲端和設備端的整合趨勢明顯,多設備互聯互通,強調跨平臺特性,贏家通吃。
  • 用開源frp高性能反向代理軟體實現內網穿透方案
    用開源frp高性能反向代理軟體實現內網穿透方案做IT運維網絡的小夥伴都知道,要實現對外提供服務必須有公網IP才行。一般區域網訪問網際網路都是動態IP,要實現對外提供服務需要動態域名解析並在區域網主機做埠轉發。那為什麼要做內網穿透呢?
  • 國產開源軟體紅旗2000公司老總被指因抄襲免職
    6月26日,記者就此事採訪軟體專家、前 中國開源軟體推進聯盟副秘書長袁萌時,袁萌表示,「胡才勇所推的RedOffice辦公產品,其技術架 構就是OpenOffice開源辦公產品,他所宣傳的純國產自主產權的說法沒有依據。」
  • 數據定義軟體的時代是否已經到來?初創公司格物鈦想用開源數據集...
    數據定義軟體時代到來回顧網際網路發展歷史,過去30年是開源軟體生產數據的時代,這個時代誕生了Google、Facebook、阿里、騰訊和字節跳動這樣的網際網路巨頭,他們都在用軟體生產海量的數據。伴隨著Snowflake這樣的數據處理軟體公司進入了人們的視野,我們看到數據定義軟體的時代已經到來。而初創公司格物鈦希望通過在公開數據集社區和數據管理工具領域的創新來推動這一新時代背景下的全球創新。破局「數據孤島」成為關鍵高質量的數據是支持AI算法的基礎。以往數據大多以孤島的形式存在,數據之間卻並沒有產生連接。
  • 開源中國4-1期軟體推薦 流程圖繪製軟體Dia
    開源中國4-1期(4月第1周)推薦的開源軟體是流程圖繪製軟體Dia,被稱為免費開源的Visio替代軟體。
  • Analog Devices 眼睛裡的自由與開源軟體
    Free and Open-Source Software—An Analog Devices Perspective [Development] Posted Aug 12, 2010 20:42 UTC (Thu) by jake Analog Devices 眼睛裡的自由與開源軟體
  • CopyCat 代碼克隆檢測發布,劍指開源軟體抄襲
    運營開源中國社區 10 年時間,對國內開源發展之迅猛非常的欣慰,但同時也存在很多問題是我們難以忽視的。其中一個對開源生態發展殺傷力最強的就是 —— 抄襲問題!
  • 首屆中國開源科學軟體創意大賽頒獎儀式在京舉辦
    首屆中國開源科學軟體創意大賽頒獎儀式在會上舉行。本次大賽以「人才創新、技術開源」為主題,以「發展中國科學軟體生態」為目的,匯聚了一批優秀的國產開源軟體,培養了一批我國科研信息化人才,對營造我國科研軟體生態環境,起到了積極推動作用。
  • 值得關注的12大開源大數據分析應用軟體
    對於許多大企業來說,開源大數據分析已經成為日常業務中一個必不可少的組成部分。據New Vantage Partners公司對《財富》1000強公司的高層主管開展的調查顯示,如今62.5%的企業在生產環境中至少運行一種大數據工具或應用軟體。
  • 首屆開源軟體供應鏈峰會,ZStack私有雲架構設計原理分享!
    本次峰會由中國科學院軟體研究所、openEuler社區主辦,中國科學院軟體研究所南京軟體研究所承辦,來自全國各地的開源軟體從業者、企業技術專家、高校及科研機構代表、開源社區代表、學生等300 餘人現場參會、2.3 萬餘人同步線上參會。會上重點探討開源技術前沿話題、開源生態建設與合作、開源發展趨勢等內容。
  • 學院軟體基金會迎來第二個開源項目 - OSCHINA - 中文開源技術交流...
    據 variety 的報導,Sony Pictures Imageworks 將其用於製作電影的工具 OpenColorIO 捐贈給了學院軟體基金會。
  • Project CoprHD:EMC推出首個基於其商業軟體的開源項目
    EMC設立開源項目,軟體定義的存儲產品可免費下載EMC宣布推出開源版本EMC ViPR控制器ProjectCoprHD(copperhead),為開放的開發方式提供方便,同時宣布,可「無限制地」免費下載ScaleIO軟體用於非生產環境,並展示了即將推出的ScaleIO的增強功能。
  • 什麼是開源生態系統最重要的部分
    問:「你認為什麼是開源生態系統最重要的元素?」 這個問題對於寫過開源的人來說,你們心中都有著自己獨特的見解,那麼下面由我從Dzone社區收集的信息反饋為大家解答一下什麼是開源生態系統最重要的部分社區與其他工具良好的集成。總而言之,各種各樣的工具需要相互協作才能完成一些有用的工作。有一個健康的社區。大量用戶將開源軟體暴露給各種用例,從而推動創新。
  • Uber 上市了,國內對標的「滴滴」有什麼開源軟體?
    Uber 上周上市了,我們整理了 Uber 的一些開源軟體,詳細列表請看這裡。滴滴是對標 Uber 的中國公司,滴滴在開源領域也有不少知名的開源項目。
  • 製作《幽靈公主》等動畫片的動畫軟體宣布開源
    Toonz公司開發的軟體你可能從未聽說過,但是你已經看到過無數的電視節目和電影使用其產品。Toonz公司的主要產品是企業動畫軟體,集成繪圖,編輯,動畫和合成等功能。
  • 開源:數位技術擴散促進數位技術創新
    開源運動源於開源軟體,開源軟體是指開放原始碼的軟體,即代碼創作者在遵循相關開源協議的基礎上,將自己開發的軟體原始碼向全世界公開,允許其他開發者進行自主學習、測試、修改、二次開發和傳播等活動,以協同方式改善軟體產品的質量和優化軟體功能等。開源軟體在作業系統、資料庫、中間件等都有許多流行的軟體產品,如Linux電腦作業系統、安卓手機作業系統、MySQL和PostgreSQL開源資料庫等。
  • 中國科技雲「第二屆中國開源科學軟體創意大賽」報名通知
    摘要: 報名時間:2020年7—2021年1月 || 主辦單位:中國科學院計算機網絡信息中心;協辦單位:小米集團|| 以「人才創新、技術開源」為主題,以「發展中國科學軟體生態」為目的,匯聚各種優秀國產開源軟體。