在 Windows 主機上使用 Qutil 設定 Windows 登錄


最後修訂日期: 2019-12-11

總覽

Qutil 是 PowerShell 指令碼,用於設定必要的 Windows 登錄,以確保 Windows 主機能為 QNAP ES NAS 正確處理儲存系統的行為。此外,使用者也可以選擇要將哪些 QNAP LUN 設為使用 Qutil 的最佳化負載平衡原則。

基本規格:

項目 描述
支援的韌體 QTS:4.2.x 以上版本
QES:所有版本
支援的作業系統 Windows Server 2008 以上版本
多語 僅提供英文版

負載平衡原則

您可以選擇以下 Microsoft 多路徑 I/O (MPIO) 原則:
僅限容錯移轉 - 此原則不會執行負載平衡。此原則使用單一使用中路徑,其餘路徑會是待命路徑。使用中路徑會用於傳送所有 I/O。如果使用中路徑失效,就會改用其中一個待命路徑。當失效的路徑再次啟用或重新連接時,原本啟用的待命路徑就會恢復待命狀態。
循環配置資源 - 這個負載平衡原則會允許裝置特定模組 (DSM) 使用所有可用的路徑,以均衡的方式執行 MPIO。這是儲存控制站此用雙主動模式時系統會選擇的預設原則,而管理應用程式不會特別選擇負載平衡原則。
以子集循環配置資源 - 這個負載平衡原則會允許應用程式指定的一組路徑以循環配置資源方式並與一組待命路徑搭配使用。DSM 使用主要路徑池中的路徑來處理要求,只要其中一個路徑可用。DSM 只會在所有主要路徑都失效時才會使用待命路徑。比方說,假設有 4 個路徑:A、B、C 和 D,路徑 A、B 和 C 列為主要路徑,而 D 列為待命路徑。DSM 會以循環配置資源方式,從 A、B 和 C 當中選擇一個路徑,只要這些路徑至少有一個可用。若三個路徑都失效,DSM 就會使用 D 這個待命路徑。若路徑 A、B 或 C 恢復可用,DSM 便會停止使用路徑 D,並改回使用 A、B 和 C 中的可用路徑。
最小佇列深度 - 這個負載平衡原則會將 I/O 沿著目前待處理 I/O 要求最少的路徑傳送。舉例來說,假設有一個 I/O 傳送至路徑 1 上的 LUN 1,另一個 I/O 傳送至路徑 1 上的 LUN 2。路徑 1 的累積待處理 I/O 數就是 2,而路徑 2 上則是 0。因此,下一個傳送到任一 LUN 的 I/O 就會在路徑 2 上處理。
加權路徑 - 這個負載平衡原則會將權重指派給每個路徑。權重代表指定路徑的相對優先順序。數字越大,優先順序越低。DSM 會從可用路徑當中選擇最小加權的路徑。
最少區塊 - 這個負載平衡原則會將 I/O 沿著目前處理資料區塊數最少的路徑傳送。比方說,假設有兩個 I/O:一個是 10 個位元組,另一個是 20 個位元組。兩個都在路徑 1 上進行處理,且兩個都已完成路徑 2。路徑 1 上的累積待處理 I/O 量為 30 個位元組。在路徑 2 上,則為 0。因此,下一個 I/O 就會在路徑 2 上處理。

設定 iSCSI 啟動器 MPIO

  1. 按一下〔開始〕,在〔開始搜尋〕中輸入「iSCSI」,然後按一下〔程式集〕下的〔iSCSI 啟動器〕。
  2. 如果這是您第一次啟動 Microsoft iSCSI 啟動器,系統將會提示 Microsoft iSCSI 服務未執行。您必須啟動該服務,才能使 Microsoft iSCSI 啟動器正確執行。按一下〔是〕來啟動服務。〔Microsoft iSCSI 啟動器 - 容〕視窗隨即開啟。
  3. 按一下〔探索〕標籤。若要新增目標入口,請按一下〔探索入口〕,然後在〔搜尋目標入口〕對話方塊中輸入要連接的目標入口的 IP 位址或名稱。我們將會新增屬於相同子網路的雙控制器資料埠 (非管理埠) 的 IP 位址。維持 TCP 通訊埠為預設值 3260。
  4. 可用的 iSCSI 目標及其狀態就會顯示在〔目標〕標籤下。選擇您要連接的目標,然後按一下〔連線〕。
  5. 選擇〔啟用多重路徑〕後,按一下〔進階〕。
  6. 在〔進階設定〕視窗中,選擇〔Microsoft iSCSI 啟動器〕或〔本機介面卡〕。接著分別在〔啟動器 IP〕下拉式清單和〔目標入口 IP〕下拉式清單中選擇 IP 位址。請確定啟動器 IP 和目標入口 IP 位於相同子網路內。
  7. 按〔確定〕關閉視窗。
  8. 此時會顯示已成功連接其中一個 iSCSI 目標。選擇此目標,然後按一下〔內容〕。
  9. 在〔工作階段〕標籤,選擇〔新增工作階段〕。
  10. 選擇〔啟用多重路徑〕,然後按一下〔進階〕。
  11. 新增屬於不同子網路的其他資料埠的 IP 位址。請確定啟動器 IP 和目標入口 IP 位於相同子網路內。按〔確定〕關閉視窗。
  12. 您應該會看到另一個工作階段已新增。按〔確定〕關閉視窗。
  13. 重複步驟 3 到 12,以設定其他 iSCSI 目標使用 MPIO。
  14. 在設定兩個目標使用 MPIO 後,新增將持續連結到 iSCSI 裝置的 iSCSI 磁碟區和/或裝置。如此可確保 iSCSI 啟動器服務會在所有持續連結的磁碟區和裝置都可供電腦使用時才算完成初始化。選擇〔iSCSI 啟動器內容〕視窗上的〔磁碟區和裝置〕標籤,然後按一下〔自動設定〕,以自動設定所有可用裝置。您應該會在〔磁碟區〕清單中看到名稱為「pio#disk......」的新磁碟區。按〔確定〕關閉視窗。

由 Qutil 設定的登錄值

Qutil 需要特定的登錄設定,以確保 Windows 主機正確處理儲存系統的行為。這些設定會影響 Windows 主機對資料延遲或遺失的回應方式。系統會選擇這個特定值,以確保 Windows 主機正確處理事件,例如,將儲存系統中的一個控制站容錯移轉至其夥伴控制站。

以下值由 Qutil 設定:所有值皆為十進位,除另有說明者外。HKLM 是 HKEY_LOCAL_MACHINE 的簡稱。

登錄機值 (QNAP)
HKLM\SYSTEM\CurrentControlSet\Services\disk \TimeOutValue 60
HKLM\SYSTEM\CurrentControlSet\Control\Class\
{4D36E97B-E325-11CE-BFC1-08002BE10318}\0001(?)\Parameters\DelayBetweenReconnect
10
HKLM\SYSTEM\CurrentControlSet\Control\Class\
{4D36E97B-E325-11CE-BFC1-08002BE10318}\0001(?)\Parameters\LinkDownTime
300
HKLM\SYSTEM\CurrentControlSet\Control\Class\
{4D36E97B-E325-11CE-BFC1-08002BE10318}\0001(?)\Parameters\MaxRequestHoldTime
300
HKLM\SYSTEM\CurrentControlSet\Control\Class\
{4D36E97B-E325-11CE-BFC1-08002BE10318}\0001(?)\Parameters\SrbTimeoutDelta
300
HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\PathVerificationPeriod 30
HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\PDORemovePeriod 600
HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\RetryCount 3
HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\RetryInterval 1
HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\DsmSupportedDeviceList "QNAP iSCSI 儲存。"
HKLM\SYSTEM\CurrentControlSet\Control\MPDEV \MPIOSupportedDeviceList "QNAP iSCSI 儲存。"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\DurableHandleV2TimeoutInSecond 240
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\ExtendedSessTimeout 960
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\SessTimeout 240

登錄機值 (NetApp)
HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters \DsmMaximumRetryTimeDuringStateTransition 120
HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\ DsmMaximumStateTransitionTime 120
HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\DsmSupportedDeviceList   "XXX "
HKLM\SYSTEM\CurrentControlSet\Control\Class\ {iSCSI_driver_GUID}\ instance_ID\Parameters \IPSecConfigTimeout 60
HKLM\SYSTEM\CurrentControlSet\Control\Class\ {iSCSI_driver_GUID}\ instance_ID\Parameters \LinkDownTime 30
HKLM\SYSTEM\CurrentControlSet\Services\ClusDisk \Parameters\ManageDisksOnSystemBuses 1
HKLM\SYSTEM\CurrentControlSet\Control\Class\ {iSCSI_driver_GUID}\ instance_ID\Parameters \MaxRequestHoldTime 60
HKLM\SYSTEM\CurrentControlSet\Control\MPDEV \MPIOSupportedDeviceList "xxxx "
HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\PathRecoveryInterval 40
HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\PathVerifyEnabled 0
HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\PathVerifyEnabled 0
HKLM\SYSTEM\CurrentControlSet\Services\msiscdsm \Parameters\PathVerifyEnabled 0
HKLM\SYSTEM\CurrentControlSet\Services\vnetapp \Parameters\PathVerifyEnabled 0
HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\PDORemovePeriod 130
HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\PDORemovePeriod 130
HKLM\SYSTEM\CurrentControlSet\Services\msiscdsm \Parameters\PDORemovePeriod 130
HKLM\SYSTEM\CurrentControlSet\Services\vnetapp \Parameters\PDORemovePeriod 130
HKLM\SYSTEM\CurrentControlSet\Services\ontapdsm \Parameters\ReservationTimeout 30
HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\RetryCount 6
HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\RetryCount 6
HKLM\SYSTEM\CurrentControlSet\Services\msiscdsm \Parameters\RetryCount 6
HKLM\SYSTEM\CurrentControlSet\Services\vnetapp \Parameters\RetryCount 6
HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\RetryInterval 1
HKLM\SYSTEM\CurrentControlSet\Services\msdsm \Parameters\RetryInterval 1
HKLM\SYSTEM\CurrentControlSet\Services\msiscdsm \Parameters\RetryInterval 1
HKLM\SYSTEM\CurrentControlSet\Services\vnetapp \Parameters\RetryInterval 1
HKLM\SYSTEM\CurrentControlSet\Services\disk \TimeOutValue 60
HKLM\SYSTEM\CurrentControlSet\Services\mpio \Parameters\UseCustomPathRecoveryInterval 1

DsmMaximumStateTransitionTime 和 DsmMaximumRetryTimeDuringStateTransition 設定

DsmMaximumStateTransitionTime 和 DsmMaximumRetryTimeDuringStateTransition 設定指定 Windows Server 2008、Windows Server 2008 R2 或 Windows Server 2012 msdsm 等待 ALUA 路徑轉換的時間,在經過這段時間後,才將 I/O 錯誤傳回其在堆疊中的上方層。

DsmMaximumStateTransitionTime 和 DsmMaximumRetryTimeDuringStateTransition 設定指定儲存系統容錯移轉或其他事件後,讓路徑狀態轉換完成的時間。這些設定會用於 Windows Server 2008、Windows Server 2008 R2 和 Windows Server 2012 的 MPIO 設定。

DsmSupportedDeviceList 設定

DsmSupportedDeviceList 設定指定 DSM 應宣告具有指定廠商識別碼和產品識別碼 (VID/PID) 的儲存裝置。

此設定用於 Windows Server 2008、Windows Server 2008 R2 和 Windows Server 2012 中包含的 msdsm。msdsm 永遠將優先權給予其他 DSM。若安裝其他 DSM 並設為宣告具有指定 VID/PID 的所有 LUN,則另一個 DSM 將會處理指定的 LUN,即使 msdsm 已設定此參數。

IPSecConfigTimeout 設定

IPSecConfigTimeout 參數指定 iSCSI 啟動器等待探索服務設定或釋出 ipsec 以進行 iSCSI 連線的時間。

此值可讓啟動器正確在使用 CHAP 的慢速開機系統上開始。

LinkDownTime 設定

僅適用於 iSCSI,LinkDownTime 設定指定若與目標的連線中斷,則要求處於裝置佇列,並進行重試的最長時間 (秒)。

若有安裝 MPIO,將會使用此值。若否,則會改用 MaxRequestHoldTime。

ManageDisksOnSystemBuses 設定

ManageDisksOnSystemBuses 參數由 SAN 開機系統使用於確保開機磁碟、分頁檔磁碟和叢集磁碟都位於相同的 SAN 結構上。

如需 ManageDisksOnSystemBuses 參數的詳細資訊,請參閱 Microsoft 支援文章 886569

MaxRequestHoldTime 設定

MaxRequestHoldTime 設定指定若與目標的連線中斷而重試連線時,將佇列要求的最長時間 (秒)。

經過這段保留時間後,要求將會失敗,並顯示「錯誤,無裝置」(error no device),並且會從系統移除磁碟。支援的設定可讓連線在最長預期的儲存容錯移轉時間內正常運作。

MPIOSupportedDeviceList

MPIOSupportedDeviceList 設定指定 Windows MPIO 連線應宣告具有指定廠商識別碼和產品識別碼 (VID/PID) 的儲存裝置。

此參數無法判斷哪個 DSM 會處理宣告的裝置;DsmSupportedDeviceList 設定指定要使用的 DSM。

PathRecoveryInterval 設定

PathRecoveryInterval 設定指定 MPIO 元件等待多久的時間 (秒) 後將重試中斷的路徑。

PathRecoveryInterval 設定會使 MPIO 元件先嘗試復原發生暫時錯誤的中斷路徑,再將磁碟裝置判定為已不再可用。

請注意,此參數會影響系統上的所有 DSM。

PathVerifyEnabled 設定

PathVerifyEnabled 參數指定 Windows MPIO 驅動程式是否自動要求 DSM 檢查其路徑。

請注意,此參數會影響系統上的所有 DSM。

PDORemovePeriod 設定

此參數指定在所有通往裝置的路徑都中斷後,多路徑虛擬 LUN 保留在系統記憶體中的時間長度。

RetryCount 設定

RetryCount 參數指定在容錯移轉至替代路徑之前,重試目前通往 LUN 的路徑的次數。

RetryCount 設定可用於從暫時路徑問題中復原。如果在重試指定次數後,沒有復原路徑,則可能是發生較嚴重的網路問題。

RetryInterval 設定

RetryInterval 參數指定兩次重試失效路徑之間等待的時間長度。此設定讓路徑有機會在重試之前從暫時的問題中復原。如果您使用雙控制站 NAS 機型,並且在 NAS 處於接管狀態期間發生 iSCSI 或 SMB 中斷連線情況,您不妨檢查此值是否與預設值不同。

TimeOutValue 設定

磁碟 TimeOutValue 參數指定 I/O 要求保留在 SCSI 層的時間長度,超過這段時間,就會發生逾時,並將逾時錯誤傳遞至上方的應用程式。

UseCustomPathRecoveryInterval 設定

UseCustomPathRecoveryInterval 設定可啟用或停用使用 PathRecoveryInterval 設定。

請注意,此參數會影響系統上的所有 DSM。

範例工作流程

使用 mpclaim 列出所有 MPIO 管理的磁碟

"mpclaim" 命令可用於列出具有負載平衡原則的所有 MPIO 磁碟:
> mpclaim -s -d

使用 mpclaim 變更特定磁碟的負載平衡原則

"mpclaim" 命令也可用於變更特定 MPIO 磁碟的負載平衡原則:
> mpclaim -l -d 0 3

列出所有 MPIO 管理的磁碟

Qutil 應該先取得所有 MPIO 磁碟:
> get-wmiobject -Namespace root\wmi -Class mpio_get_descriptor

列出所有 MPIO 管理的 QNAP 磁碟

Qutil 應篩選具有「6E843B6」前置字串的 SerialNumber 屬性,以取得 QNAP NAS 中的所有 MPIO 磁碟:
> (get-wmiobject -Namespace root\wmi -Class mpio_disk_info).driveinfo

列出各個 MPIO QNAP 磁碟的負載平衡原則

Qutil 應該列出各個 MPIO QNAP 磁碟的所有負載平衡原則:
> (get-wmiobject -Namespace root\wmi -Class dsm_querylbpolicy_v2).loadbalancepolicy

LoadBalancePolicy 定義:

0:清除原則
1:僅限容錯移轉
2:循環配置資源
3:以子集循環配置資源
4:最小佇列深度
5:加權路徑
6:最少區塊
7:廠商特定

這篇文章有幫助嗎?

50% 的人認為有幫助。
謝謝您,我們已經收到您的意見。

請告訴我們如何改進這篇文章:

如果您想提供其他意見,請於下方輸入。

選擇規格

      顯示更多 隱藏更多

      選擇其他偏好的語言:

      open menu
      back to top