Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.2. 配置檔案的黑名單

multipath 配置檔案的 blacklist(黑名單)一節詳述了當系統配置 multipath 裝置時,不會被使用的裝置。在此清單中的裝置將不會被納入 multipath 裝置的群組中。
在較舊的 RHEL 發行版中,multipath 總是會試圖為每個未明確納入黑名單中的路徑,建立 multipath 裝置。然而從 RHEL 6 起,若 find_multipaths 配置參數設為了 yes,multipath 僅會在滿足了下列三項條件之一的情況下建立裝置:
  • 至少兩個擁有相同 WWID、未納入黑名單的路徑。
  • 使用者透過 multipath 指令來指定裝置,以手動式強制建立裝置。
  • 一個含有與先前建立之 multipath 裝置相同 WWID 的路徑(儘管該 multipath 裝置目前已不存在)。每當某個 multipath 裝置被建立時,multipath 會記得裝置的 WWID,如此一來當它看見含有該 WWID 的路徑時,它便會自動地再次建立裝置。這能讓 multipath 自動選擇正確的路徑,在無須編輯 multipath 黑名單的情況下,製成 multipath 裝置。
    若您先前在未使用 find_multipaths 參數的情況下建立 multipath 裝置,而之後將參數設為 yes 的話,您可能需要由 /etc/multipath/wwids 檔案中,移除任何您不希望將其建立為 multipath 裝置的裝置 WWID。以下顯示了範例 /etc/multipath/wwids 檔案。WWID 包含在斜線符號之間(/):
    # Multipath wwids, Version : 1.0
    # NOTE: This file is automatically maintained by multipath and multipathd.
    # You should not need to edit this file in normal circumstances.
    #
    # Valid WWIDs:
    /3600d0230000000000e13955cc3757802/
    /3600d0230000000000e13955cc3757801/
    /3600d0230000000000e13955cc3757800/
    /3600d02300069c9ce09d41c31f29d4c00/
    /SWINSYS  SF2372         0E13955CC3757802/
    /3600d0230000000000e13955cc3757803/
find_multipaths 參數設為 yes,您只需要將含有多重路徑,而您不希望 multipath 這些路徑的裝置納入黑名單中。因為如此,一般來講您無須將裝置納入黑名單中。
若您需要將裝置納入黑名單中,您可根據下列條件進行:
就預設值,即使您將配置檔案中的黑名單一節標記為註解,各種裝置類型依然還是會位於黑名單中。欲取得更詳盡的資訊,請參閱〈節 4.2.2, “根據裝置名稱來建立黑名單”〉。

4.2.1. 根據 WWID 建立黑名單

您可以根據裝置的 WWID(World-Wide IDentification)將裝置放入黑名單中,方法是在配置檔案的 blacklist(黑名單)一節裡放入 wwid 這個項目。
以下範例顯示配置檔案如何將 WWID 為 26353900f02796769 的裝置加入黑名單中。
blacklist {
       wwid 26353900f02796769
}

4.2.2. 根據裝置名稱來建立黑名單

您可根據裝置名稱將裝置類型納入黑名單中,如此一來這些裝置便不會被併入 multipath 裝置的群組中,方法是在配置檔案的 blacklist 一節中,指定 devnode 項目。
下列範例顯示了在配置檔案中,所有 SCSI 裝置皆納入了黑名單中,因為它將所有 sd* 裝置納入了黑名單中。
blacklist {
       devnode "^sd[a-z]"
}
您可以在配置檔案的 blacklist 一節中,使用 devnode 項目來指定各別的裝置以納入黑名單中,而非納入屬於特定類型的所有裝置。然而我們並不建議這麼作。除非某個裝置是以 udev 規則靜態對映,否則系統無法保證重新開機後,該裝置能保有原來的名稱。舉例來說,重新開機後,某個裝置可能會從 /dev/sda 變為 /dev/sdb
就預設值,以下 devnode 項目會被編譯入預設的黑名單中;在黑名單中的裝置一般不支援 DM Multipath。若要啟用這些裝置的 multipath 功能,您需要將它們指定於配置檔案的 blacklist_exceptions 部份中,如〈節 4.2.4, “黑名單的例外”〉中所述。
blacklist {
       devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
       devnode "^(td|ha)d[a-z]"
}

4.2.3. 根據裝置類型來建立黑名單

您可在配置檔案中的 blacklistdevice 部分中,指定特定裝置類型。下列範例將所有 IBM DS4200 和 HP 裝置納入了黑名單。
blacklist {
       device {
               vendor  "IBM"
               product "3S42"       #DS4200 Product 10
       }
       device {
               vendor  "HP"
               product "*"
       }
}

4.2.4. 黑名單的例外

您可透過使用配置檔案的 blacklist_exceptions 部份,將那些就預設值被納入黑名單中的裝置的 multipath 功能啟用。
比方說,若您擁有大量裝置並且僅希望 multipath 其中之一(其 WWID 為 3600d0230000000000e13955cc3757803),與其各別將除了您所希望 multipath 的裝置之外的所有裝置納入黑名單中,您可將所有裝置納入黑名單中,並透過在 /etc/multipath.conf 檔案中附加下列行列,以允許您所希望 multipath 的裝置。
blacklist {
        wwid "*"
}

blacklist_exceptions {
        wwid "3600d0230000000000e13955cc3757803"
}
在指定配置檔案中 blacklist_exceptions 一節裡的裝置時,您必須用處理黑名單的同樣方式,將其指定至此。舉例來說,WWID 的例外並不會套用至 devnode 黑名單項目中的裝置上,即使這黑名單上的裝置與這組 WWID 有所關聯亦然。同樣,devnode 的例外也僅套用於 devnode 項目上,而 device 的例外也僅會套用於裝置項目上。