論理ボリュームのデバイスファイルを一意に識別する
前回、「論理ボリュームのデバイスファイル」について紹介しました。これらの論理ボリュームのデバイスファイルをシェルスクリプトから決め打ちして使用すると、スクリプトの内容によっては大惨事につながる恐れがあります。
ここでは、論理ボリュームのデバイスファイル及び論理ボリューム上のパーティションのデバイスファイルを一意に識別する方法を紹介します。
アレイが開始した時、論理ボリュームのデバイスファイルが作成されますが、同時に「/dev/disk/by-id」フォルダー内に論理ボリュームのデバイスファイルへのシンボリックリンクが作成されます。
このシンボリックリンクには以下の2種類があります。
- 「アレイのUUID」から作成されたシンボリックリンク
- 「ホームホスト名」と「アレイの名称」から作成されたシンボリックリンク
このうち、一意に識別する方法は前者の「アレイのUUIDから作成されたシンボリックリンク 」を利用する方法です。
後者の方法でも良いのですが、「ホームホスト」と「アレイの名称」が重複してしまう可能性が前者よりも高いです。
ユーザーがその点を配慮しているなら問題ありません。
アレイのUUIDとは
「アレイのUUID」とは、アレイを一意に識別する識別子です。アレイ作成時に自動的に割り振られます。
「アレイのUUID」が重複する可能性は滅多にないため、これを利用します。
ただ完全に0とは言い切れないため、アレイのUUIDは事前に確認しておく必要があります。
環境について
アレイを作成した環境は、「論理ボリュームのデバイスファイル」と同じです。「アレイのUUID」は「8af73081:9f983e51:69e38108:7ba2d3be」です。
論理ボリュームのデバイスファイル
「アレイのUUID」から作成された論理ボリュームのデバイスファイルへのシンボリックリンクです。論理ボリュームのデバイスファイルにアクセスしたい場合は、このシンボリックリンクを利用します。
ルール
シンボリックリンクは「/dev/disk/by-id」フォルダー内に作成されます。シンボリックリンクの名称は、「md-uuid-アレイのUUID」です。
「/dev/disk/by-id」フォルダー
「/dev/disk/by-id」フォルダー内を見ると、以下のように論理ボリュームのデバイスファイルへのシンボリックリンクが作成されています。「プロパティー」画面を開いて「基本」タブをクリックすると、このシンボリックリンクのリンク先が「../../md127」であることが分かります。
リンク先を確認すると、「/dev/md127」が存在しています。
このようにシンボリックファイルを参照することで、「md127」が「md126」に変化しても、該当する論理ボリュームのデバイスファイルにアクセスすることができます。
論理ボリューム上のパーティションのデバイスファイル
「アレイのUUID」から作成された論理ボリューム上のパーティションのデバイスファイルへのシンボリックリンクです。論理ボリューム上のパーティションのデバイスファイルにアクセスしたい場合は、このシンボリックリンクを利用します。
ルール
シンボリックリンクは「/dev/disk/by-id」フォルダー内に作成されます。シンボリックリンクの名称は、「md-uuid-アレイのUUID-partパーティションの番号」です。
「/dev/disk/by-id」フォルダー
「/dev/disk/by-id」フォルダー内を見ると、以下のように論理ボリューム上のパーティションのデバイスファイルへのシンボリックリンクが作成されています。「プロパティー」画面を開いて「基本」タブをクリックすると、このシンボリックリンクのリンク先が「../../md127p1」であることが分かります。
リンク先を確認すると、「/dev/md127p1」が存在しています。
このようにシンボリックファイルを参照することで、「md127」が「md126」に変化しても、該当する論理ボリューム上のパーティションのデバイスファイルにアクセスすることができます。