Ubunut20.04 KVMでプライベートクラウドを構築しよう ~その2 KVMのインストールと仮想マシンの作成
本記事は、Ubuntu20.04 LTSにKVMをインストールして、仮想マシンを作成する方法について説明します。
関連記事
インストールするパッケージについて
KVMのインストールと仮想マシンの作成(この記事)
KVMの仮想環境
サーバ接続用仮想ネットワークの作成
1.必要なパッケージのインストール
Ubuntu20.04へのKVMのインストールでは、qemu-kvmとlibvirt-daemon-systemの2つのパッケージをインストールします。2つのパッケージが必要とする他のパッケージは自動的にインストールされます。
$ sudo apt update
$ sudo apt install qemu-kvm
$ sudo apt install libvirt-daemon-system
dpkgコマンドで、目的のパッケージがインストールされたかどうか確認します。
$ dpkg -l |grep qemu-kvm
ii qemu-kvm 1:4.2-3ubuntu6.17 amd64 QEMU Full virtualization on x86 hardware
$ dpkg -l |grep libvirt-daemon-system
ii libvirt-daemon-system 6.0.0-0ubuntu8.11 amd64 Libvirt daemon configuration files
ii libvirt-daemon-system-systemd 6.0.0-0ubuntu8.11 amd64 Libvirt daemon configuration files (systemd)
$
ipコマンドでネットワークインタフェースカード(NIC)の設定を確認します。
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether 52:54:00:b1:43:5a brd ff:ff:ff:ff:ff:ff
inet 192.168.0.123/24 brd 192.168.0.255 scope global enp1s0
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:cd:45:1c brd ff:ff:ff:ff:ff:ff
inet 192.168.123.1/24 brd 192.168.123.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:cd:45:1c brd ff:ff:ff:ff:ff:ff
ipコマンドの出力で見えているvirbr0は、KVMインストール時に作成された仮想ブリッジです。仮想ブリッジvirbr0に、ipアドレス192.168.123.1/24が付与されていますね。virbr0-nicはKVMデフォルトネットワークのブリッジの接続ポートです。KVMデフォルトネットワークの構成詳細については、次の記事を参照してください。
2.仮想マシンの作成
2.1.KVM仮想マシンのゲストOSとして動作するOS
wikipediaによると、KVMで作成した仮想マシンには、各種LinuxOSのディストリビューション、Windows、macOS、bsd、android、sorarisなど、幅広いOSをインストールすることができるようです(一部は制限つきとのこと)。
2.2.ゲストOSのダウンロード
本記事では、virt-managerを使ってGUIから仮想マシンを作成し、Ubuntu20.04をインストールする方法について説明します。
まずは、Ubuntuの日本コミュニティのダウンロードサイトから、iso形式のOSファイルを、ホストマシンの適当なフォルダにダウンロードします。ダウンロードサイトはどこでも構いません。日本語デスクトップ版Ubuntu20.04のisoファイル名は、以下のリンクからダウンロードください。
ubuntu-ja-20.04.1-desktop-amd64.iso(ISOイメージ)
ファイル名に"amd64"が含まれていますが、intel cpuのPCでも問題なくインストールできます。
2.3.仮想マシンの作成
インストールするOSファイルのダウンロードが完了したら、virt-managerを起動します。
仮想マシンマネージャを開いたら、メニューから、
ファイル→新しい仮想マシン
を選択。新しい仮想マシン作成画面が表示されます。
ここからは、virt-managerのwizardにしたがって、以下の5ステップで仮想マシンを作成していきます。
1.ゲストOSインストール方法の選択
2.インストールするゲストOSのisoファイルを選択
3.仮想マシンに搭載させるCPUコア数とメモリサイズを設定
4.ストレージサイズの設定
5.仮想マシン名と接続先ネットワークの設定
step1:
インストール方法を選択します。ローカルのインストールメディアを選択して「進む」をクリック。
step2:
インストールするOSのisoファイルを選択します。参照...ボタンをクリックし、上記でダウンロードしてきたisoファイルを選択します。
また、画面下部でどのOSをインストールするか選択します。うまく自動検出できない場合は自動検出のチェックをはずして、テキストボックスに"Ubuntu"と入れると、自動的にサポートバージョンが表示されますので、該当のものを選択肢、「進む」をクリック。
step3:
仮想マシンに搭載させるCPUコア数とメモリサイズを設定します。メモリはMB、CPUはコア数で設定します。ここで設定するCPUコア数は、ホストPCのスレッドに該当します。仮想マシンが消費できるCPU/メモリリソースは、自身に割り当てられたリソースが上限となります。また、ホストPCに搭載している以上のCPU/メモリリソースを、1台の仮想マシンに対して割り当てることはできません。
CPUとメモリの割当設定は仮想マシン作成後でも変更することができます。
複数の仮想マシンを作成する場合、割当リソースの合計については、ホストPCのCPU/メモリリソースを超えて設定できます(オーバーコミットという)。仮想環境全体の負荷が低い場合はオーバーコミット設定は問題ありません。ただし、仮想環境の負荷が高くなり、ホストマシンのリソースを全て消費してしまうと、ホストマシンは操作不能になります。この場合、仮想マシンの管理もできなくなってしまうため、ホストマシンを強制再起動することになってしまいます。
設定したら「進む」をクリック。
Step4:
仮想マシンのストレージサイズを設定します。本記事では、カスタムストレージの設定の説明については割愛します。
仮想マシンが使うディスクボリュームは、ホストマシンから見ると拡張子が.qcow2のイメージファイルとして作成されます。イメージファイルが作成されたときに必要なストレージ容量が専有されるため、ストレージに関してはオーバーコミットできません。
設定したら「進む」をクリック。
仮想マシンのディスクボリュームサイズ(下図で設定)を仮想マシン作成後に変更するのはとても面倒です。ただし、新しく仮想マシン用のディスクボリュームをイメージファイルとして作成し、これを仮想マシンからマウントすることでストレージ容量を拡張することは可能です。
Step5:
仮想マシン名と接続先ネットワークを設定します。
仮想マシン名は任意の名前を設定します。
接続するネットワークの選択は、KVMインストール直後は「仮想ネットワーク'default':NAT」(KVMのデフォルトネットワーク)しか表示されないと思いますので、ここではこれを選択します。
2.4.OSのインストール
仮想マシンの作成が完了したら、仮想マシン作成のstep2で指定したisoファイルのOSインストール画面が表示されます。
インストール方法については、各OSの手順に従ってください。Ubuntu20.04LTSのインストール方法については、こちらの記事で紹介しているので、参考までに。
KVMの仮想環境に作成した仮想マシンは、そのままデスクトップ端末として利用することができます。仮想マシンのモニタは、仮想マシンマネージャの別ウインドウで表示され、そこから操作することができます。
KVMのデフォルトネットワークに接続された仮想マシンについては、ネットワーク関連の設定が自動設定となります。
インストール時に作成した仮想ブリッジvirbr0がDHCPサーバとなり、仮想マシン起動時にIPアドレスを付与します。付与されるIPアドレスは、virbr0のIPネットワーク(192.168.123.0/24)の中から、未使用のIPアドレスが選択されます。
デフォルトネットワークの構成概要については、次の記事で説明しています。
4.仮想マシンマネージャについて
仮想マシンマネージャは、仮想マシンの作成、削除に加えて、作成済の仮想マシンの実行(電源ON)、停止(シャットダウン/強制電源OFF)や、作成済仮想マシンのコピー(クローン)を作成したりすることができます。
また、実行中(電源ON)の仮想マシンを選択→右クリック→開くを選択すると、仮想マシンのモニタがそのまま表示されます。仮想マシンのデスクトップGUIもそのまま使うことができます。