sudo apt- install openssh-server sudo systemctl start sshd
Ubuntu 20.04.3 LTSにKVM環境の構築
作成日 | : | 2021/09/20 |
---|---|---|
最終更新日 | : | 2021/09/20 |
Ubuntu 20.04.3 LTSにKVM環境の構築
作成日 | : | 2021/09/20 |
---|---|---|
最終更新日 | : | 2021/09/20 |
概要
記事を溜め込んでいるので、少しずつ放出します。
Ubuntu 20.04.3 LTS(Long Term Support)にKVM(Kernel-based Virtual Machine)環境を構築するまでの間に、Ubuntu Server 18.04 LTSやUbuntu Server 20.04 LTSにKVM環境を構築してきましたが、その内容は割愛します。
今までは、サーバー機に常時モニタを接続していなかったこともあり、サーバー用のディストリビューションを導入していましたが、サーバー機からHDMIケーブルとUSBの延長ケーブルを自席まで引き回したことを機に、普通のデスクトップ向けのディストリビューションに変更しました。デスクトップ向けのUbuntuを個人向けに使用する一番のメリットはLive patchを利用できることだったりします。ただし、パッチを当ててくれるだけなので必要に応じて再起動は必要です。次点で、そのままデスクトップ利用できる点でしょうか。
サーバー環境の変遷も例によって挙げておきます。
- PC実機数台構成
- FreeBSD jailによる仮想化
- VirtualBoxによる仮想化
- Xenによる仮想化
- KVMによる仮想化 ←今ここ
HOSTの設定
本稿では、サーバー機本体をHOSTと呼び、KVM上に構築する環境をGUESTと呼びます。
Ubuntu Server 20.04.3 LTSのインストール
HOSTとなる端末のOSはUbuntu 20.04.3 LTSを用います。 最近はUbuntuのインストールをUSBメモリから行うことが多くなりました。 今回は、デスクトップ環境を構築するので、Ubuntuのインストール時に設定することの内容に沿って初期設定します。
OpenSSHのインストール
通常はデスクトップ環境にログインして設定変更すればよいですが、SSHでログインできると何かと便利なためOpenSSHを導入します。
KVMの導入
KVMの導入
KVMを導入するにあたって、フロントエンドにlibvirt[1]を用いると管理がとても楽になります。インストールが終わったあとに、自動生成される kvm と libvirt という名称のグループへKVMを使用するユーザを所属させます。
sudo apt install libvirt-clients qemu-utils qemu-kvm libvirt-dev libvirt-daemon virtinst libvirt-daemon-system sudo gpasswd -a ユーザ名 kvm sudo gpasswd -a ユーザ名 libvirt
HOSTのNICをブリッジに変更
UbuntuはNIC(Network Interface Card)をNetplanで管理しますが、デスクトップ版ではNetwork Managerによって管理します。 そのため、nmcliコマンドを使用して設定を変更します。今回、設定変更するインタフェースは enp2s0 になります。また、IPv4アドレスは固定し、IPv6アドレスは動的に設定します。 ブリッジインタフェースはデフォルトでSTP(Spanning Tree Protocol)が有効になっているため、無効化しておきます。
nmcli connection add type bridge ifname br0 nmcli connection modify bridge-br0 bridge.stp no nmcli connection modify bridge-br0 \ ipv4.method manual \ ipv4.address "CIDR表記のIPアドレス" \ ipv4.gateway ゲートウェイのIPアドレス \ ipv4.dns DNSサーバのIPアドレス \ ipv6.method auto nmcli connection add type bridge-slave ifname enp2s0 master bridge-br0 nmcli connection delete 有線接続\ 1
上記の設定変更をしたら、一回再起動します。
仮想HDDの作成
仮想HDDファイルを作成します。 /var/log は別の仮想HDDファイルに格納したいので2つ作成します。作成する場所は /home/kvm/vm 以下とします。作成する場所は適宜読み換えてください。
qemu-img create -f qcow2 UbuntuServer-20.04.3LTS.qcow2 40G qemu-img create -f qcow2 log.qcow2 4G
GUEST用OSのインストールメディアの用意
GUEST用のインストールメディアのイメージをHOSTにダウンロードします。今回はUbuntu ServerをGUESTにインストールすることにするので、ubuntu-20.04.3-live-server-amd64.isoをダウンロードしておきます。また、ダウンロードしたISOファイルは /home/kvm/iso 以下に格納しておきます。
GUESTの起動
サーバー機にインストールしているのでGUESTのコンソールへはVNCでアクセスすることにします。 対してクライアントとしてはUbuntuにはRemminaというVNCクライアントが入っているのでこれを使用します。
以下のコマンドを実行してGUESTを起動します。このコマンドの例では、guestという名前でGUESTを定義します。また、HOSTのポート番号65000へVNCを用いてアクセスすることで、GUESTのコンソール画面を操作可能です。また、キーボードは日本語キーボードを想定しています。
sudo apt install libvirt-clients qemu-utils qemu-kvm libvirt-dev libvirt-daemon virtinst libvirt-daemon-system sudo gpasswd -a ユーザ名 kvm sudo gpasswd -a ユーザ名 libvirt
インストールを完了し、再起動をかけるところまで進むとGUESTが終了します。
GUESTの起動
以下のコマンドを実行すると、GUESTが起動します。
virsh start guest
起動しているGUESTの確認
以下のコマンドを実行すると、起動しているGUESTを確認できます。また、 --all オプションを付与することで、起動していないGUESTを含めた一覧を表示可能です。
virsh list (ここから) Id Name State --------------------------- 1 guest running (ここまで)
GUESTの設定変更
以下のコマンドを実行すると、GUESTの仮想マシンとしての設定を変更できます。設定変更はGUESTを停止している状態で行うと良いです。
virsh edit guest
GUESTの自動起動
以下のコマンドを実行すると、HOSTの起動時にGUESTを自動起動します。自動起動を解除する場合には、 autostart と guest の間に --disable オプションを追加してコマンドを実行します。
virsh autostart guest
まとめ
- Ubuntu 20.04.3 LTSにKVM環境を構築した。
- デスクトップ版のUbuntuはNICの操作をするのに nmcli コマンドを使用する。
- libvirtを用いるとGUESTの操作がかんたんになる。