LoginSignup
5
5

More than 1 year has passed since last update.

kvm(仮想環境) インストールと管理コマンド

Last updated at Posted at 2018-07-10

長年、xenばかり使用していたがkvmに変更した。今はxenよりもkvmのほうが情報の入手がしやすいので、新規で導入する場合はkvmが多いと思う。ホストOS/ゲストOS共にdebian stretchを使った。ここでは、簡単にインストール方法・イメージ作成・管理コマンドを紹介する。

2023-02-27 bullseye (debian11用に修正)

インストール

kvm本体とツール

kvm本体とツールは、全てaptコマンドでインストールする。

apt install qemu-kvm libvirt-clients qemu-utils libvirt-daemon-system bridge-utils libosinfo-bin virt-manager libguestfs-tools

ネットワークブリッジ

ゲストOSでネットワークを利用するには、ホストOSにネットワークブリッジを構築する必要がある。最近のlinuxディストリビューションは、歴史的に使われていたeth0ではなくenp1s0を使う。古い資料を参考にする場合には注意が必要だ。

/etc/network/interfaces
auto lo br0
iface lo inet loopback

allow-hotplug enp1s0
auto lo
iface lo inet loopback
auto br0
iface br0 inet dhcp
      bridge_ports enp1s0
      bridge_stp off
      bridge_maxwait 0

ホストOSのipアドレスを固定する場合は、dhcpを記述している部分を次の例にならって書き換える。

ipアドレスを固定する
iface br0 inet static
      address 192.168.0.14
      netmask 255.255.255.0
      network 192.168.0.0
      broadcast 192.168.0.255
      gateway 192.168.0.1
      dns-nameservers 192.168.0.1

再起動と確認

上記まで終了したら再起動して、ホストOSでインターネットへの接続とブリッジの状態を確認する。

インターネット接続の確認
$ping www.google.com
ブリッジの状態の確認
#brctl  show
bridge name     bridge id               STP enabled     interfaces
br0             8000.6805ca195b65       no              enp1s0

ゲストOSの作成

環境変数$servernameにサーバー名を設定する。

servername=(サーバー名)

イメージの生成とゲストOSのインストーラの起動

次のコマンドを実行する。上記の環境変数$servernameを設定しておく。
ここでは、DISK 60Gbyte /RAM 1Gbyte /CPU 1個で設定した。

virt-install \
--name ${servername} \
--ram 3072 \
--disk path=/var/lib/libvirt/${servername}.img,size=60 \
--vcpus 1 \
--os-type linux \
--os-variant debian10 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location 'http://ftp.jaist.ac.jp/pub/Linux/debian/dists/Debian11.6/main/installer-amd64/' \
--extra-args 'console=ttyS0,115200n8 serial' \
--autostart

インストーラとgrub

最後にgrubを導入するとき/dev/vda を選択することにさえ注意すれば、インストーラに従えば問題ない。grubの設定後ゲストOSが再起動するが、このときgrubを操作しゲストOSを終了させ、次節のゲストOSのシリアルポートとホストOSのコンソール接続の設定を行う。この設定をしないと、ホストOSの画面には何も表示されず、ゲストOSのコンソールにログインできない。grubは起動すると、数秒で終了しOS起動になってしまうので、素早くcキーを押しgrubのコマンドラインを表示させる必要がある。コマンドラインが表示されたら、haltコマンドでゲストOSを終了することができる。

  • grubの操作(メニュー)
操作 摘要
v メニューを下に移動
^ メニューを上に移動
(enter) メニューを選択
c コマンドライン表示
  • grubの操作(コマンド)
コマンド 摘要
halt 電源を切る

ゲストOSのシリアルポートとホストOSのコンソール接続

ここでも環境変数$servernameにサーバー名を設定しておく。

動作確認と、ゲストOSの起動

# ゲストOSの一覧
virsh list --all

# ゲストOSの起動とコンソール接続
virsh start ${servername} --console

ゲストOS内 console 作業

これ以降は、通常のlinuxと同様にセットアップを行う。
終了し、ホストOSに戻る場合はCtrl + ]

管理コマンド

よく使うkvmの管理コマンドをまとめる。これまでと同様、環境変数$servernameには、サーバー名を登録する。(スナップショット関連については、後日更新予定)

ゲストOSの一覧

virsh list --all

ゲストOSの起動

virsh start ${servername} 

ゲストOSのコンソール接続

virsh console ${servername} 

終了する場合はCtrl + ]

ゲストOSの終了

virsh shutdown ${servername} 

ゲストOSの強制終了

virsh destroy ${servername} 

ゲストOSの削除

(スナップショットがあれば、スナップショットを削除する。)

1.管理から外す

virsh undefine ${servername} 

2.DISKイメージの削除

rm /var/lib/libvirt/images/${servername}.img

更新

2018/12/28 必要なパッケージの変更
2023/02/27 debian11(bullseye)用に変更

####### 誤りやもっといい方法など、ご指摘ください。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5