Red Hat Training

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

25.8.3. /dev/disk/by-*の udev メカニズムにより管理されるデバイス名

udev メカニズムは、以下の 3 つの主要コンポーネントで構成されています。
カーネル
デバイスの追加、削除、または変更時にユーザー空間に送信されるイベントを生成します。
udevd サービス
イベントを受信します。
udev ルール
udev サービスがカーネルイベントを受信するときに実行するアクションを指定します。
このメカニズムは、ストレージデバイスだけでなく、Linux のすべてのタイプのデバイスに使用されます。ストレージデバイスの場合、Red Hat Enterprise Linux には、/dev/disk/ ディレクトリーにシンボリックリンクを作成する udev ルールが含まれています。ストレージデバイスは、コンテンツ、一意の ID、シリアル番号、デバイスへのアクセスに使用されるハードウェアパスで参照できます。
/dev/disk/by-label/
このディレクトリーのエントリーは、デバイスに格納されているコンテンツ(つまりデータ)内のラベルによりストレージデバイスを参照するシンボリック名を提供します。blkid ユーティリティーは、デバイスからデータを読み込み、そのデバイスの名前(ラベル)を決定するために使用されます。以下に例を示します。
/dev/disk/by-label/Boot
注記
情報はデバイスのコンテンツ(つまりデータ)から取得されるので、コンテンツが別のデバイスにコピーされた場合、ラベルは同じままになります。
以下の構文を使用して、ラベルを使用して /etc/fstab 内のデバイスを参照することもできます。
LABEL=Boot
/dev/disk/by-uuid/
このディレクトリーのエントリーは、デバイスに格納されているコンテンツ(つまりデータ)内の一意の識別子でストレージデバイスを参照するシンボリック名を提供します。blkid ユーティリティーは、デバイスからデータを読み込み、デバイスの一意の識別子(つまり UUID)を取得するために使用されます。以下に例を示します。
UUID=3e6be9de-8139-11d1-9106-a43f08d823a6
/dev/disk/by-id/
このディレクトリーのエントリーは、一意の ID(その他のすべてのストレージデバイスとは異なる)でストレージデバイスを参照するシンボリック名を提供します。識別子はデバイスのプロパティですが、デバイスのコンテンツ(つまりデータ)に保存されません。以下に例を示します。
/dev/disk/by-id/scsi-3600508e000000000ce506dc50ab0ad05
/dev/disk/by-id/wwn-0x600508e000000000ce506dc50ab0ad05
id は、デバイスの World-wide ID またはデバイスのシリアル番号から取得されます。/dev/disk/by-id/ エントリーには、パーティション番号が含まれる場合があります。以下に例を示します。
/dev/disk/by-id/scsi-3600508e000000000ce506dc50ab0ad05-part1
/dev/disk/by-id/wwn-0x600508e000000000ce506dc50ab0ad05-part1
/dev/disk/by-path/
このディレクトリーのエントリーは、デバイスへのアクセスに使用するハードウェアパスによってストレージデバイスを参照するシンボリック名を提供し、PCI 階層内のストレージコントローラーへの参照(SCSI ホスト、チャンネル、ターゲット、LUN 番号など)を開始します。これらの名前は、メジャー番号およびマイナー番号または sd 名を使用することが推奨されますが、ターゲット番号がファイバーチャネル SAN 環境で変更されないようにする(永続バインディングなど)、ホストアダプターが別の PCI スロットに移動すると、名前の使用を更新する必要があります。さらに、SCSI ホスト番号は、HBA がプローブに失敗した場合、ドライバーが別の順序で読み込まれる場合や、新しい HBA がシステムにインストールされている場合に変更される可能性があります。by-path リストの例は次のとおりです。
/dev/disk/by-path/pci-0000:03:00.0-scsi-0:1:0:0
/dev/disk/by-path/ エントリーには、以下のようなパーティション番号が含まれる場合があります。
/dev/disk/by-path/pci-0000:03:00.0-scsi-0:1:0:0-part1

25.8.3.1. udev デバイスの命名規則の制限

udev 命名規則の制約の一部は次のとおりです。
  • udev イベントに対して udev ルールが処理されるときに、udev メカニズムはストレージデバイスをクエリーする機能に依存する可能性があるため、クエリーの実行時にデバイスにアクセスできない可能性があります。これは、ファイバーチャネル、iSCSI、または FCoE ストレージデバイスといった、デバイスがサーバーシャーシにない場合に発生する可能性が高くなります。
  • カーネルは udev イベントをいつでも送信し、デバイスにアクセスできない場合に /dev/disk/by-*/ リンクが削除される可能性があります。
  • udev イベントの生成時と処理時に遅延が生じる場合があります。たとえば、多数のデバイスが検出され、ユーザー空間の udev サービスが それぞれのルールを処理するのに時間がかかる場合があります。これにより、カーネルがデバイスを検出してから、/dev/disk/by-*/ の名前が利用できるようになるまでに遅延が生じる可能性があります。
  • ルールに呼び出される blkid などの外部プログラムによってデバイスが短期間開き、他の用途でデバイスにアクセスできなくなる可能性があります。