

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 自訂 iSCSI 設定
<a name="recommendediSCSISettings"></a>

我們強烈建議您在設定啓動器之後，自訂您的 iSCSI 設定以防止啟動器中斷與目標的連線。

如下列步驟所示增加 iSCSI 逾時值，您讓您的應用程式更善於處理需時甚久的寫入操作，以及其他暫時性問題，例如網路中斷。

**注意**  
變更登錄之前，您應該先備份一份登錄。如需建立在處理登錄時遵循之備份副本及其他最佳實務的資訊，請參閱 [Microsoft TechNet Library](http://technet.microsoft.com/en-us/library/cc780921(WS.10).aspx) 的 *Registry best practices*。

**Topics**
+ [自訂您的 Windows iSCSI 設定](#CustomizeWindowsiSCSISettings)
+ [自訂您的 Linux iSCSI 設定](#CustomizeLinuxiSCSISettings)
+ [自訂磁碟區閘道的 Linux 磁碟逾時設定](#CustomizeLinuxDiskTimeoutSettings)

## 自訂您的 Windows iSCSI 設定
<a name="CustomizeWindowsiSCSISettings"></a>

使用 Windows 用戶端時，您要使用 Microsoft iSCSI 啟動器連線到您的閘道磁碟區。如需如何連線到磁碟區的指示，請參閱[將磁碟區連接到用戶端](GettingStartedAccessVolumes.md)。

**自訂您的 Windows iSCSI 設定**

1. 提高請求佇列的時間上限。

   1. 啟動登錄編輯器 (`Regedit.exe`)。

   1. 導覽至裝置類別的全域唯一識別碼 (GUID) 金鑰，其包含 iSCSI 控制器設定，如下所示。

       
**警告**  
確定您是在 **CurrentControlSet** 子機碼中工作，而不是其他的控制集，例如 **ControlSet001** 或 **ControlSet002**。

       

      ```
      HKEY_Local_Machine\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}
      ```

   1. 尋找適用於 Microsoft iSCSI 啟動器的子機碼，如下所示為 {{&lt;[執行個體號碼]}}。

      此機碼由四位數的號碼組成，例如 `0000`。

       

      ```
      HKEY_Local_Machine\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\{{[<Instance Number]}}
      ```

      視您在電腦上安裝的內容而定，Microsoft iSCSI 啟動器可能不是子機碼 `0000`。您可以透過驗證字串`DriverDesc`具有 值，來確保您已選取正確的子索引鍵`Microsoft iSCSI Initiator`。

   1. 若要顯示 iSCSI 設定，請選擇 **Parameters (參數)** 子機碼。

   1. 開啟內容 (按右鍵) 選單取得 **MaxRequestHoldTime** DWORD (32 位元) 值，選擇 **修改**，然後將值變更為 **600**。

      **MaxRequestHoldTime** 指定在通知`Device Removal`事件上層之前，Microsoft iSCSI 啟動器應保留並重試未完成命令的秒數。此值表示保留通話時間為 600 秒。

1. 您可以修改下列參數，增加 iSCSI 封包中可傳送的資料量上限：
   + **FirstBurstLength** 可控制未經要求的寫入請求能夠傳輸的資料量上限。將此值設為 **262144** 或 Windows 作業系統預設值，以較高者為準。
   + **MaxBurstLength** 類似於 **FirstBurstLength**，但其控制的是經要求的寫入請求能夠傳輸的資料量上限。將此值設為 **1048576** 或 Windows 作業系統預設值，以較高者為準。
   + **MaxRecvDataSegmentLength** 可控制與單一協定資料單元 (PDU) 相關聯的資料區段大小上限。將此值設為 **262144** 或 Windows 作業系統預設值，以較高者為準。
**注意**  
可利用不同 iSCSI 設定將各個備份軟體最佳化，以發揮最大效益。如要確認這些參數的哪些值能夠帶來最佳效能，請參閱備份軟體的文件。

1. 提高磁碟逾時值，如下所示：

   1. 如尚未啟動，請啟動登錄編輯器 (`Regedit.exe`)。

   1. 導覽到 **CurrentControlSet** 之 **Services (服務)** 子機碼中的 **Disk (磁碟)** 子機碼，如下所示。

      ```
      HKEY_Local_Machine\SYSTEM\CurrentControlSet\Services\Disk
      ```

   1. 開啟內容 (按右鍵) 選單取得 **TimeOutValue **DWORD (32 位元) 值，選擇**修改**，然後將值變更為 **600**。

      **TimeOutValue** 指定在捨棄並重新建立連線嘗試工作階段復原之前，iSCSI 啟動器等待目標回應的秒數。此值代表 600 秒的逾時期間。

1. 為確保新的組態值生效，請重新啟動您的系統。

   重新啟動之前，您必須確定磁碟區所有寫入操作的結果都已排清。若要執行此作業，請先將所有映射儲存磁碟區的磁碟離線，再重新啟動。

## 自訂您的 Linux iSCSI 設定
<a name="CustomizeLinuxiSCSISettings"></a>

我們強烈建議您在設定閘道之後，自訂您的 iSCSI 設定以防止啟動器中斷與目標的連線。如下列步驟所示增加 iSCSI 逾時值，您讓您的應用程式更善於處理需時甚久的寫入操作，以及其他暫時性問題，例如網路中斷。

**注意**  
用於 Linux 其他類型的命令可能稍有不同。下列範例是以 Red Hat Linux 為基礎。

**自訂您的 Linux iSCSI 設定**

1. 提高請求佇列的時間上限。

   1. 開啓 `/etc/iscsi/iscsid.conf` 檔案並尋找下列各行。

      ```
      node.session.timeo.replacement_timeout = {{[replacement_timeout_value]}} 
      node.conn[0].timeo.noop_out_interval = {{[noop_out_interval_value]}} 
      node.conn[0].timeo.noop_out_timeout = {{[noop_out_timeout_value]}}
      ```

   1. 將 {{[replacement\_timeout\_value]}} 值設為 **600**。

      將 {{[noop\_out\_interval\_value]}} 值設為 **60**。

      將 {{[noop\_out\_timeout\_value]}} 值設為 **600**。

      這三種值全以秒為單位。

       
**注意**  
必須先設定 `iscsid.conf` 設定才能探索閘道。如已探索到您的閘道或登入目標，或兩項都完成，您可以使用下列命令從探索資料庫刪除項目。然後，您可以重新探索或再次登入以挑選新的組態。  
   

      ```
      iscsiadm -m discoverydb -t sendtargets -p {{[GATEWAY_IP]}}:3260 -o delete
      ```

1. 增加每個回應可傳輸的資料量上限值。

   1. 開啓 `/etc/iscsi/iscsid.conf` 檔案並尋找下列各行。

      ```
      node.session.iscsi.FirstBurstLength = {{[replacement_first_burst_length_value]}} 
      node.session.iscsi.MaxBurstLength = {{[replacement_max_burst_length_value]}}
      node.conn[0].iscsi.MaxRecvDataSegmentLength = {{[replacement_segment_length_value]}}
      ```

   1. 建議您使用下列值，以提升效能。您的備份軟體可能需使用不同值來進行最佳化，因此請參閱備份軟體文件以取得最佳結果。

      將 {{[replacement\_first\_burst\_length\_value]}} 值設定為 **262144** 或 Linux 作業系統預設值，以較高者為準。

      將 {{[replacement\_max\_burst\_length\_value]}} 值設定為 **1048576** 或 Linux 作業系統預設值，以較高者為準。

      將 {{[replacement\_segment\_length\_value]}} 值設定為 **262144** 或 Linux 作業系統預設值，以較高者為準。
**注意**  
可利用不同 iSCSI 設定將各個備份軟體最佳化，以發揮最大效益。如要確認這些參數的哪些值能夠帶來最佳效能，請參閱備份軟體的文件。

1. 為確保新的組態值生效，請重新啟動您的系統。

   重新啟動之前，您必須確定磁帶所有寫入操作的結果都已排清。若要這麼做，請先卸載磁帶再重新啟動。

## 自訂磁碟區閘道的 Linux 磁碟逾時設定
<a name="CustomizeLinuxDiskTimeoutSettings"></a>

如果您使用的是磁碟區閘道，除了上一節所述的 iSCSI 設定之外，您還可以自訂下列 Linux 磁碟逾時設定。

**自訂您的 Linux 磁碟逾時設定**

1. 在規則檔案中提高磁碟逾時值。

   1. 如果您使用的是 RHEL 5 啟動器，請開啟 `/etc/udev/rules.d/50-udev.rules` 檔案並尋找下行。

      ```
      ACTION=="add", SUBSYSTEM=="scsi" , SYSFS{type}=="0|7|14", \ 
      RUN+="/bin/sh -c 'echo {{[timeout]}} > /sys$$DEVPATH/timeout'"
      ```

      此規則檔案不存在於 RHEL 6 或 7 啟動器中，因此您必須使用下列規則來建立它。

      ```
      ACTION=="add", SUBSYSTEMS=="scsi" , ATTRS{model}=="Storage Gateway", 
      RUN+="/bin/sh -c 'echo {{[timeout]}} > /sys$$DEVPATH/timeout'"
      ```

      若要在 RHEL 6 中修改逾時值，請使用下列命令，然後新增前文所示的程式碼。

      ```
      sudo vim /etc/udev/rules.d/50-udev.rules
      ```

      若要在 RHEL 7 中修改逾時值，請使用下列命令，然後新增前文所示的程式碼。

      ```
      sudo su -c "echo 600 > /sys/block/[device name]/device/{{timeout}}"
      ```

   1. 將 {{[逾時]}} 值設為 **600**。

      此值表示逾時為 600 秒。

1. 為確保新的組態值生效，請重新啟動您的系統。

   重新啟動之前，您必須確定磁碟區所有寫入操作的結果都已排清。若要執行此作業，請先卸載儲存磁碟區，再重新啟動。

1. 您可使用下列命令來測試組態。

   ```
   udevadm test {{[PATH_TO_ISCSI_DEVICE]}}
   ```

   此命令會顯示套用到 iSCSI 裝置的 udev 規則。