LVMについて読み取る際に、デバイスノードが言及された。それが何であるか、何をしているのかに関する有用な情報が見つかりません。どこを見るべきかについての助けやアドバイスをいただきありがとうございます。
答え1
デフォルトでは、LVM構造が作成されたときに作成されます/dev/VGname/LVname
。/dev/mapper/
ノードの下にあるので、デバイスノードと呼ばれます/dev
。
その場合、問題はなぜ/dev
ノードがそこにあるのかということです。簡単な答えは、fstab
ファイルなどでデバイスを簡単に指定できるように設計されていることです。
システムはudev
このノードを作成する役割を担います。システムにノードを作成させるいくつかの理由は次のとおりです。
udevデバイスマネージャの主な目的は、/ devディレクトリにノードを設定する動的な方法を提供することです。これらのノードの作成は、ユーザー空間でudevルールを適用することによって行われます。これらのルールは、特定のデバイスを追加、削除、または変更した結果として、カーネルから直接送信されたudevイベントを処理します。これはホットプラグサポートのための便利で集中化されたメカニズムを提供します。
実際のノードの作成に加えて、udevデバイス管理者は、ユーザーが名前を付けることができるシンボリックリンクを作成することもできます。これにより、ユーザーは、必要に応じて/devディレクトリから独自のカスタム命名とディレクトリ構造を自由に選択できます。各udevイベントには、名前、そのイベントが属するサブシステム、デバイスタイプ、使用されたメジャーとマイナー番号、イベントタイプなど、処理中のデバイスに関する基本情報が含まれています。これを考慮して、/sysディレクトリ内のすべての情報(udevルールでもアクセス可能)にアクセスできるユーザーは、この情報に基づく単純なフィルタを利用し、この情報に基づいて条件付きでルールを実行できます。 udev デバイス管理者は、ノードに対する権限を設定する集中型の方法も提供します。ユーザーは、イベントの処理に使用できる情報で指定されたすべてのデバイスの権限を定義するための一連のカスタムルールを簡単に追加できます。 udevルールに直接プログラムフックを追加することもできます。
これらのプログラムは、イベントを処理するために必要な追加の処理を提供するためにudevデバイスマネージャによって呼び出されることがあります。また、プログラムはこの処理の結果として環境変数をエクスポートできます。与えられた結果は、ルール内の追加情報のソースとして使用できます。 udevライブラリを使用するすべてのソフトウェアは、udevイベントと利用可能なすべての情報を受信して処理できるため、処理はudevデーモンに限定されません。
Red Hat Enterprise Linux 6では、
and its clones
デバイスマッパーはudev統合を直接サポートします。これは、LVMデバイスを含むデバイスマッパーデバイスに関連するすべてのudev処理とデバイスマッパーを同期します。 udevデーモン内のルールアプリケーションは、dmsetupやLVMなどのデバイス変更のソースであるプログラムとの並列処理形式なので、同期が必要です。このサポートがない場合、ユーザーは以前の変更イベントのためにudevルールによってまだ開いていて処理されているデバイスを削除しようとするのが一般的な問題です。これは、そのデバイスの変更間隔が短い場合に特に当てはまります。