KVMインストール
CentOS7へKVM環境を構築する
自宅検証用に以下のPCを使って環境を整えていく
参考にしたのはいつもお世話になっている、Server Worldさんのページを元にKVMをインストールしていく
環境構築
CPU周り
まずはCPUで仮想化機能が有効になっているかの確認
% sudo lscpu アーキテクチャ: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 コアあたりのスレッド数: 2 ソケットあたりのコア数: 4 Socket(s): 1 NUMAノード: 1 ベンダーID: GenuineIntel CPUファミリー: 6 モデル: 158 Model name: Intel(R) Core(TM) i7-7700T CPU @ 2.90GHz ステッピング: 9 CPU MHz: 3046.925 BogoMIPS: 5800.00 仮想化: VT-x L1d キャッシュ: 32K L1i キャッシュ: 32K L2 キャッシュ: 256K L3 キャッシュ: 8192K NUMAノード 0 CPU: 0-7
仮想化でVT-xになっていることを確認
パッケージインストール
KVM環境構築に必要なパッケージをインストール
% yum -y install qemu-kvm libvirt virt-install bridge-utils
読み込みモジュールの確認(kvm)
% lsmod | grep kvm kvm_intel 170181 0 kvm 554609 1 kvm_intel irqbypass 13503 1 kvm
サービス起動/設定
[hoge@localhost] ~ % sudo systemctl enable libvirtd.service [hoge@localhost] ~ % sudo systemctl start libvirtd.service
libvirtサービスが問題なく起動していることを確認
[hoge@localhost] ~ % sudo systemctl status libvirtd.service ● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since 月 2017-09-11 21:52:41 JST; 5s ago Docs: man:libvirtd(8) http://libvirt.org Main PID: 11413 (libvirtd) CGroup: /system.slice/libvirtd.service ├─11413 /usr/sbin/libvirtd ├─11485 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-scr... └─11486 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-scr... 9月 11 21:52:41 localhost.localdomain systemd[1]: Starting Virtualization daemon... 9月 11 21:52:41 localhost.localdomain systemd[1]: Started Virtualization daemon. 9月 11 21:52:42 localhost.localdomain dnsmasq[11485]: started, version 2.66 cachesize 150 9月 11 21:52:42 localhost.localdomain dnsmasq[11485]: compile time options: IPv6 GNU-getopt DBus no-i18...uth 9月 11 21:52:42 localhost.localdomain dnsmasq-dhcp[11485]: DHCP, IP range 192.168.122.2 -- 192.168.122.2...1h 9月 11 21:52:42 localhost.localdomain dnsmasq[11485]: reading /etc/resolv.conf 9月 11 21:52:42 localhost.localdomain dnsmasq[11485]: using nameserver 192.168.11.1#53 9月 11 21:52:42 localhost.localdomain dnsmasq[11485]: read /etc/hosts - 2 addresses 9月 11 21:52:42 localhost.localdomain dnsmasq[11485]: read /var/lib/libvirt/dnsmasq/default.addnhosts -...ses 9月 11 21:52:42 localhost.localdomain dnsmasq-dhcp[11485]: read /var/lib/libvirt/dnsmasq/default.hostsfile Hint: Some lines were ellipsized, use -l to show in full.
ネットワーク周り
ブリッジの作成
管理用通信を行うためのブリッジを作成する
[hoge@localhost] ~ % sudo brctl addbr br0 [hoge@localhost] ~ % sudo brctl stp br0 on
作成したブリッジを確認する
[hoge@localhost] ~ % brctl show br0 bridge name bridge id STP enabled interfaces br0 8000.000000000000 yes
インターフェースの設定
作成したブリッジの設定ファイルを作成する
[hoge@localhost] ~ % sudo cat /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=192.168.11.9 NETMASK=255.255.255.0 GATEWAY=192.168.11.1 ONBOOT=yes DELAY=0 NM_CONTROLLED=no
物理インターフェースをブリッジにアサインする
[hoge@localhost] ~ % sudo cat /etc/sysconfig/network-scripts/ifcfg-enp1s0 TYPE=Ethernet BOOTPROTO=none DEVICE=enp1s0 ONBOOT=yes BRIDGE=br0 NM_CONTROLLED=no
ゲストVM用準備
OSイメージアップロード
ローカル(操作PC)に保存してあったイメージをwinscpでアップロード
% sudo ls -l /var/lib/libvirt/iso 合計 857088 -rw-r--r--. 1 root root 632291328 9月 15 2016 CentOS-7-x86_64-Minimal-1511.iso -rw-r--r--. 1 root root 245366784 12月 11 2016 vyos-1.1.7-amd64.iso
ディスクイメージの作成
用意したisoを使ってqcowイメージを作成する ※この辺から理解が怪しくなっている
[root@localhost libvirt]# qemu-img create -f qcow2 centos7_1.qcow2 20G Formatting 'centos7_1.qcow2', fmt=qcow2 size=21474836480 encryption=off cluster_size=65536 lazy_refcounts=off
ゲストOSインストール
作成したイメージを使い、ゲストOS(CentOS7.2)をインストールする
virt-install \ --name centos7_1 \ --ram 1024 \ --disk /var/lib/libvirt/images/centos7_1.img,size=20 \ --vcpus 2 \ --os-type linux \ --network bridge=br0 \ --graphics none \ --console pty,target_type=serial \ --location=/var/lib/libvirt/iso/CentOS-7-x86_64-Minimal-1511.iso \ --extra-args 'console=ttyS0,115200n8 serial'
ディスクイメージのテンプレート化
毎回初回インストールのセットアップ作業がめんどいので、テンプレート化しておくと2台目以降が楽になる
[root@kvm-host libvirt]# virt-clone --original centos7_1 --name template --file /var/lib/libvirt/template/template.img 割り当て中 'template.img' | 20 GB 00:00:07 'template'のクローニングに成功しました。
クローンからVM作成するとき
書式: virt-clone -o [クローン対象VMのName] -n [クローンしたVMのName] -f [クローンしたVMのイメージファイルPATH]
[root@kvm-host ~]# virt-clone -o template -n pike-man -f /var/lib/libvirt/images/pike-man.img 割り当て中 'pike-man.img' | 20 GB 00:00:18 'pike-man'のクローニングに成功しました。
もう少しいろいろやってたのだが、メモが散乱してるのでひとまずこれで公開する
余裕があれば編集する