濮阳杆衣贸易有限公司

主頁 > 知識庫 > 利用openfiler實(shí)現(xiàn)iSCSI原理分析

利用openfiler實(shí)現(xiàn)iSCSI原理分析

熱門標(biāo)簽:美圖手機(jī) 成都移動外呼系統(tǒng) 佛山外呼系統(tǒng)平臺 長春外呼系統(tǒng)價格 電銷機(jī)器人的效果 長沙智能外呼系統(tǒng)中心 南寧智能外呼系統(tǒng)線路商 南昌語音外呼系統(tǒng)代理 聯(lián)客智能語音外呼系統(tǒng)賬號格式

iSCSI概述
iSCSI:Internet 小型計算機(jī)系統(tǒng)接口 (iSCSI:Internet Small Computer System Interface)。
Internet 小型計算機(jī)系統(tǒng)接口(iSCSI)是一種基于 TCP/IP的協(xié)議,用來建立和管理IP存儲設(shè)備、主機(jī)和客戶機(jī)等之間的相互連接,并創(chuàng)建存儲區(qū)域網(wǎng)絡(luò)(SAN)。SAN 使得 SCSI 協(xié)議應(yīng)用于高速數(shù)據(jù)傳輸網(wǎng)絡(luò)成為可能,這種傳輸以數(shù)據(jù)塊級別(block-level)在多個數(shù)據(jù)存儲網(wǎng)絡(luò)間進(jìn)行。
SCSI 結(jié)構(gòu)基于客戶/服務(wù)器模式,其通常應(yīng)用環(huán)境是:設(shè)備互相靠近,并且這些設(shè)備由SCSI總線連接。iSCSI的主要功能是在 TCP/IP 網(wǎng)絡(luò)上的主機(jī)系統(tǒng)(啟動器 initiator)和存儲設(shè)備(目標(biāo)器 target)之間進(jìn)行大量數(shù)據(jù)的封裝和可靠傳輸過程。此外,iSCSI 提供了在 IP 網(wǎng)絡(luò)封裝 SCSI 命令,且運(yùn)行在 TCP 上。
iSCSI(Internet SCSI)是2003年IETF(InternetEngineering Task Force,互聯(lián)網(wǎng)工程任務(wù)組)制訂的一項
bcm5722 ISCSI網(wǎng)卡標(biāo)準(zhǔn),用于將SCSI數(shù)據(jù)塊映射成以太網(wǎng)數(shù)據(jù)包。SCSI(Small Computer System Interface)是塊數(shù)據(jù)傳輸協(xié)議,在存儲行業(yè)廣泛應(yīng)用,是存儲設(shè)備最基本的標(biāo)準(zhǔn)協(xié)議。從根本上說,iSCSI協(xié)議是一種利用IP網(wǎng)絡(luò)來傳輸潛伏時間短的SCSI數(shù)據(jù)塊的方法,ISCSI使用以太網(wǎng)協(xié)議傳送SCSI命令、響應(yīng)和數(shù)據(jù)。ISCSI可以用我們已經(jīng)熟悉和每天都在使用的以太網(wǎng)來構(gòu)建IP存儲局域網(wǎng)。通過這種方法,ISCSI克服了直接連接存儲的局限性,使我們可以跨不同服務(wù)器共享存儲資源,并可以在不停機(jī)狀態(tài)下擴(kuò)充存儲容量。
iSCSI的工作過程
當(dāng)iSCSI主機(jī)應(yīng)用程序發(fā)出數(shù)據(jù)讀寫請求后,操作系統(tǒng)會生成一個相應(yīng)的SCSI命令,該SCSI命令在iSCSI initiator層被封裝成ISCSI消息包并通過TCP/IP傳送到設(shè)備側(cè),設(shè)備側(cè)的iSCSI target層會解開iSCSI消息包,得到SCSI命令的內(nèi)容,然后傳送給SCSI設(shè)備執(zhí)行;設(shè)備執(zhí)行SCSI命令后的響應(yīng),在經(jīng)過設(shè)備側(cè)iSCSI target層時被封裝成ISCSI響應(yīng)PDU,通過TCP/IP網(wǎng)絡(luò)傳送給主機(jī)的ISCSI initiator層,iSCSI initiator會從ISCSI響應(yīng)PDU里解析出SCSI響應(yīng)并傳送給操作系統(tǒng),操作系統(tǒng)再響應(yīng)給應(yīng)用程序。
iSCSI 啟動器
從本質(zhì)上說,iSCSI 啟動器是一個客戶端設(shè)備,它連接到服務(wù)器提供的某一服務(wù),并發(fā)起對該服務(wù)的請求。如果利用iscsi創(chuàng)建RAC,iSCSI 啟動器軟件需要安裝在每個 Oracle RAC 節(jié)點(diǎn)上。
iSCSI 啟動器可以用軟件實(shí)現(xiàn),也可以用硬件實(shí)現(xiàn)。軟件 iSCSI 啟動器可用于大部分主要操作系統(tǒng)平臺,可以使用 iscsi-initiator-utils RPM中提供的免費(fèi) Linux Open-iSCSI 軟件驅(qū)動程序。iSCSI 軟件啟動器通常與標(biāo)準(zhǔn)網(wǎng)絡(luò)接口卡 (NIC)(大多數(shù)情況下是千兆位以太網(wǎng)卡)配合使用。硬件啟動器是一個 iSCSI HBA(或 TCP 卸載引擎 (TOE) 卡),它本質(zhì)上只是一個專用以太網(wǎng)卡,其上的 SCSI ASIC 可以從系統(tǒng) CPU 內(nèi)卸載所有工作(TCP 和 SCSI 命令)。iSCSI HBA 可以從許多供應(yīng)商處購買,包括 Adaptec、Alacritech、Intel 和 QLogic。
iSCSI 目標(biāo)
iSCSI 目標(biāo)是 iSCSI 網(wǎng)絡(luò)的“服務(wù)器”組件。它通常是一個存儲設(shè)備,包含您所需的信息并響應(yīng)來自(一個或多個)啟動器的請求。對于本文,節(jié)點(diǎn) openfiler1 將是 iSCSI 目標(biāo)。
openfiler
openfiler是一個基于瀏覽器的網(wǎng)絡(luò)存儲管理工具。來自于Linux系統(tǒng)。openfiler在一個網(wǎng)絡(luò)架構(gòu)里面里面支持文件級的NAS和數(shù)據(jù)塊級的SAN,支持CIFS,NFS,HTT/DAV,F(xiàn)TP 和iSCSI協(xié)議。openfiler是一個存儲管理操作系統(tǒng),基于Linux 2.6內(nèi)核和其他開源程序比如apache,samba,lvm2,ext3,Linux NFS和iSCSI企業(yè)級target。他把這些所有的技術(shù)集成在一個很小的,易于管理的強(qiáng)大的web界面里。

配置openfiler

openfiler的安裝和安裝linux類似,十分簡單這里不做過多介紹,不明白的讀者可以自行查閱資料。以下配置環(huán)境是以RAC配置為基礎(chǔ),目標(biāo)是將openfiler上的存儲空間已共享存儲的方式劃分給rac1和rac2兩個節(jié)點(diǎn)。

瀏覽器:Firefox3.6(不推薦用IE進(jìn)行此設(shè)置,下面會講原因)
客戶端操作系統(tǒng):RHEL 5.4
iSCSI客戶端:open-iscsi-2.0-871

要將 Openfiler 用作 iSCSI 存儲服務(wù)器,我們需要執(zhí)行六個主要任務(wù):設(shè)置 iSCSI 服務(wù)、配置網(wǎng)絡(luò)訪問、指定物理存儲器并對其分區(qū)、創(chuàng)建新的卷組、創(chuàng)建所有邏輯卷,最后,為每個邏輯卷創(chuàng)建新的 iSCSI 目標(biāo)。

服務(wù)

在瀏覽器輸入https://192.168.2.195:446/ 開啟Openfiler的Web界面,這里192.168.2.195為openfiler系統(tǒng)的ip,446為服務(wù)端口。Openfiler的默認(rèn)用戶名為openfiler,密碼為password。

要控制服務(wù),我們使用 Openfiler Storage Control Center 并轉(zhuǎn)到 [Services] / [Manage Services]:

要啟用 iSCSI 服務(wù),單擊“iSCSI target server”服務(wù)名稱后面的“Enable”鏈接。之后,“iSCSI target server”狀態(tài)應(yīng)變?yōu)?ldquo;Enabled”。

ietd 程序?qū)?shí)現(xiàn) iSCSI Enterprise Target 軟件的用戶級部分,以便在 Linux 上構(gòu)建 iSCSI 存儲系統(tǒng)。啟用 iSCSI target 之后,我們應(yīng)該能夠通過 SSH 登錄到 Openfiler 服務(wù)器,并且可看到 iscsi-target 服務(wù)正在運(yùn)行:

[root@openfiler1 ~]# service iscsi-target status

ietd (pid 14243) is running...

網(wǎng)絡(luò)訪問配置

下一步是配置 Openfiler 中的網(wǎng)絡(luò)訪問,指定需要通過存儲(專用)網(wǎng)絡(luò)訪問 iSCSI 卷的兩個 Oracle RAC 節(jié)點(diǎn)(racnode1racnode2)。注意,本節(jié)稍后將會創(chuàng)建 iSCSI 卷。另請注意,本步驟并不實(shí)際授予兩個 Oracle RAC 節(jié)點(diǎn)訪問 iSCSI 邏輯卷所需的相應(yīng)權(quán)限。授予權(quán)限的操作將在本節(jié)稍后通過對每個新邏輯卷更新 ACL 來進(jìn)行。

如同上一節(jié),我們使用 Openfiler Storage Control Center 并轉(zhuǎn)到 [System] / [Network Setup] 來完成網(wǎng)絡(luò)訪問配置。通過頁面底部的“Network Access Configuration”部分,管理員可以設(shè)置網(wǎng)絡(luò)和/或主機(jī)以允許其訪問 Openfiler appliance 導(dǎo)出的資源。就本文而言,我們希望單獨(dú)添加兩個 Oracle RAC 節(jié)點(diǎn),而不是允許整個 192.168.2.0 網(wǎng)絡(luò)訪問 Openfiler 資源。

輸入每個 Oracle RAC 節(jié)點(diǎn)時,請注意“Name”域只是一個邏輯名稱,僅供參考。根據(jù)輸入節(jié)點(diǎn)的慣例,我僅使用了為該 IP 地址定義的節(jié)點(diǎn)名稱。接下來,在“Network/Host”域中輸入實(shí)際節(jié)點(diǎn)時,始終使用其 IP 地址,即使其主機(jī)名已經(jīng)在 /etc/hosts 文件或 DNS 中定義。最后,在我們的 C 類網(wǎng)絡(luò)中輸入實(shí)際主機(jī)時,使用子網(wǎng)掩碼 255.255.255.255

記住,您要為集群中的每個 RAC 節(jié)點(diǎn)輸入專用 網(wǎng)絡(luò) (eth1) 的 IP 地址,這一點(diǎn)很重要。

下圖顯示了添加兩個 Oracle RAC 節(jié)點(diǎn)后的結(jié)果:

物理存儲

在本節(jié)中,我們將創(chuàng)建三個 iSCSI 卷,以供集群中的兩個 Oracle RAC 節(jié)點(diǎn)用作共享存儲。這將在連接到 Openfiler 服務(wù)器的內(nèi)置 73GB 15K SCSI 硬盤驅(qū)動器上執(zhí)行多個步驟。

存儲設(shè)備(如內(nèi)置 IDE/SATA/SCSI/SAS 磁盤、存儲陣列、外置 USB 驅(qū)動器、外置 FireWire 驅(qū)動器或者任何其他存儲設(shè)備)可以連接到 Openfiler 服務(wù)器,并供客戶端使用。如果在操作系統(tǒng)級發(fā)現(xiàn)了這些設(shè)備,就可以使用 Openfiler Storage Control Center 設(shè)置和管理所有這些存儲設(shè)備。

在本例中,我們有一個 73GB 的內(nèi)置 SCSI 硬盤驅(qū)動器用于滿足共享存儲之需。在 Openfiler 服務(wù)器上,該驅(qū)動器顯示為 /dev/sdb (MAXTOR ATLAS15K2_73SCA)。要看到該驅(qū)動器并啟動 iSCSI 卷的創(chuàng)建過程,請從 Openfiler Storage Control Center 轉(zhuǎn)到 [Volumes] / [Block Devices]:

對物理磁盤進(jìn)行分區(qū)
我們要執(zhí)行的第一步是在 /dev/sdb 內(nèi)置硬盤上創(chuàng)建一個主分區(qū)。單擊 /dev/sdb 鏈接,我們會看到“Edit”或“Create”選項,分別用于編輯和創(chuàng)建分區(qū)。由于我們將創(chuàng)建一個跨整個磁盤的主分區(qū),因此可以將大多數(shù)選項保留為默認(rèn)設(shè)置,唯一的修改是將“Partition Type ”由“Extended partition”更改為“Physical volume ”。下面是我為了在 /dev/sdb 上創(chuàng)建主分區(qū)而指定的值:
模式: Primary
分區(qū)類型: Physical volume
開始柱面: 1
結(jié)束柱面: 8924
現(xiàn)在,大小將顯示 68.36 GB。要接受該設(shè)置,單擊“Create”按鈕。這將在我們的內(nèi)置硬盤上生成一個新的分區(qū) (/dev/sdb1 ):


圖 9:對物理卷進(jìn)行分區(qū)

卷組管理

下一步是創(chuàng)建卷組。我們將創(chuàng)建一個名為 racdbvg 的卷組,其中包含新創(chuàng)建的主分區(qū)。從 Openfiler Storage Control Center 中轉(zhuǎn)到 [Volumes] / [Volume Groups]。我們將看到所有現(xiàn)有的卷組,或者什么也看不到(我們的情況就是這樣)。在 Volume Group Management 屏幕中,輸入新卷組的名稱 (racdbvg),單擊 /dev/sdb1 前面的復(fù)選框以選中該分區(qū),最后單擊“Add volume group”按鈕。之后,我們會看到一個列表,其中顯示出我們新創(chuàng)建的這個名為“racdbvg”的卷組:
邏輯卷

現(xiàn)在,我們可以在新創(chuàng)建的卷組 (racdbvg) 中創(chuàng)建三個邏輯卷。從 Openfiler Storage Control Center 中轉(zhuǎn)到 [Volumes] / [Add Volume]。我們將看到新創(chuàng)建的卷組 (racdbvg) 及其塊存儲統(tǒng)計信息。該屏幕底部還提供了一個選項,用于在選定的卷組中創(chuàng)建一個新卷 —(在“racdbvg”中創(chuàng)建一個卷)。使用該屏幕創(chuàng)建以下三個邏輯 (iSCSI) 卷。在創(chuàng)建每個邏輯卷之后,應(yīng)用程序?qū)⑥D(zhuǎn)至“Manage Volumes”屏幕。然后,您需要單擊后退到“Add Volume”選項卡以創(chuàng)建下一個邏輯卷,直至三個 iSCSI 卷全部創(chuàng)建完畢:

iSCSI / 邏輯卷卷名卷描述所需空間 (MB)文件系統(tǒng)類型racdb-crs1racdb - ASM CRS Volume 12,208iSCSIracdb-data1racdb - ASM Data Volume 133,888iSCSIracdb-fra1racdb - ASM FRA Volume 133,888iSCSI

實(shí)際上,我們已經(jīng)創(chuàng)建了三個 iSCSI 磁盤,現(xiàn)在可以將它們呈現(xiàn)給網(wǎng)絡(luò)上的 iSCSI 客戶端(racnode1racnode2)。“Manage Volumes”屏幕應(yīng)如下所示:

iSCSI 目標(biāo)

現(xiàn)在,我們有了三個 iSCSI 邏輯卷。但是,為了使 iSCSI 客戶端可以訪問這些邏輯卷,首先需要為這三個卷中的每個卷創(chuàng)建一個 iSCSI 目標(biāo)。每個 iSCSI 邏輯卷將映射 到一個特定的 iSCSI 目標(biāo),并將為兩個 Oracle RAC 節(jié)點(diǎn)授予對該目標(biāo)的相應(yīng)網(wǎng)絡(luò)訪問權(quán)限。對于本文,在 iSCSI 邏輯卷和 iSCSI 目標(biāo)之間將會有一一映射的關(guān)系。

創(chuàng)建和配置 iSCSI 目標(biāo)的過程包括三步:創(chuàng)建一個唯一的目標(biāo) IQN(實(shí)質(zhì)上是新的 iSCSI 目標(biāo)的通用名稱),將上一節(jié)中創(chuàng)建的一個 iSCSI 邏輯卷映射到新創(chuàng)建的 iSCSI 目標(biāo),最后,授予兩個 Oracle RAC 節(jié)點(diǎn)訪問該新 iSCSI 目標(biāo)的權(quán)限。請注意,需要對上一節(jié)中創(chuàng)建的三個 iSCSI 邏輯卷中的每個卷都執(zhí)行一次此過程。

對于本文,下表列出了新的 iSCSI 目標(biāo)名稱(目標(biāo) IQN)及其將映射到的 iSCSI 邏輯卷:

iSCSI 目標(biāo)/邏輯卷映射目標(biāo) IQNiSCSI 卷名卷描述iqn.2006-01.com.openfiler:racdb.crs1racdb-crs1racdb - ASM CRS Volume 1iqn.2006-01.com.openfiler:racdb.data1racdb-data1racdb - ASM Data Volume 1iqn.2006-01.com.openfiler:racdb.fra1racdb-fra1racdb - ASM FRA Volume 1

現(xiàn)在我們來創(chuàng)建三個新的 iSCSI 目標(biāo) — 為每個 iSCSI 邏輯卷創(chuàng)建一個。下面舉例說明通過創(chuàng)建 Oracle Clusterware/racdb-crs1 目標(biāo) ( iqn.2006-01.com.openfiler:racdb.crs1) 來創(chuàng)建新的 iSCSI 目標(biāo)時所需執(zhí)行的三個步驟。這個三步過程需要對上表中列出的三個新 iSCSI 目標(biāo)中的每一個都重復(fù)執(zhí)行一遍。

創(chuàng)建新目標(biāo) IQN

從 Openfiler Storage Control Center 中轉(zhuǎn)到 [Volumes] / [iSCSI Targets]。確保選擇了灰色子選項卡“Target Configuration”。您可在此選項卡頁中創(chuàng)建一個新的 iSCSI 目標(biāo)。系統(tǒng)會自動生成一個默認(rèn)值,作為新 iSCSI 目標(biāo)的名稱(常稱為“目標(biāo) IQN”)。目標(biāo) IQN 的一個示例是“iqn.2006-01.com.openfiler:tsn.ae4683b67fd3”:



我喜歡用更具含義的字串來替換這個默認(rèn)目標(biāo) IQN 最后一段。對于第一個 iSCSI 目標(biāo)(Oracle Clusterware/racdb-crs1),我將這樣來修改默認(rèn)的目標(biāo) IQN:將字符串“tsn.ae4683b67fd3”替換為“racdb.crs1”,如下圖所示:

對新的目標(biāo) IQN 滿意之后,單擊“Add”按鈕。這將會創(chuàng)建一個新的 iSCSI 目標(biāo),然后會出現(xiàn)一個頁面,您可以在該頁面中修改新 iSCSI 目標(biāo)的一系列設(shè)置。對于本文,無需更改新 iSCSI 目標(biāo)的任何設(shè)置。

LUN 映射

創(chuàng)建新的 iSCSI 目標(biāo)之后,下一步是將相應(yīng)的 iSCSI 邏輯卷映射到該目標(biāo)。在“Target Configuration”子選項卡下,驗證在“Select iSCSI Target”部分中選擇了正確的 iSCSI 目標(biāo)。如果不是這樣,使用下拉菜單選擇正確的 iSCSI 目標(biāo),然后單擊“Change”按鈕。

接下來,單擊名為“LUN Mapping”的灰色子選項卡(在“Target Configuration”子選項卡旁)。找到相應(yīng)的 iSCSI 邏輯卷(本例中為 /dev/racdbvg/racdb-crs1),然后單擊“Map”按鈕。無需更改此頁面中的任何設(shè)置。對卷 /dev/racdbvg/racdb-crs1 單擊“Map”按鈕后,您的屏幕應(yīng)如下圖所示:

網(wǎng)絡(luò) ACL

需要先授予 iSCSI 客戶端相應(yīng)的權(quán)限,它才能訪問新創(chuàng)建的 iSCSI 目標(biāo)。在前面,我們已通過 Openfiler 對兩個主機(jī)(Oracle RAC 節(jié)點(diǎn))進(jìn)行網(wǎng)絡(luò)訪問配置。這兩個節(jié)點(diǎn)需要通過存儲(專用)網(wǎng)絡(luò)訪問新的 iSCSI 目標(biāo)?,F(xiàn)在,我們需要授予這兩個 Oracle RAC 節(jié)點(diǎn)訪問新 iSCSI 目標(biāo)的權(quán)限。

單擊名為“Network ACL”的灰色子選項卡(在“LUN Mapping”子選項卡旁)。對當(dāng)前的 iSCSI 目標(biāo),將兩個主機(jī)的“Access”值由“Deny”更改為“Allow”,然后單擊“Update”按鈕。

返回到創(chuàng)建新的目標(biāo) IQN 一節(jié),對其余兩個 ISCSI 邏輯卷執(zhí)行這三個任務(wù),同時替換“iSCSI 目標(biāo)/邏輯卷映射”表中找到的值。

在 Oracle RAC 節(jié)點(diǎn)上配置 iSCSI 卷

在集群中的兩個 Oracle RAC 節(jié)點(diǎn)上配置 iSCSI 啟動器。而創(chuàng)建分區(qū)只應(yīng)在 RAC 集群的一個節(jié)點(diǎn)上執(zhí)行。

iSCSI 客戶端可以是提供 iSCSI 支持(驅(qū)動程序)的任何系統(tǒng)(Linux、Unix、MS Windows、Apple Mac 等)。在我們的示例中,客戶端是兩個 Linux 服務(wù)器(racnode1racnode2),它們運(yùn)行的是 Oracle Enterprise Linux 5.4。

在本節(jié)中,我們將在兩個 Oracle RAC 節(jié)點(diǎn)上配置 iSCSI 軟件啟動器。Oracle Enterprise Linux 5.4 包括 Open-iSCSI iSCSI 軟件啟動器,該軟件啟動器位于 iscsi-initiator-utils RPM 中。這是對早期版本 Oracle Enterprise Linux (4.x) 的一個更改,這些早期版本中包含作為 Linux-iSCSI 項目的一部分而開發(fā)的 Linux iscsi-sfnet 軟件驅(qū)動程序。所有 iSCSI 管理任務(wù)(如發(fā)現(xiàn)和登錄)將使用 Open-iSCSI 中包含的命令行接口 iscsiadm。

iSCSI 軟件啟動器將配置為自動登錄網(wǎng)絡(luò)存儲服務(wù)器 (openfiler1),并發(fā)現(xiàn) 上一節(jié)中創(chuàng)建的 iSCSI 卷。之后,我們將逐步使用 udev 為發(fā)現(xiàn)的每個 iSCSI 目標(biāo)名稱創(chuàng)建永久性本地 SCSI 設(shè)備名稱(即 /dev/iscsi/crs1)。擁有一致的本地 SCSI 設(shè)備名稱及其映射到的 iSCSI 目標(biāo),有助于在配置 ASM 時能夠區(qū)分三個卷。但是,在此之前,我們首先必須安裝 iSCSI 啟動器軟件。

安裝 iSCSI(啟動器)服務(wù)

就 Oracle Enterprise Linux 5.4 來說,默認(rèn)情況下不會安裝 Open-iSCSI iSCSI 軟件啟動器。該軟件包含在 1 號 CD 上的 iscsi-initiator-utils 程序包中。要確定該程序包是否已安裝(大多數(shù)情況下沒有安裝),在兩個 Oracle RAC 節(jié)點(diǎn)上執(zhí)行以下命令:

[root@racnode1 ~]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n"| grep iscsi-initiator-utils

如果 iscsi-initiator-utils 程序包未安裝,將 1 號 CD 加載到每個 Oracle RAC 節(jié)點(diǎn)中并執(zhí)行以下命令

[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

確認(rèn) iscsi-initiator-utils 程序包現(xiàn)在已安裝:

[root@racnode1 ~]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n"| grep iscsi-initiator-utils
iscsi-initiator-utils-6.2.0.871-0.10.el5 (x86_64)  

配置 iSCSI(啟動器)服務(wù)

驗證 iscsi-initiator-utils 程序包已經(jīng)安裝到兩個 Oracle RAC 節(jié)點(diǎn)之后,啟動 iscsid 服務(wù),并使其在系統(tǒng)引導(dǎo)時自動啟動。我們還將配置 iscsi 服務(wù)在系統(tǒng)啟動時自動啟動,自動登錄到所需的 iSCSI 目標(biāo)。

[root@racnode1 ~]# service iscsid start
Turning off network shutdown. Starting iSCSI daemon: [ OK]
 [ OK ]
[root@racnode1 ~]# chkconfig iscsid on

[root@racnode1 ~]# chkconfig iscsi on

現(xiàn)在 iSCSI 服務(wù)已經(jīng)啟動,下面使用 iscsiadm 命令行接口發(fā)現(xiàn)網(wǎng)絡(luò)存儲服務(wù)器上的所有可用目標(biāo)。這應(yīng)該在兩個 Oracle RAC 節(jié)點(diǎn)上執(zhí)行,以檢驗配置是否正常工作:

[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 目標(biāo)

此時,iSCSI 啟動器服務(wù)已經(jīng)啟動,每個 Oracle RAC 節(jié)點(diǎn)都能夠從網(wǎng)絡(luò)存儲服務(wù)器中發(fā)現(xiàn)可用目標(biāo)。下一步是手動登錄每個可用目標(biāo),這可以使用 iscsiadm 命令行接口完成。這需要在兩個 Oracle RAC 節(jié)點(diǎn)上運(yùn)行。注意,我必須指定網(wǎng)絡(luò)存儲服務(wù)器的 IP 地址而非其主機(jī)名 (openfiler1-priv) — 我認(rèn)為必須這么做,因為上述發(fā)現(xiàn)使用 IP 地址顯示目標(biāo)。

[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服務(wù)器上的資源配置,可以使用如下命令更新相關(guān)配置

iscsiadm -m node -T iqn.2006-01.com.openfiler:RACDBcrs1 -p 192.168.0.201 -R

配置自動登錄

下一步是確保在計算機(jī)引導(dǎo)(或 iSCSI 啟動器服務(wù)啟動/重啟)時,客戶端將自動登錄到上面列出的每個目標(biāo)。如同上面描述的手動登錄過程,在兩個 Oracle RAC 節(jié)點(diǎn)上執(zhí)行以下命令:

[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      

創(chuàng)建永久性本地 SCSI 設(shè)備名稱

在本節(jié)中,我們將逐步為每個 iSCSI 目標(biāo)名稱創(chuàng)建永久性本地 SCSI 設(shè)備名稱。我們將使用 udev 來完成該任務(wù)。擁有一致的本地 SCSI 設(shè)備名稱及其映射到的 iSCSI 目標(biāo),有助于在配置 ASM 時能夠區(qū)分三個卷。盡管并未嚴(yán)格要求這么做(因為我們將對所有卷使用 ASMLib 2.0),這提供了一種自我文檔編制的方法,有助于快速確定每個 iSCSI 卷的名稱和位置。

如果任一 Oracle RAC 節(jié)點(diǎn)引導(dǎo)并且 iSCSI 啟動器服務(wù)啟動,它會以一種隨機(jī)的方式自動登錄到配置的每個目標(biāo),并將這些目標(biāo)映射到下一個可用的本地 SCSI 設(shè)備名稱。例如,目標(biāo) iqn.2006-01.com.openfiler:racdb.crs1 可能會映射到 /dev/sdb。實(shí)際上,我可以通過查看 /dev/disk/by-path 目錄來確定所有目標(biāo)的當(dāng)前映射:

[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 命令的輸出結(jié)果,我們可以建立以下當(dāng)前映射:

iSCSI 目標(biāo)名稱到本地 SCSI 設(shè)備名稱的當(dāng)前映射iSCSI 目標(biāo)名稱SCSI 設(shè)備名稱iqn.2006-01.com.openfiler:racdb.crs1/dev/sdbiqn.2006-01.com.openfiler:racdb.data1/dev/sddiqn.2006-01.com.openfiler:racdb.fra1/dev/sdc

但是,每次重新引導(dǎo) Oracle RAC 節(jié)點(diǎn)時,該映射都可能有所不同。例如,重新引導(dǎo)之后,可能會決定將 iSCSI 目標(biāo) iqn.2006-01.com.openfiler:racdb.crs1 映射到本地 SCSI 設(shè)備 /dev/sdc。由于您無法預(yù)測重新引導(dǎo)后的 iSCSI 目標(biāo)映射,依賴于使用本地 SCSI 設(shè)備名稱是不現(xiàn)實(shí)的。

我們需要的是可引用的一致的設(shè)備名稱(即 /dev/iscsi/crs1),該設(shè)備名稱在重新引導(dǎo)后將始終指向相應(yīng)的 iSCSI 目標(biāo)。這就是引入名為 udev動態(tài)設(shè)備管理 工具的原因。 udev 提供了一個動態(tài)設(shè)備目錄,使用一組可配置的規(guī)則通過符號鏈接指向?qū)嶋H設(shè)備。當(dāng) udev 收到設(shè)備事件(例如,客戶端登錄到 iSCSI 目標(biāo))時,就會根據(jù) sysfs 中提供的可用設(shè)備屬性匹配其配置好的規(guī)則以便識別設(shè)備。匹配規(guī)則可以提供其他設(shè)備信息或指定設(shè)備節(jié)點(diǎn)名和多個符號鏈接名,并指示 udev 運(yùn)行其他程序(例如,一個 SHELL 腳本)作為設(shè)備事件處理過程的一部分。

第一步是創(chuàng)建一個新的規(guī)則文件。該文件將命名為 /etc/udev/rules.d/55-openiscsi.rules,并且只包含一行用于接收我們感興趣事件的名稱=值對。它還將定義一個調(diào)出 SHELL 腳本 (/etc/udev/scripts/iscsidev.sh),用于處理事件。

在兩個 Oracle RAC 節(jié)點(diǎn)上創(chuàng)建以下規(guī)則文件 /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"

現(xiàn)在,我們需要創(chuàng)建在接收該事件時將調(diào)用的 UNIX SHELL 腳本。我們首先在兩個 Oracle RAC 節(jié)點(diǎn)上創(chuàng)建一個單獨(dú)的目錄,用于存儲 udev 腳本:

[root@racnode1 ~]# mkdir -p /etc/udev/scripts

接下來,在兩個 Oracle RAC 節(jié)點(diǎn)上創(chuàng)建 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%.*}"`
fi

echo "${target_name##*.}"

創(chuàng)建 UNIX SHELL 腳本后,將其更改為可執(zhí)行文件:

[root@racnode1 ~]# chmod 755 /etc/udev/scripts/iscsidev.sh

既然已經(jīng)配置了 udev,下面將在兩個 Oracle RAC 節(jié)點(diǎn)上重新啟動 iSCSI 服務(wù):

[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:
total 0
lrwxrwxrwx 1 root root 9 Nov  3 18:13 part -> ../../sde
/dev/iscsi/fra1:
total 0
lrwxrwxrwx 1 root root 9 Nov  3 18:13 part -> ../../sdd

上面的清單顯示, udev 所做的工作正是我們所期待的!現(xiàn)在,我們擁有了一組一致的本地設(shè)備名稱,可用于引用 iSCSI 目標(biāo)。例如,我們可以安全地認(rèn)為設(shè)備名稱 /dev/iscsi/crs1/part 將始終引用 iSCSI 目標(biāo) iqn.2006-01.com.openfiler:racdb.crs1?,F(xiàn)在,我們擁有了一致的 iSCSI 目標(biāo)名稱到本地設(shè)備名稱的映射,如下表所示:

iSCSI 目標(biāo)名稱到本地設(shè)備名稱的映射iSCSI 目標(biāo)名稱本地設(shè)備名稱iqn.2006-01.com.openfiler:racdb.crs1/dev/iscsi/crs1/partiqn.2006-01.com.openfiler:racdb.data1/dev/iscsi/data1/partiqn.2006-01.com.openfiler:racdb.fra1/dev/iscsi/fra1/part

標(biāo)簽:南陽 武漢 莆田 南京 開封 黔南 綿陽 陽泉

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《利用openfiler實(shí)現(xiàn)iSCSI原理分析》,本文關(guān)鍵詞  利用,openfiler,實(shí)現(xiàn),iSCSI,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《利用openfiler實(shí)現(xiàn)iSCSI原理分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于利用openfiler實(shí)現(xiàn)iSCSI原理分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    海宁市| 新巴尔虎左旗| 瑞昌市| 马山县| 景泰县| 固阳县| 铁岭市| 平邑县| 许昌县| 上犹县| 新平| 乌拉特中旗| 炉霍县| 新昌县| 册亨县| 沙河市| 汾西县| 县级市| 离岛区| 姚安县| 伊宁县| 五指山市| 开封县| 梧州市| 荣成市| 青海省| 荆州市| 靖江市| 来安县| 汕头市| 新泰市| 南靖县| 滦南县| 澄江县| 进贤县| 东辽县| 韩城市| 舒城县| 育儿| 高邑县| 古蔺县|