「Openstack環境下でもWindowsが使いたい!」という事で、KVM上でWindows10VMを使える状態、Openstackで管理できる状態にします。
もくじ
- virtを使ったWindows10仮想マシンのインストール
- OpenstackへのWindows10仮想マシンの登録
- 仮想マシンディスク容量の拡張
- MacからWindow仮想マシンへのリモートデスクトップ接続
動作環境
- ホストマシン: Ubuntu server 18.04
- Openstack queens(Ubuntuリポジトリからのダウンロード)
- ゲストマシン: Windows10
virtio-winをダウンロード
virtioは仮想化環境のためのI/Oフレームワークです。KVMでWindows10のVMを利用するために必要なのでインストールします。
以下のURLの下のほうにvirtio-win.isoのダウンロードリンクがありますので、ホストマシンにダウンロードしておきます。
StableとLatestがありますが、今回はStableを選択しました。
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
windows10.isoのダウンロード
以下からwindows10のisoファイルをダウンロードします。
https://www.microsoft.com/en-us/software-download/windows10ISO
wgetで取る方法が分からなかったので、一旦メインPCであるMacでダウンロードしてscpでUbuntuに送り込みました。
インストール用ディスクの作成
$ qemu-img create -f qcow2 ./empty-disk.qcow2 1G
Formatting './empty-disk.qcow2', fmt=qcow2 size=1073741824 cluster_size=65536 lazy_refcounts=off refcount_bits=16
$ qemu-img create -f qcow2 ./Windows10.qcow2 20G
Formatting './Windows10.qcow2', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16
emptyディスクは後ほどwindows上でvirtioドライバをインストールする際に必要となります。
windowsのインストール
ダウンロードしたwindows10のファイル名はwindows10.iso
ダウンロードしたvirtio-winのファイル名はvirtio-win.iso
となったときのインストールコマンドは下記です。
余裕があればCPU, メモリは増やしたほうがインストールが早めに終わるかと思います。
後ほどvirtio-winドライバをインストールするemptyディスクにはbusのタイプとしてvirtioを選択します。
ここで、
- 空のディスク
- 仮想ネットワーク
をアタッチすることでwindowsにデバイスを認識させ、そのデバイスに対してvirtio-winドライバーをインストールします。
$ virt-install --connect qemu:///system --name Windows10 --ram 4096 --vcpus 8 --network bridge=virbr0,model=virtio --disk path=Windows10.qcow2,format=qcow2,device=disk,bus=ide --disk path=./windows10.iso,device=cdrom,bus=ide --disk path=./virtio-win.iso,device=cdrom,bus=ide --disk path=empty-disk.qcow2,format=qcow2,bus=virtio,cache=none --graphics vnc,port=5901,listen=0.0.0.0 --os-type windows --os-variant win10
ちなみに--os-variant
で指定出来る値は以下のコマンドで確認できます。
osinfo-query os
以下のサイトを参考にしました。ありがとうございました。
参考:http://blog.bit-isle.jp/bird/2015/12/1104
Windows10 VMへアクセス
ここからはVMの画面にアクセスする必要があります。
手順は割愛しますが、
- (メインPCがmacなので)XQuartzをインストール・起動し
- sshで-Xコマンド付きでログイン
- コマンドラインでvirt-managerを起動
という手順でUbuntuServer上のvirt-managerがメインPCで表示されるようにします。
virt-installコマンドで実行中のVMがvirt-managerに表示されますので、"Open"をクリックしてVM画面を表示します。
画面を開くとWindowsのインストール画面が出ますので、カスタムインストールとして進めましょう。
ちなみにWindowsのプロダクトキーは後から入れることもできるので、一旦「プロダクトキーがありません」を選択してインストール作業を進めることもできます。
OSはWindows10 Proを選択しました。ちなみにWindows10 Proでないとリモートデスクトップができないようです。
途中でリブートが入りますが、シャットダウンだけしてブートしない事がありました。
そのときは手動で立ち上げてください。
Windowsが起動したあと、デバイスマネージャーからvirtio-winのドライバをインストールします。
ほかのデバイスに表示される全てにvirtio-winドライバをインストールします。
CDドライブのEにvirtioが割り当てられていたため、選択しインストールします。
以上で、KVM上でWindows10を使うことができるようになりました。
OpenstackでWindows10 VMを管理する。
イメージのアップロード
インストールの際に利用したWindows10.qcow2
イメージをopenstackにアップロードします。
10Gほどあったため、結構時間がかかりました。
openstack image create --file ./Windows10.qcow2 --disk-format qcow2 --public Windows10_Pro
ボリュームの作成
イメージからボリュームを作ってインスタンス起動します。
500Gのボリュームをつくりました。これも割と時間がかかります。
インスタンスの作成
ボリュームからインスタンスを起動します。
HorizonのVNCからもWindowsが起動できていることが認識できます。
IPアドレスの確認
Openstack上では192.168.11.102
のIPが振られていますので、当然windowsVMにも同じIPが振られています。
ディスクの設定
インストール時につかったディスク(Windows10.qcow2)が20Gだったため、20GしかCドライブどして認識されていません。
500Gのボリュームで作成したため、480G未使用領域があります。これをCドライブに結合します。
ウインドウズボタンを右クリックして、"ディスクの管理"から実施します。
Cドライブに500Gが割り当てられました!
リモートデスクトップの設定
Windows側でリモートデスクトップ設定をオンにする。
セキュリティグループの設定を追加する。
RDPは3389のポートを使うので、3389を開放します。調べてみるとUDPの3389も使うようですが、とりあえずTCPの3389だけ開けて接続可能でした。
リモートデスクトップビューワーの設定
当方のメインPCがmacなので、macからwindowsへRDP接続する方法です。利用するソフトウェアが違うだけで実質同じことをするかと思います。
Microsoft製のビューアーがAppStoreにあるのでこれをダウンロードします。
2つ種類がありますが、どちらでもアクセス可能でした。
無事、リモートデスクトップ接続できました!