多路徑multipath配置文件詳解


  默認情況下,multipath已經支持大部分常見的存儲型號(可見multipath.conf.defaults),但不同的multipath版本可能都有些不同。這時,建議參考存儲的官方文檔,但有時候,同一台機器上如果連接了一個以上的存儲時,可能默認規則並不完全適用。這時我們可以給特定的存儲定制多路徑符合的策略。

  配置文件的模板默認位於/usr/share/doc/device-mapper-multipath-x.x.x/multipath.conf(x為multipath的實際版本號),配置multipath配置文件時,可以將該文件復制於/etc/multipath.conf,然后,在進行定制配置。

配置Linux (suse and redhat;redhat7以上不適用,詳見下一篇)

vi /etc/multipath.conf
 
         
defaults {
        user_friendly_names yes
        polling_interval  30 } devices { device { vendor "NETAPP" product "LUN.*" path_grouping_policy "group_by_prio" path_checker "tur" features "3 queue_if_no_path pg_init_retries 50" hardware_handler "1 alua" prio "alua" failback "immediate" rr_weight "uniform" rr_min_io 128 dev_loss_tmo "infinity" retain_attached_hw_handler "yes" detect_prio "yes" path_selector "round-robin 0" no_path_retry 18 } } blacklist { device { vendor ".*" } } blacklist_exceptions { device { vendor "^NETAPP" } }

 

一、配置文件字段

  1)defaults:全局屬性的默認設置。

  2)multipaths:多路徑相關配置

  3)devices:存儲設備相關配置。

  4)blacklist:黑名單,multipath會忽略黑名單中的設備。

  5)blacklist_exceptions:免除黑名單,加入黑名單內,但包含在這里的設備不會被忽略,是多路徑管理的設備列表。

 

 

二、配置文件字段詳細

 1、defaults可用屬性

  1)polling_interval:路徑檢查的時間間隔,單位秒(s)。

  2)max_polling_interval:路徑檢查的最大時間間隔,默認為polling_interval的4倍,單位秒(s)。

  3)multipath_dir:多路徑共享庫的路徑,具體與系統相關,默認為/lib/multipath或/lib64/multipath。

  4)find_multipaths:默認值no,這將為黑名單外的所有設備創建多路徑設備。如置為yes,則將為3種場景創建多路徑設備:

  不在黑名單的兩個路徑的wwid相同;用戶手動強制創建;一個路徑的wwid與之前已經創建的多路徑設備相同。

  5)verbosity:信息輸出等級,最低為0,最高為6,默認為2。

  6)path_selector:路徑選擇算法,其中,“round-robin 0”表示在多個路徑間不斷循環;“queue-length 0”表示選擇當前處理IO數最少的路徑;

  “service-time 0”表示選擇IO服務時間最短的路徑。

  7)path_grouping_policy:路徑分組策略,其中,“failover” 表示一條路徑一個組(默認值);“multibus”表示所有路徑在一個組;

  “group_by_serial”表示根據序列號分組;“group_by_prio”表示根據優先級分組;“group_by_node_name”表示根據名字分組。

  8)uid_attribute:用udev的哪個屬性唯一標識一個設備,默認值為ID_SERIAL。

  9)prio:路徑優先級獲取方法,其中,“const”返回1(默認值);“emc”為emc盤陣生成優先級;“alua”基於SCSI-3 ALUA配置生成優先級;

  “ontap”為NetAPP盤陣生成優先級;“rdac”為LSI/Engenio/NetApp E-Series RDAC控制器生成優先級;“hp_sw”根據Compaq/HP控制器

  active/standby模式生成優先級;

  “hds”為日立HDS模塊化陣列生成優先級;“random”隨機生成優先級,其值在1到10間;“weightedpath”根據正則表達式及prio_args

  參數值生成優先級。

  10)prio_args:計算優先級函數的參數。

  11)features:指定使用Device Mapper的特性,其中,“queue_if_no_path”表示沒有可用路徑時,將請求加入隊列;“no_partitions”表示禁止

  使用kpartx生成分區。

  12)path_checker:路徑檢查方法,其中,“readsector0”表示通過讀取設備的第一扇區來決定路徑狀態,已廢棄,用directio替代;“tur”表示

  運行“TEST UNIT READY”命令來決定路徑狀態;“emc_clariion”表示執行“EMC Clariion specific EVPD page 0xC0”來決定路徑的狀態;

  “hp_sw”表示檢查惠普Active/Standby盤陣;

  “rdac”表示檢查“LSI/Engenio/NetApp E-Series RDAC”存儲控制器的狀態;“direction”表示用DirectIO讀取設備的第一個扇區。

  13)failback:恢復路徑的方法,其中,“Immediate”表示立即恢復到包含活動路徑的高優先級路徑組;“manual”表示手動恢復(默認值);

  “followover”表示只有路徑組的第一條路徑可用時才恢復;“values>0”表示延遲恢復。

  14)rr_min_io:切換到當前路徑組中下一條路徑前進行的IO數,僅用於2.6.31的核心版本號,默認值為1000。

  15)rr_min_io_rq:切換到當前路徑組中下一條路徑前進行IO數,僅用於2.6.31及以后的核心版本號,默認值為1。

  16)no_path_retry:禁用隊列前系統重試的次數,“fail”表示直接返回錯誤,“queue”表示全部加入隊列,默認值為0。

  17)user_friendly_names:如為yes,則用/etc/multipath/bindings中的設置命名;如為no,則使用wwid命名(可被multipaths中的設置覆蓋),

  默認值為no。

  18)max_fds:multipathd和multipath可打開的最大文件描述符數。

  19)checker_timeout:路徑檢查的超時時間,單位秒(s),默認值為/sys/block/sd<x>/device/timeout值。

  20)fast_io_fail_tmo:SCSI IO錯誤超時,應比dev_loss_tmo小,為off則禁用超時。

  21)dev_loss_tmo:SCSI設備移除超時,Linux下的默認為為300,單位秒(s)。

  22)queue_without_daemon:如置為no,如multipathd沒啟動,則禁止所有設備的IO加入隊列。

  23)bindings_file:設置了user_friendly_names時,名稱綁定文件的路徑,默認值為/etc/multipath/bindings。

  24)wwids_file:wwids跟蹤文件路徑,默認為/etc/multipath/wwids。

  25)log_checker_err:路徑檢查出錯時的日志記錄方式,默認為always。

  26)reservation_key:為mpathpersist命令指定的key。

  27)retain_attached_hw_handler:是否繼續使用hardware_handler,默認為no。

  28)detect_prio:如置為yes,則首先嘗試使用alua檢測,默認為no。

  29)hw_str_match:如置為yes,則優先使用字符串匹配名稱、廠商等信息,默認為no。

  30)force_sync:如置為yes,則強制使用同步模式檢查路徑,默認為no。

  31)deferred_remove:如置為yes,則延遲刪除沒有路徑的設備,默認為no。

  32)config_dir:指定配置文件的目錄,如不為“”,則按照字母排序搜索目錄中的*.conf文件,像使用/etc/multipath.conf一樣對其進行讀取,

  默認為/etc/multipath/conf.d。

  33)delay_watch_checks:如大於0,則只有連續delay_watch_checks檢查路徑有效時,才認為有效,默認為no。

  34)delay_wait_checks: 如大於0,經過delay_watch_check檢查有效后,延遲delay_wait_checks次檢查后,才正式重新啟用,默認為no。

  35)missing_uev_msg_delay:當一個新的設備被創建后,在延遲missing_uev_msg_delay秒后開始接受udev信息,默認值是30。

2、multipaths配置,multipaths單獨配置單條路徑,每條路徑單獨使用multipath子節,其可包含如下屬性:

  1)wwid:路徑WWID(必選),可用命令/lib/udev/scsi_id -g -u /dev/sdX獲取。

  2)alias:設備別名。

  3)path_grouping_policy

  4)path_selector

  5)prio

  6)prio_args

  7)failback

  8)rr_weight

  9)flush_on_last_del

  10)no_path_retry

  11)rr_min_io

  12)rr_min_io_q

  13)features

  14)reservation_key

  15)deferred_remove

  16)delay_watch_checks

  17)delay_wait_checks

 

3、devices配置,devices節中每個device子節用於描述一個設備,其主要屬性如下:

  1)vendor:生產商(必選)。

  2)product:產品型號。

  3)revision:版本號。

  4)product_blacklist:產品型號黑名單。

  5)alias_prefix:設備名稱前綴,默認為mapth。

  6)hardware_handler:硬件相關操作的型號,主要有:

  "emc":Hardware handler for EMC storage arrays.

  "rdac":Hardware handler for LSI/Engenio/NetApp E-Series RDAC storage controller.

  "hp_sw":Hardware handler for Compaq/HP storage arrays in active/standby mode.

  "alua":Hardware handler for SCSI-3 ALUA compatible arrays.

4、blacklist配置,blacklist內的設備將會被多路徑忽略,有三種格式:

  1)wwid后跟設備的WWID;

  2)devnode后跟設備名稱的正則表達式;

  3)device設備描述,為一個子節(Subsection),其需包含vendor、product,詳細可參考devices節的描述。

  blacklist_exceptions語法與blacklist相同,表示取消對blacklist中設備的忽略。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM