
udev rule
ディスク名とディスク権限を確保するために使用されるいくつかの設定を見ました。しかし、最近、次のように「エイリアスを作成」できるディスクをmknod
指定して、ブロックデバイスのエイリアスのように動作するコマンドを見つけました。major:minor
[root@dbnode1 disks]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdd 8:48 0 160M 0 disk
mknod /disks/QUORUML b 8 48
今は使い方が簡単なので、なぜudev rules
代わりに使うのか疑問に思います。私の主なポイントは、継続的な命名と権限を確保することです。mknod
mknod
答え1
なぜ?信頼できる!
ドライバが新しいデバイスを検出すると、プライマリおよびマイナーデバイス番号が割り当てられ、デバイスが削除されると、これらのデバイス番号が解放され、後で再利用できます。
その結果、検出順序が変更されると、デバイス番号と対応するSDタグとの間の接続も変更されます。
これはユニークなディスクを持つ小規模システムでは珍しいと見なすことができますが、リムーバブルメディア、ホットスワップ可能なディスクアレイを考えてみましょう...並列検出で覆います...sdb、sdc...厳密に言えば、順序は予測できません。 。
これが、メジャー番号とマイナー番号の範囲(または/ etc / fstabファイルなどのデバイスを参照するときに関連するSD名)を使用したくない理由です。誤ったデバイスをインストールすると、大きな問題が発生する可能性があります。
答え2
主な理由は、udevルールが「自動」であるためです。新しいデバイスが接続されるたびに(または起動中に検出されるたびに)udevはすべてのルールファイルを処理するため、手動で何もする必要はありません。
またmknod
、新しいブロック(または文字)デバイスファイルを作成しますが、すでに1つあるため、/dev/sdd
新しいファイルを作成する必要はなく、そのファイルへのシンボリックリンクだけが必要です(udevが属性を使用して実行する操作SYMLINK
)。
udevの「自動化」部分が不要な場合や必要なく、デバイスを起動または接続するたびに手動でコマンドを実行できる場合でも、その機能を使用せずに代わりにmknod
シンボリックリンクを作成することをお勧めします。
あなたが望むものがデバイスに良い(そして安定した)「パス」ならば、ファイルシステムまたはパーティションのラベルを設定することをお勧めします。その後、/dev/disk/by-partlabel
udev inとoutによって生成されたデフォルトのシンボリックリンクの1つを使用できます/dev/disk/by-label
。
ストレージと連携する他のシステムツールもudevを使用しているため、udevを使用してシンボリックリンクを作成すると、これらのツールはそれがそのデバイスへのシンボリックリンクであることを認識します。手動で作成されたノードの場合はそうでない可能性があります(ただし、たとえばlsblk
実行するとlsblk /disks/QUORUML
表示するのに十分スマートです/dev/sdd
)。