web-dev-qa-db-ja.com

ネイティブSATAドライブをESXi上のゲストにどのようにパススルーしますか?

Intel Core i7 930プロセッサを搭載したIntel DX58S0 MothboardboardでESXi 4.0を実行しています。 VT-dも有効です。

システムに3つのドライブがあります。ドライブ0はESXiに使用されます。ドライブ1と2には古いマシンのデータが含まれており、構成の[ストレージアダプター]セクションに表示されます。

ゲストマシンがこれらのドライブ上のデータにアクセスできるようにします(可能な限り自然に)。マザーボードの内蔵SATAコントローラ(Intel/Marvell 88SE6121)のパススルーを有効にしました。このコントローラーはゲストOSに表示されますが、ゲストには通常の仮想ドライブ以外のドライブは表示されません。 LinuxゲストとWindows7を試しました。また、SATAコントローラに対してIDE/RAID/ACHIモードを試すようにホストマシンを構成しました。

これらのドライブの生データを取得するようにゲストの1人を構成する方法はありますか?

9
John

失敗したサーバーの一部のドライブで同様の問題が発生しました。このページで回答を見つけました。 http://www.vm-help.com/esx40i/SATA_RDMs.php

それはコントローラーのパススルーや私が考えた他のトリックよりもはるかに簡単ですが、サービスコンソールを使用できる必要があります(google esxi unsupported mode ssh)

要約:

ステップ1) fdisk -lデバイス名を検索する

ステップ2) ls /dev/disks -l VML識別子を見つける

ステップ3)vmkfstools -r VMLid aVMDKName.vmdk

ステップ4)aVMDKName.VMDKを仮想マシンに。

例:vmkfstools -r /vmfs/devices/disks/naa.5000c5003010054f /vmfs/volumes/hdd/lanparty.vmdk

期待していたように(ネットワーク経由で500GBをコピーせずにP2Vで)ディスクをブートオフすることはできませんでしたが、別の仮想マシンに接続してデータを取得することができました。

9
user48183

別の解決策は、以下を実行することです。

手順1)リモートテクニカルサポート(SSH)が有効になっていて実行中であることを確認します。ステップ2)ホストへのSSH接続ステップ3)fdisk -l | grep -B4「有効なパーティションテーブルが含まれていません」

注:これにより、新しくプロビジョニングされたSAN LUNなど、パーティションがまだないすべての物理ディスクが表示されます。次のようになります。

ディスク/dev/disks/naa.60060e801004eb90052fab6900000000:42.9 GB、42949672960バイト255ヘッド、63セクター/トラック、5221シリンダーユニット= 16065シリンダー* 512 = 8225280バイト

ディスク/dev/disks/naa.60060e801004eb90052fab6900000000には有効なパーティションテーブルが含まれていません

ディスク/dev/disks/naa.60060e801004eb90052fab6900000001:42.9 GB、42949672960バイト255ヘッド、63セクター/トラック、5221シリンダーユニット= 16065シリンダー* 512 = 8225280バイト

ディスク/dev/disks/naa.60060e801004eb90052fab6900000001には有効なパーティションテーブルが含まれていません

ディスク/dev/disks/naa.60060e801004eb90052fab6900000002:42.9 GB、42949672960バイト255ヘッド、63セクター/トラック、5221シリンダーユニット= 16065シリンダー* 512 = 8225280バイト

ディスク/dev/disks/naa.60060e801004eb90052fab6900000002には有効なパーティションテーブルが含まれていません

このコマンドでデバイスが表示されない場合は、おそらく前のポスターと同様に、私の手順はおそらくあなたには適していません。VC "Raw Device Mappings"ラジオボタンがグレー表示されているのは、LUNにパーティションがないためです。

ステップ4)新しいパーティション「fdisk /dev/disks/naa.60060e801004eb90052fab6900000000 "を作成します。注:ここでは独自のデバイス名を使用する必要があります。ステップ5)fdiskに慣れていない場合は、次のようにできます。

a)既存のパーティションを印刷するための「p」。何も表示されない場合は、おそらく安全です。

b)「n」で新しいパーティションを作成します。

c)プライマリの「p」

d)パーティション1の場合は「1」

e)デフォルトの開始セクターを選択する

f)デフォルトの最終セクターを選択する

g)書く「w」

h)終了する「q」

ステップ6)これで、VirtualCenterでrawディスクを割り当てることができるはずです。

1
user58121

最後の答えは本当ですが、これらのようなコマンドにいくつかの変更を加えます

  1. fdisk -lデバイス名を検索する
  2. ls /dev/disks -l VML識別子を見つける
  3. vmkfstools VMDKName-withFullPath.vmdk(つまり、/ vmfs/volumes/disk2/somename.vmdk)-a adaptertype -z /vmfs/devices/disks/vml.0200000000600508b1001037383941424344450d004c4f47494341
  4. VMDKName-withFullPath.vmdkを仮想マシンに追加します。

:ステップ3では-rスイッチの代わりに-z。これらのスイッチは、ディスクコントローラーによって異なります。別の重要な問題は、このソリューションがディスクへの直接アクセス用であることです。物理的な方法でパーティションにアクセスするには、おそらく-rスイッチ。

0
Mostafa Rezaei