CentOSでKVMによる仮想化環境を構築します。
想定環境
OS | CentOS 7 |
---|---|
qemu-kvm | 1.5.3 |
libvirt | 2.0.0 |
動作環境の確認
KVMによる仮想化が動作する環境かどうか、CPUの仮想化拡張機能 (Intel VT-x または AMD-V) を確認します。
grep -E 'svm|vmx' /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon
pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 fma
cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm
ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase smep
grepコマンドを実行しても何も表示されない場合は、KVMが動作しませんので別な環境で試して下さい。
KVM関連パッケージのインストール
yumコマンドでKVMに必要なパッケージをインストールします。後ほど仮想マシンを作成するためvirt-installもインストールしておきます。
yum install qemu-kvm qemu-img libvirt virt-install
libvirtdの起動
仮想化環境を管理するためのデーモンlibvirtd
を起動します。
systemctl start libvirtd
virshコマンドでリストが取得できるか確認します。
virsh list Id Name State ----------------------------------------------------
まだ、仮想マシンを作成していないので空の一覧が表示されます。
ちなみに、libvirtdが起動していない場合は次の様なエラーメッセージが表示されます。
virsh list error: failed to connect to the hypervisor error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory
CentOS 7のISOファイル取得
仮想マシンを作成する際のインストールメディアとしてISOファイルをダウンロードします。ここでは、Minimalインストール用のISOファイルを理化学研究所のミラーサイトからダウンロードしています。
cd /usr/local/src/ wget http://ftp.riken.jp/Linux/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso
virt-installによる仮想マシンの作成
KVMの仮想マシンを作成する方法はいくつもありますが、ここではvirt-installコマンドを利用して、CentOS 7の仮想マシンを作成します。シリアルコンソール経由のテキストインストールで作成してみます。グラフィカルなインストールではないので、VNCクライアントやSPICEクライアントが必要なく、ターミナルだけでインストールが実行できます。
仮想マシン設定情報
以下の設定内容の仮想マシンを作成します。実際に利用される環境に合わせてスペックを変更して下さい。
仮想マシン名 | centos |
---|---|
ホスト名 | centos7.local |
仮想CPU | 1個 |
メモリ | 1024MB |
ディスクイメージ容量 | 5GB |
ディスクイメージ形式 | qcow2 |
インストールメディア | /usr/local/src/CentOS-7-x86_64-Minimal-1611.iso |
virt-installコマンドの実行
仮想マシンの各種設定を引数に設定してvirt-installコマンドを実行します。
virt-install \ --name=centos \ --location=/usr/local/src/CentOS-7-x86_64-Minimal-1611.iso \ --disk path=/var/lib/libvirt/images/centos.qcow2,size=5,format=qcow2 \ --vcpus=1 --ram=1024 \ --graphics none \ --extra-args="console=tty0 console=ttyS0,115200n8"
コマンドを実行すると仮想マシンのシリアルコンソールへ自動でアタッチされて、CentOS 7のテキストインストールが開始されます。
Starting installer, one moment... anaconda 21.48.22.93-1 for CentOS Linux 7 started. * installation log files are stored in /tmp during the installation * shell is available on TTY2 * when reporting a bug add logs from /tmp as separate text/plain attachments 03:28:43 Not asking for VNC because we don't have a network ================================================================================ ================================================================================ Installation 1) [x] Language settings 2) [!] Time settings (English (United States)) (Timezone is not set.) 3) [!] Installation source 4) [!] Software selection (Processing...) (Processing...) 5) [!] Installation Destination 6) [x] Kdump (No disks selected) (Kdump is enabled) 7) [ ] Network configuration 8) [!] Root password (Not connected) (Password is not set.) 9) [!] User creation (No user will be created) Please make your choice from above ['q' to quit | 'b' to begin installation | 'r' to refresh]:
タイムゾーンの設定
メニュー2番のタイムゾーンの設定をします。タイムゾーンとしてAsia/Tokyo
を設定します。
2
を入力します。
以下、番号や文字列を入力してインストールを進めていきます。
: 2
Time settings Timezone: not set NTP servers:not configured 1) Set timezone 2) Configure NTP servers
: 1
Timezone settings
Available regions
1) Africa 6) Atlantic 10) Pacific
2) America 7) Australia 11) US
3) Antarctica 8) Europe 12) Etc
4) Arctic 9) Indian
5) Asia
Please select the timezone.
: 5
(省略)
17) Choibalsan 44) Magadan 70) Tokyo
18) Colombo 45) Makassar 71) Tomsk
19) Damascus 46) Manila 72) Ulaanbaatar
20) Dhaka 47) Muscat 73) Urumqi
21) Dili 48) Nicosia 74) Ust-Nera
22) Dubai 49) Novokuznetsk 75) Vientiane
Press ENTER to continue (ENTER入力)
23) Dushanbe 50) Novosibirsk 76) Vladivostok
24) Gaza 51) Omsk 77) Yakutsk
25) Hebron 52) Oral 78) Yangon
26) Ho_Chi_Minh 53) Phnom_Penh 79) Yekaterinburg
27) Hong_Kong
Please select the timezone.
: 70
メニューに戻ります
インストール先ディスクのパーティション設定
メニューの5番にあるインストール先の設定をします。5
を入力します。
: 5
Probing storage... Installation Destination [x] 1) : 5120 MiB (vda) 1 disk selected; 5120 MiB capacity; 992.5 KiB free ...
すでにディスクが選択されているので、c
を入力して先へ進みます
: c
Autopartitioning Options [ ] 1) Replace Existing Linux system(s) [x] 2) Use All Space [ ] 3) Use Free Space Installation requires partitioning of your hard drive. Select what space to use for the install target.
: c
Partition Scheme Options [ ] 1) Standard Partition [ ] 2) Btrfs [x] 3) LVM [ ] 4) LVM Thin Provisioning Select a partition scheme configuration.
: 1
ここではLVMではなくStandard Partitionを選択することにします。
Partition Scheme Options [x] 1) Standard Partition [ ] 2) Btrfs [ ] 3) LVM [ ] 4) LVM Thin Provisioning Select a partition scheme configuration.
: c
メニューに戻ります。
ネットワークの設定
メニューの7番でネットワークの設定を行います。
デフォルトではマシン起動時にネットワークインターフェイスが有効にならないので、有効にしておきます。
: 7
Network configuration Wired (eth0) disconnected Host name: localhost.localdomain Current host name: localhost.localdomain 1) Set host name 2) Configure device eth0
ホスト名centos7.local
を設定します。
: 1
Enter new value for 'Host name' and press enter
centos7.local
Network configuration Wired (eth0) disconnected Host name: centos7.local Current host name: localhost.localdomain 1) Set host name 2) Configure device eth0
: 2
1) IPv4 address or "dhcp" for DHCP dhcp 2) IPv4 netmask 3) IPv4 gateway 4) IPv6 address[/prefix] or "auto" for automatic, "dhcp" for DHCP, "ignore" to turn off auto 5) IPv6 default gateway 6) Nameservers (comma separated) 7) [ ] Connect automatically after reboot 8) [ ] Apply configuration in installer
7(起動時有効)と8(インストール時に設定適用)を有効にします。
:7 :8
Device configuration 1) IPv4 address or "dhcp" for DHCP dhcp 2) IPv4 netmask 3) IPv4 gateway 4) IPv6 address[/prefix] or "auto" for automatic, "dhcp" for DHCP, "ignore" to turn off auto 5) IPv6 default gateway 6) Nameservers (comma separated) 7) [x] Connect automatically after reboot 8) [x] Apply configuration in installer Configuring device eth0.
:c :c
メニューに戻ります。
rootのパスワード設定
メニューの8番でrootのパスワードを設定します。
Please select new root password. You will have to type it twice. Password: Password (confirm):
パスワードとして強度が弱い文字列を入力した場合は、確認画面が表示されます。yes
と入力すればインストールを進めることはできますが、弱いrootパスワードを使用していることを認識して利用しましょう。
Question The password you have provided is weak. Would you like to use it anyway? Please respond 'yes' or 'no':
メニューに戻ります。
インストールの開始
OSをインストールする準備が完了しましたので、実際にインストールを行います。
Installation 1) [x] Language settings 2) [x] Time settings (English (United States)) (Asia/Tokyo timezone) 3) [x] Installation source 4) [x] Software selection (Local media) (Minimal Install) 5) [x] Installation Destination 6) [x] Kdump (Automatic partitioning (Kdump is enabled) selected) 8) [x] Root password 7) [x] Network configuration (Password is set.) (Wired (eth0) connected) 9) [ ] User creation (No user will be created) Please make your choice from above ['q' to quit | 'b' to begin installation | 'r' to refresh]:
: b
インストールの過程が表示されます。
Progress Setting up the installation environment . Creating disklabel on /dev/vda . Creating swap on /dev/vda2 . Creating xfs on /dev/vda3 . Creating xfs on /dev/vda1 (省略) Running post-installation scripts . Use of this product is subject to the license agreement found at /usr/share/centos-release/EULA Installation complete. Press return to quit
インストールが完了したらENTERキーを入力して仮想マシンを再起動します。
ログインプロンプトが表示されたら先ほど設定したrootのパスワードでログイン出来るか確認してみます。
CentOS Linux 7 (Core) Kernel 3.10.0-514.el7.x86_64 on an x86_64 localhost login: root Password: [root@centos7 ~]# pwd /root [root@localhost ~]# logout CentOS Linux 7 (Core) Kernel 3.10.0-514.el7.x86_64 on an x86_64 centos7 login:
仮想マシンのコンソールにアタッチした状態のままですので、ctrl+]
でデタッチします。
仮想マシン一覧の確認
最後に、virshコマンドで仮想マシンが登録されたか確認します。
virsh list Id Name State ---------------------------------------------------- 2 centos running
CentOSでKVMによる仮想化環境を構築します。
想定環境
OS | CentOS 7 |
---|---|
qemu-kvm | 1.5.3 |
libvirt | 2.0.0 |
動作環境の確認
KVMによる仮想化が動作する環境かどうか、CPUの仮想化拡張機能 (Intel VT-x または AMD-V) を確認します。
grep -E 'svm|vmx' /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon
pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 fma
cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm
ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase smep
grepコマンドを実行しても何も表示されない場合は、KVMが動作しませんので別な環境で試して下さい。
KVM関連パッケージのインストール
yumコマンドでKVMに必要なパッケージをインストールします。後ほど仮想マシンを作成するためvirt-installもインストールしておきます。
yum install qemu-kvm qemu-img libvirt virt-install
libvirtdの起動
仮想化環境を管理するためのデーモンlibvirtd
を起動します。
systemctl start libvirtd
virshコマンドでリストが取得できるか確認します。
virsh list Id Name State ----------------------------------------------------
まだ、仮想マシンを作成していないので空の一覧が表示されます。
ちなみに、libvirtdが起動していない場合は次の様なエラーメッセージが表示されます。
virsh list error: failed to connect to the hypervisor error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory
CentOS 7のISOファイル取得
仮想マシンを作成する際のインストールメディアとしてISOファイルをダウンロードします。ここでは、Minimalインストール用のISOファイルを理化学研究所のミラーサイトからダウンロードしています。
cd /usr/local/src/ wget http://ftp.riken.jp/Linux/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso
virt-installによる仮想マシンの作成
KVMの仮想マシンを作成する方法はいくつもありますが、ここではvirt-installコマンドを利用して、CentOS 7の仮想マシンを作成します。シリアルコンソール経由のテキストインストールで作成してみます。グラフィカルなインストールではないので、VNCクライアントやSPICEクライアントが必要なく、ターミナルだけでインストールが実行できます。
仮想マシン設定情報
以下の設定内容の仮想マシンを作成します。実際に利用される環境に合わせてスペックを変更して下さい。
仮想マシン名 | centos |
---|---|
ホスト名 | centos7.local |
仮想CPU | 1個 |
メモリ | 1024MB |
ディスクイメージ容量 | 5GB |
ディスクイメージ形式 | qcow2 |
インストールメディア | /usr/local/src/CentOS-7-x86_64-Minimal-1611.iso |
virt-installコマンドの実行
仮想マシンの各種設定を引数に設定してvirt-installコマンドを実行します。
virt-install \ --name=centos \ --location=/usr/local/src/CentOS-7-x86_64-Minimal-1611.iso \ --disk path=/var/lib/libvirt/images/centos.qcow2,size=5,format=qcow2 \ --vcpus=1 --ram=1024 \ --graphics none \ --extra-args="console=tty0 console=ttyS0,115200n8"
コマンドを実行すると仮想マシンのシリアルコンソールへ自動でアタッチされて、CentOS 7のテキストインストールが開始されます。
Starting installer, one moment... anaconda 21.48.22.93-1 for CentOS Linux 7 started. * installation log files are stored in /tmp during the installation * shell is available on TTY2 * when reporting a bug add logs from /tmp as separate text/plain attachments 03:28:43 Not asking for VNC because we don't have a network ================================================================================ ================================================================================ Installation 1) [x] Language settings 2) [!] Time settings (English (United States)) (Timezone is not set.) 3) [!] Installation source 4) [!] Software selection (Processing...) (Processing...) 5) [!] Installation Destination 6) [x] Kdump (No disks selected) (Kdump is enabled) 7) [ ] Network configuration 8) [!] Root password (Not connected) (Password is not set.) 9) [!] User creation (No user will be created) Please make your choice from above ['q' to quit | 'b' to begin installation | 'r' to refresh]:
タイムゾーンの設定
メニュー2番のタイムゾーンの設定をします。タイムゾーンとしてAsia/Tokyo
を設定します。
2
を入力します。
以下、番号や文字列を入力してインストールを進めていきます。
: 2
Time settings Timezone: not set NTP servers:not configured 1) Set timezone 2) Configure NTP servers
: 1
Timezone settings
Available regions
1) Africa 6) Atlantic 10) Pacific
2) America 7) Australia 11) US
3) Antarctica 8) Europe 12) Etc
4) Arctic 9) Indian
5) Asia
Please select the timezone.
: 5
(省略)
17) Choibalsan 44) Magadan 70) Tokyo
18) Colombo 45) Makassar 71) Tomsk
19) Damascus 46) Manila 72) Ulaanbaatar
20) Dhaka 47) Muscat 73) Urumqi
21) Dili 48) Nicosia 74) Ust-Nera
22) Dubai 49) Novokuznetsk 75) Vientiane
Press ENTER to continue (ENTER入力)
23) Dushanbe 50) Novosibirsk 76) Vladivostok
24) Gaza 51) Omsk 77) Yakutsk
25) Hebron 52) Oral 78) Yangon
26) Ho_Chi_Minh 53) Phnom_Penh 79) Yekaterinburg
27) Hong_Kong
Please select the timezone.
: 70
メニューに戻ります
インストール先ディスクのパーティション設定
メニューの5番にあるインストール先の設定をします。5
を入力します。
: 5
Probing storage... Installation Destination [x] 1) : 5120 MiB (vda) 1 disk selected; 5120 MiB capacity; 992.5 KiB free ...
すでにディスクが選択されているので、c
を入力して先へ進みます
: c
Autopartitioning Options [ ] 1) Replace Existing Linux system(s) [x] 2) Use All Space [ ] 3) Use Free Space Installation requires partitioning of your hard drive. Select what space to use for the install target.
: c
Partition Scheme Options [ ] 1) Standard Partition [ ] 2) Btrfs [x] 3) LVM [ ] 4) LVM Thin Provisioning Select a partition scheme configuration.
: 1
ここではLVMではなくStandard Partitionを選択することにします。
Partition Scheme Options [x] 1) Standard Partition [ ] 2) Btrfs [ ] 3) LVM [ ] 4) LVM Thin Provisioning Select a partition scheme configuration.
: c
メニューに戻ります。
ネットワークの設定
メニューの7番でネットワークの設定を行います。
デフォルトではマシン起動時にネットワークインターフェイスが有効にならないので、有効にしておきます。
: 7
Network configuration Wired (eth0) disconnected Host name: localhost.localdomain Current host name: localhost.localdomain 1) Set host name 2) Configure device eth0
ホスト名centos7.local
を設定します。
: 1
Enter new value for 'Host name' and press enter
centos7.local
Network configuration Wired (eth0) disconnected Host name: centos7.local Current host name: localhost.localdomain 1) Set host name 2) Configure device eth0
: 2
1) IPv4 address or "dhcp" for DHCP dhcp 2) IPv4 netmask 3) IPv4 gateway 4) IPv6 address[/prefix] or "auto" for automatic, "dhcp" for DHCP, "ignore" to turn off auto 5) IPv6 default gateway 6) Nameservers (comma separated) 7) [ ] Connect automatically after reboot 8) [ ] Apply configuration in installer
7(起動時有効)と8(インストール時に設定適用)を有効にします。
:7 :8
Device configuration 1) IPv4 address or "dhcp" for DHCP dhcp 2) IPv4 netmask 3) IPv4 gateway 4) IPv6 address[/prefix] or "auto" for automatic, "dhcp" for DHCP, "ignore" to turn off auto 5) IPv6 default gateway 6) Nameservers (comma separated) 7) [x] Connect automatically after reboot 8) [x] Apply configuration in installer Configuring device eth0.
:c :c
メニューに戻ります。
rootのパスワード設定
メニューの8番でrootのパスワードを設定します。
Please select new root password. You will have to type it twice. Password: Password (confirm):
パスワードとして強度が弱い文字列を入力した場合は、確認画面が表示されます。yes
と入力すればインストールを進めることはできますが、弱いrootパスワードを使用していることを認識して利用しましょう。
Question The password you have provided is weak. Would you like to use it anyway? Please respond 'yes' or 'no':
メニューに戻ります。
インストールの開始
OSをインストールする準備が完了しましたので、実際にインストールを行います。
Installation 1) [x] Language settings 2) [x] Time settings (English (United States)) (Asia/Tokyo timezone) 3) [x] Installation source 4) [x] Software selection (Local media) (Minimal Install) 5) [x] Installation Destination 6) [x] Kdump (Automatic partitioning (Kdump is enabled) selected) 8) [x] Root password 7) [x] Network configuration (Password is set.) (Wired (eth0) connected) 9) [ ] User creation (No user will be created) Please make your choice from above ['q' to quit | 'b' to begin installation | 'r' to refresh]:
: b
インストールの過程が表示されます。
Progress Setting up the installation environment . Creating disklabel on /dev/vda . Creating swap on /dev/vda2 . Creating xfs on /dev/vda3 . Creating xfs on /dev/vda1 (省略) Running post-installation scripts . Use of this product is subject to the license agreement found at /usr/share/centos-release/EULA Installation complete. Press return to quit
インストールが完了したらENTERキーを入力して仮想マシンを再起動します。
ログインプロンプトが表示されたら先ほど設定したrootのパスワードでログイン出来るか確認してみます。
CentOS Linux 7 (Core) Kernel 3.10.0-514.el7.x86_64 on an x86_64 localhost login: root Password: [root@centos7 ~]# pwd /root [root@localhost ~]# logout CentOS Linux 7 (Core) Kernel 3.10.0-514.el7.x86_64 on an x86_64 centos7 login:
仮想マシンのコンソールにアタッチした状態のままですので、ctrl+]
でデタッチします。
仮想マシン一覧の確認
最後に、virshコマンドで仮想マシンが登録されたか確認します。
virsh list Id Name State ---------------------------------------------------- 2 centos running