2019年1月28日月曜日

KVM 入門

概要

Ubuntu 16.04 上で KVM を試してみました
インストール方法から CentOS のイメージで VM を作成するところまでやってみました

環境

  • Ubuntu 16.04
  • libvirt 1.3.1-1ubuntu10.24

KVM インストール

  • sudo apt -y install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virtinst
  • systemctl status libvirt-bin

ステータスがアクティブになっていれば OK です
また kvm-ok コマンドで

CentOS7 VM 起動

ISO ファイルを取得してそこから qemu で動作するイメージを作成して VM を起動します

イメージ作成

qemu-img コマンドを使ってイメージを作成します

  • wget 'http://ftp.riken.jp/Linux/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso'
  • cd /var/lib/libvirt/images
  • sudo qemu-img create -f qcow2 centos7.qcow2 10G

VM 起動

virt-install コマンドで VM を作成、起動します
少し長いので区切っています
1 行で実行しても OK です

sudo virt-install \
  --name centos7.qcow2 \
  --disk path=/var/lib/libvirt/images/centos7.qcow2,size=10 \
  --vcpus 1 \
  --ram 512 \
  --os-type linux \
  --graphics none \
  --console pty,target_type=serial \
  --network bridge:virbr0 \
  --location '/home/user_name/CentOS-7-x86_64-Minimal-1810.iso' \
  --extra-args 'console=ttyS0,115200n8 serial'

コンソールへの接続はシリアル通信を使います (最後の 1 行)

CentOS7 のインストール

起動するとまずは CentOS7 のインストールが始まります
今回の場合、インストールイメージから VM を作成したのでそうなります
すでに OS インストール済みの qemu イメージを作成すればこの作業は不要になります

今回はターミナルで virt-install から起動しているので CUI 環境で進めます
ISO からインストーラが起動すると以下のような画面になります

ここで表示されているのはインストール時に設定が必要な項目になります
「!」になっている部分は設定が必須になるので数字を入力して設定を進めます
例えば「2」を押すとタイムゾーンの設定になります
設定方法も必要な数字を押して「c」で次の設定へみたいな感じで CUI 上だけで進めることができます
あとは root パスワードやインストールディスクの設定をすれば OK です
すべてが「x」になったら「b」でインストールを開始することができます

ログイン

30 分ほどするとインストールが完了します
今回はシリアル接続で VM との通信を行います
インストールが完了すると以下の画面になるので設定した ID/PW でログインできるか確認してみましょう

VM 停止、削除

CentOS7 上で shutdown コマンドを実行しても OK です
virsh を使う場合は以下の通りです

  • virsh shutdown centos7.qcow2

or

  • virsh destory centos7.qcow2

shutdown で停止できない場合は destory してください
停止できたら削除します

  • virsh undefine centos7.qcow2

list コマンドで表示されなければ削除が完了しています

  • virtsh list --all

ネットワーク設定

実は上記の方法で起動すると外部のネットワークに通信することができません
KVM のプロセス (libvirtd) が自動で作成してくれている NAT 用のネットワークがあります
それを VM にアタッチすることで外部通信できるようになります

  • sudo virsh attach-interface centos7.qcow2 network default

これで ping 8.8.8.8 などを実行すると VM -> ホストマシンを経由して外部に接続できます
当然ですがホストマシン自体が外部に接続できる必要はあります

最後に

KVM に入門してみました
いわゆる仮想化ソフト (ハイパーバイザ) なので VirtualBox や VMware と同じように使えると思います
今回は CUI ベースで進めましたがデスクトップ Ubuntu にすれば virt-manager を使って GUI で VM の作成や削除を行うことがもできます

Windows や Mac を使っている環境で仮想化するのに LVM は使わないと思いますが、Linux を使っているのであればありかなと思います

大規模に KVM を利用する場合は OpenStack と組み合わせて使うと良いと思います
OpenStack も過去に構築しているので興味があれば見てください

参考サイト

0 件のコメント:

コメントを投稿