ご挨拶、
VMware ESX 4でRHEL 5.5ゲストVMを使用しています。VMハードウェア設定で仮想ディスクを構成すると、各ディスクには「N:M」の形式のSCSIアドレスがあります。たとえば、「1:3」はSCSIホスト番号1とSCSIターゲットID 3を意味します。
VMのBIOSまたはWindows OSからディスク情報を見ると、検出されたSCSIアドレス情報が仮想ハードウェア設定と一致しています。しかし、Linuxでは、SCSIアドレスコンポーネントが一致していません。少なくとも完全にまたは一貫性がありません。
私は3つのサポートされている仮想SCSIとSAS=ドライバを試してみましたが、それらはすべて「壊れている」ようですが、さまざまな方法で。仮想ハードウェアアドレスとLinuxで検出されたもののリスト各ドライバーで:
Driver vHW Addr Linux Addr
-------- -------- ----------
LSI SAS 0:0 0:0
LSI SAS 0:3 0:1
LSI SAS 0:6 0:2
LSI SCSI 1:1 2:1
LSI SCSI 1:4 2:4
LSI SCSI 1:7 2:7
pvSCSI 2:2 1:2
pvSCSI 2:5 1:5
pvSCSI 2:8 1:8
私の主な質問は、なぜこれがLinuxで起こるのですか?次の質問は、どうやって修正するか、自分で修正するかです。
私が推測するつもりなら、それはカーネルがどのようにSCSIホスト番号を配っているのか、そしてLinux SCSIドライバ(VMwareツールに含まれている)がどのようにSCSIターゲット番号を検出しているのかという問題だと思います。おそらく、ドライバーが読み込まれる順序も問題と関係があります。これにはudevが含まれないと思いますが、私は間違っている可能性があります。
どんな考えでもいただければ幸いです。ありがとう!
PS。私の環境はVMwareですが、これらのドライバーに対する具体的な答えは必要ありません。これはLinuxでのSCSIドライバの問題かもしれないと思います。
Linuxは実際には一貫していて正しく、必ずしも期待通りではありません。
LSI SAS:SASアドレスはWWNであり、表示された順序に対応するSCSIのようなIDが割り当てられます(これは簡略化されていますが、実行されます。なぜとにかくギャップがあるのですか? ?)
LSI SCSI&pvSCSI:SCSIホスト番号は、ホストアダプタードライバーがカーネルによって読み込まれる順序にのみ関連し、VMWareが割り当てた番号には関連しません。それらを別の順序で表示する場合は、ドライバーのロード順序を切り替えます。ほとんどの場合、/ etc/modprobe.confで番号を切り替えて再起動します。
シリアル番号をトレイキャディーにマッピングして、適切なHDを削除します。 LEDの能力が低いエンクロージャがあります。/dev/sdaとして表示されると言う新しいディスク
udevadm info -q all -n /dev/sda|grep SERIAL
次に、シリアル番号を書き留めます。次に、ディスクが故障した場合は、シリアル番号(この場合は物理キャディーにラベルを付けます)を調べて、適切なディスクを取り出します。
しかし、それは実際にはVMwareの助けにはなりません。
次に、同じことを行うスクリプトを書くことができます。新しいディスクを追加し、そのuuidをゲストに記録し、後でディスクを自動的に削除する場合は、そのルックアップテーブルを調べます。
私は特に注意を払っていませんが、私のVMwareディスクは常に同じ順序で電源が入っていると思います。したがって、アドレスを同じに維持しても、scsiアドレスが変更されないことを信頼できる場合があります。
最新のLinuxは、起動時に/ devディレクトリを再構築し、PCIバスに表示される順序でscsi-hostsをスキャンします。 VMwareでは、それらをvmに追加する順序になります。
最初にscsi 0:1のディスクを追加し、次に2:2のディスクを追加すると、Linuxでは0:1と1:2のようになります。その後にscsi 1:3を追加すると、起動後は2:3と表示されます。
Linuxでは何も編集する必要はありません。vmxファイルでscsi-hostsの順序を変更できます。
$ grep pciSlotNumber vm.vmx
scsi0.pciSlotNumber = "16"
scsi2.pciSlotNumber = "34"
scsi1.pciSlotNumber = "35"
それらがvmxファイルに現れる順序は重要ではなく、pciSlotNumberだけです
vmxを編集し、scsi0が最小の番号、scsi1が次に小さい番号になるようにスロット番号を並べ替えます。 (同じ番号を使用してください。より安全です。vmxのバックアップも!)
scsi0.pciSlotNumber = "16"
scsi2.pciSlotNumber = "35"
scsi1.pciSlotNumber = "34"
起動後、正しい順序で表示されます。
したがって、scsi-hostsを正しい順序でvmに追加することを忘れないでください!また、scsi-Hostの最後のディスクを削除した場合、scsi-Host自体も次回の再起動で失われます。したがって、scsi-Host 0、1、2、および3があり、2を削除すると、Linuxではscsi-hosts 0、1、および2のみになります。