Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
4.3. 配置檔案的預設值
/etc/multipath.conf 配置檔案包括 defaults(預設值)一節,可以將 user_friendly_names 設為 yes,語法如下。
defaults {
user_friendly_names yes
}
這會覆蓋
user_friendly_names 參數的預設值。
這配置檔案包括了所有預設設定的範本。這一部份如下所示,已被設為註解。
#defaults {
# polling_interval 10
# path_selector "round-robin 0"
# path_grouping_policy multibus
# uid_attribute ID_SERIAL
# prio alua
# path_checker readsector0
# rr_min_io 100
# max_fds 8192
# rr_weight priorities
# failback immediate
# no_path_retry fail
# user_friendly_names yes
#}
若要覆蓋任何參數的預設值,您可將此範本裡的相關資訊複製至
defaults 一節裡,並拿掉註解符號。舉例來說,要覆蓋 path_grouping_policy 的原有參數 multibus,使其成為 failover,請將範本中相對應的部份複製至配置檔案的 defaults 一節裡,拿掉註解符號,如同以下顯示:
defaults {
user_friendly_names yes
path_grouping_policy multibus
}
表格 4.1, “Multipath 配置預設值” 描述了
multipath.conf 配置檔案中,defaults 一節裡所設定的屬性。DM Multipath 會使用這些值,除非它們被 multipath.conf 檔案中的 devices 與 multipaths 兩節裡所指定的屬性覆蓋過去。
表格 4.1. Multipath 配置預設值
| 屬性 | 描述 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
polling_interval | 以秒為單位指定兩條路徑之間的檢查時間間隔。對於正確運作的路徑來說,檢查程序之間的時間間隔會逐漸增加(4 * polling_interval)。預設值為 5。 | |||||||||
multipath_dir | 存放動態共享物件的目錄。預設值根據系統而定,一般為 /lib/multipath。 | |||||||||
find_multipaths |
| |||||||||
verbosity | 預設資料詳細等級。愈大的值便會增加資料詳細度的等級。有效的等級範圍為 0 到 6 之間。預設值為 2。 | |||||||||
path_selector |
| |||||||||
path_grouping_policy |
| |||||||||
prio |
| |||||||||
features |
| |||||||||
path_checker |
| |||||||||
failback |
| |||||||||
rr_min_io | 指定欲路由轉送至某路徑的 I/O 請求數量(在切換至目前路徑群組中的下個路徑之前)。這項設定僅適用於執行比 2.6.31 還要舊的 kernel 的系統上。較新的系統應使用 rr_min_io_rq。預設值為 1000。 | |||||||||
rr_min_io_rq | 使用基於請求的 device-mapper-multipath 來指定欲路由轉送至某路徑的 I/O 請求數量(在切換至目前路徑群組中的下個路徑之前)。這項設定應使用於執行最新 kernel 的系統上。在執行比 2.6.31 還要舊的 kernel 的系統上,請使用 rr_min_io,預設值為 1。 | |||||||||
rr_weight | 如果設為 priorities,那麼與其在調用 path_selector 以選擇下個路徑之前發送 rr_min_io 請求至某個路徑,這項請求數量會相當於 rr_min_io 乘以路徑的優先順序;這乃透過 prio 功能所決定。若設為 uniform,所有的路徑皆會擁有相等的權重。預設值為 uniform。 | |||||||||
no_path_retry |
| |||||||||
user_friendly_names | 如果設為 yes,這表示系統應該使用 /etc/multipath/bindings 檔案來指定一個永續性且獨一無二的別名給 multipath 使用,格式為 mpathn。若設為 no,則表示系統應使用 WWID 來作為 multipath 的別名。無論是何種情況,在此所進行的設定,會被您在配置檔案的 multipaths 部份中,所指定的任何裝置特屬別名取代。預設值為 no。 | |||||||||
queue_without_daemon | 若設為了 no,當 multipathd daemon 關閉時,它將會停用所有裝置的排程。預設值為 no。 | |||||||||
flush_on_last_del | 若設為 yes,當連上裝置的最後一條路徑被刪除時,multipathd daemon 便會停用佇列功能。預設值為 no。 | |||||||||
max_fds | 設置 multipath 以及 multipathd daemon 所能開啟的最大數量 open file descriptor。這與 ulimit -n 指令相等。由 RHEL 6.3 發行版起,預設值乃 max,並透過 /proc/sys/fs/nr_open 來將系統設為最大值。在較早的發行版中,若未進行這項設置,open file descriptor 的最大值將會由調用程序取得;一般乃 1024。若該數量大於 1024,為安全起見,應設為路徑的最大值加 32。 | |||||||||
checker_timeout | 使優先權設定程式與路徑檢查程式發出 SCSI 指令和明確逾時(秒)的逾時功能。預設值乃透過 sys/block/sdx/device/timeout 取得。 | |||||||||
fast_io_fail_tmo | 當在一個 FC 遠端連接埠上偵測到錯誤時,SCSI 層在傳輸失效 I/O 給該遠端連接埠上的裝置之前,所等待的秒數。此數值應比 dev_loss_tmo 的值還要小。若將此設為 off 將會停用逾時功能。預設值是由 OS 所決定的。 | |||||||||
dev_loss_tmo | 當在一個 FC 遠端連接埠上偵測到錯誤時,SCSI 層將該連接埠由系統移除之前,所等待的秒數。將此設為無限制,會將其設為 2147483647 秒,或 68 年。預設值乃透過 OS 所決定的。 | |||||||||
hwtable_string_match |
| |||||||||
retain_attached_hw_handler | 如果此參數設為 yes,並且 SCSI 層已經設為路徑裝置的硬體處理程式,那麼 multipath 不會強迫裝置使用 multipath.conf 檔案所指定的 hardware_handler。如果 SCSI 層並未連結硬體處理程式,multipath 會繼續如常使用其配置的硬體處理程式。預設值為 no。 | |||||||||
detect_prio | 若設為 yes,multipath 會先檢查裝置是否支援 ALUA,如果支援的話,multipath 會自動指定裝置為 alua 優先程式。如果裝置不支援 ALUA,multipath 會如常決定優先程式。預設值為 no。 | |||||||||
reload_readwrite | 若設為 yes,multipathd daemon 會監聽路徑裝置的變更事件,如果裝置變成可讀寫,就會重新載入 multipath 裝置。 | |||||||||
uid_attribute | 提供一項獨特的路徑識別子。預設值為 ID_SERIAL。 | |||||||||
force_sync | (適用 RHEL 7.1 或以上)如果設為 yes,這會避免路徑檢查程式在非同步模式下執行。 | |||||||||
delay_watch_checks | (Red Hat Enterprise Linux Release 7.2 與更新版本)若設為了大於零的值,multipathd daemon 將會以指定的檢查次數來監視近期成為有效的路徑。若這些路徑在被監視時再度失效,當它們下次成為有效時,在通過連續的檢測(透過 delay_wait_checks 指定)前,都不會再被使用。這能避免信賴度低的路徑在重新啟用後被即刻使用。預設值為 no。 | |||||||||
delay_wait_checks | (Red Hat Enterprise Linux 發行版 7.2 與更新版本)若設為一個大於 0 的值,當一個近期重新啟用的裝置在指定次數的檢測(透過 delay_watch_checks 指定)進行中再次失效時,下次它再重新啟用時便會被標記和延緩,並且在它通過了 delay_wait_checks 中所指定得檢測次數之前,它將不會被使用。預設值為 no。 | |||||||||
ignore_new_boot_devs | (Red Hat Enterprise Linux 發行版 7.2 與更新版本)若設為了 yes,當節點早期開機時依然在 initramfs 檔案系統中的時候,multipath 不會建立任何 WWID 不存在 /etc/multipath/wwids 的 initramfs copy 中的裝置。這項功能可用來在安裝時進行啟動,否則 multipath 將會試圖在當時透過 udev 規則顯示、但未宣告的裝置上自行進行設置。這項參數可設為 yes 或 no。若未設置的話,預設值將會是 no。 | |||||||||
retrigger_tries、retrigger_delay | (Red Hat Enterprise Linux 發行版 7.2 與更新版本)若 udev 無法完整處理原始的 uevent 而使得 multipath 無法使用裝置,retrigger_tries 和 retrigger_delay 參數會被結合使用來令 multipathd 重新啟動這些 uevent。若裝置未完整設定,retrigger_tries 參數可被用來設置 multipath 嘗試重新啟動一項 uevent 的次數。retrigger_delay 參數則用來設置重新嘗試之間的間隔(秒)。這兩項選項皆接受大於或等於零的數字。將 retrigger_tries 參數設為零會停用重新嘗試。將 retrigger_delay 參數設為零會使 uevent 在下個路徑檢查的循環中重新發送。若未設置 retrigger_tries 參數,它將會被預設為 3。若未設置 retrigger_delay 參數,它則會被預設為 10。 | |||||||||
new_bindings_in_boot | (Red Hat Enterprise Linux 發行版 7.2 與更新版本)new_bindings_in_boot 這個參數主要用來防止 multipath 在 initramfs 檔案系統中提供一組 user_friendly_name(早已由正規檔案系統中的綁定檔案所提供),這會產生問題因為 initramfs 檔案系統中的 user_friendly_names 綁定僅會在 initramfs 檔案系統重新建立時,才會與正規檔案系統中的綁定同步。當此參數設為 no 時,multipath 將不會在 initramfs 檔案系統中建立新的綁定。若一項裝置在 /etc/multipath/bindings 的 initramfs 副本中不存在綁定,multipath 將會使用其 WWID 作為別名,而非提供一組 user_friendly_name。在啟動程序後續進行時,當節點掛載了正規檔案系統後,multipath 便會提供一組 user_friendly_name 給裝置。此參數能設為 yes 或 no。若未設置的話,預設值將會是 no。 | |||||||||
deferred_remove | 若設為 yes,當最後的路徑裝置被移除後,multipathd 將會進行一項延期的移除,而非正常的移除程序。這可確保當進行正常移除時,若有 multipath 裝置正被使用中而移除程序失敗的情況下,裝置將會在最後一個使用者關閉裝置時被自動移除。預設值為 no。 | |||||||||
log_checker_err | 若設為 once,multipathd 便會以等級 2 的詳細程度紀錄第一項路徑檢查程式錯誤。之後所有的錯誤皆會以等級 3 的詳細程度紀錄,直到裝置復原。若設為 always,multipathd 總是會以等級 2 的詳細程度紀錄路徑檢查程式錯誤。預設值為 always。 |