ストレージコントローラーはコンピューターにディスクドライブを接続します。IDE、SATA、およびSCSIコントローラーなど、さまざまな標準とタイプのストレージコントローラーがあります。仮想マシンでは、仮想ストレージコントローラーが仮想および物理ディスクをこれらのマシンに接続します。VMware仮想マシンには、ディスクとCD/DVDドライブを接続するためのさまざまなタイプのストレージコントローラーが利用可能です。
各種のストレージコントローラーにはそれぞれ利点と制限がありますが、このブログ投稿では主にSCSIコントローラーに焦点を当てます。次に、VMware vSphere仮想マシン設定で利用可能な他のタイプのストレージコントローラーとSCSIコントローラーを比較して、特定の状況に最適なストレージコントローラーを見つけます。
ストレージコントローラーに関する一般的な情報
VMware vSphere VMを作成すると、少なくとも1つの仮想ストレージコントローラーがVM構成にデフォルトで作成されます。仮想ディスクとCD/DVDドライブが異なるストレージコントローラーに接続されている場合、VM作成後に2つのストレージコントローラーがあります。VMを作成する際に、ディスクドライブを接続するためにさらにストレージコントローラーを追加することもできます。
ESXiホスト上でVMware Host ClientまたはVMware vSphere Clientを使用して仮想マシンを作成するか、またはVMware Workstationで仮想マシンを作成すると、適切なストレージコントローラーが自動的に選択され、選択したゲストオペレーティングシステムに最適なパフォーマンスが提供されます。後述するように、これにより、VM作成ウィザードで適切なゲストOSを選択することが非常に重要なタスクになります。
正しいストレージコントローラを選択する重要性は強調する余裕がない。新しいストレージコントローラの種類は、古いオペレーティングシステムにはサポートされないかもしれません。そのため、選ばれたゲストOSに含まれるドライバーを考慮することが重要であり、最適なデフォルトのコントローラを選ぶためには、これらのドライバーが含まれていることを確認することが必要です。仮想マシンのハードウェア互換性(VMwareのハードウェアバージョン)とデバイスタイプ(仮想ハードディスクまたはDVD-ROM)も重要な要因です。新しいハードウェアバージョンは、より多くのストレージコントローラをサポートします。
ブートディスクで使用されるストレージコントローラを変更する前に、ゲストオペレーティングシステム(OS)がこのコントローラの型をサポートしていることを確認し、ゲストOSに適切なドライバーがインストールされていることを確認する必要があります。ストレージデバイスを複数のストレージコントローラに接続することで、すべてのディスクドライブを单一のストレージコントローラに接続するよりも入力/出力性能が向上します。したがって、VMにて複数のSCSIコントローラを使用する場合、推奨される慣例は、仮想ディスクをこれらのSCSIコントローラ間で分配することで性能が良くなることです。
ストレージコントローラを追加する另一理由は、コントローラに接続されたディスク装置の最大サポート数を超えるときです。この場合、新しいコントローラを追加する方法は重要です。一部のコントローラは、ホットアドでVM構成に追加できます。他のストレージコントローラの型は、VMを最初にオフにしなくてはならない冷操作を要求します。
デフォルトで、仮想マシンの最初のストレージコントローラの番号は0です。2番目のストレージコントローラを追加すると、割り当てられる番号は1です。以降のコントローラは順次番号が振られます。ストレージコントローラに接続されたストレージデバイスの番号付けも同様に0から始まります。たとえば、仮想マシンにストレージコントローラが1つあり、このコントローラに1つの仮想ディスクが接続されている場合、ディスクの番号は(0:0)です。同じコントローラに2番目の仮想ディスクを追加すると、番号は(0:1)になります。2番目のストレージコントローラに別の仮想ディスクを接続すると、この場合、ディスクの番号は(1:1)です。接続ノードの完全な名前と番号には、コントローラインターフェイスとコントローラおよびディスクの番号が含まれます。たとえば、SCSI(0:0)、SCSI(1:3)、SATA(1:7)、IDE(0:0)などです。SCSI(z:7)は仮想デバイスノード用に予約されているため、コントローラオプションで割り当てることはできません。
利用可能なVMwareストレージコントローラ
さまざまな種類のストレージコントローラがあります。VMware vSphere VMのストレージコントローラの種類には、SCSI、IDE、AHCI SATA、およびNVM Express(NVMe)があります。
SCSIコントローラには、以下の4つのサブタイプがあります:
- BusLogic Parallel
- LSI Logic Parallel
- LSI Logic SAS
- VMware Paravirtual SCSI
A maximum of four SCSI controllers are supported per VMware virtual machine. There is a 15-device limit for devices connected to a single SCSI controller.
BusLogic Parallel
このVMware SCSIコントローラーは、VMware vSphere VM向けにエミュレートされた最初のストレージコントローラータイプの1つでした。古いバージョンのWindowsには、このコントローラータイプのドライバがデフォルトで含まれているため、このコントローラーはVMの構成に使用され、古いバージョンのWindows(たとえば、Windows 2000)をVMにインストールするために使用できます。BusLogic Parallel SCSIコントローラーは現在、レガシーコントローラーと見なされています。2テラバイト以上のディスクを持つ仮想マシンはサポートされていません。ドライバによってキューの深さが1に制限されており、これはパフォーマンスに影響を与えます。VMストレージのパフォーマンスを向上させる必要がある場合は、LSI Logic Parallel SCSIストレージコントローラーの使用を検討してください。
LSI Logic Parallel
LSI Logic Parallelは以前、LSI Logic SCSIコントローラーとして知られていました。これは、VMware仮想化プラットフォームの最初のバージョンから利用可能な別のVMware SCSIストレージコントローラーです。LSI Logic Parallel SCSIコントローラーもエミュレートされており、デフォルトでこのストレージコントローラーのドライバが含まれているため、多くのオペレーティングシステムでサポートされています。キューの深さ32がこれらのドライバによってサポートされており、このVMware SCSIコントローラーは多くのゲストオペレーティングシステムで一般的な選択肢となっています。LSI Logic Parallelは、Windows Server 2003 VMを作成する際にデフォルトで選択されます。なぜなら、このストレージコントローラーがSCSI2コマンドをサポートしており、Windows Server 2003がこのSCSI標準をサポートしているからです。
LSI Logic SAS
LSI Logic Parallel ストレージコントローラーは、LSI Logic SAS コントローラーに進化しました。Windows Server 2008 以降、新しい VM を作成する際にはデフォルトで LSI Logic SAS コントローラーが選択されます。なぜなら、LSI Logic SAS は SCSI3 コマンドに対応しており、新しい Windows オペレーティングシステムも新しい規格をサポートしているからです。多くの場合、この VMware SCSI コントローラーの使用が推奨されます。
互換性:ESXi 4.x 以降。
VMware Paravirtual SCSI
このコントローラーは、このブログ記事で説明されている以前の VMware SCSI コントローラーとは異なり、仮想化に対応しており、高スループットをサポートしています。CPU 負荷は、エミュレートされた VMware ストレージコントローラーよりも低いです。VMware パラバーチャル SCSI コントローラー(PVSCI)の実際のハードウェア相当品はなく、そのため、多くのオペレーティングシステム(主に古いオペレーティングシステム)はこのコントローラーをデフォルトでサポートしていません。オペレーティングシステムを VMware パラバーチャル SCSI コントローラーと連携させるには、ドライバーを手動でインストールする必要があります。このコントローラーは、高い IOPS パフォーマンス(秒間入出力操作数)のために採用されています。
VM にパラバーチャル SCSI コントローラーに接続された仮想ディスクのスナップショットがある場合、またはホストでメモリがオーバーコミットされている場合、このストレージコントローラータイプを使用すると予想よりもパフォーマンスが低下する可能性があります。
互換性:ESXi 4.x 以降。Windows Server 2003 以降がサポートされています。
必要なH2
注意:VMware VMのストレージコントローラーを変更すると、ゲストオペレーティングシステムがインストールされている場合、必要なドライバーがゲストOSにインストールされていない場合、既存の仮想ディスクにアクセスできなくなる可能性があります。VMware ToolsはゲストOSにインストールする必要があります。なぜなら、VMware ToolsにはVMwareパラバーチュアルSCSIコントローラーと連携するために必要なドライバーが含まれているからです。
VM上でWindowsをインストールし、システムディスクをVMwareパラバーチュアルSCSIコントローラーに接続した場合、インストール中にコントローラードライバーを含む仮想フロッピーディスクイメージを挿入し、Windowsがインストールディスクを検出できるようにするためにコントローラードライバーを選択する必要があります。
VM構成にVMwareパラバーチュアルSCSIコントローラーを追加するには、高度にサポートされているSCSIコントローラーの1つ、例えばLSIロジックコントローラーを追加し、VMware Toolsをインストールし、VMをオフにして、VM構成にVMwareパラバーチュアルSCSIコントローラーを追加し、最後に、仮想ディスクをVMwareパラバーチュアルSCSIコントローラーに接続します(または既存のストレージコントローラータイプをパラバーチュアルSCSIコントローラーに変更します)。
AHCI SATA
このストレージコントローラーは新しく、VMware vSphere 5.5以降のバーチャルハードウェア10で利用可能です。AHCI SATAストレージコントローラーを使用して、大量のストレージ(高容量仮想ディスクを含む)をVMware VMに接続できます。SATAストレージコントローラーは、ゲストオペレーティングシステム(OS)をブートするためのブートディスクとして使用できます。AHCI SATAコントローラーがオペレーティングシステムでサポートされていることを確認してください。性能はPVSCIやLSI Logicコントローラーとは比べて高くありません。ディスクパフォーマンスに敏感なアプリケーションを実行する場合は、他のコントローラーを使用することが良いでしょう。SATAコントローラーは通常、VMのCD/DVDドライブにデフォルトで使用されます。
互換性:ESXi 5.5以降の仮想ハードウェア互換性。VMごとに最大4つのSATAコントローラーがサポートされます。単一のSATAコントローラーに接続できるストレージデバイスの最大数は30個(0-29)です。
NVMe
NVM ExpressまたはNVMe(不揮発性メモリ)コントローラーは、SSDストレージと連携するために設計されたコントローラーです。NVMeプロトコルは非磁気ディスクに採用され、最高の性能とマルチキュー通信を提供します。VMware vSphereでNVMeプロトコルがサポートされており、VM構成にNVMeストレージコントローラーを追加できます。キューの最大数は65535で、キューの最大深度は64000です。
要件:VMware vSphere 6.5およびVMハードウェアバージョン13。ゲストOSはNVMeサポートが必要です。最大4つのNVMeコントローラーがサポートされており、単一のNVMeコントローラーに接続できるディスクは15個(0-14)です。
IDEストレージコントローラー
エミュレートされたIDEストレージコントローラーは、最も古いストレージコントローラータイプの1つです。最大1つのIDEコントローラーを仮想マシンに接続でき、4つのストレージデバイス(プライマリとセカンダリの2つのチャンネル、それぞれにマスターとスレーブの2つのデバイス)があります。ディスクのホット追加やリサイズはサポートされていません。ディスク構成を編集するには、VMをシャットダウンする必要があります。IDEコントローラーはATAPIを使用します。
仮想マシンに接続できるディスクの合計数は、以下の表に表示されているコントローラータイプによって決まります。
一般的な推奨事項
パフォーマンスと互換性の観点からVMware vSphere VMを構成するためのストレージコントローラーを選択する一般的な推奨事項があります。
- VMware Paravirtual(PVCSI)(ゲストOSでサポートされている場合)
- LSI Logic SAS(ゲストOSでサポートされている場合)
- LSI Logic Parallel
- BusLogic Parallel(それ以外の場合)
ブートディスクのストレージコントローラーを変更する場合は、ブートモードにストレージコントローラードライバーがインストールされていることを確認する必要があります。 VMがBIOSを使用するように構成されている場合、VMの構成とBIOS設定を変更する必要がある場合があります。 VMがUEFIを使用するように構成されている場合、ブートディスクのストレージコントローラーを変更するオプションは柔軟であり、ほとんどの場合、追加のセットアップは必要ありません。
ゲストオペレーティングシステムが、VMのストレージコントローラー構成を変更した後にブートできるかどうかを確認するために、互換性テーブルを参照してください。
さまざまなストレージコントローラータイプの一般的な使用推奨事項を示すテーブルも参照してください。
VMwareストレージコントローラーの構成
VMware vSphereで利用可能なストレージコントローラーの種類について把握したので、VMware vSphereクライアントでストレージコントローラーの設定を編集する方法を見てみましょう。私の例では、デフォルトのストレージコントローラーを持つVMがあり、このVMにUbuntu Linuxがインストールされています。仮想マシンの構成。デバイスの追加または削除特権を持っている必要があります。
VMware vSphereクライアントを開き、ホストとクラスターに移動し、必要なホストを選択し、必要な仮想マシンを選択します。 VMを右クリックし、開いたメニューで設定の編集をクリックします。また、アクション>設定の編集をクリックすることもできます。
コントローラータイプの変更
設定の編集ウィンドウで、VMがSCSIコントローラー0を使用していることがわかります。SCSIストレージコントローラータイプはLSI Logic Parallelです。以下に、VMに仮想CD/DVDドライブを接続するために使用されるSATAコントローラー0があります。SCSIコントローラーを展開してオプションを表示し、タイプの変更行で、既存のストレージコントローラーのタイプを変更するためのドロップダウンメニューをクリックします。設定を保存するには、OKをクリックします。VMとゲストオペレーティングシステムが選択したコントローラーをサポートしている必要があります。これは特に、ブートディスクがこのストレージコントローラーに接続されている場合に重要です。
新しいストレージコントローラーの追加
設定の編集ウィンドウで、新しいデバイスを追加をクリックし、表示されるメニューから必要なコントローラーを選択します(コントローラーセクションで)。この例では、NVMeコントローラー、SATAコントローラー、またはSCSIコントローラーを選択できます。VMの設定にSATAコントローラーを追加しましょう。
注意:USBコントローラーは、USBパススルーを使用して物理的なUSBデバイス(例えば、USBハードディスクドライブやフラッシュドライブ)を直接仮想マシンに接続する場合に追加する必要があります(USBデバイスは、ホストの物理的なUSBポートに接続されている必要があります)。
SATAコントローラー1が追加されました。最初は、新しいコントローラーは新しいSATAコントローラーとして名前が付けられます。VMの設定を保存するためにOKをクリックすると、SATAストレージコントローラーの名前がSATAコントローラー1として保存されます。
ストレージコントローラーに仮想ディスクを接続する
新しい仮想ハードディスクを追加し、この仮想ディスクをSATAストレージコントローラーに接続しましょう。設定の編集ウィンドウで、新しいデバイスを追加 > ハードディスクをクリックします。
新しいハードディスクは、現在VMの構成で表示されていますが、ディスクのサイズ、thinまたはthick provisioning、場所などの仮想ディスクオプションを構成する必要があります。また、Virtual Device Nodeオプションで必要なストレージコントローラを選択します。必要に応じて共有オプション、ディスクモード、およびIOPs制限を構成することもできます。設定を保存するためにOKをクリックした後、New Hard Diskの名前はHard Disk 2として保存されます。
既存の仮想ディスクを別のストレージコントローラに接続する必要がある場合は、同じ原則に従ってください。- VM設定を開き、ディスク設定を展開し、仮想デバイスノードのオプションを編集します。
新しい仮想ハードディスクをCD/DVDドライブが接続されているSATAコントローラ0に接続する場合、仮想DVD-ROMはSATA (0:0)を使用しているため、SATA (0:0)以外のSATA (0:1)、SATA (0:2)、またはその他の(0:x)ノードを選択できます。新しい仮想ディスクを新しいSATAコントローラ1に接続する場合、SATA (1:0)、SATA (1:1)、およびこのストレージコントローラの空きノードを選択できます。
VMX構成ファイルの編集
VMのSCSIコントローラタイプおよびその他のストレージコントローラタイプを編集するには、VMX構成ファイルを編集します。この方法は、VMware vSphere ClientのGUIで構成を編集する代替手段であり、コマンドラインインターフェイスでも使用できます。一般的にはVMware vSphere Clientを使用し、VMXファイルを手動で編集するのは例外的なケースに限ります。
初期のVMX構成ファイルを探索しましょう。追加のストレージコントローラーや仮想ディスクを追加する前のUbuntu VMのものです。以下に表示されている構成部分では、ストレージ構成に関連する行のみが表示されます。完全な構成ファイルには他の設定も含まれていますが、それらはスキップしてストレージ構成とストレージコントローラーに焦点を当てます。
config.version = “8”
virtualHW.version = “17”
vmci0.present = “TRUE”
scsi0.virtualDev = “lsilogic”
scsi0.present = “TRUE”
sata0.present = “TRUE”
scsi0:0.deviceType = “scsi-hardDisk”
scsi0:0.fileName = “blog-Ubuntu1.vmdk”
sched.scsi0:0.shares = “normal”
sched.scsi0:0.throughputCap = “off”
scsi0:0.present = “TRUE”
sata0:0.deviceType = “cdrom-raw”
sata0:0.clientDevice = “TRUE”
sata0:0.fileName = “emptyBackingString”
sata0:0.present = “TRUE”
displayName = “blog-Ubuntu1”
guestOS = “ubuntu-64”
最も興味深い構成行は:
scsi0.virtualDev = “lsilogic”です。これは仮想ハードディスクに接続するために使用されるLSI Logic Parallel SCSIコントローラーです。
scsi0:0.deviceType = “scsi-hardDisk”は、SCSI (0:0) に接続されたストレージデバイスのタイプです。
scsi0:0.fileName = “blog-Ubuntu1.vmdk”は、ノード SCSI (0:0) に接続された仮想ディスクファイルの名前です。
2番目のSATAストレージコントローラーと2番目の仮想ディスクをSATAコントローラーに接続した後、VMX設定ファイルに次の行が追加されました:
sata1.present = “TRUE”
sata1:0.fileName = “blog-Ubuntu1_1.vmdk”
sched.sata1:0.shares = “normal”
sched.sata1:0.throughputCap = “off”
sata1:0.present = “TRUE”
VM構成でLSI Logic Parallel SCSIコントローラーをLSI Logic SASに変更する場合、次の行を編集する必要があります
scsi0.virtualDev = “lsilogic”
から
scsi0.virtualDev = “lsisas1068”
ストレージコントローラーに関連するVMX設定パラメーターを見てみましょう。必要に応じて、VMの構成に従って0、0:0などの値(x:x)を適切な値に変更する必要があります。
scsi0.present = “” – SCSIコントローラー0が存在するかどうかを定義します(可能な値はTRUEまたはFALSEです)。
scsi0:0.deviceType = “”はSCSI IDを定義するために使用されます。サポートされている値は「scsi-hardDisk」、「PhysicalDrive0」、「rawDisk」、「scsi-passthru」、「scsi-nonpassThru-rdm」、「scsi-passthru」、「scsi-passthruscsi-passThru-rdm」です。
scsi0:0.fileName = “diskname.vmdk” – は定義された仮想デバイスノード(この場合、SCSI(0:0))に接続された仮想ディスクファイルのファイル名を定義します。仮想ディスクファイルが同じディレクトリにある場合、「diskname.vmdk」を設定するだけで十分です。仮想ディスクファイルが別のディレクトリにある場合は、VMDKファイルへの完全なパスを定義する必要があります。
sched.scsi0:0.throughputCap = “off” – 帯域幅とスループット制限が無効になります。このパラメータの制限を設定する例は、sched.scsi0:0.throughputCap = 80IOPS、10KIOps、4GBpsなどです。
scsi0:0.present = “” – SCSIストレージデバイスが存在するかどうかを定義します。TRUEまたはFALSEにすることができます。
scsi0.virtualDev = “” – SCSIコントローラのタイプを定義します。
SCSIコントローラのタイプを定義するscsi0.virtualDev = “”パラメータのすべてのサポートされている値:
- buslogic – BusLogic SCSI
- lsilogic – LSI Logic SCSI
- lsisas1068 – LSI Logic SAS
- pvscsi – VMware Paravirtual SCSI
VMware WorkstationおよびVMware Playerで実行されているVMのストレージコントローラーの構成を編集するために、このブログ投稿で説明されているプロセスを使用して、必要なストレージコントローラーにストレージデバイスを接続することができます。また、vSphere 6.7およびvSphere 7でVMwareホームラボを構成することによって練習することもできます。
結論
VMwareストレージコントローラーは、仮想ディスクなどのストレージデバイスを仮想マシンに接続するために使用されます。このブログ投稿では、SATA、IDE、NVMe、およびSCSIストレージコントローラーを含む種類の仮想ストレージコントローラーと、これらのコントローラーをVMware vSphereクライアントのGUIで構成する方法について説明しました。ストレージシステムのパフォーマンスとゲストオペレーティングシステムの正しい動作は、正しいコントローラータイプを選択することに依存します。デフォルトでは、VM構成で最適なストレージコントローラーが選択されますが、常にVM設定を編集して、別のコントローラータイプを変更または追加することができます。
VMware VMを保護し、適時にバックアップを実行することを忘れないでください。仮想マシンや他のワークロードを保護するために、NAKIVOをVMバックアップおよびレプリケーションに検討してください。
Source:
https://www.nakivo.com/blog/scsi-controller-and-other-vmware-controller-types/