2013年6月22日 星期六

FreeNAS 8.3.1 手冊中文化習作--第 8章(二)

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
  1. 若已決定使用驗證程序,採用 CHAP 亦或 雙向 CHAP,若使用驗證程序,建立一組  authorized access
  2. 建立用於儲存的 device extent or a file extent 
  3. 決定那些主機允許連接使用 iSCSI並創建啟動器  initiator
  4. 至少建立一個入口 portal
  5. 重新檢視 target global configuration 參數
  6. 建立標的物 target
  7. 於服務-->服務控制 中啟動 iSCSI 服務
以下的章節有更詳盡的描述
8.7.1 授權連接.....................................
使用 CHAP or 雙向 CHAP 作為驗證機制,必須於 服務--> ISCSI--> 授權連接-->新增 授權連接 中建立 授權連接,操作畫面請參閱Figure 8.7a.
註:此畫面設定登入驗證。此畫面並不同於由尋找憑證中 Target Global Configuration設定之
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客端而言,該設備可能是延伸磁區或可擴展的檔案
延伸磁區Device extent:已虛擬化且未經格式化的實體磁碟,RAID 控制器, zvol, zvol快照或是現有的 HAST device
因為沒有快取,單一的磁碟虛擬化相對緩慢,但虛擬化的硬體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 目標的全域環境配置.................................
Table 8.7f 為目標全域環境組態的設定畫面一覽表。表中的整數值可用於微調網路效能;絕大多數數值說明 於 RFC 3720
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
所涉及的數學解釋請見 this post ;預設值為32 可用值為 (0-255)
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) )
某些Linux套作提供來自於Open-iSCSI的指令列工具iscsiadm 。Linux系統套件中仍有未詳列的指令,不妨另以google 查詢。
有關VMware ESXi伺服器的連接指導可參考 How to configure FreeNAS 8 for iSCSI and connect to ESX(i)。應注意 該需求書中vSphere 4.x之ESX與ESXi開機方式有所不同。ESX需要硬體的 iSCSI配接器而 ESXi需要特定的開機韌體支援。神奇的是,這意味著在啟動主機方的FreeNAS配置並無任何區別。
若你可看見目標但無法連接,請參考 Target Global Configuration後檢視探索者的憑證。
若LUN未被ESXi發現,應確認vswitch是否開啟promiscuous mode 。
查核啟動器是否已連接,可於命令列中 Shell 使用 istgtcontrol info 指令
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服務並允許啟動器重新連線了。

沒有留言:

張貼留言