Issuu on Google+

Linux Lab IPv6 企業資料儲存方案 之 iSCSI + iSNS 建置

學生: 張華然 指導老師: 林旺聰 顧問 彭學勤 老師 楊宏文 老師


一、iSCSI i 指的是 internet,SCSI (Small Computer System Interface)則是指小型電 腦系統介面 : 這邊指的是採用 SCSI 介面的硬碟,大都使用在工作站及伺服器 上,具有高效能,低 cpu 使用率及高穩定性的優點。 iSCSI 為 SAN(Storage Area Network)的一種類型,而 SAN 可採光纖通道(Fabre Channel)或者是採用乙太網路的iSCSI進行建置,而FC SAN的建置成本較iSCSI 昂貴,一般中小企業皆採用價格中的iSCSI SAN。而掛載iSCSI儲存設備的server 或裝置稱 iSCSI target,一般電腦主機要與 iSCSI target 溝通除了需要乙太網路卡 外,還需要安裝 initiator(啟動器),啟動器可為硬體或軟體。

二、iSNS iSNS (Internet Storage Name Service) : 網際網路儲存名稱服務,iSNS 有三種功 能: 1. 集中管理與監控 iSCSI node 若內部網路上有 100 台裝有啟動器的主機,及 100 台 target,若這 100 台啟 動器和 target 同相互探索,則探索的次數最大可能為 100*100=10000 次,如 此可能造成網路壅塞,佔用網路資源,這樣的探索方式實在是沒有效率。 2. iSCSI 網路設備名稱登錄服務 利用 iSNS 可以把內部網路上所有的啟動器主機和 target 登錄在 iSNS server


的資料庫內,initiator 只要透過 iSNS 查詢 target 即可,不需在網路上逐步探 索 target。 3. 設定探索網域(Discovery Domain) 有了登錄的資料庫,可進一步建立 initiator 與 target 間群組配對關係,如此 可建立一探索網域,可設定分區存取架構,意即可設定哪幾台 initiator 只能 和哪幾台 target 連線。

三、 iSCI and iSNS Lab 拓撲圖

四、Lab 建置過程簡述要點


1. 使用 2 台電腦(電腦 A 與電腦 B,其原因後續會詳述) host1、host2 及 isns_s1 建置在電腦 A 採 virtual box 建立虛擬機器,ts3 和 ts4 建 置在電腦 B 採 xen 建立虛擬機器。 2. 參考 opensuse 官方網站的技術文件建置 iscsi initiator、iscsi target、 isns,連結如下: http://doc.opensuse.org/products/draft/SLES/SLES-storage_sd_draft/isns.html http://doc.opensuse.org/products/draft/SLES/SLES-storage_sd_draft/cha_inst_sy stem_iscsi.html

3. 以上建置完成後,isns 會自動登錄網路上 iscsi 各 node,如下圖


並可在 Discovery Domains 設定 initiator 與 target 配對,限定某一


initiator 只能存取特定的 target,如下圖所示

在 host1 可在以圖型介面透過 isns server 搜索 target 及登入


4. 當登入某 target 後,可打指令 fdisk –l 檢視連線的新硬碟,並可自 訂其分割區大小及檔案格式,或掛載點 5. 另可採用指令的方式登入 iscsiadm –m discovery –t isns –p [isns 的 ip] =>透過 isns server 探索 target iscsiadm –m node –T [target 的 iqn] --login =>登入 target


iscsiadm –m node –T [target 的 iqn] --logout =>登出 target 其它 iscsiadm 的管理指令請自行上網 survey

後記與心得 這次 LxLab 30%的驗收,除了驗證自己學習 Linux 兩個月以來的成 果,更是訓練自己 survey 相關議題及解決問題的能力,這是成為工程 師的基本能力。 在作 lab 的過程中,當然不會這麼順利,一路上碰到許多問題, 關關難過關關過,從 xen 建置虛擬機器就花了三天的時間研究、安裝、 設定,班上其他同學也都快被 xen 給搞瘋了,經過不斷的重灌 linux 及重建 xen 的虛擬機器,好不容易才搞定 xen,xen 建好虛擬機器後 問題又來了,因為我需要作 raid 5 要新增三顆硬碟,新增硬碟完全跟 virtual box 的設定觀念不一樣,除了用實體的硬碟分割區外,另外可 以在新增檔案的地方,選虛擬機器的虛擬硬碟 disk0,然後更名,接 下來可改容量大小,最後記得 type 選 virtual disk,另種方法是先自行 產生一個空的 img 檔,給 xen 掛載上去,這個老師上課有教,譬如產 生一個 20G 的 img 檔, 指令是: dd if=/dev/zero of=20G.img bs=1G count=20,打完之後請耐心等待,要 寫一個 20G 的檔案要花時間的,要不然可以自己用指令 ll –ah 20G.img, 看已經寫入幾 G 了。硬碟加完設定好 raid 5 後,之後重開,xen 的虛


擬機器又無法開啟,錯誤訊息寫 kernel img not found error…上網 survey 一下有無同樣的問題,找到一篇是寫說出現這樣的訊息是,組 態檔裡的開機硬碟設錯,但進組檔態看又都 ok,又再持續試,最後 無意間發現先把虛擬機器的開機碟,就是裝 os 的那個 xvda(disk0), 先移除再新增,就好了,因為我新增三顆空白虛擬硬碟檔時,xen 會 把它們順序位置放在開機碟(xvda)前,造成開機後,讀不到 kernel, 無法開機。 Xen 的問題解完後,又碰到另一個問題,在同一台電腦裡我的 initiator、target 和 isns 都設定好了,isns 有都抓到 initiator、target 的 節點,但 initiator 就是無法透過 isns 連接 target,試有好久就是沒辦 法,無意間就試著把裝有 target 虛擬機器的那顆硬碟在另一台電腦(電 腦 B)試看看,然後在電腦 A 再試著用 initiator 透過 isns 連接 target, 沒想到這樣就試成功了! 這樣看來在虛網的網路下可能無法讓 initiator 和 isns 溝通,要在實體的網路環境下才能成功。 作 linux lab 的難度比 MS lab 的難度要高上許多,有些東西是老 師未教過的,完全要靠自己去摸索及研究,過程中會不斷遇到問題卡 關,別氣餒,休息一下,整理一下思緒,再繼續奮戰,解法說不定在 無意間就試出來了,我的情況正是如此,班上其他同學亦是,在卡關 的同時,我還去玩了其它的東西,像 ipv6 to ipv4 tunneling、radva 及


bond 的,另外感謝老師對我們這組 lab 實作的肯定,Guru 老師提到 此 lab 的延伸實驗可再加上 bonding,將三張 1Gbps 的網卡 bonding 起來,整合的頻寬為 3Gbps,以相較光纖通道網卡較低的建置成本, 建構高速的 SAN。


Linux Lab (iscsi and isns)