Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
A.3. udev Device Manager(裝置管理員)的 Device Mapper 支援
udev
裝置管理員的主要用途就是在 /dev
目錄中提供動態式的節點設定方式。這些節點的建置是以使用者空間中的 udev
應用程式規則來指定的。這些規則會直接在來自於 kernel 的 udev
事件上進行處理,以完成特定裝置的新增、移除,或變更。這為熱插拔支援提供了方便和中央化的機制。
除了建立實際的節點之外,
udev
裝置管理員亦可以自己的名稱建立符號連結。這提供使用者視需求選擇自訂化命名,以及選擇 /dev
目錄中之目錄結構的自由。
各個
udev
事件皆包含了有關於被裝置的裝置的基本資訊,例如它的名、它所屬之子系統、裝置類型、所使用的 major 與 minor 號碼,以及事件的類型。除了能存取 /sys
目錄中所找到,並且 udev
規則中亦可存取的所有資訊,使用者亦能根據這項資訊,並條件性地執行規則,利用基本的過濾器。
udev
裝置管理員還提供了中央化的節點權限設定。使用者能輕易地新增一組自訂的規則,以定義任何在處理事件時,所能使用的任何資訊所指定的裝置。
您亦可在
udev
規則中直接新增 program hook。udev
裝置管理員可調用這些程式,以提供處理事件所需的額外處理。並且,程式亦可透過這項處理來匯出環境變數。任何得到的結果,皆可使用於規則中作為補充的資訊來源。
任何使用
udev
函式庫的軟體皆能取得和處理 udev
事件,以及所有資訊,因此處理程序便不僅限於 udev
daemon。
A.3.1. udev 與裝置管理員的整合
在 RHEL 6 中,Device Mapper 提供了直接的
udev
整合支援。這可同步化 Device Mapper 以及所有與 Device Mapper 裝置相關的 udev
程序,包括 LVM 裝置。同步化是必要的,因為 udev
daemon 中的規則應用程式格式,是與裝置變更來源之程式的平行處理。(例如 dmsetup
和 LVM)。少了這項支援,將造成一項以往使用者嘗試移除一個依然開啟,並由 udev
規則所處理的裝置,而造成了先前變更事件上的問題;這特別是在裝置變更之間的時間非常短的情況下,經常發生。
RHEL 6 發行版提供了一般 Device Mapper 裝置與 LVM 的正式
udev
規則支援。〈表格 A.1, “Device-Mapper 裝置的 udev 規則”〉概述了這些規則,並且這些規則安裝在 /lib/udev/rules.d
中。
表格 A.1. Device-Mapper 裝置的 udev 規則
檔案名稱 | 描述 | ||
---|---|---|---|
10-dm.rules |
| ||
11-dm-lvm.rules |
| ||
13-dm-disk.rules | 包含了一般可套用至所有 Device Mapper 裝置的規則,並在 /dev/disk/by-id 、/dev/disk/by-uuid 以及 /dev/disk/by-uuid 目錄中建立符號連結。 | ||
95-dm-notify.rules | 包含了通知使用 libdevmapper (就如同 LVM 和 dmsetup )時的等待時間的規則。通知會在所有先前規則被套用後才會完成,以確保所有 udev 處理程序皆已完成。之後被通知的程序便會復原。 |
您可藉由
12-dm-permissions.rules
檔案來新增額外的自訂權限規則。此檔案並非安裝在 /lib/udev/rules
目錄中;它位於 /usr/share/doc/device-mapper-版本
目錄中。12-dm-permissions.rules
檔案是個範本,它包含了有關於如何根據一些相符規則,以設置權限的相關提示;此檔案包含了一些常見情況下的範例。您可編輯此檔案,並手動式地將它放置在 /etc/udev/rules.d
目錄中,如此一來當您進行更新時,這些設定皆能被保留住。
這些規則設置了所有當處理事件時,任何其它規則亦可使用的基本變數。
下列變數設置於 10-dm.rules 中:
DM_NAME
:Device Mapper 裝置名稱DM_UUID
:Device Mapper 裝置 UUIDDM_SUSPENDED
:Device Mapper 裝置的暫停狀態DM_UDEV_RULES_VSN
:udev
規則版本(這主要是用來讓所有其它規則檢查,先前所提到的變數是否透過正式的 Device Mapper 規則所設置的)
下列變數設置於
11-dm-lvm.rules
中:
DM_UUID
:Device Mapper 裝置 UUIDDM_VG_NAME
:卷冊群組名稱DM_LV_LAYER
:LVM 層名
所有的這些變數皆可使用於
12-dm-permissions.rules
檔案中,以為特定 Device Mapper 裝置定義權限,如 12-dm-permissions.rules
檔案中所記載。