溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

openfiler中iSCSI的實(shí)現(xiàn)原理是什么

發(fā)布時(shí)間:2021-08-09 15:24:47 來(lái)源:億速云 閱讀:154 作者:Leah 欄目:系統(tǒng)運(yùn)維

這篇文章將為大家詳細(xì)講解有關(guān)openfiler中iSCSI的實(shí)現(xiàn)原理是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

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

配置openfiler

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

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

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

服務(wù)

在瀏覽器輸入https://192.168.2.195:446/ 開(kāi)啟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]: openfiler中iSCSI的實(shí)現(xiàn)原理是什么

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

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

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

ietd (pid 14243) is running...

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

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

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

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

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

下圖顯示了添加兩個(gè) Oracle RAC 節(jié)點(diǎn)后的結(jié)果:
openfiler中iSCSI的實(shí)現(xiàn)原理是什么

物理存儲(chǔ)

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

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

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

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

openfiler中iSCSI的實(shí)現(xiàn)原理是什么
圖 9:對(duì)物理卷進(jìn)行分區(qū)

卷組管理

下一步是創(chuàng)建卷組。我們將創(chuàng)建一個(gè)名為 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”按鈕。之后,我們會(huì)看到一個(gè)列表,其中顯示出我們新創(chuàng)建的這個(gè)名為“racdbvg”的卷組:
openfiler中iSCSI的實(shí)現(xiàn)原理是什么 邏輯卷

現(xiàn)在,我們可以在新創(chuàng)建的卷組 (racdbvg) 中創(chuàng)建三個(gè)邏輯卷。從 Openfiler Storage Control Center 中轉(zhuǎn)到 [Volumes] / [Add Volume]。我們將看到新創(chuàng)建的卷組 (racdbvg) 及其塊存儲(chǔ)統(tǒng)計(jì)信息。該屏幕底部還提供了一個(gè)選項(xiàng),用于在選定的卷組中創(chuàng)建一個(gè)新卷 —(在“racdbvg”中創(chuàng)建一個(gè)卷)。使用該屏幕創(chuàng)建以下三個(gè)邏輯 (iSCSI) 卷。在創(chuàng)建每個(gè)邏輯卷之后,應(yīng)用程序?qū)⑥D(zhuǎn)至“Manage Volumes”屏幕。然后,您需要單擊后退到“Add Volume”選項(xiàng)卡以創(chuàng)建下一個(gè)邏輯卷,直至三個(gè) 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)建了三個(gè) iSCSI 磁盤,現(xiàn)在可以將它們呈現(xiàn)給網(wǎng)絡(luò)上的 iSCSI 客戶端(racnode1racnode2)?!癕anage Volumes”屏幕應(yīng)如下所示:
openfiler中iSCSI的實(shí)現(xiàn)原理是什么

iSCSI 目標(biāo)

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

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

對(duì)于本文,下表列出了新的 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)在我們來(lái)創(chuàng)建三個(gè)新的 iSCSI 目標(biāo) — 為每個(gè) iSCSI 邏輯卷創(chuàng)建一個(gè)。下面舉例說(shuō)明通過(guò)創(chuàng)建 Oracle Clusterware/racdb-crs1 目標(biāo) ( iqn.2006-01.com.openfiler:racdb.crs1) 來(lái)創(chuàng)建新的 iSCSI 目標(biāo)時(shí)所需執(zhí)行的三個(gè)步驟。這個(gè)三步過(guò)程需要對(duì)上表中列出的三個(gè)新 iSCSI 目標(biāo)中的每一個(gè)都重復(fù)執(zhí)行一遍。

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

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


openfiler中iSCSI的實(shí)現(xiàn)原理是什么

我喜歡用更具含義的字串來(lái)替換這個(gè)默認(rèn)目標(biāo) IQN 最后一段。對(duì)于第一個(gè) iSCSI 目標(biāo)(Oracle Clusterware/racdb-crs1),我將這樣來(lái)修改默認(rèn)的目標(biāo) IQN:將字符串“tsn.ae4683b67fd3”替換為“racdb.crs1”,如下圖所示: openfiler中iSCSI的實(shí)現(xiàn)原理是什么

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

LUN 映射

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

接下來(lái),單擊名為“LUN Mapping”的灰色子選項(xiàng)卡(在“Target Configuration”子選項(xiàng)卡旁)。找到相應(yīng)的 iSCSI 邏輯卷(本例中為 /dev/racdbvg/racdb-crs1),然后單擊“Map”按鈕。無(wú)需更改此頁(yè)面中的任何設(shè)置。對(duì)卷 /dev/racdbvg/racdb-crs1 單擊“Map”按鈕后,您的屏幕應(yīng)如下圖所示:
openfiler中iSCSI的實(shí)現(xiàn)原理是什么

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

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

單擊名為“Network ACL”的灰色子選項(xiàng)卡(在“LUN Mapping”子選項(xiàng)卡旁)。對(duì)當(dāng)前的 iSCSI 目標(biāo),將兩個(gè)主機(jī)的“Access”值由“Deny”更改為“Allow”,然后單擊“Update”按鈕。 openfiler中iSCSI的實(shí)現(xiàn)原理是什么

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

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

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

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

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

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

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

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

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

如果 iscsi-initiator-utils 程序包未安裝,將 1 號(hào) CD 加載到每個(gè) 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(啟動(dòng)器)服務(wù)

驗(yàn)證 iscsi-initiator-utils 程序包已經(jīng)安裝到兩個(gè) Oracle RAC 節(jié)點(diǎn)之后,啟動(dòng) iscsid 服務(wù),并使其在系統(tǒng)引導(dǎo)時(shí)自動(dòng)啟動(dòng)。我們還將配置 iscsi 服務(wù)在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng),自動(dò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)啟動(dòng),下面使用 iscsiadm 命令行接口發(fā)現(xiàn)網(wǎng)絡(luò)存儲(chǔ)服務(wù)器上的所有可用目標(biāo)。這應(yīng)該在兩個(gè) Oracle RAC 節(jié)點(diǎn)上執(zhí)行,以檢驗(yàn)配置是否正常工作:

[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

手動(dòng)登錄到 iSCSI 目標(biāo)

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

如果此時(shí)更新了openfiler服務(wù)器上的資源配置,可以使用如下命令更新相關(guān)配置

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

配置自動(dòng)登錄

下一步是確保在計(jì)算機(jī)引導(dǎo)(或 iSCSI 啟動(dòng)器服務(wù)啟動(dòng)/重啟)時(shí),客戶端將自動(dòng)登錄到上面列出的每個(gè)目標(biāo)。如同上面描述的手動(dòng)登錄過(guò)程,在兩個(gè) 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é)中,我們將逐步為每個(gè) iSCSI 目標(biāo)名稱創(chuàng)建永久性本地 SCSI 設(shè)備名稱。我們將使用 udev 來(lái)完成該任務(wù)。擁有一致的本地 SCSI 設(shè)備名稱及其映射到的 iSCSI 目標(biāo),有助于在配置 ASM 時(shí)能夠區(qū)分三個(gè)卷。盡管并未嚴(yán)格要求這么做(因?yàn)槲覀儗?duì)所有卷使用 ASMLib 2.0),這提供了一種自我文檔編制的方法,有助于快速確定每個(gè) iSCSI 卷的名稱和位置。

如果任一 Oracle RAC 節(jié)點(diǎn)引導(dǎo)并且 iSCSI 啟動(dòng)器服務(wù)啟動(dòng),它會(huì)以一種隨機(jī)的方式自動(dòng)登錄到配置的每個(gè)目標(biāo),并將這些目標(biāo)映射到下一個(gè)可用的本地 SCSI 設(shè)備名稱。例如,目標(biāo) iqn.2006-01.com.openfiler:racdb.crs1 可能會(huì)映射到 /dev/sdb。實(shí)際上,我可以通過(guò)查看 /dev/disk/by-path 目錄來(lái)確定所有目標(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)時(shí),該映射都可能有所不同。例如,重新引導(dǎo)之后,可能會(huì)決定將 iSCSI 目標(biāo) iqn.2006-01.com.openfiler:racdb.crs1 映射到本地 SCSI 設(shè)備 /dev/sdc。由于您無(wú)法預(yù)測(cè)重新引導(dǎo)后的 iSCSI 目標(biāo)映射,依賴于使用本地 SCSI 設(shè)備名稱是不現(xiàn)實(shí)的。

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

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

在兩個(gè) 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)在,我們需要?jiǎng)?chuàng)建在接收該事件時(shí)將調(diào)用的 UNIX SHELL 腳本。我們首先在兩個(gè) Oracle RAC 節(jié)點(diǎn)上創(chuàng)建一個(gè)單獨(dú)的目錄,用于存儲(chǔ) udev 腳本:

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

接下來(lái),在兩個(gè) 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,下面將在兩個(gè) Oracle RAC 節(jié)點(diǎn)上重新啟動(dòng) 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 ]

下面,我們來(lái)看一下我們的辛勤工作是否得到了回報(bào):

[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

關(guān)于openfiler中iSCSI的實(shí)現(xiàn)原理是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI