GUI なしで稼働させている CentOS 7 に KVM をインストールする方法

この記事は、僕の CentOS 7 に KVM をこうやってインストールしたという記録です。

CentOS の状態

レッツノート上で稼働させている CentOS 7 です。スペックをコマンドでざざっと紹介しておきます。

$ uname -a
Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core) 
$ cat /proc/cpuinfo | grep 'model name'
model name    : Intel(R) Core(TM) i5 CPU       M 560  @ 2.67GHz
model name    : Intel(R) Core(TM) i5 CPU       M 560  @ 2.67GHz
model name    : Intel(R) Core(TM) i5 CPU       M 560  @ 2.67GHz
model name    : Intel(R) Core(TM) i5 CPU       M 560  @ 2.67GHz
$ free -m
              total        used        free      shared  buff/cache   available
Mem:           1865         402         175          78        1287        1172
Swap:          3839          46        3793
$ df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    50G  1.4G   49G    3% /
devtmpfs                  923M     0  923M    0% /dev
tmpfs                     933M     0  933M    0% /dev/shm
tmpfs                     933M   97M  837M   11% /run
tmpfs                     933M     0  933M    0% /sys/fs/cgroup
/dev/mapper/centos-home   179G   15G  164G    9% /home
/dev/sda1                 497M  124M  374M   25% /boot
tmpfs                     187M     0  187M    0% /run/user/1000
$ dmesg | grep ' SSD '
[    2.314779] ata1.00: ATA-9: Samsung SSD 840 EVO 250GB, EXT0BB6Q, max UDMA/133
[    2.316219] scsi 0:0:0:0: Direct-Access     ATA      Samsung SSD 840  BB6Q PQ: 0 ANSI: 5
$

CPU が Core i5 でまあ良いとしてもあらためて見るとメモリーが 2GB しかない。どこかのタイミングで追加したほうがいいかもしれませんが、今日のところはこのまま行ってみます。HDD はサムソンの SSD で 250 GB モノですね。

CPU が仮想化機能をサポートしているかどうかを確認

$ grep svm /proc/cpuinfo
$ grep vmx /proc/cpuinfo
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt aes lahf_lm ida arat dtherm tpr_shadow vnmi flexpriority ept vpid
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt aes lahf_lm ida arat dtherm tpr_shadow vnmi flexpriority ept vpid
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt aes lahf_lm ida arat dtherm tpr_shadow vnmi flexpriority ept vpid
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt aes lahf_lm ida arat dtherm tpr_shadow vnmi flexpriority ept vpid
$

/proc/cpuinfo を svm, vmx で grep して、何も出力されない場合 KVM を使うことができません。

インストールするパッケージの確認

下記 4 つをインストールします。

  • qemu-kvm
  • qemu-img
  • libvirt
  • virt-install

それぞれどんなパッケージなのかを簡単に確認します。といっても yum info コマンドを叩くだけです。

$ yum info qemu-kvm
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * epel: ftp.yz.yamagata-u.ac.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
利用可能なパッケージ
名前                : qemu-kvm
アーキテクチャー    : x86_64
エポック            : 10
バージョン          : 1.5.3
リリース            : 126.el7_3.5
容量                : 1.9 M
リポジトリー        : updates/7/x86_64
要約                : QEMU is a FAST! processor emulator
URL                 : http://www.qemu.org/
ライセンス          : GPLv2+ and LGPLv2+ and BSD
説明                : qemu-kvm is an open source virtualizer that provides hardware emulation for
                    : the KVM hypervisor. qemu-kvm acts as a virtual machine monitor together with
                    : the KVM kernel modules, and emulates the hardware for a full system such as
                    : a PC and its assocated peripherals.
                    : 
                    : As qemu-kvm requires no host kernel patches to run, it is safe and easy to use.

$ yum info qemu-img
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * epel: ftp.yz.yamagata-u.ac.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
利用可能なパッケージ
名前                : qemu-img
アーキテクチャー    : x86_64
エポック            : 10
バージョン          : 1.5.3
リリース            : 126.el7_3.5
容量                : 671 k
リポジトリー        : updates/7/x86_64
要約                : QEMU command line tool for manipulating disk images
URL                 : http://www.qemu.org/
ライセンス          : GPLv2+ and LGPLv2+ and BSD
説明                : This package provides a command line tool for manipulating disk images.

$ yum info libvirt
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * epel: ftp.yz.yamagata-u.ac.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
利用可能なパッケージ
名前                : libvirt
アーキテクチャー    : x86_64
バージョン          : 2.0.0
リリース            : 10.el7_3.5
容量                : 140 k
リポジトリー        : updates/7/x86_64
要約                : Library providing a simple virtualization API
URL                 : http://libvirt.org/
ライセンス          : LGPLv2+
説明                : Libvirt is a C toolkit to interact with the virtualization capabilities
                    : of recent versions of Linux (and other OSes). The main package includes
                    : the libvirtd server exporting the virtualization support.

$ yum info virt-install
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * epel: ftp.yz.yamagata-u.ac.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
利用可能なパッケージ
名前                : virt-install
アーキテクチャー    : noarch
バージョン          : 1.4.0
リリース            : 2.el7
容量                : 88 k
リポジトリー        : base/7/x86_64
要約                : Utilities for installing virtual machines
URL                 : http://virt-manager.org/
ライセンス          : GPLv2+
説明                : Package includes several command line utilities, including virt-install
                    : (build and install new VMs) and virt-clone (clone an existing virtual
                    : machine).

$

それではインストールしていきます。

KVM 関連パッケージのインストール

これも yum 一発です。

$ sudo yum install qemu-kvm.x86_64 qemu-img.x86_64 libvirt.x86_64 virt-install.noarch
[sudo] password for oreore: 
読み込んだプラグイン:fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
base                                                                                                         | 3.6 kB  00:00:00     
epel/x86_64/metalink                                                                                         | 6.0 kB  00:00:00     
epel                                                                                                         | 4.3 kB  00:00:00     
extras                                                                                                       | 3.4 kB  00:00:00     
updates                                                                                                      | 3.4 kB  00:00:00     
(1/4): epel/x86_64/updateinfo                                                                                | 782 kB  00:00:00     
(2/4): extras/7/x86_64/primary_db                                                                            | 139 kB  00:00:00     
(3/4): epel/x86_64/primary_db                                                                                | 4.7 MB  00:00:10     
(4/4): updates/7/x86_64/primary_db                                                                           | 4.7 MB  00:00:10     
Determining fastest mirrors
 * base: www.ftp.ne.jp
 * epel: ftp.riken.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ libvirt.x86_64 0:2.0.0-10.el7_3.5 を インストール
--> 依存性の処理をしています: libvirt-daemon-driver-storage = 2.0.0-10.el7_3.5 のパッケージ: libvirt-2.0.0-10.el7_3.5.x86_64
--> 依存性の処理をしています: libvirt-daemon-driver-secret = 2.0.0-10.el7_3.5 のパッケージ: libvirt-2.0.0-10.el7_3.5.x86_64
--> 依存性の処理をしています: libvirt-daemon-driver-qemu = 2.0.0-10.el7_3.5 のパッケージ: libvirt-2.0.0-10.el7_3.5.x86_64

(中略)


依存性を更新しました:
  cyrus-sasl-lib.x86_64 0:2.1.26-20.el7_2      gnutls.x86_64 0:3.3.24-1.el7                libnl3.x86_64 0:3.2.28-3.el7_3         
  libxml2.x86_64 0:2.9.1-6.el7_2.3             libxml2-devel.x86_64 0:2.9.1-6.el7_2.3      pciutils-libs.x86_64 0:3.5.1-1.el7     

完了しました!
$

KVM のセットアップ

次が KVM のセットアップです。まず libvirtd (仮想化機能のデーモン) を起動させます。

$ systemctl status libvirtd
● libvirtd.service - Virtualization daemon
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:libvirtd(8)
           http://libvirt.org
$ sudo systemctl start libvirtd
[sudo] password for oreore: 
$ systemctl status libvirtd
● libvirtd.service - Virtualization daemon
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
   Active: active (running) since 日 2017-04-16 19:22:40 JST; 1min 59s ago
     Docs: man:libvirtd(8)
           http://libvirt.org
 Main PID: 9245 (libvirtd)
   CGroup: /system.slice/libvirtd.service
           ├─9245 /usr/sbin/libvirtd
           ├─9330 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvi...
           └─9331 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvi...
$

これでデーモンが起動できましたし、systemctl に libvirtd を登録したので OS を再起動しても KVM が ON になる環境ができました。

KVM ではゲスト OS のイメージファイルはどこに置かれる?

引続き、ゲスト OS を何かインストールしよう!と思っていましたが、インストールは良いものの、それってどこにインストールされるのだ?という疑問がでてきた。

その答えはどうやら

/var/lib/libvirt/images

らしい。

特に深く考えずに CentOS 7 をインストールしてしまったために /home に一番多くの容量があてがわれている状態になっている。

$ df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    50G  1.4G   49G    3% /
devtmpfs                  923M     0  923M    0% /dev
tmpfs                     933M     0  933M    0% /dev/shm
tmpfs                     933M   97M  837M   11% /run
tmpfs                     933M     0  933M    0% /sys/fs/cgroup
/dev/mapper/centos-home   179G   15G  164G    9% /home
/dev/sda1                 497M  124M  374M   25% /boot
tmpfs                     187M     0  187M    0% /run/user/1000
$

このままではあとあと不都合が起こりそうなので、先にパーティションサイズを変更しようと思う。具体的には、

  • /home を縮小して / を拡大する

というものです。

次の記事で書きます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください