第2章 永続的な命名属性
ストレージデバイスを識別および管理する方法により、システムの安定性と予測可能性が確保されます。RHEL 10 では、この目的のために、従来のデバイス名と永続的な命名属性という 2 つの主要な命名スキームを使用します。
従来のデバイス名
Linux カーネルは、システム内でのデバイスの表示順序または列挙に基づいて、従来のデバイス名を割り当てます。たとえば、通常、最初の SATA ドライブには /dev/sda
というラベルが付けられ、2 番目の SATA ドライブには /dev/sdb
というラベルが付けられます。これらの名前はわかりやすいですが、デバイスが追加または削除されたり、ハードウェア設定が変更されたり、システムが再起動されたりすると、変更される可能性があります。これにより、スクリプトと設定ファイルに問題が生じる可能性があります。さらに、従来の名前には、デバイスの目的や特性の説明的な情報が欠けています。
永続的な命名属性
永続的な命名属性 (PNA) は、ストレージデバイスの固有の特性に基づいているため、システムに対して提示された際に、システムの再起動後もより安定して予測可能な名前付けが可能になります。PNA の主な利点の 1 つは、ハードウェア設定の変更に対する回復力であり、一貫した命名規則を維持するのに最適であることです。PNA を使用すると、予期しない名前の変更を心配することなく、スクリプト、設定ファイル、管理ツール内でストレージデバイスを参照できます。さらに、PNA には、ベンダー、モデル名、シリアル番号の組み合わせなどのデバイスタイプや製造元情報などの貴重なメタデータが含まれることが多く、効果的なデバイス識別と管理のための記述性が向上します。PNA は最終的に、個々のデバイスにアクセスするために /dev/disk
ディレクトリーにデバイスリンクを作成するために使用されます。デバイスリンク名の構築および管理方法は、udev
ルールによって決まります。
以下は /dev/disk/
にあるディレクトリーのリストです。
システムの再起動後もコンテンツが一意のままであるディレクトリー:
-
by-id
:vendor/model/serial_string
組み合わせを使用したハードウェア属性に基づきます。 -
by-path
*: 物理的なハードウェアの配置に基づきます。マシンに物理的に接続されているデバイスまたはディスクの場合、これはマザーボード上のホストバスに物理的に接続されているスロットまたはポートです。ただし、ネットワーク経由で接続されたデバイスまたはディスクの場合、これにはネットワークアドレスの指定が含まれます。 -
by-partlabel
: デバイスパーティションに割り当てられたラベルに基づきます。これらのラベルはユーザーによって割り当てられます。 -
by-partuuid
: 自動生成されるUUID
形式の一意の番号に基づきます。 -
by-uuid
: 自動生成される UUID 形式の一意の番号に基づきます。
-
現在のシステム実行中は一意のままであるが、システムの再起動後は一意ではなくなるコンテンツを含むディレクトリー:
-
by-diskseq
:diskseq
は、システムの起動時に 1 から始まる 'disk sequence number' 番号です。この番号は新しく接続されたディスクに割り当てられ、その後の各ディスクには順番に次の番号が割り当てられます。システムを再起動すると、カウンターは 1 から再開されます。
-
ループデバイス専用に使用されるコンテンツを含むディレクトリー:
-
by-loop-ref
-
by-loop-inode
-
2.1. ファイルシステムとブロックデバイスを識別するための永続属性 リンクのコピーリンクがクリップボードにコピーされました!
RHEL 10 のストレージでは、永続的な命名属性 (PNA) は、システムの再起動、ハードウェアの変更、またはその他のイベント全体にわたってストレージデバイスに一貫した信頼性の高い命名を提供するメカニズムです。これらの属性は、ストレージデバイスが追加、削除、または再設定された場合でも、一貫してストレージデバイスを識別するために使用されます。
PNA はファイルシステムとブロックデバイスの両方を識別するために使用されますが、目的は異なります。
- ファイルシステムを識別するための永続属性
ユニバーサル一意識別子 (UUID)
UUID は主に、ストレージデバイス上のファイルシステムを一意に識別するために使用されます。各ファイルシステムインスタンスには独自の UUID が自動的に割り当てられ、ファイルシステムがアンマウントや再マウントされたり、デバイスが切断されて再接続されたりしても、この識別子は一定のままです。
ラベル
ラベルは、ユーザーがファイルシステムに割り当てた名前です。これらはファイルシステムの識別と参照に使用できますが、UUID ほど標準化されていません。ファイルシステムラベルはユーザーが割り当てるため、その一意性はユーザーの選択によって決まります。ラベルは、設定ファイルでファイルシステムを指定するための UUID の代替としてよく使用されます。
ファイルシステムにラベルを割り当てると、そのラベルはファイルシステムのメタデータの一部になります。このラベルは、ファイルシステムがアンマウントや再マウントされたり、デバイスが切断されて再接続されたりしても、ファイルシステムに関連付けられたままになります。
- ブロックデバイスを識別するための永続属性
ユニバーサル一意識別子 (UUID)
UUID を使用してストレージブロックデバイスを識別できます。ストレージデバイスがフォーマットされると、多くの場合、デバイス自体に UUID が割り当てられます。このような UUID は通常、実際のデバイスが最下位レベルにある他のブロックデバイスの上に階層化された仮想ブロックデバイスに生成され、割り当てられます。たとえば、device-mapper (DM) ベースのデバイスと、論理ボリュームマネージャー (LVM) や暗号化などの関連サブシステムは、論理ボリューム UUID (LVUUID) や暗号化 UUID などの UUID を使用してデバイスを識別します。
また、multiple-device (MD) ベースのデバイスには UUID が割り当てられています。仮想デバイスは通常、基盤となるデバイスをコンポーネント UUID でマークします。たとえば、LVM は基盤となるデバイスを物理ボリューム UUID (PVUUID) でマークし、MD は基盤となるデバイスを MD コンポーネント UUID でマークします。
これらの UUID は仮想ブロックデバイスのメタデータ内に埋め込まれ、永続的な命名属性として使用されます。これにより、ブロックデバイス上に存在するファイルシステムを変更した場合でも、ブロックデバイスを一意に識別できるようになります。UUID はデバイスパーティションにも割り当てられます。
このような UUID は他のデバイス ID と共存できます。たとえば、デバイススタックの下部にある sda デバイスは、
vendor/model/serial_number
の組み合わせまたは WWID によって識別されますが、LVM によって割り当てられた PVUUID を持つこともできます。これは LVM 自体によって認識され、その上の層にボリュームグループ (VG) または論理ボリューム (LV) が構築されます。- ラベル、名前ラベル、または名前は、特定のブロックデバイスにも割り当てることができます。これは、ユーザーがラベルを割り当てることができるパーティションに適用されます。device-mapper (DM) ベースのデバイスや multiple-device (MD) ベースのデバイスなど、一部の仮想ブロックデバイスも、デバイスを識別するために名前を使用します。
World Wide Identifier (WWID)
WWID は、グローバルに一意であり、一般的にストレージブロックデバイスまたはストレージコンポーネントに関連付けられている識別子のファミリーを包含します。これらは、ファイバーチャネル (FC) などのエンタープライズレベルの Storage Area Network (SAN) で、ストレージノード (World Wide Node Name (WWNN)) またはノード上のストレージデバイスへの実際のポート/接続 (World Wide Port Name (WWPN)) を識別するためによく使用されます。WWID は、サーバーと SAN ストレージデバイス間の一貫した通信を実現し、ストレージデバイスへの冗長パスの管理に役立ちます。
NVME デバイスなど、他の種類のデバイスでも WWID の形式が使用される場合があります。これらのデバイスは、必ずしもネットワークまたは SAN 経由でアクセスする必要はなく、エンタープライズレベルのデバイスである必要もありません。
WWID 形式は単一の標準に従っていません。たとえば、SCSI では NAA、T10、EUI などの形式が使用されます。NVME は、EUI-64、NGUUID、UUID などの形式を使用します。
serial 文字列
serial 文字列は、製造元によって各ストレージブロックデバイスに割り当てられた一意の文字列識別子です。これはストレージデバイスを区別するために使用できます。また、デバイス管理のために UUID や WWID などの他の属性と組み合わせて使用することもできます。
udev rules
内、つまり/dev/disk/by-id
コンテンツ内では、'short serial string' は通常、デバイス自体によって報告される実際の serial 文字列を表します。一方、'serial string' は複数のコンポーネントで構成され、通常は<bus_type>-<vendor_name>_<model_name>_<short_serial_string>
となります。実際のデバイスには WWID と serial 文字列が推奨されます。仮想デバイスの場合、UUID または名前が推奨されます。