[转]Linux 應用 iSCSI 技術 | |
|
|
来源: ChinaUnix博客 日期: 2008.11.21 15:26 (共有0条评论) 我要评论 | |
Linux 應用 iSCSI 技術 作者:徐秉義 本文主要介紹 iSCSI:一種在 TCP/IP 網路中使用 SCSI 命令來傳輸資料的標準通訊協定。 以及介紹 Linux 在 iSCSI 方面應用實作。 储存区域网络(SAN) 談到 iSCSI 就會先談到儲存區域網路(Storage Area Network, 簡稱 SAN),這是個專門用來傳輸磁碟資料的網路,以別於一般 TCP/IP 網路,通常預設 SAN 是使用光纖(FC,Fibre Channel)設備,不同的是 iSCSI 預設使用 Gigabit Ethernet(通常是乙太網路銅線)來作傳輸媒介,促使 iSCSI 價格上比 Fibre Channel 低廉許多,這使得 iSCSI 讓許多中小企業能夠以較低門檻就可以實現 SAN 的應用。 Note:能夠實現 SAN 應用有 Fibre Channel、iSCSI 與 AoE 等等,其中以 Fibre Channel 價格最高、效能最優,而 iSCSI 是 Fibre Channel 之外較知名儲存通訊協定,AoE 則是緊追在 iSCSI 的後起之秀(筆者於 NetAdmin 網管人第七期有 AoE 詳細介紹)。 進階學習:iSCSI 亦能夠使用光纖來當傳輸媒介,但是通常為了節省費用而使用銅線。 在 SAN 中通常有兩個角色「Target」與「Initiator」分別敘述如下: Target 稱為 Target 的通常是「儲存設備」(Storage Device),也就是存放資料的磁碟(以磁碟陣列居多),在我們使用 iSCSI 期間,會在 iSCSI 儲存設備上去建立 LUN(Logical Unit Number)來提供給有 iSCSI Initiator 功能的主機來存取 iSCSI 儲存設備。 溫馨提示:LUN 好比是個「邏輯單位磁碟」,為追求效率、冗餘與延展性,這個 LUN 通常會是由數個實體磁碟(在搭配 RAID 或 LVM 技術後)所組成。 Initiator Initiator 主要功能是提供電腦主機連線到 Target 作磁碟存取。這個 Initiator 可使用硬體方式 Initiator 或者軟體方式 Initiator,底下在 Linux iSCSI 實做,皆是使用軟體方式 Target 與 Initiator。 溫馨提示:「軟體模擬」或「硬體晶片運作」的 iSCSI Target 與 iSCSI Initiator 就好比 RAID 有「軟體模擬的 SoftRAID」與「硬體方式 Hardware RAID」。 iSCSI 介紹 iSCSI(Internet SCSI):一種主要應用在儲存區域網路(SAN)通訊協定,iSCSI 將 SCSI 命令運行在 TCP/IP 網路上,用以傳輸磁碟資料。iSCSI 在 OSI 七層模型中屬於傳輸層(Transport Layer)的通訊協定,提供給 iSCSI Target 與 iSCSI Initiator 之間溝通。 經由 iSCSI 技術,我們能夠提供 Block-Level I/O 給 Initiator 主機,其目的不外乎是「將磁碟排線網路化」、「把這台主機(Target 主機)幻化成另一台主機(Initiator 主機)的磁碟」以達成更大空間、更高 I/O 速度及具有冗餘與高延展度的應用,類似 iSCSI 技術還有 Fibre Channel、AoE(ATA Over Ethernet)。 進階學習:搭配 SAN 架構所應用之高階技術之一為叢集檔案系統(Cluster File System),RedHat 推廣 GFS(Global FS)、SuSE 推廣 OCFS2(Oracle Cluster FS)都是實際案例。 測試主機介紹 這次測試主機共三台(實際上只有兩台硬體),一台 Windows XP、一台 Linux 利用 Xen 虛擬機器技術偽裝成兩台 Fedora Core 5 Linux,相關資訊如下: 用途(作業系統) 主機 IP 位址 Target 主機(Linux) 172.16.2.101 Initiator 主機(Linux) 172.16.7.120 Initiator 主機(Windows XP) 172.16.7.101 使用 Linux 實做 iSCSI Target 篇 這次用來當作 iSCSI Target 主機是一台標準安裝的 Fedora Core 5 主機,因為 Fedora Core 5 沒有內建 iSCSI Target 軟體,所以我們只好手動編譯一個名為「iSCSI Enterprise Target」軟體來使用。 編譯 iSCSI Enterprise Target 軟體 我們使用的軟體簡稱為「iscsitarget」網址「http://iscsitarget.sourceforge.net/」此軟體可於本頁 超連結『sourceforge site』連到「http://sourceforge.net/project/showfiles.php?group_id=108475」下載 到,終至筆者截稿前(2006年9月),最新的是 0.4.13 版,下載到的檔案名稱為「iscsitarget-0.4.13.tar.gz」。 Note:使用指令「uname -r」查出 Fedora Core 5 核心版本編號為 2.6.15 符合網頁上所聲明的需求 2.6.14 以上。 第一步:使用指令「 tar -zxf iscsitarget-0.4.13.tar.gz」解開下載的 tar.gz 檔並生成「iscsitarget-0.4.13」這個目錄與其下許多檔案。 溫馨提示:雖然編譯程式不一定需要 root 權限,但是因為稍後安裝、執行程式還是需要 root 權限,為避免麻煩所以筆者都使用 root 來演練。 第二步:使用指令「 cd iscsitarget-0.4.13」切換至剛才產生的 iscsi 原始碼目錄內,接著使用指令「make」來編譯程式。 編譯過程之溫馨提示一:若發生「make[1]: cc: Command not found」錯誤,代表著這台 Linux 編譯相關的程式(尤其是 gcc)還沒安裝,Linux 稱這類軟體為開發工具(Develop Tool),只要把『gcc』相關這一類的開發工具都安裝即可。 下圖為 gcc 還沒安裝前發生編譯錯誤的畫面。 筆者使用指令「rpm -ivh gcc-4.1.0-3.i386.rpm binutils-2.16.91.0.6-4.i386.rpm glibc-devel-2.4-4.i386.rpm glibc-headers-2.4-4.i386.rpm libgomp-4.1.0-3.i386.rpm」將 gcc 與其相依套件,包括 binutils、glibc-devel、glibc-headers 和 libgomp 都一併裝起來。 Note:Fedora 軟體套件一般都放在安裝光碟片 Fedora/RPMS 目錄內,您也可藉由圖形化程式來安裝套件,或是於安裝時就預先把開發工具都裝起來。 安裝 gcc 與其相依軟體的畫面 裝好 gcc 後,繼續執行編譯動作,也就是回到 iscsi 原始碼目錄執行「make」命令。 編譯過程之溫馨提示二:若發現錯誤訊息「chap.c:20:25: error: openssl/sha.h: No such file or directory chap.c:21:25: error: openssl/md5.h: No such file or directory」則是因為『openssl-devel』套件尚未安裝所造成。 於編譯期間因缺少 openssl-devel 套件發生錯誤的快照 與缺少 gcc 套件的解決方法類似,使用指令「rpm -ivh openssl-devel-0.9.8a-5.2.i386.rpm krb5-devel-1.4.3-4.1.i386.rpm zlib-devel-1.2.3-1.2.1.i386.rpm e2fsprogs-devel-1.38-12.i386.rpm」將 openssl-devel 與其相依套件,包括 krb5-devel、zlib-devel 和 e2fsprogs-devel 都一併裝起來。 安裝 openssl-devel 與其相依軟體的畫面 編譯過程之溫馨提示三:若發現錯誤訊息「make: *** /lib/modules/2.6.15-1.2054_FC5smp/build: No such file or directory. Stop.」則是因為核心原始碼『kernel-devel』套件尚未安裝所致。 Note:其中『2.6.15-1.2054_FC5smp』是會與當下 kernel 版本有關(筆者使用雙 CPU 主機所以有 smp),請使用「uname -r」指令可確認核心版本。 於編譯期間因缺少核心原始碼『kernel-devel』套件發生錯誤的快照。 將 kernel-devel 套件與相依的 hardlink 套件裝起來,注意到 kernel-devel 有許多版本,請選擇與您的主機執行命令「uname -r」顯示出來的相同版本安裝即可,通常安裝 i686 版,鮮少發生有 i686 版本卻安裝 i586 版本的情形,因為不能使用 i686 版本卻只能使用 i586 版本軟體的電腦主機(586 規格)已經不常見。 安裝 kernel-devel 與其相依軟體的畫面 繼續執行「make」命令,這一回應該不會出錯了。 Note:若在安裝 Fedora Core 5 就將套件全部安裝上去,就不會發生前述這些小插曲,只是『全裝』對於一般普通或汰舊電腦來說會花上不少時間。 第三步:執行「make install」將編譯好的程式安裝到系統內,包括『iSCSI Target 程式』以及『iSCSI Target 核心模組』。 在安裝完畢 iscsitarget 軟體後,接著需了解其相關程式、設定檔、啟停方式、規格與所使用埠號,來完成最簡易版的 iSCSI Enterprise Target 設定。 iSCSI Enterprise Target 啟停方式 iscsitarget 支援 Linux 常用 InitScripts 方式,也就是使用「/etc/init.d/iscsi-target」來控制 iscsi-target 服務,只要在執行「/etc/init.d/iscsi-target」最後面補上 start 或 stop 即可作啟動與停止的動作,在 RedHat / Fedora 系列 Linux 也可以使用「service iscsi-target」來控制啟停。 溫馨提示:注意到服務名稱「iscsi-target」中間有『 - 』符號,與軟體名稱「iscsitarget」相異。 至於開機預設啟動 iscsi-target 則是使用 chkconfig 來調整,使用指令「chkconfig --add iscsi-target」將 iscsi-target 加入服務列表;使用「chkconfig --list iscsi-target」列出開機預設是啟動還是停用;使用「chkconfig iscsi-target on」來設定開機預設啟動(on 啟動,off 關閉)。 InitScripts、service 與 chkconfig 的指令操作畫面 iSCSI Enterprise Target 服務所使用埠號 iSCSI Target 端主機預設使用 tcp 埠號 3260 來服務,這項資訊可用來「設定防火牆」,使用封包過濾(Packet Filter)防火牆來規範來源端主機 IP 也算是的方法,另外 iscsitarget 也有內建「以主機為基礎」(Host-Based)防護機制,這機制類似 Linux/Unix 上常用 TCP Wrapper 方式(/etc/hosts.allow、/etc/hosts.deny)。我們使用的 Fedora Core 5 內建防火牆是不開放這個 3260 埠號,所以有啟動防火牆功能請記得放行(若不熟悉防火牆的讀者請先暫時關閉防火牆)。 開啟「/etc/sysconfig/iptables」(Fedora Core 5 防火牆設定檔),仿造 --dport 22 那一行(這行就是放行 sshd 服務,埠號 22),新增一行開放 3260 埠號,接著使用指令「service iptables restart」來重新啟動 iptables 服務即完成放行 iSCSI Target 服務埠號 3260。 溫馨提示:圖形介面程式來設定 Firewall 與 SELinux 則是使用指令「system-config-securitylevel」來啟動。 檔案「/etc/sysconfig/iptables」修改情形 iSCSI Enterprise Target Daemon 設定檔 iSCSI Enterprise Target Daemon 名稱 ietd 使用 /etc/ietd.conf 當作設定檔,您可以在原始碼目錄(iscsitarget-0.4.13)內的 etc 目錄下找到設定範本,範本內大多是「#」字號開頭的註解,有需要用到這些設定時再將註解拿掉設定調整即可。 將範本設定檔拷貝一份到 /etc 再來設定 /etc/ietd.conf 是個不錯的開始。接著開啟 /etc/ietd.conf 內容,看到這一行「Target iqn.2001-04.com.example:storage.disk2.sys1.xyz」這是 Target 名稱,稱作『iSCSI Qualified Name』(簡稱:iqn),這格式在 iSCSI 規格書中有詳細說明,筆者簡介如下: iqn.yyyy-mm.[:identifier] 格式 意義 範例 yyyy-mm 年份-月份 2001-04 reversed domain name 倒過來的網域名稱 com.example identifier 識別代號 storage.disk2.sys1.xyz 溫馨提示:service iscsi-target 呼叫 ietd 程式來服務。 接下來就是要設定 LUN(Logical Unit Number),找到「#Lun 0 Path=/dev/sdc,Type=fileio」這一行並複製貼上後,將『#』註解拿掉並將 Path 改成您提供的磁碟名稱,此例為「Path=/root/test.iso」。 Note:我們可以使用像是區塊裝置(Block devices,例 /dev/sdc)、一般檔案(regular files)、LVM 邏輯卷軸(Logical Volume)與磁碟陣列(RAID)提供給 Initiators 主機當做『區塊裝置』(磁碟),上例是採用「一般檔案」方式。 ietd.conf 設定情形 下一步就是製作方才設定 /root/test.iso 檔案 使用指令「dd if=/dev/zero of=/root/test.iso count=1 seek=1048576」製作出一個約 512 MB 、檔名為 test.iso 檔案於 /root 目錄下。指令的參數解釋如下,若對「dd」指令想要進一步了解,可執行指令「man dd」參考 dd 指令的說明文件。 if 指向來源檔案 /dev/zero of 指向目的檔案 /root/test.iso count 次數 seek 目的忽略幾個 blocks 製作好 /root/test.iso 檔案後,使用指令「/etc/init.d/iscsi-target start」來啟動 iscsi-target Daemon。 設定到此,Target 主機調整的部份也告一個段落,接下來介紹 Windows 與 Linux 如何裝上 iSCSI Initiator 軟體來使用 iSCSI Target 所提供出去的區塊裝置(磁碟裝置)。 溫馨提示:若需要更大的檔案,只須加大 seek=「數字」,1048576 是 1024 x 1024 的結果。 /root/test.iso 檔案製作情形與啟動 iSCSI Target Daemon 使用 Windows 實做 iSCSI Initiator 微軟自 2003 年就已經完成 iSCSI Initiator 相關軟體支援,網址「http: //www.microsoft.com/WindowsServer2003/technologies/storage/iscsi/default.mspx」 可以看到微軟對於 iSCSI 支援不遺餘力。 下載 iSCSI Initiator for Windows 軟體,可從此頁面中間「iSCSI Software Initiator v2.0 iSCSI Software Initiator v2.0」超連結來到下載頁面,接著以下載並安裝 Initiator-2.02-QFE-bld1895-x86fre.exe 為例,來說明 Windows 如何連接 iSCSI Target。 Note:除了 x86 版本外,還提供 amd64 及 ia64 版本 iSCSI Initiator for Windows。 安裝 iSCSI Initiator for Windows 版 下載完成 Initiator-2.02-QFE-bld1895-x86fre.exe 後,緊接著就是執行她來安裝 Initiator,依照安裝精靈指示,一步一步來完成安裝程序即可。 Note:安裝中途有一個步驟必須按下 Agree(同意)才能繼續安裝。 使用 iSCSI Initiator for Windows 版 安裝完成 iSCSI Initiator 後,在桌面上就會發現啟動圖示(或是在程式集內也有),啟動後先選擇第二個分頁標籤『Discovery』上半框『Target Portals』點選『Add』跳出『Add Target Portal』視窗後,將之前 Linux 作成 iSCSI Target「 IP 位址或 DNS 主機名稱」輸入到『IP address or DNS name』欄位中,再點選『OK』即可。 接下來切換到第三個分頁標籤『Targets』,偵測到「iqn」且現在狀態是 inactive(還沒運作),點選下方『Log On』按鈕跳出『Log On to Target』視窗接著按下『OK』按鈕來使這個 Target active(運作)。 得到這個區塊裝置後(Block Device)再來就是使用『磁碟管理』來管理這顆磁碟。 由下圖中可看到磁碟 2 是一個還沒切割、還沒格式化且容量 512 MB 左右的硬碟。 溫馨提示:在『我的電腦』使用滑鼠右鍵選『管理』呼叫出『電腦管理』視窗內就有「磁碟管理」選項(從「控制台」內找也可以)。 後續於 Windows 做「切割硬碟」、「格式化分割區」以及「掛載分割區」與一般新增硬碟沒什麼差別,故在此就不再贅述。 使用 Linux 實做 iSCSI Initiator Linux 在 iSCSI Initiator 支援稍稍比微軟晚些,但由於 iSCSI、Linux 通常都是搭配應用在中、大型系統環境下,所以販售 iSCSI 硬體廠商都會提供驅動程式給 Linux 使用,尤以 RedHat、SuSE 這些 Linux 知名廠商支援度最高,直到最近 2006 年左右,iSCSI 技術日趨成熟、使用機會亦大大提昇下,現在 Linux 都漸漸已經內建 iSCSI Initiator 相關軟體,像是 Fedora Core 5 與 SuSE Linux Enterise Server 10 都不約而同的內建 iSCSI Initiator 軟體,接下來以 Fedora Core 5 為例,來介紹如何在 Linux 實做 iSCSI Initiator。 安裝 iSCSI Initiator for Linux 在 Fedore Core 5 軟體內就有 iSCSI Initiator 檔名為「iscsi-initiator-utils-5.0.5.476-0.1.i386.rpm」 使用指令「rpm -ivh iscsi-initiator-utils-5.0.5.476-0.1.i386.rpm」把她裝起來即可。 使用指令「rpm -qlp iscsi-initiator-utils-5.0.5.476-0.1.i386.rpm」可看到這個套件包含那些檔案與程式,接下來就從這些檔案下手。 溫馨提示:安裝光碟內 Fedora/RPMS 能找到套件檔案。 使用 iSCSI Initiator for Linux 第一步:iSCSI Daemon 與啟停方式 iSCSI Initiator Daemon 名稱為 iscsid 可以透過 InitScripts 「/etc/init.d/iscsi start」來啟動,至於停止 iscsid 及設定開機自動啟動 iscsid 與一般 InitScripts 類似就不再多說。 第二步:給 iSCSI Initiator 主機一個名字 當我們第一次執行「/etc/init.d/iscsi start」時,Fedora Core 5 貼心的使用 iscsi-name 指令亂數產生一個 iqn 並設定至 /etc/initiatorname.iscsi 檔案內,就是這台 iSCSI Initiator 主機的 iqn。 溫馨提示:每一台 iSCSI Initiator 的 iqn 必須不同。 第三步:使用 iscsiadm 指令管理連線 使用指令「iscsiadm -m discovery --type sendtargets --portal 172.16.2.101」向 iSCSI Target 主機詢問 Target Record 資訊,其中 172.16.2.101 為 Target 主機 IP 或 DNS 名稱。 使用指令「iscsiadm -m node --record 0aa8ed --login」登入使用這個紀錄(Record),其中 0aa8ed 是之前指令所查出 Record 名稱。 接下來類似「Windows 發現新硬體」的方式,在 Linux 則是使用「dmesg」指令觀看最後部份,發現一顆磁碟大小為 512 MB 左右硬碟(例如,sda)。 溫馨提示:請勿重複執行「iscsiadm -m node --record 0aa8ed --login」這個動作,這樣會產生新的硬碟連線(sdb、sdc、sdd)造成不必要的問題。 若是不小心產生多餘磁碟連線,可使用「iscsiadm -m node --record 0aa8ed --logout」來移除連線,指令「fdisk -l」(參數是小寫 L 不是一)列出當下所有能夠使用的磁碟。 Note:裝置 xvda 是使用 Xen DomainU 所虛擬出來之主磁碟。 接下來在 Linux 「切割磁碟」、「格式化分割區」與「掛載分割區」筆者已於本刊 NetAdmin 第七期-實戰應用篇「ATA+Linux+Ethernet,打造 AoE SAN 實戰攻略」中介紹過。 在此整理一些相關指令提供參考: 切割磁碟 格式化分割區 掛載與卸載 fdisk mkfs -j(ext3 格式) mkreiserfs(ReiserFS 格式) mount / umount 下次開機自動取得 iSCSI Target 磁碟 只要 iSCSI Initiator 主機曾經 sendtargets 過並且 login 相關 record 後(取得磁碟),iSCSI Initiator 會將紀錄寫到 /var/db/iscsi/ 目錄內的 db 檔中(分別為 discovery.db 與 node.db),所以只要在 Initiator 主機使用指令「chkconfig iscsi on」設定下次開機自動啟動 iSCSI Initiator Daemon,就可以辦到『下次開機自動取得 iSCSI Target 磁碟』功能。 iscsiadm 指令使用簡介 筆者這次所使用到 iscsiadm 相關應用指令如下: 『172.16.2.101』為 Target 主機的 IP;『0aa8ed』為 sendtargets 後,所得到的 Record。 用來發現 Target 主機上的 Record iscsiadm -m discovery --type sendtargets --portal 172.16.2.101 用於登入使用這個 Record(取得磁碟) iscsiadm -m node --record 0aa8ed --login 用於登出停用這個 Record(釋放磁碟) iscsiadm -m node --record 0aa8ed --logout 用來刪除多餘的 Record iscsiadm -m node --op delete --record 0aa8ed 溫馨提示:在 /usr/share/doc/iscsi-initiator-utils-5.0.5.476/README 內容中有詳細 iSCSI Initiator 使用說明,包括 iscsiadm 指令。 測試 iSCSI 在 Linux 上的 I/O 速度 使用指令「hdparm -t /dev/sda」,筆者得到數據大約 10 MB/sec 左右,應該是受限於 10/100 Mbps 網路關係,若是應用「Gigabit Ethernet」並且搭配「磁碟陣列」所分配出來 iSCSI 磁碟,應該會有 100 MB/sec 左右的效能。 iSCSI 在安全方面相關設定 iSCSI 在安全管理方面有著不錯優勢,能夠使用「以主機為基礎」(Host-Based Allow / Deny)也就是以 IP 為基礎(IP-Based Allow / Deny)設定允許或拒絕存取;除了用 Host-Based Allow / Deny 外,iSCSI 還提供「使用者為基礎」(User-Based)也就是利用帳號密碼認證來完成允許或拒絕存取的設定。 iSCSI Target 實戰以 IP 為基礎的允許或拒絕 Initiator 主機 之前我們設定 iSCSI Target 是分享給所有 Initiator 主機都能夠存取(不需帳號密碼),先前有提到能使用 iptables(Linux 防火牆)將 iSCSI Target Daemon 預設連接埠 3260 設定防火牆達到限制 Initiator 主機連線;其實 iSCSI Enterprise Target 軟體本身有內建類似 TCP Wrapper(/etc/hosts.allow、/etc/hosts.deny)的 /etc/initiators.allow、/etc/initiators.deny,接下來示範設定這兩個檔案來限制 Initiator 主機存取。 下表為 TCP Wrapper 與 iSCSI Enterprise Target 相對應檔案(兩者皆位於 /etc 目錄下): 軟體名稱 允許列表檔案 拒絕列表檔案 TCP Wrapper hosts.allow hosts.deny iSCSI Enterprise Target initiators.allow initiators.deny 邏輯上來說:Allow > Deny > 都沒設定到的預設是「允許」 例一:某台主機在 Allow 列表裡,同時也出現在 Deny 列表裡,結果仍是「允許」(因為 Allow > Deny) 例二:某台主機沒有出現在 Allow 列表裡,但有出現在 Deny 裡,結果是「拒絕」(因為 Deny > 沒設定到」 例三:某台主機沒有出現在 Allow 列表裡,也沒有出現在 Deny 裡,結果是「允許」(因為都沒設定到預設是「允許」) 實戰操作:設定 /etc/initiators.allow、/etc/initiators.deny 從安裝 iSCSI Target 原始碼目錄中(iscsitarget-0.4.13),於 etc 目錄下發現有 /etc/initiators.allow、/etc/initiators.deny 這兩個檔案的範本檔,從內容不難看出其設定方式(#為註解),所以只要將其拷貝到 /etc/(根目錄的 etc)下,再設定即可。 底下列出範本為「只允許 172.16.7.120 這台 Initiator」並「拒絕全部」設定 /etc/initiators.allow 內容,最後一行允許 172.16.7.120(其他三行被#註解) # Some exmaples #iqn.2001-04.com.example:storage.disk1.sys1.xyz 192.168.22.2, 192.168.3.8 #iqn.2001-04.com.example:storage.disk1.sys4.xyz [3ffe:302:11:1:211:43ff:fe31:5ae2], [3ffe:505:2:1::]/64 iqn.2001-04.com.example:storage.disk2.sys1.xyz 172.16.7.120 /etc/initiators.deny 內容,最後一行拒絕全部(其他四行被#註解) # Some exmaples #iqn.2001-04.com.example:storage.disk1.sys1.xyz ALL #iqn.2001-04.com.example:storage.disk1.sys2.xyz 192.168.12.2, 192.168.3.0/24, 192.167.1.16/28 #iqn.2001-04.com.example:storage.disk1.sys4.xyz [3ffe:302:11:1:211:43ff:fe31:5ae2], [3ffe:505:2:1::]/64 iqn.2001-04.com.example:storage.disk2.sys1.xyz ALL 為了確保設定正確,請使用不同 IP 之 Initiator 主機連連看是否設定生效,例如另一台 Linux 或是 Windows。 溫馨提示:請注意到 iqn 需與 /etc/ietd.conf 內的 iqn 相同。 iSCSI Target 實戰以使用者帳號密碼為基礎的允許或拒絕 Initiator 主機 iSCSI Target 使用帳號密碼方式認證分成兩階段: 第一階段是 Discovery 時認證所使用的帳號密碼(SendTargets 用的)。 第二階段是登入各別 Target / iqn / Lun 時所使用的帳號密碼(Login 用的)。 溫馨提示:一個 iSCSI Enterprise Target 能夠在 /etc/ietd.conf 設定多個 Target 區段,分享多個 iqn / Lun 並且可以為每個 Target / iqn / Lun 設定存取的帳號密碼。 由下圖的上半個視窗可以看到在 Target 主機於 /etc/ietd.conf 設定兩個 Target / iqn / Lun,而下半個視窗可看到 Initiator 主機使用 iscsiadm 指令發現兩個 Target。 帳號密碼層級 Target 主機設定 /etc/ietd.conf Initiator 主機設定 /etc/iscsid.conf Discovery 時使用的帳號密碼 (SendTargets 用的) IncomingUser joe secret (獨立於 Target 區段外) discovery.sendtargets.auth.username = joe discovery.sendtargets.auth.password = secret 連接 Target / iqn / Lun 時使用的帳號密碼 (Login 用的) IncomingUser joe2 secret2 (置於 Target 區段內) node.session.auth.username = joe2 node.session.auth.password = secret2 Note:joe、secret、joe2 與 secret2 都是測試用的帳號密碼。 溫馨提示:只要有改到 /etc/ietd.conf、/etc/iscsid.conf 別忘了各別需要使用 InitScripts(/etc/init.d/iscsi-target、/etc/init.d/iscsi)重新啟動相關 Daemon(ietd、iscsid)。 Target 主機設定 /etc/ietd.conf 畫面 Initiator 主機設定 /etc/iscsid.conf 畫面 結語 Fibre Channel、iSCSI 與 AoE 之間的比較 一般若是需要用到 Fibre Channel 等級的設備,無疑是個講求高效能、高穩定度應用;倘若您有「真的需要用到那麼好?」的疑惑,iSCSI 與 AoE 都是較為便宜的方案,這三者雖然都是提供 Block Level I/O 磁碟存取,卻分別在「Target I/O 速度」、「穩定度/成熟度」、「安全管理」與「建置費用及設定難易度」上,有著不同的優勢。 評比項目 Fibre Channel iSCSI AoE(ATA Over Ethernet) I/O 速度 ***** *** *** 穩定度/成熟度 ***** **** **** 安全管理 **** ***** **** 知名度 ***** **** *** 建置費用及 設定難易度 *** 設備最貴 設定複雜度中等 **** 設備中等價碼 但設定較複雜 ***** 設備最便宜 設定簡易方便 安全管理說明 設定光纖交換器 (類似 VLAN 技術) 以 TCP/IP 為基礎的 Host-Based Allow / Deny 可搭配使用者認證機制 實體 Ethernet 區隔 可搭配應用 VLAN 技術 歷史淵源與簡介 出現時間最早 最為成熟穩定 近幾年來流行(2003 年至今) 經常被視為光纖設備取代方案 多家知名廠商大力支援 出現時較晚(2004 年左右) 知名度較低,主推簡單與便宜 Note:上表中「*」越多意味著在此項目中越有優勢。 SAN 架構與其相關技術之應用範疇 關於 SAN 架構與其相關技術應用未來只會越來越廣,底下舉幾個簡單的應用實例,提供參考: 例一:配合叢集(Cluster)與叢集檔案系統(Cluster File System)的高階應用,像是 RedHat GFS 或是 Oracle OCFS2 檔案系統,提供分享(Shared)Block Level I/O 給多台主機。 Note:今年(2006 年)Novell SuSE 在 SLES 10(SuSE Linux Enterprise Server 10)產品發表會中上,就有示範 SAN / iSCSI / OCFS2 相關應用及解決方案。 溫馨提示:若未使用及設定 Cluster File System 但卻使用兩個 Initiator 同時存取同一個 Target Device 會導致資料毀損,請小心! 例二:配合資料庫叢集應用,像是 Oracle RAC(需運行在 GFS 或 OCFS2 上)。 例三:快速的資料存取,能夠快速的備份/回存資料磁碟,另外若搭配 Xen / VMWare 等等虛擬機器軟體更能夠快速備份/回存作業系統磁碟,達到不需拆卸機殼內硬碟即可快速切換硬碟配置。 例四:對於「肚量不大」主機,像是筆記型電腦、刀鋒伺服器、1U機架型主機或準系統(像是 Mac Mini)一遇到有磁碟 I/O 量大或磁碟空間需求量大時,應用 SAN 架構來擴充磁碟空間以及增加磁碟 I/O 速度不失為一個好方法。 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/31219/showart_1657240.html |
详细解决方案
[转]Linux 應用 iSCSI 技術 NAS
热度:72 发布时间:2023-12-21 20:11:44.0
相关解决方案
- linux+tomcat部署JSP项目有关问题,找不到jar依赖包
- linux 上log4j使用,日志输出的配置
- linux 上Tomcat不解析.war包
- 使用moto sdk 6.2 for linux 模拟器调试 蓝牙程序时的有关问题
- 文件下传到系统中后,没有执行权限(linux)
- linux 命令 求解解决方法
- jre-7u6-linux-i586.tar.gz 如何没有 bin/javac
- Jexus web server for linux V3.6版正式公布
- Linux,Java,net国内市场的占有率怎么
- Linux 和windows中文乱码解决办法
- 哪位高手知道 Oracle for Linux 在哪儿下载呀
- linux 上安装oracle10g
- linux 下安装oracle10g,该如何解决
- oralce 11g 32位 for linux RH5 安装神奇有关问题
- linux g_serial 的模块装配!
- 求真相,linux &arm 和c\c++有关的开发真的如何悲剧吗
- linux 如何运行c程序
- arm-linux-gcc下的字节对齐有关问题
- 好久没来CSDN了,散分,顺便说一句如何没有嵌入式开发(linux)
- linux下怎么使用arm-linux-gcc编译器
- iSCSI target的有关问题
- 怪事【AT91RM9200+LINUX+PC6脚】
- linux+wifi+ap的一些有关问题
- linux 装置模型
- linux 有关问题
- linux 下汇编有关问题3,高人指教!
- linux 下汇编有关问题2,高人指教!
- linux 下汇编有关问题,高人指教!
- linux 下汇编有关问题,高人指教,初学,
- linux 下汇编有关问题4,高人指教!