私のサーバーは、EMCクラリオンSANに接続されたqlogic HBAを備えたhpブレード(x64)上のOracle Enterprise Linux 5.4(RHEL5)です。
Emcと会社のストレージチームはマルチパスをサポートしないため、マルチパスからパワーパスに移行しています。
現在、私の3つのlvmボリュームグループは、デバイスマッパー/マルチパスが作成する/ dev/dm-Xデバイスを使用しています。
(実験1)multipathdをオフにして、check configで無効にしてから、次のフィルターをlvm.conf
に追加します。
filter = [ "a|/dev/emc.*|", "a|/dev/cciss.*|", "r/.*/" ]
再起動すると:
ddでlvmヘッダーのものを見ることができますが、vg01はemcpowerディスクで検出されません。他の2つのVGは問題なく検出されます。また、すべてのdm-Xデバイスはまだ/ dev /にあります。
(2)そこで、フィルターを削除し、multipath.conf
のすべてのブラックリストを有効にします。
blacklist {
devnode "*"
}
再起動すると、/ dev /にdm-Xデバイスがなくなり、emcpowerデバイスにvg02とvg03が見つかりますが、vg01はまだ検出されません。
(3)フィルターとブラックリストの両方を使用して再起動すると、vg01は検出されませんが、vg02とvg03は正常です。
このボリュームグループがdevice-mapper/multipathなしでは検出できないように見える理由を誰かが理解するのを手伝ってもらえますか?
そして、誰かがlvm、device-mapper、およびmultipathの間の関係が何であるかを説明できますか?
現在、これを確認するためにEMC機器にアクセスすることはできませんが、以前のいくつかのジョブでセットアップする必要がありました。私の記憶が正しければ、次のフィルター行を使用する必要がありました。filter= ["r/sd ./"、 "a /./"]これにより、sdデバイス(sda、sdbなど)がすべて削除されます。 、その後、他のすべてを許可します。もちろん、/ dev/sdaとして表示される内部ディスクから起動する場合は、次のように指定する必要があります。filter= ["r/sd [bz] ./"、 "a /。/"]または同様のもの。
編集:古いメモに構成行が見つかりました(これはRHEL 4用だったと思いますが、それでも機能するはずです)。このフィルターは、内部レイドコントローラー(cciss)から起動し、データドライブ用のPowerpathを備えたHPサーバー用です。
filter = [ "a|^/dev/cciss/.*|", "a|^/dev/emcpower.*|", "a|^/dev/loop.*|", "r /.*/" ]
したがって、これはccissデバイス、emcpower、すべてのループバックデバイスを受け入れ、その他すべてを拒否します(正規表現ルールがここに適用されます)。
質問の最後の部分に答えるために、LVMがスキャンを実行すると、/ proc/partitionで、受け入れ/拒否フィルターに一致するデバイスを探し、それらのブロックデバイスをスキャンしてLVMヘッダーを探します。特定のLVMボリュームヘッダーに対して最初に検出されたブロックデバイスは、使用されているデバイスです。 SANを使用すると、/ dev/sdaと/ dev/sdg(たとえば)の両方が同じデータにマップされ、/ dev/emcpoweraもマップされます(コマンド「powermtdisplayall」で適切なマッピングが得られます)。うまくいけば、これが役立つでしょう。