转:探索 AIX 6:在 AIX 6 上配置 iSCSI Target
引言
iSCSI(Internet Small Computer System Interface)被業界認為是非常廉價的 SAN 解決方案,一直在中低端應用領域被市場所看好。 iSCSI 客戶端和服務端都既可以通過硬件方式實現,也能通過軟件方式的,其優劣區別就是在于效能與成本各有優勢。絕大多數操作系統都免費的附帶了 iSCSI 的 sw initiator(軟件方式)客戶端組件,比如在 AIX5.2 以上的版本中就開始附帶了 iSCSI sw initiator 組件。不過 iSCSI 服務端,也即 iSCSI target,一般都是收費軟件,并且絕大多數都只能運行在 windows 平臺。在 AIX 6.1 中集成了 iSCSI initiator 和 iSCSI target 了兩種功能。另外,借助與 POWER6 以及部分 POWER5 機型其功能強大的底層硬件平臺, AIX 6.1 還能夠支持到使用軟件方式的 iSCSI 磁盤啟動,無需硬件 iSCSI HBA。
iSCSI 的基本介紹
iSCSI 可以簡單理解為通過 TCP/IP 封裝 SCSI 命令,實現在 IP 網絡使用遠端的 SCSI 設備的一種協議。 iSCSI 是 SCSI 協議的擴展, SCSI 使用物理 SCSI 電纜傳遞 SCSI 命令,而 iSCSI 使用了虛擬的 TCP/IP 網絡。借助現有的 LAN、WAN 網絡環境,iSCSI 提供了非常經濟的數據存儲的解決方案。
其基本結構可以參看下圖,iSCSI 結構與 SCSI 結構一樣,由客戶端(Initiator)和服務端(Target)兩部分組成。不同的是 SCSI 的數據鏈路是一條 SCSI 總線,連接和尋址都較簡單;而 iSCSI 使用 TCP/IP 網絡作為數據鏈路,其配置就相對復雜一些,但是其靈活性和擴展性則遠高于傳統的 SCSI 架構。iSCSI 其最底層是以太交換網絡,是 iSCSI 協議通信的基礎層,我們首先需要保證客戶端與服務端的網絡暢通。(注:不光是傳統以太網絡,目前高性能 InfiniBand 網絡也是采用 iSCSI 協議作為存儲設備的傳輸協議)。中間層是 iSCSI 協議層的封裝,主要功能包括 iSCSI 連接的管理,訪問控制等,本文的內容也是主要針對這一層的配置和管理。最上層是 SCSI 命令層,在配置好 iSCSI 設備后,系統即可透明的使用 SCSI 協議訪問遠端的設備。
圖表 1 iSCSI 協議模型
本文所配置案例的基本框架
本文所采用的案例,其邏輯結構圖如下:右邊是一臺 AIX 6 服務器,我們將通過它來提供 iSCSI Tareget 服務。本案例中,使用了一個 lv (exlv)和一個磁盤(hdisk1)作為 Target LUN(Logical Unit Number) 設備,并通過 Target0 輸出給客戶端。在左邊客戶端這一側,我們通過 initiator 連接到 AIX 6 服務器來訪問 Target LUN 設備,并使用這兩個遠程的 iSCSI 磁盤創建一個 datavg。
圖表 2 本案例邏輯架構
軟硬件測試環境
| 系統平臺 | 操作系統 | 網絡地址 |
| System p 520 lpar 1 (服務端) 2 CPU 2G 內存 | AIX 6.1 | 192.168.21.134 |
| System p 520 lpar 2 (客戶端) 2 CPU 2G 內存 | AIX 5.3L | 192.168.21.132 |
系統安裝要求
操作系統版本要求:AIX 6.1.0.0
iSCSI target 軟件包在 AIX 6.1 expansion pack 光盤中,放入光驅,通過 SMIT 安裝下面第一個軟件包。
devices.tmiscsw.rte 6.1.0.0
如遇到錯誤,請檢查以下軟件包是否正確安裝,devices.tmiscsw.rte 依賴于此軟件包,請放入第一張系統盤安裝此包。
devices.common.IBM.iSCSI.rte 6.1.0.0
iSCSI Target 的配置
Target 的配置有三部分,一是創建 iSCSI Target 最底層的協議驅動設備;二是在協議驅動設備上創建虛擬的 Target 設備;最后將本地的磁盤映射到 Target 上,作為 Target LUN。
首先,通過 smit tmiscsi_proto 創建 iSCSI Target 協議設備。如下圖:
iSCSI Target Protocol Device
Move cursor to desired item and press Enter.
List All iSCSI Target Protocol Devices
Add an iSCSI Target Protocol Device
Change / Show Characteristics of an iSCSI Target Protocol Device
Remove an iSCSI Target Protocol Device
F1=Help F2=Refresh F3=Cancel Esc+8=Image
Esc+9=Shell Esc+0=Exit Enter=Do
選擇 Add an iSCSI Target Protocol Device, 按回車到下一步。
Add an iSCSI Target Protocol Device
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
iSCSI Target Protocol Device Name tmsw0
Maximum number of sessions [200] +#
Maximum transfer size in one PDU [262144] +#
Access Control enabled [off] +
Apply change to DATABASE only no +
F1=Help F2=Refresh F3=Cancel F4=List
Esc+5=Reset Esc+6=Command Esc+7=Edit Esc+8=Image
Esc+9=Shell Esc+0=Exit Enter=Do
在此處配置 Target 的性能參數,我們一般使用默認值。 Access Control enabled 這一欄我們下面還會提到,打開或關閉取決于我們是否采用基于 iqn 的安全訪問控制機制。在這里我們直接回車到下一步。
COMMAND STATUS
Command: OK stdout: yes stderr: no
Before command completion, additional instructions may appear below.
tmsw0 Available
F1=Help F2=Refresh F3=Cancel Esc+6=Command
Esc+8=Image Esc+9=Shell Esc+0=Exit /=Find
第二步,我們創建虛擬的 Target 設備。使用命令 smit tmtarget。
iSCSI Targets
Move cursor to desired item and press Enter.
List All iSCSI Targets
Add an iSCSI Target
Change / Show Characteristics of an iSCSI Target
Remove an iSCSI Target
F1=Help F2=Refresh F3=Cancel Esc+8=Image
Esc+9=Shell Esc+0=Exit Enter=Do
選擇 Add an iSCSI Target。
Add an iSCSI Target
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
iSCSI Target Protocol Device Name tmsw0
iSCSI Target Logical Name []
* iSCSI Target Name [com.ibm.cn.swtarget0]
Maximum Target LUNs allowed [512] +#
Paths []
Force disconnection of iSCSI clients on remove [no] +
Initiator Reconnection delay [] +#
Addressing method [] +#
Apply change to DATABASE only no +
F1=Help F2=Refresh F3=Cancel F4=List
Esc+5=Reset Esc+6=Command Esc+7=Edit Esc+8=Image
Esc+9=Shell Esc+0=Exit Enter=Do
在 iSCSI Target Name 一欄輸入 Target 設備的 iqn 地址。其他保持默認值。我們設置其為 com.ibm.cn.swtarget0. 按回車下一步。
COMMAND STATUS
Command: OK stdout: yes stderr: no
Before command completion, additional instructions may appear below.
target0 Available
Target 設備即創建完成。
最后,我們將 LV exlv 和 hdisk1 兩個塊設備掛載(mapping)到 Target 設備下,作為 iSCSI Target LUN 設備。使用命令 smit tmlun
iSCSI Target LUNs
Move cursor to desired item and press Enter.
List all iSCSI Target Logical Units
Add an iSCSI Target Logical Unit
Change / Show Characteristics of an iSCSI Target Logical Unit
Remove an iSCSI Target Logical Unit
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x iSCSI Parent Target Name x
x x
x Move cursor to desired item and press Enter. x
x x
x target0 Available iSCSI Target Mode Target x
x x
x F1=Help F2=Refresh F3=Cancel x
x Esc+8=Image Esc+0=Exit Enter=Do x
F1x /=Find n=Find Next x
Esmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
選擇 Add an iSCSI Target Logical Unit,按回車然后選擇 target0,再按回車到下一步。
Add an iSCSI Target Logical Unit
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
iSCSI Parent Target Name target0
Logical Unit Name []
* Backing Device Type [disk] +
* Backing Device Name [hdisk1] +
Maximum Number of Commands to Queue to Device [3] +#
Apply change to DATABASE only no +
F1=Help F2=Refresh F3=Cancel F4=List
Esc+5=Reset Esc+6=Command Esc+7=Edit Esc+8=Image
Esc+9=Shell Esc+0=Exit Enter=Do
我們先添加 hdisk1,在 Backing Device type 中輸入設備類型 disk。在 Backing Device Name 輸入 hdisk1. 回車下一步。
COMMAND STATUS
Command: OK stdout: yes stderr: no
Before command completion, additional instructions may appear below.
lu0 Available
F1=Help F2=Refresh F3=Cancel Esc+6=Command
Esc+8=Image Esc+9=Shell Esc+0=Exit /=Find
n=Find Next
hdisk1 已添加好成為 Target LUN。下面我們繼續添加 LV exlv。
Add an iSCSI Target Logical Unit
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
iSCSI Parent Target Name target0
Logical Unit Name []
* Backing Device Type [lv] +
* Backing Device Name [exlv] +
Maximum Number of Commands to Queue to Device [3] +#
Apply change to DATABASE only no +
F1=Help F2=Refresh F3=Cancel F4=List
Esc+5=Reset Esc+6=Command Esc+7=Edit Esc+8=Image
Esc+9=Shell Esc+0=Exit Enter=Do
在設備類型一欄選擇 lv,在 Backing Device Name 一欄輸入 exlv,按回車到下一步。
COMMAND STATUS
Command: OK stdout: yes stderr: no
Before command completion, additional instructions may appear below.
lu1 Available
F1=Help F2=Refresh F3=Cancel Esc+6=Command
Esc+8=Image Esc+9=Shell Esc+0=Exit /=Find
n=Find Next
通過以下命令,來檢查剛創建的設備的狀態是否正常 :
# lsdev -C -t target# 查看 target 狀態
target0 Available iSCSI Target Mode Target
tmiscsi0 Defined iSCSI Target Mode Targets Container
# lsdev -C -t lu# 查看 Target LUN 的狀態
lu0 Available iSCSI Target Mode Logical Unit
lu1 Available iSCSI Target Mode Logical Unit
#
到現在,我們已經在服務器端,配置好了 iSCSI 的 target 服務。并將 2 個塊設備映射成為 target0 的 Target LUN 設備。默認的配置選項沒有打開安全控制訪問以及 CHAP 認證機制。所以我們目前不需要關心訪問權限等內容。這部分內容在最后一個章節討論。
iSCSI software Initiator 配置
客戶端需要我們配置客戶端的 iqn 地址,還有 iSCSI Target 端的信息,我們將通過以下兩個步驟來完成。
首先配置客戶端的 iqn 地址。在客戶端系統中使用 smit 來配置,smit 路徑:smit chgiscsisw。
Change / Show Characteristics of an iSCSI Protocol Device
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
iSCSI Protocol Device iscsi0
Description iSCSI Protocol Device
Status Available
iSCSI Initiator Name [iqn.aix01.hostid.c0a81582]
Maximum number of commands to queue to driver [200] +#
Discovery Policy file +
Maximum Targets Allowed [16] +#
Apply change to DATABASE only no +
F1=Help F2=Refresh F3=Cancel F4=List
Esc+5=Reset Esc+6=Command Esc+7=Edit Esc+8=Image
Esc+9=Shell Esc+0=Exit Enter=Do
在 iSCSI Initiator Name 一欄輸入自定義的客戶端 iqn,或使用自動生成的的 iqn 地址,我們在這里使用默認的生成的 iqn。下面我們通過編輯客戶端 /etc/iscsi/targets 文件,添加 ISCSI target,也即配置 iSCSI 服務器信息。
# vi /etc/iscsi/targets
# The target line would look like:
# 10.2.1.105 3260 iqn.com.ibm-K167-42.fc1a "This is my password."
#
# EXAMPLE 3: iSCSI Target with CHAP(MD5) authentication and line continuation
# Assume the target is at address 10.2.1.106
# the valid port is 3260
# the name of the target is iqn.2003-01.com.ibm:00.fcd0ab21.shark128
# the CHAP secret is "123ismysecretpassword.fc1b"
# 字段格式為:“Server IP”端口“target iqn 地址”
192.168.21.134 3260 com.ibm.cn.swtarget0
在上面這個文件我們添加了最后一行,由三個字段組成,第一段指定服務器 IP 地址,第二段指定服務端口,第三段指定服務器 target 的 iqn 地址。我們配置好 target 信息之后,執行 cfgmgr 刷新一下,如果配置正確,我們就可以找到 iSCSI disk 了。如下圖
# cfgmgr -l iscsi0# 刷新設備列表
# lsdev -Cc disk# 列出磁盤狀態
hdisk0 Available Virtual SCSI Disk Drive
hdisk1 Available Other iSCSI Disk Drive
hdisk2 Available Other iSCSI Disk Drive
創建 Datavg
這一步較為簡單,我們能夠正確連接到 iSCSI 服務器端,訪問到 iSCSI 磁盤后,可以通過下列命令創建一個 vg。
# mkvg -y datavg hdisk1 hdisk2
datavg
# lsvg -p datavg
datavg:
PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION
hdisk1 active 511 511 103..102..102..102..102
hdisk2 active 9 9 02..02..01..02..02
至此,我們已完成了在 AIX 平臺上的關于 iSCSI 的一個基本的配置過程,包括:iSCSI 服務器配置,iSCSI 客戶端的配置,以及使用 iSCSI 磁盤創建 vg。但是沒有涉及到訪問控制和認證等安全相關的內容,下面我們就 iSCSI 服務器安全機制做一個介紹。
iSCSI 訪問安全控制
在 AIX 6 中,iSCSI 安全機制由兩部分組成,一是使用 CHAP 握手協議對客戶端連接請求做認證;二是通過訪問列表(access list),控制客戶端的訪問權限。
CHAP 握手協議
CHAP 握手協議是一種應用廣泛的身份驗證的協議,可以對客戶端進行身份驗證。在 AIX 6 中,我們可以為每個 target 設置一個 CHAP 認證密鑰,在服務器端的 /etc/tmiscsi/autosecrets 文件中配置。格式如下圖:
# 字段格式為: target 名稱 CHAP 用戶名 CHAP 密鑰
# 本文中 target 名為 target0
# 因為 AIX 的 iSCSI 客戶端會自動使用本機的 iqn 地址作為 CHAP 的用戶名,
# 所以我們在這里設置 chap 名為客戶端的 iqn 地址
# CHAP 密鑰:我們設定為 test1234
#
target0 iqn.aix01.hostid.c0a81582 test1234
相應的我們需要修改客戶端的的配置文件,編輯 /etc/iscsi/targets 文件,在后面添加 CHAP 密鑰信息。
vi /etc/iscsi/targets
# 字段格式為:“Server IP”端口“target iqn 地址”“CHAP 密鑰”。注意密鑰需要在兩邊使用引號標記。
192.168.21.134 3260 com.ibm.cn.swtarget0 “test1234”
我們通過 cfgmgr 命令刷新下設備。
# cfgmgr -vl iscsi0
----------------
attempting to configure device 'iscsi0'
Time: 0 LEDS: 0x25b0
invoking /usr/lib/methods/cfgiscsi -l iscsi0
Number of running methods: 1
----------------
Completed method for: iscsi0, Elapsed time = 1
return code = 0
****************** stdout ***********
hdisk1 hdisk2
****************** no stderr ***********
。。。( 略 )
訪問控制列表
訪問控制列表,是一個基于客戶端 iqn 地址來控制訪問權限的一個列表。它可以精確到設置每一個輸出磁盤的訪問權限。要使用訪問控制功能,首先需要在創建 target 協議設備的時候需要激活該功能。或通過 smit tmiscsi_proto_change 來修改 Access Control enabled 為 on。修改必須要先刪除該設備下的所有子設備,所以最好在創建的時候激活該功能。
Change / Show Characteristics of an iSCSI Target Protocol Device
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
iSCSI Target Protocol Device Name tmsw0
Maximum number of sessions [200] +#
Maximum transfer size in one PDU [262144] +#
Access Control enabled [on] +
Apply change to DATABASE only no +
F1=Help F2=Refresh F3=Cancel F4=List
Esc+5=Reset Esc+6=Command Esc+7=Edit Esc+8=Image
Esc+9=Shell Esc+0=Exit Enter=Do
訪問權限的配置在 /etc/tmiscsi/access_lists 中設置,下面將提供一些配置例子以供參考。更詳細的格式說明請參考 /etc/tmiscsi/access_lists 中的注釋。
#vi /etc/tmiscsi/access_lists
# 基本命令格式為:
# target 名稱 | LUN 名稱客戶端的 iqn 地址,客戶端 iqn 地址…
# 例:Target0 下的所有磁盤可以被 iqn 地址為 iqn.aix01.hostid.c0a8 的客戶端訪問。
target0|all iqn.aix01.hostid.c0a8
#target0 的 LUN 名為 disk1 的磁盤可以被 iqn.aix01.hostid 和 iqn.aix02.hostid 訪問
target0|disk1 iqn.aix01.hostid,iqn.aix02.hostid
# 所有的 target 中的所有的磁盤可以被任意一個客戶端訪問。
all|all any
小結
IBM 的 system p AIX 6 平臺為中小企業的 iSCSI 應用提供了一種全新的解決方案。總體來說有以下三個優勢。
AIX 6 的 iSCSI target 是集成在 AIX 安裝光盤 expansion pack 里的一個軟件包,無需額外費用。
借助 system p 強大的 IO 吞吐能力,能夠保證穩定和高速的 iSCSI 流量。同時 system p 的先進的架構還能保證 IO 帶寬的線性擴展能力。性能優勢遠非其他系統平臺所能比擬。
作為 system p 的一貫特性:高可靠性,高可用性,高可服務性。這些特性不僅是在系統設計上得到保證,也一直被業界所認可。
我們看到依托于 system p 強大的硬件平臺,AIX 6 提供的 iSCSI target 解決方案即高可靠又高性能。反過來說,AIX 6 進一步拓展了其 UNIX 平臺的應用領域,將 system p 服務器打造成了一臺“iSCSI 存儲設備”。
總結
以上是生活随笔為你收集整理的转:探索 AIX 6:在 AIX 6 上配置 iSCSI Target的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到蛇了是什么意思周公解梦
- 下一篇: 怀孕梦到鬼代表什么预兆