8.7
iSCSI......................................................................
iSCSI是一種合併儲存資料的協定標準,iSCSI允許FreeNAS®行使一種類似可穿越乙太網路的儲存區域網路(SAN)。尤其是
iSCSI客端(被稱之為啟動器initiators)可繋結並掛載匯出的磁碟裝置。傳統的光纖通道網路SANs需要例如光纖通道的HBAs,光纖通道開關及分離的纜線。而
iSCSI可使用現有的乙太網路,亦可建立專用網路的iSCSI流量以提高性能。
iSCSI
還提供了使用Windows命令列程式的優勢性,那些程式往往過濾“網路位置”,但卻未過濾iSCSI掛載。FreeNAS®使用istgt 提供
iSCSI
服務。
FreeNAS®支援多種
iSCSI裝置。當組建多重
iSCSI
LUNs時,可以對個別
LUN建立新的目標(target)。
入口群組及啟動器群組可以毫無疑義的重新使用。既然
istgt
多重路徑傳輸可以在同一TCP連線中使用多個LUNs目標,若每個LUN
有一個或以上的目標時會出現來自TCP的競争。組建
iSCSI服務前,應對以下的iSCSI
術語有所瞭解。
CHAP:一種認證方法,它使用一個共享的加密和三方驗證系統,以確定是否獲得授權存取存儲設備,並定期確認,連線是否被其他系統劫持。本程序在iSCSI啟動器(客戶端)進行CHAP驗證。
雙向目標與啟動器間會彼此驗證。
啟動器:在FreeNAS®系統獲得存取授權的客端。此客端需要啟動器軟體以連接
iSCSI
共享區。
目標:FreeNAS®
system上的儲存區資源
延伸(磁)區Extent:可被共享的儲存單元。可以是一個檔案或一種裝置
LUN:代表邏輯單元編號且代表一個邏輯的
SCSI裝置。啟動器與目標透過協商與LUN建立連線;此結果是
iSCSI的連接模擬一個SCSI硬碟的連接。啟動器處理
iSCSI
LUNs的方式與未格式化的SCSI或IDE硬碟相同;而非僅掛載遠端目錄,可啟動格式化並且直接管理
iSCSI LUNs
上的檔案系統。
為組建 iSCSI
- 建立用於儲存的 device extent or a file extent
- 至少建立一個入口 portal
- 建立標的物 target
- 於服務-->服務控制 中啟動 iSCSI 服務
以下的章節有更詳盡的描述
8.7.1
授權連接.....................................
使用
CHAP
or 雙向
CHAP
作為驗證機制,必須於
服務-->
ISCSI--> 授權連接-->新增
授權連接 中建立 授權連接,操作畫面請參閱Figure
8.7a.
Figure
8.7a: 新增iSCSI
授權連接

Table
8.7a 為新增授權連接的組態設定一覽表
Table
8.7a: 授權連接的組態設定
Setting
|
Value
|
Description
|
---|---|---|
Group
ID
|
integer
|
允許不同群組可組建不同的身份驗證設定檔;譬如,所有的使用者若屬於群組1,則將可繼承群組1的身份驗證設定檔。
|
User
|
string
|
於FreeNAS®裝置中建立
CHAP身份驗證用的使用帳號名;多數啟動器預設使用啟動器名稱作為使用者名稱
|
Secret
Secret
(Confirm)
|
string
|
與使用者相關的密碼,
依iSCSI標準,至少需達
12個字元長度(含)以上
|
Peer
User
|
string
|
僅用於組建
雙向 CHAP輸入之用;絕大多數時候與使用者同
|
Initiator
Secret Initiator Secret (Confirm)
|
string
|
雙方密碼必須不同;若設定了同儕
(peer)
使用者,則必須輸入同儕密鑰。
|
註:CHAP不適用於
Mac OS X的
GlobalSAN 啟動器
當
新增授權連接 時,將立即列示於 檢視授權連接
中。Figure
8.7b中示範,建立3個使用者
(test1, test2,
andtest3)及2個群組(1 and 2),群組1包含1個
CHAP使用者,群組2包括2位(一為
雙向 CHAP
使用者而另一位為
CHAP 使用者
),個別授權連接入口提供編輯及刪除按鈕。
Figure
8.7b: 檢視授權連接

8.7.2
設置延伸磁區..................................
iSCSI中
目標可視為虛擬化特性,對iSCSI客端而言,該設備可能是延伸磁區或可擴展的檔案
因為沒有快取,單一的磁碟虛擬化相對緩慢,但虛擬化的硬體RAID控制器,則受益於快取裝置,具有更高的性能。此類虛擬化技術做了通透式的磁碟或硬體RAID控制器。
ZFS的效益在於提供性能有限的磁盤或控制器的功能。
虛擬化的
zvol增加了像是ZFS讀-寫快取的效益。即使客端採用不同延伸磁區的檔案格式,至於FreeNAS®關切的ZFS的功能,則包括區塊的校驗和快照等效益。
File extent:允許匯出ZFS資料集的一部份。當建立file
extent時可指定不存在的檔案名稱或已存在的ZFS資料集。file extent的益處在於每個磁卷可建立多重匯出。
理論上,zvol及
file
extent應有相同的效能。實務上,file
extent 在讀/寫操作
勝過前者,但這僅僅是出現在速度達10
GB之以太網路或更高者。為求高效能,建議此時使用文件擴展。未來變更FreeBSD的zvol
碼,將提高其性能。
8.7.2.1新增設備的延伸磁區.
. . . . . . . . . . . . . . .
新增設備的延伸磁區,
前往
服務 → ISCSI
→ 設備的延伸磁區
→ 新增設備的延伸磁區.
本例如
Figure
8.7c, 設備的延伸磁區使用由 /mnt/volume1 磁卷
建立的zvol
(名為
export)
註:在FreeNAS®8.3.1之前的版本中,若使用實體硬碟代替
zvol去建立設備的延伸磁區一個bug將抹除磁碟上的分割表,導致資料遺失。此項已於8.3.1版中修正
Figure
8.7c: 新增iSCSI設備的延伸磁區

建立設備的延伸磁區時可用的組態臚列於Table
8.7b
Table
8.7b: 設備的延伸磁區
組態設定
Setting
|
Value
|
Description
|
---|---|---|
Extent
Name
|
string
|
必填
|
Comment
|
string
|
選項
|
Disk
device
|
drop-down
menu
|
選用未經格式化磁碟,控制器,
zvol, zvol 快照或
HAST裝置
|
8.7.2.2增加File
Extent . .. . . . . . . . . . . . . . .
File
extents可於
服務→ ISCSI
→ File Extents → 新增
File
Extent中建立。本例畫面顯示於
Figure
8.7d,名為data
容量20GB的檔案的延伸將建立於
ZFS
資料集 /mnt/volume1
中。註若於磁卷/資料集中建立而未新增名稱(填入命名資料) file
extent將無法建立。
Figure
8.7d: 新增iSCSI
File Extent

建立file
extent時可用的組態臚列於Table
8.7c
Table
8.7c: File Extent 組態設定
Setting
|
Value
|
Description
|
---|---|---|
Extent
Name
|
string
|
file
extent名稱;若延伸磁區(extent)的容量不為0,無法於磁卷/資料集中
延伸
|
Path
to the extent
|
browse
button
|
可以瀏覽到現有文件,並使用0的延伸磁區(extent)的容量,或瀏覽到
磁卷/資料集,按下“關閉”按鈕,附加延伸磁區(Extent)名稱,並於延伸區中規範可用容量
|
Extent
size
|
integer
|
若容量指定為0,必須是已經存在之檔案且實際檔案容量將被使用;否則要指定創建文件的大小
|
Comment
|
string
|
選項
|
8.7.3
啟動器......................................
下一步驟為組建獲授權啟動器。
或是獲准連接FreeNAS®系統上iSCSI目標的系統欲組建可連接到FreeNAS®
system 中iSCSI目標的組態可依
服務 → ISCSI
→ 啟動器
→ 新增啟 動器,
見圖
Figure
8.7e
Figure
8.7e: 新增iSCSI啟動器

註:自8.2.0,起FreeNAS®包括 iscontrol(8).此工具允許
FreeNAS®
系統扮演啟動器的角色(而非目標)且必須於命令列中執行之。因重新啟動系統時該設定無法存留,故若對iscontrol建立客製化的組態,請先備份。
新增啟動器時可用的設定組態一覽請見Table
8.7d
Table
8.7d: Initiator Configuration Settings啟動器的組態設定
Setting
|
Value
|
Description
|
---|---|---|
Initiators
|
string
|
使用all
關鍵字或
用逗號分隔(不以空格作為區隔之用)的主機名稱表列
|
Authorized
network
|
string
|
使用all
關鍵字或用使用類似 192.168.2.0/24的CIDR
遮罩
|
Comment
|
string
|
選項
|
Figure
8.7f示範2個群組已建立,群組1允許任何網路的任何啟動均可連接;群組2僅允許來自 10.10.1.0/24 網段的任意啟動器可以連接。
Figure
8.7f: iSCSI啟動器組態範例

註:刪除啟動器時,若該啟動器可連結任意 目標或 目標/延伸磁區映射 則將出現警示。若確認該刪除行動,即可刪除之。
8.7.4
入口......................................
入口係指iSCSI連接時使用的IP位址及埠號。按下
服務 → ISCSI
→ 入口 → 新增入口
可帶出Figure
8.7g畫面:
Figure
8.7g: 新增iSCSI入口

Table
8.7e為
建立新增入口設定時可用的組態一覽表。若需指定附加的IP位址,按下
“Add
extra Portal IP” 按鈕
Table
8.7e: 入口環境設定
Setting | Value | Description |
Comment | string |
選項
; 入口
自動指定數字型的群組 ID
|
Portal IP address | drop-down menu |
在一個介面或(0.0.0.0)的萬用字符位址(任何介面)下選擇相關的IP位址
|
Port | integer |
用於iSCSI存取的TCP埠號;預設為
3260
|
具有多個IP位址或界面的FreeNAS®
系統可用入口提供不同介面或網段的服務。可用於組建多重-徑路(MPIO)。MPIO比網路聚合
link
aggregation更具效率。
若FreeNAS®
系統具有多重介面,網站入口亦作為網路的存取控制之用。如下例所示,考量一個具有個介面的組態具有下列網址:
192.168.1.1/24
192.168.2.1/24
192.168.3.1/24
192.168.4.1/24
你可建立一個包含前兩組IP位址(群組
ID1)及包含其餘的兩組IP位址(群組2)。然後建立與一個Portal
Group ID of 1 名為A的目標及一個Portal
Group ID of 2 名為B的目標。此腳本中
istgt可監聽全數四個介面。但目標A的連線被限定僅可連接前兩組且目標B的連線被限定僅可連接後兩組。
另一個腳本則建立一個包含了每一個IP網址的入口,除非管理介面已耗用一個IP網址。此將防止iSCSI連接到管理界面。
8.7.5
目標的全域環境配置.................................
LUC
(Logical Unit Controller)邏輯單元控制器為一種由
istgt
去控制可移動式媒體以提供列示目標、上傳或下載媒體至單元、變更媒體檔或LUN重置的應用程式介面。
不需重新啟動(中斷
iSCSI 啟動器)iSCSI
服務條件下,可動態增加或移動目標。請依以下選項設定
- 檢查是否啟動 LUC 選項
- 將 Controller IP address and Control Authorized Network 保持於預設值
- 變更控制授權模式為 None
註:除非重啟iSCSI
服務,傳送中的目標、新增或刪除LUN或變更現存的延伸區容量等操作無法發生作用。
Table
8.7f: 目標全域組態設定
Setting | Value | Description |
Base Name | string | 若你不熟悉本格式制定方式,可參考使用 RFC 3721 的iqn格式構建iSCSI命名章節 |
Discovery Auth Method | drop-down menu |
組建授權層級依探索有效設備的目標而定;None
允許匿名; CHAP
及 雙向
CHAP 需要獲得授權而Auto則由啟動器決定授權的方案
|
Discovery Auth Group | drop-down menu |
由探索認證方式設定;若設定為 CHAP 或 雙向
CHAP則為必要條件、若設定為Auto
則為選填;若設定為None則不需使用
|
I/O Timeout | integer representing seconds |
設定錯誤回傳多久時間後,
I/O應予停止的時間限制;預設值為30
可用的設定值為(0-300)
|
NOPIN Interval | integer representing seconds |
目標於多少時間間隔內送一個NOPIN
封包以保持連線通暢預設值為20
可用的設定值為(0-300)
|
Max. Sessions | integer |
限制目標的
入口可連接啟動器的最大sessions
數預設值為16
可用的設定值為(1-64)
|
Max. Connections | integer |
限制單一啟動器對單一目標的最大連線數,預設值為8(可用1-64)
|
Max. pre-send R2T | integer |
預設值為32(可用1-25)
|
MaxOutstandingR2T | integer |
the
maximum number of ready to receive packets (R2Ts) the target can
have outstanding for a single iSCSI command, where larger values
should yield performance increases until MaxOutstandingR2T
exceeds the size of the largest Write I/O divided by
MaxBurstLength; values range from 1-255 with a default of 16
|
First burst length | integer |
以位元組為單位;當執行單一SCSI指令期間,iSCSI啟動器可以傳送到目標之未經請求資料的最大數量預設值為65536
可用的設定值為(1-2^32)
|
Max burst length | integer |
以位元組bytes為單位,目標願意接收R2Ts間的最大寫入容量;預設值為262,144
可用的設定值為(1-2^32)
|
Max receive data segment length | integer | 以位元組bytes為單位,預設值為262,144 可用的設定值為(1-2^32) |
DefaultTime2Wait | integer |
以秒為單位,於未預期的中斷連線或重設之後嘗試登出系統或重新指派前的最少等待時間,
預設值為2
可用的設定值為(1-300)
|
DefaultTime2Retain | integer |
以秒為單位,在
未預期的連接終止/重置時
後,而現行工作仍可重新指派前
Time2Wait的最大時間。預設值為60可用的設定值為(1-300)
|
Enable LUC | checkbox |
若需使用動態增加或移動目標。若勾選則以下三個欄位將轉為必填選項
|
Controller IP address | IP address |
維持預設值為 127.0.0.1
|
Controller TCP port | integer |
預設值為3261
可能值的設定值為(1024-65535)
|
Controller Authorized netmask | subnet mask |
維持預設值為 127.0.0.0/8
|
Controller Auth Method | drop-down menu |
可選用 None, Auto, CHAP,
或 雙向 CHAP
|
Controller Auth Group | drop-down menu |
若控制器授權方式
設定為 CHAP 及 雙向
CHAP 則為必填選項需要獲得授權;若設定為Auto則為選用;若設定為None
不需選取
|
若本畫面之設定與啟動器之設定不同,請設定為相同。當有所變更時,應依較大設定調適之。
若你想變更此數值以求連線之最佳化,請參閱iSCSI啟器動文件;例如,若iSCSI啟動器於Xenserver中執行時,可使用以下建議變更之。
- Max. pre-send R2T: 255
- MaxOutstandingR2T: 64
- First burst length: 262,144
- Max burst length: 2,097,152
8.7.6
目標Targets.........................................
下一步,建立目標,可使用
服務-->
ISCSI-->目標-->新增目標
,如Figure8.7i。目標係由入口ID,允許的啟動器ID及授權方式組成。
註:iSCSI目標所建立之區塊裝置可由多個啟動器存取。例如用於
VMWare
ESX/ESXi的VMFS為使多重啟器可載區塊裝置以供
讀/寫
,叢集群檔案系統的區塊裝置實為必需。若為一個傳統的區裝置例如EXT,XFS,FAT,NTFS,UFS或ZFS文件系統,則必須小心放置,因同一時間僅有一個啟動
讀/寫
存取,否則將導致檔案系統損壞。如果你需於非叢群檔案系統上支援多個客戶端取用相同資料,應使用CIFS/NFS取代
iSCSI /
創建多個iSCSI目標(於個別客戶端)
方式為之
Figure
8.7i: 新增
iSCSI
目標

Table
8.7g 建立目標時可用組態設定一覽表
Table
8.7g: 目標設定
Setting | Value | Description |
Target Name | string |
必填;命名若未使用
iqn 起始,則將自動附加基本名稱
|
Target Alias | string |
選項
使用者-慣用的名稱
|
Serial | string |
唯一的ID
;
一個目標允許多個LUNs;預設由系統
MAC 卡號產生
|
Target Flags | drop-down menu |
選用;
唯讀或可讀寫
|
Portal Group ID | drop-down menu |
保持空白或選用已存在的入口ID
|
Initiator Group ID | drop-down menu |
選用已存在的啟動器群組作為目標存取之用
|
Auth Method | drop-down menu |
選用; None, Auto, CHAP,
或 雙向 CHAP
|
Authentication Group number | drop-down menu |
None or
integer representing number of existing authorized access 以
none
或整數表示的現存授權存取的個數
|
Queue Depth | integer | |
Logical Block Size | integer |
僅用於變更摸擬實體磁碟容量或增加區塊容量以符合受限於作業系統區塊計數的較大檔案系統;預設值為
512
|
8.7.7
目標/延伸磁區
...................................................
最後步驟為將延伸磁區與目標連結
( 服務-->
ISCSI-->目標/延伸磁區-->新增
目標/延伸磁區,執行畫面請見 Figure
8.7j。使用下拉選單選取
現存的目標及延伸磁區。
Figure
8.7j:
聯結
iSCSI
目標
/延伸磁區

Table
8.7h目標/延伸磁區
組態設定的一覽表
Table
8.7h: 目標/延伸磁區
組態設定
Setting
|
Value
|
Description
|
---|---|---|
Target
|
drop-down menu
|
選用
預先-建立的目標
|
Extent
|
drop-down menu
|
選用
預先-建立的延伸磁區
|
在此建議目標與延伸區,以1:1的方式關聯較佳,即使該軟體容許一個目標可聯結多個延伸磁區者亦然。
iSCSI一經組建,不要忘了啟動服務 (服務-->
服務控制)按下紅色OFF按鈕,數秒後,燈號轉為藍色的
ON ,標示出此服務已經啟動。
8.7.8
連接到
iSCSI
共享區............................
為存取
iSCSI目標,客端需使用
iSCSI啟動器軟體。
Windows
7已預置相關軟體。更詳盡的操作方式可參閱 here。
Windows
2000, XP, and 2003的客端可參考 here。 how-to為
Windows
7系統提供如何建立
iSCSI
相關資訊。
Mac
OS X並未內建啟動器。其採用之 globalSAN
為一套易用的商業版Mac啟動器。BSD系統提供指令列啟動器(FreeBSD
為 iscontrol(8) ,NetBSD為 iscsi-initiator(8) ,及OpenBSD為 iscsid(8) )
有關VMware ESXi伺服器的連接指導可參考 How
to configure FreeNAS 8 for iSCSI and connect to ESX(i)。應注意
該需求書中vSphere 4.x之ESX與ESXi開機方式有所不同。ESX需要硬體的
iSCSI配接器而
ESXi需要特定的開機韌體支援。神奇的是,這意味著在啟動主機方的FreeNAS配置並無任何區別。
若LUN未被ESXi發現,應確認vswitch是否開啟promiscuous mode
。
8.7.9
LUNs 的擴增 ................................
現有的
iSCSI
LUN容量擴增方法全賴LUN
背後是 file
extent 或
zvol。兩種方法均描述於本章節中。
在LUN使用以下任一種方法擴充後,藉由啟動器軟體去擴充分割區及檔案系統包含以下工具的使用
8.7.9.1基於LUN
的Zvol
. . . . .. . . . . .
擴充zvol基礎的LUN之前,確認所有的啟動器已斷線。可於控制服務中停用iSCSI
服務。
開啟命令列然後辨認出欲執行擴充的zvol
zfs list -t volume NAME USED AVAIL REFER MOUNTPOINT tank/iscsi_zvol 4G 17.5G 33.9M -
然後擴充該zvol,此例將 tank/iscsi_zvol 由4G擴充
6G。
zfs set volsize=6G tank/iscsi_zvol zfs set refreservation=6G tank/iscsi_zvol
確認此項變更已生效
zfs list -t volume NAME USED AVAIL REFER MOUNTPOINT tank/iscsi_zvol 6G 17.5G 33.9M -
你可以立刻啟動
iSCSI服務並允許啟動器重新連線了。
8.7.9.2 File Extent Based LUN
在擴充基於LUN的
file
extent之前,應確定所有的啟動器均已中斷連線。停用iSCSI
之服務請至 服務控制
中關閉之。
然後前往
服務-->
iSCSI—>File Extent → 檢視
File
Extent 決定
file
extent 擴充的路徑,開啟 Shell 擴充之,本例中 /mnt/volume1/data 可增加
2G
之容量
truncate
-s +2g /mnt/volume1/data
前往
服務-->
iSCSI—>File Extent → 檢視
File Extent 按下
編輯 按鈕,由於iSCSI目標使用該檔案的現有容量的設定容量為
0 即可。
你可以立刻啟動
iSCSI服務並允許啟動器重新連線了。
沒有留言:
張貼留言