Linux Mint Mate19にKVM環境導入

[Linux Mint](https://linuxmint.com/)はミニマムで軽量で自分の一番好きなOS(Debian系)です。
今回Linux Mint バージョン: Mate 19にKVM環境を導入し、VMでCentOS7 minimalを立ち上げるところまでやります。
KVMはLinux Kernel自体を仮想化する仕組み、技術です。CLIでVM Managerが操作できるところが管理しやすく、こちらも個人的に好きな仮想環境です。
[・KVMとは (RedHat社)](https://www.redhat.com/ja/topics/virtualization/what-is-KVM)

### 前提
・Linux MintのOSインストール済み。
・Xで接続できる、またはGUIログインできる環境で実施。
・https://www.centos.org/download/ よりCentOS-7 Minimalをダウンロードしておく。

## KVM環境導入
※Linux Mintのサーバ内、rootユーザでの作業。

### 仮想化に対応しているCPUか確認
```
# egrep -c '(vmx|svm)' /proc/cpuinfo
※0の場合、ハードウェアが仮想化のサポートをしていないためKVM環境導入が不可です。
```

### qemu-kvmとKVM設定用のパッケージをインストール
```
# apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils libguestfs-tools virt-manager
```

### kvmモジュール確認
```
root@linuxmint-mate:~# lsmod | grep kvm
kvm_intel             204800  0
kvm                   593920  1 kvm_intel
irqbypass              16384  1 kvm
```

### 起動、自動起動設定
```
service libvirtd start
update-rc.d libvirtd defaults
```

### ブリッジインターフェースの設定しておく (しなくてもいいかも)

```
vi /etc/network/interfaces
※以下記載(とりあえずDHCPで。bridge_portsは自分の環境に合わせて。)

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto br0
iface br0 inet dhcp
      bridge_ports enp0s25
      bridge_stp off
      bridge_maxwait 0
```

### KVM用ユーザをlibvirtグループに所属させる(sudoなしでvirsh実行可能)。
```
gpasswd libvirt -a KVM用ユーザ名

ここで一旦再起動
reboot
```

### ISOファイル用のディレクトリを作成し、プール追加
```
mkdir /var/lib/libvirt/isos
virsh pool-define-as isos dir - - - - /var/lib/libvirt/isos
virsh pool-autostart isos
virsh pool-start isos
chown -R libvirt-qemu:libvirt /var/lib/libvirt/isos
```

### isoファイルダウンロード、転送
```
cd /var/lib/libvirt/isos
mv "CentOS-7-x86_64-Minimal-1810.isoの存在するディレクトリ" .
```

### virt-manager起動
```
virt-manager
```
シンプルな画面が立ち上がります。
<img width="254" alt="キャプチャ.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131627/717428df-93a4-15f7-68a3-eb299f1346ee.png">


## virt-managerでCentOS7起動

※まず最初に編集 > 設定 > 新しい仮想マシンタイプ より、グラフィックのタイプを「VNC」に指定しておいてください。

ローカルインストールを選択します。
<img width="255" alt="キャプチャ2.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131627/8c781e72-6581-b781-7ac0-208846fac68a.png">

Browseを選択します。
<img width="257" alt="キャプチャ3.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131627/3020cdcc-332c-081f-a104-2fb48c5537b2.png">

そうすると起動させたストレージプール isos が表示され、
CentOS-7-x86_64-Minimal-1810.isoが選択出来るようになっています。

その後VMのメモリ設定。
<img width="189" alt="キャプチャ8.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131627/5169d4db-02ca-f515-5d9a-ce821960ae23.png">

ストレージのサイズ設定。
<img width="188" alt="キャプチャ9.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131627/bbc96409-6c40-de1c-471d-e6e46f0dc75a.png">

最後にホスト名を入力。外部から接続できるようにしたければ、ネットワークはBridgeを選択。
外部から接続させたくなければ、NATを選択でよいでしょう。
![Inkedキャプチャ10_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131627/e850720f-9b42-f4f8-b6aa-b2e0234fcbcb.jpeg)

FinishをクリックすればCentOS7のインストール画面が表示されます。
<img width="436" alt="キャプチャ11.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131627/48cd9a44-4d3f-91a2-f7c0-6ad2c1778bd4.png">


結構簡単だったと思います。
VMはvirshコマンドでCLI操作もできるので、以下記事を参考にします。
[・KVM virsh 操作](https://qiita.com/y-araki-qiita/items/e0e03acaed42eff793b3)