Ubuntu 18.04: 仮想化のKVMをインストールする

KVMをインストールする手順を記載します。

1 qemu-kvmとlibvirtのインストール

qemu-kvmとKVM設定用のパッケージをインストールします。

$ sudo apt install -y qemu-kvm libvirt0 libvirt-bin \
  virt-manager libguestfs-tools

2 bridgeインターフェース

外部から仮想マシンへアクセスする場合は、こちらの手順でbridgeインターフェースを設定してください。

3 libvirtグループ

libvirtグループに所属しているとsudoなしでvirt-managerやvirshを実行できます。

$ sudo gpasswd libvirt -a username
$ sudo reboot

4 SSHを利用してリモートアクセスする

SSH経由でlibvirtにアクセスすることができます。

SSH公開鍵を使えばパスワード入力が不要です。クライアント側でSSH鍵を作成します。

$ ssh-keygen -t rsa -f ~/.ssh/id_rsa -N ""
Generating public/private rsa key pair.
Your identification has been saved in /home/hiroom2/.ssh/id_rsa.
Your public key has been saved in /home/hiroom2/.ssh/id_rsa.pub.
<snip>
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB... username@clientname

KVMをインストールしたサーバ側の~/.ssh/authorized_keysに公開鍵を追加します。

$ cat ~/.ssh/authorized_keys
ssh-rsa AAAAB... username@clientname

クライアント側で-cオプションでKVMがインストールされたサーバを指定します。

$ virsh -c qemu+ssh://username@servername/system

VIRSH_DEFAULT_CONNECT_URI変数を使えば-cオプションで指定した場合と同様になります。.bashrcに書いておくと良いでしょう。

$ export VIRSH_DEFAULT_CONNECT_URI=qemu+ssh://username@servername/system
$ virsh

virt-managerの場合は"Add Connection"からKVMをインストールしたサーバを指定します。

File -> Add Connection

0001_AddConnection.png

5 ISOファイル用のプール追加

ISOファイルをダウンロードし、iso用のディレクトリ /var/lib/libvirt/isosを作成します。 こちらのページにあるubuntu-18.04-desktop-amd64.isoをダウンロードします。

$ wget http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso
$ sudo mkdir /var/lib/libvirt/isos
$ sudo mv ubuntu-18.04-desktop-amd64.iso /var/lib/libvirt/isos/
$ sudo chown libvirt-qemu:libvirt \
/var/lib/libvirt/isos/ubuntu-18.04-desktop-amd64.iso

virshを使ってプールを追加するには以下のコマンドを実行します。

$ virsh pool-define-as isos dir - - - - /var/lib/libvirt/isos
$ virsh pool-autostart isos
$ virsh pool-start isos

virt-managerを使ってプールを追加するには、QEMU/KVMを左クリックして "Details"を右クリックします。

$ virt-manager

0002_OpenDetails.png

左下の"+"ボタンを押してストレージプールを追加します。 "Name"を入力し、"Type"に"dir:Filesystem Directory"を指定します。

0003_AddANewStoragePoolStep1.png

"Target Path"に作成した/var/lib/libvirt/isosを指定します。

0004_AddANewStoragePoolStep2.png

ISOファイル用プールがvirt-managerに追加されました。

0005_StoragePoolIsAdded.png

6 virt-managerで仮想マシンを作成する

virt-managerを起動し、QEMU/KVMを左クリックして"New"を右クリックします。

$ virt-manager

0006_CreateANewVirtualMachine.png

"Local install media"を選択し、"Forward"をクリックします。

0007_LocalInstallMedia.png

"Use ISO image"を選択し、"Browse"をクリックします。

0008_UseISOImage.png

"isos"プールでISOファイルを選択し、"Choose Volume"をクリックします。

0009_ChooseVolume.png

ISOファイルが選択されました。 "OS type"と"Version"がUnknownのままの場合は手作業で設定します。 Ubuntu 18.04の場合は"OS type"をLinuxに、"Version"もできる限りUbuntu 18.04に近いものにします。

0010_IsoImageIsChosen.png

メモリとCPUの数を設定します。

0011_ChooseMemoryAndCPUSettings.png

ストレージを作成します。デフォルトでは/var/lib/libvirt/imagesディレクトリの"default"プールに qcow2形式のファイルが作成されます。

0012_EnableStorageForThisVirtualMachine.png

仮想マシンの名前を入力します。キーボードレイアウトの設定等をする為に"Customize configuration before install"にチェックを入れます。 "Network selection"でネットワークの設定をします。nmcliと systemd-networkdでbridgeインターフェースを作成した場合はbr0がデフォルトでは表示されませんが、"Specify shared device name"でbr0を指定すれば使うことができます。

0013_ReadyToBeginTheInstallation.png

"IDE Disk 1"を選択します。 "Advanced options"の"Disk bus"を"VirtIO"に設定します。 "VirtIO"だとゲストOSでは準仮想化ドライバが動作して性能的に有利です。

0014_VirtualDisk.png

"Display Spice"を選択します。 "Keymap"が空になっているのでお使いのキーボードレイアウトの設定に変更します。日本語の場合は"ja"です。

0015_SpiceServer.png

"NIC"を選択します。この段階ではMACアドレスを変更することが可能です。

0016_VirtualNetworkInterface.png

"Begin Installation"をクリックするとインストールが開始されます。物理マシンにインストールする場合と同様の手順でインストールしてください。