前回は Proxmox で Windows をインストールしてみるところまで出来たので、VirtIOドライバ群を入れる手順を記載しておきます。これらは ESXi らでいうところの VMwareTools をインストールするようなものなので、パフォーマンスの向上が期待できます。
VirtIOの準備
https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers を参照してください。この中にダウンロードのリンクがありました。
現時点では、 virtio-win-0.1.102.iso というファイルがダウンロードできたのでこちらを使用します。
ダウンロードできたらこれを Proxmox の iso 置き場にアップロードしておきます。
これからの作業のために対象の Windows 仮想マシンをシャットダウンしておきます。
ネットワークドライバ更新
対象の仮想マシンの項目を proxmox の管理画面から編集します。
ここでは “Network Device” の項目をダブルクリックして編集を行います。
設定項目では、E1000 としていたところを VirtIO に変更します。
変更後、仮想マシンの電源を入れると、デバイスドライバを求めてくるので電源を入れる前にダウンロードした virtio のドライバ iso をCDROMドライブとして設定しておきます。
仮想マシンの電源をいれます。そうすると以下のような状況になっているのでドライバをインストールします。
デバイスマネージャーを開くとイーサネットコントローラーでドライバがあたっていないものがあるので、これのドライバ更新ボタンをおして virtio.iso の中にあるドライバを選択させます。
うまくドライバが見つかって以下のような画面になると思うので、続行します。
ドライバが適用できれば、デバイスマネージャーでは以下のようになっています。これで Network に関しての virtio 導入は完了です。
ハードディスクのVirtIO化
ハードディスクのVirtIO化はちょっと大変です。ネットワークのように設定を変えて終わりというわけにはいきませんでした。まずはドライバそのものをWindowsにいれるために、ダミーのディスクドライブをvirtioタイプとして作成して追加します。
そしてとりあえず仮想マシンの電源をいれて、ドライバ導入の作業を行います。以下のようにデバイスドライバが見つからずに失敗している状態となるので、ネットワークの時と同じようにドライバをインストールします。
うまくインストールが終わると以下のように認識されていると思います。
ここで仮想マシンをシャットダウンします。ディスクの場合には、オフライン時であってもタイプを変更するということができません。また今の Proxmox では既存のディスクファイルを使ってゲストにハードディスク追加ということが WebUI からできないようです。(昔の1.8あたりならこの変更UIがあったみたいですが)
仕方ないので、Proxmox のコンソールで設定を書き換えて virtio を使用するようにしたいと思います。
まずは今回追加したダミーのvirtio接続ドライブを管理画面(Hardwareタブ)から削除します。その後Proxmoxのコンソールを開いて、この仮想マシンの設定ファイルを探します。
今回の仮想マシンは VM ID が 100 で作ったのでこれをキーにして設定ファイルを探しました。結果見つかったのは、 /etc/pve/qemu-server/100.conf だったので、このファイルを開いて編集します。
bootdisk: sata0 cores: 2 ide2: local:iso/virtio-win-0.1.102.iso,media=cdrom,size=156988K memory: 2048 name: HelloProxmox net0: virtio=4E:F1:99:DF:B5:7F,bridge=vmbr0 numa: 0 ostype: win7 scsihw: virtio-scsi-pci smbios1: uuid=b9b0db7c-e6b6-40df-b8a9-567e5efe8cc4 sockets: 1 sata0: local:100/vm-100-disk-1.qcow2,cache=writeback,size=64G
上のような感じになっていたものを以下のように書き換えます。bootdisk,sata0の部分をvirtio0 に変更しています。
bootdisk: virtio0 cores: 2 ide2: local:iso/virtio-win-0.1.102.iso,media=cdrom,size=156988K memory: 2048 name: HelloProxmox net0: virtio=4E:F1:99:DF:B5:7F,bridge=vmbr0 numa: 0 ostype: win7 scsihw: virtio-scsi-pci smbios1: uuid=b9b0db7c-e6b6-40df-b8a9-567e5efe8cc4 sockets: 1 virtio0: local:100/vm-100-disk-1.qcow2,cache=writeback,size=64G
設定が終わったら保存して、WebUIの画面から確認してみます。以下のように SATA だったものが VIRTIO になっていればOKです。
この状態で起動させてみて問題なく起動できればハードディスクのVirtio化は完了です。
ここまでの VirtIOドライバインストール所感
ESXi のときの VMwareTools のインストールが楽だったのに比べ、今回の作業は割と大変です。