iscsi概述
iscsi:internet 小型計算機系統接口 (iscsi:internet small computer system interface)。
internet 小型計算機系統接口(iscsi)是一種基于 tcp/ip的協定,用來建立和管理ip儲存設備、主機和客戶機等之間的互相連接配接,并建立存儲區域網絡(san)。san 使得 scsi 協定應用于高速資料傳輸網絡成為可能,這種傳輸以資料塊級别(block-level)在多個資料存儲網絡間進行。
scsi 結構基于客戶/伺服器模式,其通常應用環境是:裝置互相靠近,并且這些裝置由scsi總線連接配接。iscsi的主要功能是在 tcp/ip 網絡上的主機系統(啟動器 initiator)和儲存設備(目标器 target)之間進行大量資料的封裝和可靠傳輸過程。此外,iscsi 提供了在 ip 網絡封裝 scsi 指令,且運作在 tcp 上。
iscsi(internet scsi)是2003年ietf(internetengineering task force,網際網路工程任務組)制訂的一項
bcm5722 iscsi網卡标準,用于将scsi資料塊映射成以太網資料包。scsi(small computer system interface)是塊資料傳輸協定,在存儲行業廣泛應用,是儲存設備最基本的标準協定。從根本上說,iscsi協定是一種利用ip網絡來傳輸潛伏時間短的scsi資料塊的方法,iscsi使用以太網協定傳送scsi指令、響應和資料。iscsi可以用我們已經熟悉和每天都在使用的以太網來建構ip存儲區域網路。通過這種方法,iscsi克服了直接連接配接存儲的局限性,使我們可以跨不同伺服器共享存儲資源,并可以在不停機狀态下擴充存儲容量。
iscsi的工作過程
當iscsi主機應用程式發出資料讀寫請求後,作業系統會生成一個相應的scsi指令,該scsi指令在iscsi initiator層被封裝成iscsi消息包并通過tcp/ip傳送到裝置側,裝置側的iscsi target層會解開iscsi消息包,得到scsi指令的内容,然後傳送給scsi裝置執行;裝置執行scsi指令後的響應,在經過裝置側iscsi target層時被封裝成iscsi響應pdu,通過tcp/ip網絡傳送給主機的iscsi initiator層,iscsi initiator會從iscsi響應pdu裡解析出scsi響應并傳送給作業系統,作業系統再響應給應用程式。
iscsi 啟動器
從本質上說,iscsi 啟動器是一個用戶端裝置,它連接配接到伺服器提供的某一服務,并發起對該服務的請求。如果利用iscsi建立rac,iscsi 啟動器軟體需要安裝在每個 oracle rac 節點上。
iscsi 啟動器可以用軟體實作,也可以用硬體實作。軟體 iscsi 啟動器可用于大部分主要作業系統平台,可以使用 iscsi-initiator-utils rpm中提供的免費 linux open-iscsi 軟體驅動程式。iscsi 軟體啟動器通常與标準網絡接口卡 (nic)(大多數情況下是千兆位以太網卡)配合使用。硬體啟動器是一個 iscsi hba(或 tcp 解除安裝引擎 (toe) 卡),它本質上隻是一個專用以太網卡,其上的 scsi asic 可以從系統 cpu 内解除安裝所有工作(tcp 和 scsi 指令)。iscsi hba 可以從許多供應商處購買,包括 adaptec、alacritech、intel 和 qlogic。
iscsi 目标
iscsi 目标是 iscsi 網絡的“伺服器”元件。它通常是一個儲存設備,包含您所需的資訊并響應來自(一個或多個)啟動器的請求。對于本文,節點 openfiler1 将是 iscsi 目标。
openfiler
配置openfiler
openfiler的安裝和安裝linux類似,十分簡單這裡不做過多介紹,不明白的讀者可以自行查閱資料。以下配置環境是以rac配置為基礎,目标是将openfiler上的存儲空間已共享存儲的方式劃分給rac1和rac2兩個節點。
浏覽器:firefox3.6(不推薦用ie進行此設定,下面會講原因)
用戶端作業系統:rhel 5.4
iscsi用戶端:open-iscsi-2.0-871
要将 openfiler 用作 iscsi 存儲伺服器,我們需要執行六個主要任務:設定 iscsi 服務、配置網絡通路、指定實體存儲器并對其分區、建立新的卷組、建立所有邏輯卷,最後,為每個邏輯卷建立新的 iscsi 目标。
服務
在浏覽器 輸入https://192.168.2.195:446/ 開啟openfiler的web界面 ,這裡192.168.2.195為openfiler系統的ip,446為服務端口。openfiler的預設使用者名為openfiler,密碼為password。
要控制服務,我們使用 openfiler storage control center 并轉到 [services] / [manage services]:

要啟用 iscsi 服務,單擊“iscsi target server”服務名稱後面的“enable”連結。之後,“iscsi target server”狀态應變為“enabled ”。
ietd 程式将實作 iscsi enterprise target 軟體的使用者級部分,以便在 linux 上建構 iscsi 存儲系統。啟用 iscsi target 之後,我們應該能夠通過 ssh 登入到 openfiler 伺服器,并且可看到 iscsi-target 服務正在運作:
[root@openfiler1 ~]# service iscsi-target status
ietd (pid 14243) is running...
網絡通路配置
下一步是配置 openfiler 中的網絡通路,指定需要通過存儲(專用)網絡通路 iscsi 卷的兩個 oracle rac 節點(racnode1和 racnode2 )。注意,本節稍後 将會建立 iscsi 卷。另請注意,本步驟并不實際授予兩個 oracle rac 節點通路 iscsi 邏輯卷所需的相應權限。授予權限的操作将在本節稍後通過對每個新邏輯卷更新 acl 來進行。
如同上一節,我們使用 openfiler storage control center 并轉到 [system] / [network setup] 來完成網絡通路配置。通過頁面底部的“network access configuration”部分,管理者可以設定網絡和/或主機以允許其通路 openfiler appliance 導出的資源。就本文而言,我們希望單獨添加兩個 oracle rac 節點,而不是允許整個 192.168.2.0 網絡通路 openfiler 資源。
輸入每個 oracle rac 節點時,請注意“name”域隻是一個邏輯名稱,僅供參考。根據輸入節點的慣例,我僅使用了為該 ip 位址定義的節點名稱。接下來,在“network/host”域中輸入實際節點時,始終使用其 ip 位址,即使其主機名已經在/etc/hosts 檔案或 dns 中定義。最後,在我們的 c 類網絡中輸入實際主機時,使用子網路遮罩 255.255.255.255 。
記住,您要為叢集中的每個 rac 節點輸入專用 網絡 (eth1 ) 的 ip 位址,這一點很重要。
下圖顯示了添加兩個 oracle rac 節點後的結果:
實體存儲
在本節中,我們将建立三個 iscsi 卷,以供叢集中的兩個 oracle rac 節點用作共享存儲。這将在連接配接到 openfiler 伺服器的内置 73gb 15k scsi 硬碟驅動器上執行多個步驟。
儲存設備(如内置 ide/sata/scsi/sas 磁盤、存儲陣列、外置 usb 驅動器、外置 firewire 驅動器或者任何其他儲存設備)可以連接配接到 openfiler 伺服器,并供用戶端使用。如果在作業系統級發現了這些裝置,就可以使用 openfiler storage control center 設定和管理所有這些儲存設備。
在本例中,我們有一個 73gb 的内置 scsi 硬碟驅動器用于滿足共享存儲之需。在 openfiler 伺服器上,該驅動器顯示為/dev/sdb (maxtor atlas15k2_73sca)。要看到該驅動器并啟動 iscsi 卷的建立過程,請從 openfiler storage control center 轉到 [volumes] / [block devices]:
對實體磁盤進行分區
我們要執行的第一步是在 /dev/sdb 内置硬碟上建立一個主分區。單擊 /dev/sdb 連結,我們會看到“edit”或“create”選項,分别用于編輯和建立分區。由于我們将建立一個跨整個磁盤的主分區,是以可以将大多數選項保留為預設設定,唯一的修改是将“partition type ”由“extended partition”更改為“physical volume ”。下面是我為了在 /dev/sdb 上建立主分區而指定的值:
模式: primary
分區類型: physical volume
開始柱面: 1
結束柱面: 8924
現在,大小将顯示 68.36 gb。要接受該設定,單擊“create”按鈕。這将在我們的内置硬碟上生成一個新的分區 (/dev/sdb1 ):
圖 9 :對實體卷進行分區
卷組管理
下一步是建立卷組 。我們将建立一個名為 racdbvg 的卷組,其中包含新建立的主分區。從 openfiler storage control center 中轉到 [volumes] / [volume groups]。我們将看到所有現有的卷組,或者什麼也看不到(我們的情況就是這樣)。在 volume group management 螢幕中,輸入新卷組的名稱 (racdbvg ),單擊 /dev/sdb1 前面的複選框以選中該分區,最後單擊“add volume group”按鈕。之後,我們會看到一個清單,其中顯示出我們新建立的這個名為“racdbvg ”的卷組:
邏輯卷
現在,我們可以在新建立的卷組 (racdbvg ) 中建立三個邏輯卷。從 openfiler storage control center 中轉到 [volumes] / [add volume]。我們将看到新建立的卷組 (racdbvg ) 及其塊存儲統計資訊。該螢幕底部還提供了一個選項,用于在標明的卷組中建立一個新卷 —(在“racdbvg”中建立一個卷) 。使用該螢幕建立以下三個邏輯 (iscsi) 卷。在建立每個邏輯卷之後,應用程式将轉至“manage volumes”螢幕。然後,您需要單擊後退到“add volume”頁籤以建立下一個邏輯卷,直至三個 iscsi 卷全部建立完畢:
iscsi / 邏輯卷 卷名 卷描述 所需空間 (mb) 檔案系統類型 <code>racdb-crs1</code> racdb - asm crs volume 1 2,208 iscsi <code>racdb-data1</code> racdb - asm data volume 1 33,888 <code>racdb-fra1</code> racdb - asm fra volume 1 實際上,我們已經建立了三個 iscsi 磁盤,現在可以将它們呈現給網絡上的 iscsi 用戶端(racnode1 和 racnode2)。“manage volumes”螢幕應如下所示:![]()
利用openfiler實作iSCSI(原創)
iscsi 目标
現在,我們有了三個 iscsi 邏輯卷。但是,為了使 iscsi 用戶端可以通路這些邏輯卷,首先需要為這三個卷中的每個卷建立一個 iscsi 目标。每個 iscsi 邏輯卷将映射 到一個特定的 iscsi 目标,并将為兩個 oracle rac 節點授予對該目标的相應網絡通路權限。對于本文,在 iscsi 邏輯卷和 iscsi 目标之間将會有一一映射的關系。
建立和配置 iscsi 目标的過程包括三步:建立一個唯一的目标 iqn(實質上是新的 iscsi 目标的通用名稱),将上一節中建立的一個 iscsi 邏輯卷映射到新建立的 iscsi 目标,最後,授予兩個 oracle rac 節點通路該新 iscsi 目标的權限。請注意,需要對上一節中建立的三個 iscsi 邏輯卷中的每個 卷都執行一次此過程。
對于本文,下表列出了新的 iscsi 目标名稱(目标 iqn)及其将映射到的 iscsi 邏輯卷:
iscsi 目标/邏輯卷映射
目标 iqn
iscsi 卷名
<code>iqn.2006-01.com.openfiler:racdb.crs1</code>
<code>iqn.2006-01.com.openfiler:racdb.data1</code>
<code>iqn.2006-01.com.openfiler:racdb.fra1</code>
現在我們來建立三個新的 iscsi 目标 — 為每個 iscsi 邏輯卷建立一個。下面舉例說明通過建立 oracle clusterware/racdb-crs1 目标 ( <code>iqn.2006-01.com.openfiler:racdb.crs1</code> ) 來建立新的 iscsi 目标時所需執行的三個步驟。這個三步過程需要對上表中列出的三個新 iscsi 目标中的每一個都重複執行一遍。
建立新目标 iqn
從 openfiler storage control center 中轉到 [volumes] / [iscsi targets]。確定選擇了灰色子頁籤“target configuration”。您可在此頁籤頁中建立一個新的 iscsi 目标。系統會自動生成一個預設值,作為新 iscsi 目标的名稱(常稱為“目标 iqn”)。目标 iqn 的一個示例是“<code>iqn.2006-01.com.openfiler:tsn.ae4683b67fd3</code> ”:
我喜歡用更具含義的字串來替換這個預設目标 iqn 最後一段。對于第一個 iscsi 目标(oracle clusterware/racdb-crs1),我将這樣來修改預設的目标 iqn:将字元串“<code>tsn.ae4683b67fd3</code> ”替換為“<code>racdb.crs1</code> ”,如下圖 所示:
對新的目标 iqn 滿意之後,單擊“add”按鈕。這将會建立一個新的 iscsi 目标,然後會出現一個頁面,您可以在該頁面中修改新 iscsi 目标的一系列設定。對于本文,無需更改新 iscsi 目标的任何設定。
lun 映射
建立新的 iscsi 目标之後,下一步是将相應的 iscsi 邏輯卷映射到該目标。在“target configuration”子頁籤下,驗證在“select iscsi target”部分中選擇了正确的 iscsi 目标。如果不是這樣,使用下拉菜單選擇正确的 iscsi 目标,然後單擊“change”按鈕。
接下來,單擊名為“lun mapping”的灰色子頁籤(在“target configuration”子頁籤旁)。找到相應的 iscsi 邏輯卷(本例中為 /dev/racdbvg/racdb-crs1 ),然後單擊“map”按鈕。無需更改此頁面中的任何設定。對卷 /dev/racdbvg/racdb-crs1單擊“map”按鈕後,您的螢幕應如下圖所示:
<a></a>
網絡 acl
單擊名為“network acl”的灰色子頁籤(在“lun mapping”子頁籤旁)。對目前的 iscsi 目标,将兩個主機的“access”值由“deny”更改為“allow”,然後單擊“update”按鈕。
傳回到建立新的目标 iqn 一節,對其餘兩個 iscsi 邏輯卷執行這三個任務,同時替換“iscsi 目标/邏輯卷映射 ”表中找到的值。
在 oracle rac 節點上配置 iscsi 卷
在叢集中的兩個 oracle rac 節點上配置 iscsi 啟動器。而建立分區隻應在 rac 叢集的一個節點上執行。
iscsi 用戶端可以是提供 iscsi 支援(驅動程式)的任何系統(linux、unix、ms windows、apple mac 等)。在我們的示例中,用戶端是兩個 linux 伺服器(racnode1 和 racnode2 ),它們運作的是 oracle enterprise linux 5.4。
在本節中,我們将在兩個 oracle rac 節點上配置 iscsi 軟體啟動器。oracle enterprise linux 5.4 包括 open-iscsi iscsi 軟體啟動器,該軟體啟動器位于 iscsi-initiator-utils rpm 中。這是對早期版本 oracle enterprise linux (4.x) 的一個更改,這些早期版本中包含作為 linux-iscsi 項目的一部分而開發的 linux iscsi-sfnet 軟體驅動程式。所有 iscsi 管理任務(如發現和登入)将使用 open-iscsi 中包含的指令行接口 iscsiadm 。
iscsi 軟體啟動器将配置為自動登入網絡存儲伺服器 (openfiler1 ),并發現 上一節中建立的 iscsi 卷。之後,我們将逐漸使用 udev 為發現的每個 iscsi 目标名稱建立永久性本地 scsi 裝置名稱(即 <code>/dev/iscsi/crs1</code> )。擁有一緻的本地 scsi 裝置名稱及其映射到的 iscsi 目标,有助于在配置 asm 時能夠區分三個卷。但是,在此之前,我們首先必須安裝 iscsi 啟動器軟體。
安裝 iscsi(啟動器)服務
就 oracle enterprise linux 5.4 來說,預設情況下不會安裝 open-iscsi iscsi 軟體啟動器。該軟體包含在 1 号 cd 上的iscsi-initiator-utils 程式包中。要确定該程式包是否已安裝(大多數情況下沒有安裝),在兩個 oracle rac 節點上執行以下指令:
[root@racnode1 ~]# rpm -qa --queryformat "%{name}-%{version}-%{release} (%{arch})\n"| grep iscsi-initiator-utils
如果 iscsi-initiator-utils 程式包未安裝,将 1 号 cd 加載到每個 oracle rac 節點中并執行以下指令
[root@racnode1 ~]# mount -r /dev/cdrom /media/cdrom
[root@racnode1 ~]# cd /media/cdrom/server
[root@racnode1 ~]# rpm -uvh iscsi-initiator-utils-*
[root@racnode1 ~]# cd /
[root@racnode1 ~]# eject
确認 iscsi-initiator-utils 程式包現在已安裝:
iscsi-initiator-utils-6.2.0.871-0.10.el5 (x86_64)
配置 iscsi(啟動器)服務
驗證 iscsi-initiator-utils 程式包已經安裝到兩個 oracle rac 節點之後,啟動 iscsid 服務,并使其在系統引導時自動啟動。我們還将配置 iscsi 服務在系統啟動時自動啟動,自動登入到所需的 iscsi 目标。
[root@racnode1 ~]# service iscsid start
turning off network shutdown. starting iscsi daemon: [ ok]
[ ok ]
[root@racnode1 ~]# chkconfig iscsid on
[root@racnode1 ~]# chkconfig iscsi on
現在 iscsi 服務已經啟動,下面使用 iscsiadm 指令行接口發現網絡存儲伺服器上的所有可用目标。這應該在兩個 oracle rac 節點上執行,以檢驗配置是否正常工作:
[root@racnode1 ~]# iscsiadm -m discovery -t sendtargets -p openfiler1-priv
192.168.2.195:3260,1 iqn.2006-01.com.openfiler:racdb.crs1
192.168.2.195:3260,1 iqn.2006-01.com.openfiler:racdb.fra1
192.168.2.195:3260,1 iqn.2006-01.com.openfiler:racdb.data1
手動登入到 iscsi 目标
此時,iscsi 啟動器服務已經啟動,每個 oracle rac 節點都能夠從網絡存儲伺服器中發現可用目标。下一步是手動登入每個可用目标,這可以使用 iscsiadm 指令行接口完成。這需要在兩個 oracle rac 節點上運作。注意,我必須指定網絡存儲伺服器的 ip 位址而非其主機名 (openfiler1-priv ) — 我認為必須這麼做,因為上述發現使用 ip 位址顯示目标。
[root@racnode1 ~]# iscsiadm -m node -t iqn.2006-01.com.openfiler:racdb.crs1 -p 192.168.2.195 -l
[root@racnode1 ~]# iscsiadm -m node -t iqn.2006-01.com.openfiler:racdb.data1 -p 192.168.2.195 -l
[root@racnode1 ~]# iscsiadm -m node -t iqn.2006-01.com.openfiler:racdb.fra1 -p 192.168.2.195 -l
如果此時更新了openfiler伺服器上的資源配置,可以使用如下指令更新相關配置
iscsiadm -m node -t iqn.2006-01.com.openfiler:racdbcrs1 -p 192.168.0.201 -r
配置自動登入
下一步是確定在計算機引導(或 iscsi 啟動器服務啟動/重新開機)時,用戶端将自動登入到上面列出的每個目标。如同上面描述的手動登入過程,在兩個 oracle rac 節點上執行以下指令:
[root@racnode1 ~]# iscsiadm -m node -t iqn.2006-01.com.openfiler:racdb.crs1 -p 192.168.2.195 --op update -n node.startup -v automatic
[root@racnode1 ~]# iscsiadm -m node -t iqn.2006-01.com.openfiler:racdb.data1 -p 192.168.2.195 --op update -n node.startup -v automatic
[root@racnode1 ~]# iscsiadm -m node -t iqn.2006-01.com.openfiler:racdb.fra1 -p 192.168.2.195 --op update -n node.startup -v automatic
建立永久性本地 scsi 裝置名稱
在本節中,我們将逐漸為每個 iscsi 目标名稱建立永久性本地 scsi 裝置名稱。我們将使用 udev 來完成該任務。擁有一緻的本地 scsi 裝置名稱及其映射到的 iscsi 目标,有助于在配置 asm 時能夠區分三個卷。盡管并未嚴格要求這麼做(因為我們将對所有卷使用 asmlib 2.0 ),這提供了一種自我文檔編制的方法,有助于快速确定每個 iscsi 卷的名稱和位置。
如果任一 oracle rac 節點引導并且 iscsi 啟動器服務啟動,它會以一種随機的方式自動登入到配置的每個目标,并将這些目标映射到下一個可用的本地 scsi 裝置名稱。例如,目标 iqn.2006-01.com.openfiler:racdb.crs1 可能會映射到/dev/sdb 。實際上,我可以通過檢視 /dev/disk/by-path 目錄來确定所有目标的目前映射:
[root@racnode1 ~]# (cd /dev/disk/by-path; ls -l *openfiler* | awk '{fs=" ";
print $9 " " $10 " " $11}')
ip-192.168.2.195:3260-iscsi-iqn.2006-01.com.openfiler:racdb.crs1-lun-0 -> ../../sdb
ip-192.168.2.195:3260-iscsi-iqn.2006-01.com.openfiler:racdb.data1-lun-0 -> ../../sdd
ip-192.168.2.195:3260-iscsi-iqn.2006-01.com.openfiler:racdb.fra1-lun-0 -> ../../sdc
使用上述 ls 指令的輸出結果,我們可以建立以下目前映射:
iscsi 目标名稱到本地 scsi 裝置名稱的目前映射
iscsi 目标名稱
scsi 裝置名稱
iqn.2006-01.com.openfiler:racdb.crs1
/dev/sdb
iqn.2006-01.com.openfiler:racdb.data1
/dev/sdd
iqn.2006-01.com.openfiler:racdb.fra1
/dev/sdc
但是,每次重新開機 oracle rac 節點時,該映射都可能有所不同。例如,重新開機之後,可能會決定将 iscsi 目标iqn.2006-01.com.openfiler:racdb.crs1 映射到本地 scsi 裝置 /dev/sdc 。由于您無法預測重新開機後的 iscsi 目标映射,依賴于使用本地 scsi 裝置名稱是不現實的。
我們需要的是可引用的一緻的裝置名稱(即 /dev/iscsi/crs1 ),該裝置名稱在重新開機後将始終指向相應的 iscsi 目标。這就是引入名為 udev 的動态裝置管理 工具的原因。 udev 提供了一個動态裝置目錄,使用一組可配置的規則通過符号連結指向實際裝置。當 udev 收到裝置事件(例如,用戶端登入到 iscsi 目标)時,就會根據 sysfs 中提供的可用裝置屬性比對其配置好的規則以便識别裝置。比對規則可以提供其他裝置資訊或指定裝置節點名和多個符号連結名,并訓示 udev 運作其他程式(例如,一個 shell 腳本)作為裝置事件處理過程的一部分。
第一步是建立一個新的規則檔案 。該檔案将命名為 /etc/udev/rules.d/55-openiscsi.rules ,并且隻包含一行用于接收我們感興趣事件的名稱=值對。它還将定義一個調出 shell 腳本 (/etc/udev/scripts/iscsidev.sh ),用于處理事件。
在兩個 oracle rac 節點上建立以下規則檔案 /etc/udev/rules.d/55-openiscsi.rules :
# /etc/udev/rules.d/55-openiscsi.rules
kernel=="sd*", bus=="scsi", program="/etc/udev/scripts/iscsidev.sh %b", symlink+="iscsi/%c/part%n"
現在,我們需要建立在接收該事件時将調用的 unix shell 腳本。我們首先在兩個 oracle rac 節點上建立一個單獨的目錄,用于存儲 udev 腳本:
[root@racnode1 ~]# mkdir -p /etc/udev/scripts
接下來,在兩個 oracle rac 節點上建立 unix shell 腳本 /etc/udev/scripts/iscsidev.sh :
#!/bin/sh
# file: /etc/udev/scripts/iscsidev.sh
bus=${1}
host=${bus%%:*}
[ -e /sys/class/iscsi_host ] || exit 1
file="/sys/class/iscsi_host/host${host}/device/session*/iscsi_session*/
targetname"
target_name=$(cat ${file})
# this is not an open-scsi drive
if [ -z "${target_name}" ]; then
exit 1
fi
# check if qnap drive
check_qnap_target_name=${target_name%%:*}
if [ $check_qnap_target_name = "iqn.2004-04.com.qnap" ]; then
target_name=`echo "${target_name%.*}"`
echo "${target_name##*.}"
建立 unix shell 腳本後,将其更改為可執行檔案:
[root@racnode1 ~]# chmod 755 /etc/udev/scripts/iscsidev.sh
既然已經配置了 udev ,下面将在兩個 oracle rac 節點上重新啟動 iscsi 服務:
[root@racnode1 ~]# service iscsi stop
logging out of session [sid: 6, target: iqn.2006-01.com.openfiler:racdb.crs1, portal: 192.168.2.195,3260]
logging out of session [sid: 7, target: iqn.2006-01.com.openfiler:racdb.fra1, portal: 192.168.2.195,3260]
logging out of session [sid: 8, target: iqn.2006-01.com.openfiler:racdb.data1, portal: 192.168.2.195,3260]
logout of [sid: 6, target: iqn.2006-01.com.openfiler:racdb.crs1, portal: 192.168.2.195,3260]: successful
logout of [sid: 7, target: iqn.2006-01.com.openfiler:racdb.fra1, portal: 192.168.2.195,3260]: successful
logout of [sid: 8, target: iqn.2006-01.com.openfiler:racdb.data1, portal: 192.168.2.195,3260]: successful
stopping iscsi daemon: [ ok ]
[root@racnode1 ~]# service iscsi start
iscsid dead but pid file exists
turning off network shutdown. starting iscsi daemon: [ ok ]
[ ok ]
setting up iscsi targets: logging in to [iface: default, target: iqn.2006-01.com.openfiler:racdb.crs1, portal: 192.168.2.195,3260]
logging in to [iface: default, target: iqn.2006-01.com.openfiler:racdb.fra1, portal: 192.168.2.195,3260]
logging in to [iface: default, target: iqn.2006-01.com.openfiler:racdb.data1, portal: 192.168.2.195,3260]
login to [iface: default, target: iqn.2006-01.com.openfiler:racdb.crs1, portal: 192.168.2.195,3260]: successful
login to [iface: default, target: iqn.2006-01.com.openfiler:racdb.fra1, portal: 192.168.2.195,3260]: successful
login to [iface: default, target: iqn.2006-01.com.openfiler:racdb.data1, portal: 192.168.2.195,3260]: successful [ ok ]
下面,我們來看一下我們的辛勤工作是否得到了回報:
[root@racnode1 ~]# ls -l /dev/iscsi/*
/dev/iscsi/crs1:
total 0
lrwxrwxrwx 1 root root 9 nov 3 18:13 part -> ../../sdc
/dev/iscsi/data1:
lrwxrwxrwx 1 root root 9 nov 3 18:13 part -> ../../sde
/dev/iscsi/fra1:
lrwxrwxrwx 1 root root 9 nov 3 18:13 part -> ../../sdd
上面的清單顯示, udev 所做的工作正是我們所期待的!現在,我們擁有了一組一緻的本地裝置名稱,可用于引用 iscsi 目标。例如,我們可以安全地認為裝置名稱 /dev/iscsi/crs1/part 将始終引用 iscsi 目标 iqn.2006-01.com.openfiler:racdb.crs1 。現在,我們擁有了一緻的 iscsi 目标名稱到本地裝置名稱的映射,如下表所示:
iscsi 目标名稱到本地裝置名稱的映射
本地裝置名稱
/dev/iscsi/crs1/part
/dev/iscsi/data1/part
/dev/iscsi/fra1/part
參考至:http://www.oracle.com/technetwork/cn/articles/hunter-rac11gr2-iscsi-083834-zhs.html#network_access_configuration
http://jeremiah.blog.51cto.com/539865/278107
http://baike.baidu.com/view/120148.htm
本文原創,轉載請注明出處、作者
如有錯誤,歡迎指正
作者:czmmiao 文章出處:http://czmmiao.iteye.com/blog/1735417