KVM on CentOS7 にゲストOSを作成する

KVM on CentOS7 のゲストOS に CentOS6.7 をインストールする

グラフィカルインストールを行うため、virt-viewer をインストール
（クライアントは、64bit Windows 環境のため、virt-viewer のWin x64 MSI をクライアントにインストールした）
　https://virt-manager.org/download/

KVM サーバーにも virt-viewer をインストール

```
# yum install virt-viewer
```

ゲスト OS の作成を開始

```
# virt-install \
--name CentOS6.7_1 \ #ゲスト OS 名
--ram 512 \ #ゲスト OS のメモリ（MB）
--vcpus=1 \ #ゲスト OS の vcpu
--file=/data/kvm/images/CentOS6.7_1.img \ #ゲスト OS の仮想ディスク
--file-size=20 \ #仮想ディスクサイズ（GB）
--cdrom=/data/iso/CentOS-6.7-x86_64-bin-DVD1.iso \ #メディア
--os-variant=centos6.5 \　　　#コマンド "osinfo-query os" でos-variant の種類が確認可能
--network bridge=br0 \ #使用する NIC
--accelerate \ #カーネルアクセラレーション
--graphics spice,listen=0.0.0.0 --channel spicevmc \ #グラフィックインストール
--video qxl \ 
--autostart \ #ホスト起動時のゲスト自動起動設定
--noreboot #インストール後のゲスト起動しない
```

```
# virt-install \
> --name CentOS6.7_1 \
> --ram 512 \
> --vcpus=1 \
> --file=/data/kvm/images/CentOS6.7_1.img \
> --file-size=20 \
> --cdrom=/data/iso/CentOS-6.7-x86_64-bin-DVD1.iso \
> --os-variant=centos6.5 \
> --network bridge=br0 \
> --accelerate \
> --graphics spice,listen=0.0.0.0 --channel spicevmc \
> --video qxl \
> --autostart \
> --noreboot
WARNING  グラフィックスが要求されていますが DISPLAY 変数が設定されていません。virt-viewer を起動できません。
WARNING  ゲストのコンソールがないため、デフォルト値 --wait -1 を適用します。

インストールの開始中...
ドメインを作成中...                              |    0 B     00:00
仮想マシンのインストールが進行中です。インストールが完了するまで  待機します。
```

spice ポートの確認

```
# virsh dumpxml CentOS6.7_1 | grep graphics | grep port
    <graphics type='spice' port='5900' autoport='yes' listen='0.0.0.0'>
```

Remote Viewer(virt-viewer) を起動し、KVM ホストの spice ポートに接続

　spice://"IP address":5900

CentOS のグラフィカルインストールが開始される

※firewalld で許可していない場合は接続できないので、許可するか一時的に firewalld を停止する


CentOS のインストール完了後、以下メッセージが表示される

```
ドメインがシャットダウンしました。続けています。
仮想マシンの作成が完了しました。
現在、稼働中の仮想マシンを再起動することができます。
virsh --connect qemu:///system start CentOS6.7_1
```

ゲスト OS からインストールディスクを切断する

```
# virsh detach-disk CentOS6.7_1 hda --persistent
ディスクが正常に切断されました
```

ゲスト OS 起動

```
# virsh start CentOS6.7_1
```

再度 Remote Viewer で、ゲスト OS に接続

```
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=YES
BOOTPROTO=dhcp
# service network restart
```

DHCP で IP アドレスが取得できない
ホストの bridge 設定で br0 が vnet0 に接続されていて、物理 NIC (enp2s7) に接続されていない
brctl で br0 を enp2s7 に接続する

```
# brctl addif br0 enp2s7
# brctl show
# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.001d7378336d       no              enp2s7
                                                        vnet0
virbr0          8000.525400778320       yes             virbr0-nic
```

ホストの再起動

```
# shutdown -r now
```

再度 Remote Viewer で、ゲスト OS に接続
DHCP で IP アドレス取得に成功した

spice 接続は切りたいのでホストからコンソール接続

```
# virsh console CentOS6.7_1
ドメイン CentOS6.7_1 に接続しました
エスケープ文字は ^] です
```

接続はできているように見えるが何も操作できない状態

ゲスト OS の grub.conf を編集
　serial --unit～ を追加
　terminal --timeout～ を追加
　kernel 行の末尾に console=ttyS0,115200n8 を追加

```
# vi /etc/grup.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
serial --unit=0 --speed=115200
terminal --timeout=10 serial console
title CentOS 6 (2.6.32-573.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=VolGroup/lv_root LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet console=ttyS0,115200n8
        initrd /initramfs-2.6.32-573.el6.x86_64.img
```

ゲスト OS の再起動

```
shutdown -r now
```

ホストからコンソール接続成功

```
# virsh console CentOS6.7_1
ドメイン CentOS6.7_1 に接続しました
エスケープ文字は ^] です
localhost.localdomain login:
```

spice 接続設定解除

```
# virsh edit CentOS6.7_1
    <graphics type='spice' autoport='yes' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
      <image compression='off'/>
    </graphics>
```

ゲスト OS をシャットダウンするて設定が反映される

※ゲスト OS を起動する際、ホストのコンソールに以下のメッセージが表示されるが未解決