路徑控制模組屬性

除了預設的 AIX® 預設路徑控制模組 (PCM) 之外,裝置供應商可能也會提供裝置特有的PCM。使用者可以變更的屬性集,是由裝置供應商來定義的。裝置特定的 PCM 可以具有裝置和路徑屬性。

下面是 AIX 預設 PCM 的裝置屬性:
algorithm
判斷透過裝置路徑來分散 I/O 所用的方法。algorithm 屬性具有下列值:
註: 有些裝置只支援這些值的子集。
failover
將所有 I/O 作業傳送至單一路徑。如果該路徑是標示為失敗或已停用,則會選取下一個可用的路徑來傳送所有 I/O 作業。此演算法會根據 path priority 屬性的遞增值,來維護依序清單中所有已啟用的路徑。會針對每一個 I/O 作業選取具有最低路徑優先順序值的有效路徑。
round_robin
透過多個已啟用的路徑配送 I/O 作業。如果裝置有主動及被動路徑,或有偏好及非偏好的路徑,則對 I/O 作業只使用一個路徑子集。 如果該路徑是標示為失敗或已停用,則不再使用它來傳送 I/O 作業。I/O 作業是根據 path priority 屬性進行配送。有較高路徑優先順序值的路徑會接收到較大量的 I/O 作業。
shortest_queue
透過多個已啟用的路徑配送 I/O 作業。如果裝置有主動及被動路徑,或有偏好及非偏好的路徑,則對 I/O 作業只使用一個路徑子集。 此演算法類似於 round_robin 演算法。不過,shortest_queue 演算法會根據每一個路徑上擱置的 I/O 作業數來配送 I/O 作業。 會選取目前有最少擱置 I/O 作業數的路徑進行下一個作業。當演算法是設為 shortest_queue 時,會忽略 path priority 屬性。
hcheck_mode
判斷在使用性能檢查功能時,必須檢查哪些路徑。此屬性支援下列模式:
啟用
透過其狀態為已啟用的路徑來傳送 healthcheck 指令。此模式不會透過其狀態為已停用或遺漏的路徑來傳送 healthcheck 指令。
failed
透過其狀態為失敗的路徑來傳送 healthcheck 指令。此模式不會透過其狀態為已啟用、已停用或遺漏的路徑來傳送 healthcheck 指令。
非作用中
(預設值)透過裝置上沒有作用中 I/O 的路徑(包括其狀態為失敗或已啟用的路徑)來傳送 healthcheck 指令。 此模式不會透過其狀態為已停用或遺漏的路徑來傳送 healthcheck 指令。
hcheck_interval
可定義在裝置路徑上執行性能檢查的頻率。此屬性支援的範圍從 0 到 3600 秒。如果您選取 0 值,就表示停用性能檢查。
註: 只有在磁碟已由部分處理程序開啟且尚未關閉時,才會執行性能檢查。如果沒有已開啟磁碟的實體,則即使該裝置的 hcheck_interval 屬性已設為非零值,「路徑控制」模組依然不會檢查路徑。
dist_tw_width
定義「時間視窗」的持續期間。在這段時間範圍內,分散式錯誤偵測演算法會累積傳回錯誤的 I/O。dist_tw_width 屬性的測量單位是毫秒。降低此屬性值,會減少每個範例所採用的期間,並降低對小型的突發 I/O 錯誤的演算法靈敏度。增加此屬性值,會增加對小型突發錯誤的演算法靈敏度,並增加路徑失敗的可能性。
dist_err_percent
定義具有錯誤(路徑上因效能不佳而失敗之前所允許發生的錯誤)的「時間視窗」之百分比。dist_err_percent 的範圍是從 0 到 100。當此屬性設為零 (0) 時,會停用分散式錯誤偵測演算法。預設設定為零。分散式錯誤偵測演算法會取樣測試連接裝置與配接卡的光纖是否有錯誤。此演算法會針對發生錯誤的樣本計算出百分比,並且會在計算出來的值大於 dist_err_percent 屬性值時使路徑失敗。

以下是 AIX PCM 的路徑屬性:

path priority
可修改路徑清單中的演算法方法的行為。

如果 algorithm 屬性值是 failover,路徑會保留在清單中。此清單中的順序,可決定要先選擇哪一個路徑,如果其中一個路徑失敗了,接下來要選擇哪一個路徑。順序是由 path priority 屬性值來決定的。優先順序 1 代表最高優先順序。多個路徑可以有相同的優先順序值,但如果所有的路徑都具有相同值,則會根據配置每一個路徑時的先後時間來選擇。

當演算法屬性值為 round_robin 時,path priority 演算法會將優先順序值指派給每一個路徑。將依照路徑優先順序的比例選取路徑以進行 I/O 作業。因此,會選取具有較高優先順序值的路徑進行更多 I/O 作業。如果所有路徑優先順序都一樣,則會平均選取路徑。

cntl_hcheck_int

控制器性能檢查順序會在偵測到儲存體光纖傳輸失敗之後啟動。cntl_delay_time 屬性可決定持續時間上限(以秒為單位),在該時間內控制器性能檢查順序為作用中。如果控制器性能檢查指令順利完成,並偵測到可用的路徑,則控制器性能檢查順序會結束,以允許 I/O 進行回復。控制器性能檢查順序結束時如果未偵測到良好的路徑,則裝置的所有擱置及後續的 I/O 都會失敗,直到裝置性能檢查器偵測到已傳回失敗的路徑為止。

如果控制器性能檢查順序為作用中,則 cntl_hcheck_interval 屬性為時間量(以秒為單位),在該時間內會發出下一個設定控制器性能檢查指令。cntl_hcheck_interval 屬性必須小於 cntl_delay_time,除非已設為 0 或是已停用。如果 cntl_delay_timecntl_hcheck_interval 已設為 0,則會停用此特性。

cntl_delay_time

控制器性能檢查順序會在偵測到儲存體光纖傳輸失敗之後啟動。cntl_delay_time 屬性可決定持續時間上限(以秒為單位),在該時間內控制器性能檢查序列為作用中。如果控制器性能檢查指令順利完成,並偵測到可用的路徑,則控制器性能檢查順序會結束,並允許 I/O 進行回復。控制器性能檢查順序結束時如果未偵測到良好的路徑,則裝置的所有擱置及後續的 I/O 都會失敗,直到裝置性能檢查器偵測到已傳回失敗的路徑為止。

如果控制器性能檢查順序為作用中,則 cntl_hcheck_interval 屬性為時間量(以秒為單位),在該時間內會發出下一個設定控制器性能檢查指令。cntl_hcheck_interval 屬性必須小於 cntl_delay_time,除非已設為 0 或是已停用。如果 cntl_delay_timecntl_hcheck_interval 已設為 0,則會停用此特性。

timeout_policy
調整 PCM 對於指令逾時和傳輸錯誤的行為。當「多路徑 I/O (MPIO)」裝置在裝置的部分路徑上遇到間歇性的儲存區域網路 (SAN) 光纖問題時,如果 timeout_policy 已設為 fail_pathdisable_path,則可能會改善效能降低的情形。timeout_policy 屬性具有下列值:
retry_path
在路徑上第一次發生指令逾時時不會立即導致路徑失敗。如果性能檢查回復了因傳輸問題而導致失敗的路徑,就能立即使用所回復的路徑。
fail_path
路徑在第一次發生指令逾時時失敗,並假設它不是路徑群組中的最後一個路徑。如果因傳輸問題而導致失敗的路徑回復了,則必須等到在該路徑上沒有發生任何失敗的期間到期之後,才會使用該路徑進行讀取或寫入 I/O 作業。如果啟用此特性,在將讀取或寫入 I/O 遞送至從傳輸錯誤中回復的路徑之前,可能會發生延遲。
變更開始
fail_ctrl
此設定會導致 MPIO 更快速地從偏好的控制器切換至非偏好的控制器。如果您未啟用此設定,則在 MPIO 從偏好的控制器切換至非偏好的控制器之前,偏好的控制器的所有路徑將失敗。當您啟用此設定時,若偏好的控制器的兩個路徑發生錯誤,MPIO 即會切換。 此設定與 fail_path 設定類似。
變更結束
disable_path
路徑在第一次發生指令逾時時失敗,並假設它不是路徑群組中的最後一個路徑。如果因傳輸問題而導致失敗的路徑回復了,則必須等到在該路徑上沒有發生任何失敗的期間到期之後,才會使用該路徑進行讀取或寫入 I/O。如果此路徑在某段期間內繼續發生多次指令逾時,則可能會停用此路徑。在您執行下列其中一個動作之前,已停用的路徑會保留停用狀態(而且無法使用):執行 chpath 指令以啟用已停用的路徑、重新配置受影響的磁碟,或重新啟動系統。