13.3 設定 iSCSI 啟動程式

iSCSI 啟動器也稱為 iSCSI 用戶端,可用來連接任何 iSCSI 目標。這不僅限於節 13.2, 設定 iSCSI 目標 中說明的 iSCSI 目標解決方案。iSCSI 啟動器的組態涉及兩個主要步驟:探查可用的 iSCSI 目標和設定 iSCSI 工作階段。這兩個步驟都可以使用 YaST 來完成。

13.3.1 使用 YaST 設定 iSCSI 啟動程式的組態

YaST 中的 iSCSI 啟動器綜覽包含三個索引標籤:

  • 服務: 服務索引標籤可用來在開機時啟用 iSCSI 啟動器。同時會提供設定用於該探查的唯一啟動程式名稱及 iSNS 伺服器。iSNS 的預設連接埠為 3205。

  • 已連線目標: 連接的目標索引標籤會提供目前已連接 iSCSI 目標的綜覽。它與探查的目標索引標籤一樣,也提供為系統新增新目標的選項。

    在此頁面中,您可以選取目標設備,然後切換每個 iSCSI 目標設備的啟動設定:

    • 自動: 此選項用於 iSCSI 服務自身啟動時要連接的 iSCSI 目標。這是一般組態。

    • 開機時: 此選項用於開機時要連接的 iSCSI 目標;也就是說,當根目錄 (/) 位於 iSCSI 上時。因此,伺服器開機時,iSCSI 目標設備會從 initrd 進行評估。

  • 探查的目標: 探查的目標提供手動探查網路中 iSCSI 目標的途徑。

設定 iSCSI 啟動器

  1. 開啟 YaST,並以 root 使用者身分登入。

  2. 選取網路服務 > iSCSI 啟動器

    YaST 會開啟至「iSCSI 啟動器綜覽」頁面的服務索引標籤中。

  3. 服務啟動區域中選取下列其中一項:

    • 開機時: 以後伺服器重新開機時自動啟動啟動器服務。

    • 手動 (預設): 手動啟動服務。

  4. 指定或驗證啟動器名稱

    為此伺服器上的 iSCSI 啟動器指定一個格式正確的啟動器合格名稱 (IQN)。此啟動器名稱在網路上必須是全域唯一的。IQN 的一般格式如下:

    iqn.yyyy-mm.com.mycompany:n1:n2
    

    其中,n1 與 n2 為英數字元。例如:

    iqn.1996-04.de.suse:01:9c83a3e15f64
    

    啟動器名稱中會自動填上伺服器上 /etc/iscsi/initiatorname.iscsi 檔案中的對應值。

    如果伺服器支援 iBFT (iSCSI 開機韌體表),啟動器名稱中會填上 IBFT 中的對應值,並且該名稱無法在此介面上變更,不過您可以使用 BIOS 設定來修改。iBFT 是指包含各種對 iSCSI 開機程序有用之參數的資訊區塊,包括伺服器的 iSCSI 目標與啟動器描述。

  5. 使用下列方法之一探查網路上的 iSCSI 目標。

使用 iSNS 探查 iSCSI 目標

只有在您的環境中安裝並設定了 iSNS 伺服器後,才可以使用此選項。如需更多資訊,請參閱節 12.0, iSNS for Linux

  1. 在 YaST 中,選取iSCSI 啟動器,然後選取服務索引標籤。

  2. 指定 iSNS 伺服器與連接埠的 IP 位址。

    預設埠為 3205。

  3. 在「iSCSI 啟動器綜覽」頁面中,按一下完成以儲存並套用您的變更。

手動探查 iSCSI 目標

對要從您目前正設定 iSCSI 啟動器的伺服器存取的所有 iSCSI 目標伺服器重複下列程序。

  1. 在 YaST 中,選取iSCSI 啟動器,然後選取探查的目標索引標籤。

  2. 按一下探查開啟iSCSI 啟動器探查對話方塊。

  3. 輸入 IP 位址,並視需要變更連接埠。

    預設埠為 3260。

  4. 如果需要驗證,請取消選取無驗證,然後指定內送外送驗證的身分證明。

  5. 下一步開始探查並連接到 iSCSI 目標伺服器。

  6. 如果需要身分證明,則在探查成功後使用登入啟動目標。

    系統會提示您提供驗證身分證明以使用所選的 iSCSI 目標。

  7. 按一下下一步完成組態。

    如果一切順利,現在目標就會出現在連接的目標中。

    接著,就可以使用虛擬 iSCSI 設備。

  8. 在「iSCSI 啟動器綜覽」頁面中,按一下完成以儲存並套用您的變更。

  9. 您可以使用 lsscsi 指令尋找 iSCSI 目標設備的本地設備路徑︰

    lsscsi
    [1:0:0:0]   disk    IET      VIRTUAL-DISK     0     /dev/sda
    

設定 iSCSI 目標設備的啟動優先設定

  1. 在 YaST 中,選取iSCSI 啟動器,然後選取已連線目標索引標籤,以檢視目前連接到伺服器的 iSCSI 目標設備清單。

  2. 選取要管理的 iSCSI 目標設備。

  3. 按一下切換啟動修改設定:

    • 自動: 此選項用於 iSCSI 服務自身啟動時要連接的 iSCSI 目標。這是一般組態。

    • 開機時: 此選項用於開機時要連接的 iSCSI 目標;也就是說,當根目錄 (/) 位於 iSCSI 上時。因此,伺服器開機時,iSCSI 目標設備會從 initrd 進行評估。

  4. 按一下完成以儲存並套用您的變更。

13.3.2 手動設定 iSCSI 啟動程式

iSCSI 連線的探查和組態都需要執行中的 iscsid。第一次執行搜索時,會在 /var/lib/open-iscsi 目錄中建立 iSCSI 啟動程式的內部資料庫。

如果您的探查受到密碼保護,請提供驗證資訊給 iscsid。因為執行第一次探查時,內部資料庫還不存在,所以這時無法使用該資料庫,而必須編輯 /etc/iscsid.conf 組態檔案來提供資訊。若要新增您的搜索密碼資訊,請將下列幾行加到 /etc/iscsid.conf 結束處:

discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = <username>
discovery.sendtargets.auth.password = <password>

探查會將收到的所有值儲存在永久的內部資料庫中。此外,它會顯示所有偵測到的目標。請使用 iscsiadm -m discovery --type=st --portal=<targetip> 執行這個探查。輸出應該類似以下資訊:

149.44.171.99:3260,1 iqn.2006-02.com.example.iserv:systems

若要探查 iSNS 伺服器上可使用的目標,請使用 iscsiadm --mode discovery --type isns --portal <targetip> 指令

針對 iSCSI 目標上定義的每個目標,會各出現一行。如需已儲存資料的詳細資訊,請參閱節 13.3.3, iSCSI 用戶端資料庫

iscsiadm 特殊的 --login 選項會建立所有需要的設備:

iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems --login

新產生的設備會顯示在 lsscsi 的輸出中,而且現在可以用 mount 來存取。

13.3.3 iSCSI 用戶端資料庫

iSCSI 啟動程式探查到的所有資訊都儲存在位於 /var/lib/open-iscsi 的兩個資料庫檔案中。一個資料庫用來探查目標,一個資料庫用於已探查到的節點。存取資料庫時,您必須先選取要從探查資料庫或從節點資料庫中取得資料。使用 iscsiadm-m discovery-m node 參數就可以做到這一點。使用 iscsiadm 而且只搭配其中一個參數,可提供儲存記錄的綜覽:

iscsiadm -m discovery
149.44.171.99:3260,1 iqn.2006-02.com.example.iserv:systems

這個範例中的目標名稱為 iqn.2006-02.com.example.iserv:systems。與這個特殊資料集相關的所有動作都需要這個名稱。若要檢查 ID iqn.2006-02.com.example.iserv:systems 的資料記錄內容,請使用下列指令:

iscsiadm -m node --targetname iqn.2006-02.com.example.iserv:systems
node.name = iqn.2006-02.com.example.iserv:systems
node.transport_name = tcp
node.tpgt = 1
node.active_conn = 1
node.startup = manual
node.session.initial_cmdsn = 0
node.session.reopen_max = 32
node.session.auth.authmethod = CHAP
node.session.auth.username = joe
node.session.auth.password = ********
node.session.auth.username_in = <empty>
node.session.auth.password_in = <empty>
node.session.timeo.replacement_timeout = 0
node.session.err_timeo.abort_timeout = 10
node.session.err_timeo.reset_timeout = 30
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
....

若要編輯這其中一個變數的值,請使用 iscsiadm 指令搭配 update 作業。例如,如果希望 iscsid 在初始化時登入 iSCSI 目標,請將 node.startup 變數設定為 automatic 值:

iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems --op=update --name=node.startup --value=automatic

使用 delete 操作移除過時的資料集。如果目標 iqn.2006-02.com.example.iserv:systems 不再是有效的記錄,則使用以下指令加以刪除︰

iscsiadm -m node -n iqn.2006-02.com.example.iserv:systems --op=delete

重要: 請謹慎地使用此選項,因為該選項會刪除記錄,而不提供其他確認提示。

若要取得所有探查目標的清單,則執行 iscsiadm -m node 指令。

13.3.4 如需更多資訊

iSCSI 通訊協定已存在多年,所以有許多評鑑報告和其他文件,將 iSCSI 與 SAN 解決方案做比較、測試其效能基準或僅僅說明各種硬體解決方案。以下是 open-iscsi 相關詳細資訊的重要網頁:

此外也有一些線上文件。請參閱 iscsiadmiscsidietd.confietd 的線上文件,以及範例組態檔案 /etc/iscsid.conf