KVMは、Kernel-based Virtual Machineの略で、オープンソースの仮想化モジュールです。今日は、[CentOS](https://www.linuxidc.com/topicnews.aspx?tid=14)7オペレーティングシステムにKVMをインストールします。インストール手順は次のとおりです。
1.環境情報
システム:CentOS 7.2 IP:10.0.0.12/24
仮想マシンをインストールするときは、CPU仮想化機能を有効にする必要があります
2.KVMのインストール手順
[ root@kvm-node1 ~]# yum install -y qemu-kvm libvirt ###qemu-Kvmは、仮想マシンのハードディスクを作成するために使用されます,libvirtは仮想マシンの管理に使用されます
[ root@kvm-node1 ~]# yum install -y virt-install ###仮想マシンの作成に使用
[ root@kvm-node1 ~]# systemctl start libvirtd && systemctl enable libvirtd
[ root@kvm-node1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.12 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::5505:5aa:3f96:f3f8 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:51:09:70 txqueuelen 1000(Ethernet)
RX packets 22459 bytes 29147955(27.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5161 bytes 587757(573.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1(Local Loopback)
RX packets 0 bytes 0(0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0(0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:fb:b1:55 txqueuelen 1000(Ethernet)
RX packets 0 bytes 0(0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0(0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
上記の3つの手順を実行すると、KVMのインストールが成功し、KVMを使用して仮想マシンの作成を開始します。
KVMを使用して仮想マシン(CentOS7)を作成します
qemuコマンドを使用して10Gハードディスク(最小10、G、それ以上の場合もあります)を作成します。ハードディスクの名前はCentOS-7-x86_64.rawです。
[ root@kvm-node1 ~]# qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10G
Formatting '/opt/CentOS-7-x86_64.raw', fmt=raw size=10737418240[root@kvm-node1 ~]# ll -h /opt
total 0-rw-r--r--1 root root 10G Aug 2207:59 CentOS-7-x86_64.raw
[ root@kvm-node1 ~]# virt-install --virt-type kvm --name CentOS-7-x86_64 --ram 1024--cdrom=/ISO/CentOS-7-x86_64-Everything-1611.iso --disk path=/opt/CentOS-7-x86_64.raw --network network=default--graphics vnc,listen=0.0.0.0--noautoconsole
Starting install...
Creating domain...|0 B 00:03
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
このとき、図に示すように、TightVNCツールを使用してホストIP 10.0.0.12に接続し、ネットワークカードの名前を設定してオペレーティングシステムをeth0にインストールします。
インストール手順は、通常のオペレーティングシステムのインストールと同じです。インストールが完了したら、virsh list --allを使用して、KVM上のすべての仮想マシンを表示できます。
[ root@kvm-node1 ~]# virsh list --all
Id Name State
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CentOS-7-x86_64 shut off ###仮想マシンの名前とステータスを確認できます
4.KVMを管理します
[ root@kvm-node1 ~]# virsh start CentOS-7-x86_64
Domain CentOS-7-x86_64 started
起動後、VNC接続ツールを使用します。ログイン後、ネットワークカードの名前がeth0であり、デフォルトでIPアドレスがないことがわかります。これは、ネットワークカードがアクティブ化されていないためです。ONBOOTをyesに変更し、ネットワークカードを再起動すると、IPアドレスが192.168.122.0ネットワークセグメントであることがわかります。の
KVMの仮想マシンが起動すると、起動した仮想マシンの情報が/ etc / libvirt / qemuディレクトリに表示されます。
[ root@kvm-node1 ~]# cd /etc/libvirt/qemu
[ root@kvm-node1 qemu]# pwd
/etc/libvirt/qemu
[ root@kvm-node1 qemu]# ls -lh
total 4.0K
- rw-------1 root root 3.8K Aug 2208:18 CentOS-7-x86_64.xml
drwx------3 root root 42 Aug 2207:51 networks
CentOS-7-x86_64.xmlは、起動された仮想マシンの情報です。vimエディターを使用して表示すると、次の情報が表示されます。
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
virsh edit CentOS-7-x86_64
or other application using the libvirt API.-->
仮想マシンの情報を変更する必要があるというプロンプトが表示されたら、コマンドvirsh edit CentOS-7-x86_64を使用する必要があります。このコマンドを使用すると、vcpu、メモリなど、多くの仮想マシン情報を確認できます。
[ root@kvm-node1 ~]# virsh edit CentOS-7-x86_64
6< vcpu placement='static'>1</vcpu>着替える:<vcpu placement='auto' current="1">4</vcpu>
## 現在のcpuが1コアであることを意味します,最大4コア,仮想マシンの構成ファイルを変更した後,仮想マシンをシャットダウンして再起動する必要があります,有効にする構成
[ root @ kvm-node1〜] #virsh shutdown CentOS-7-x86_64 ##仮想マシンを閉じる
Domain CentOS-7-x86_64 is being shutdown
[ root @ kvm-node1〜] #virsh start CentOS-7-x86_64 ##仮想マシンを起動します
Domain CentOS-7-x86_64 started
3 CentOS-7-x86_64 running
まず、VNCツールを使用して仮想マシンのcpu情報を表示します
ホスト上のコマンドでコア数を追加します
[ root@kvm-node1 ~]# virsh setvcpus CentOS-7-x86_64 2--live ##仮想マシンのcpuを2coreに追加します
次に、VNCツールを使用して仮想マシンのCPU情報を表示します
VNCを介して仮想マシンに接続し、仮想マシンのメモリを表示します
[ root@kvm-node1 ~]# virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd info balloon ##現在の仮想マシンのメモリを表示する
balloon: actual=1024[root@kvm-node1 ~]# virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd balloon 512 ##現在の仮想マシンのメモリを512に変更します[root@kvm-node1 ~]# virsh qemu-monitor-command CentOS-7-x86_64 --hmp --cmd info balloon ##変更されたメモリ情報の表示が512に変更されました
balloon: actual=512
VNCツールを使用して仮想マシンに接続し、メモリが変更されたかどうかを確認します。
[ root@kvm-node1 ~]# brctl show ##既存の橋を見る
bridge name bridge id STP enabled interfaces
virbr0 8000.525400fbb155 yes virbr0-nic
vnet0
ens33ネットワークカードのIP情報を削除し、新しいブリッジネットワークカードを作成し、ens33ネットワークカードのIP情報を強化するスクリプトを作成します。
[ root@kvm-node1 ~]# vim br0.sh
#! /bin/bash
brctl addbr br0 #ブリッジネットワークカードbr0を作成します
brctl addif br0 ens33 #ens33ネットワークカードのブリッジ情報をbr0ネットワークカードに転送します
ip addr del dev ens33 10.0.0.12/24 #ens33ネットワークカードのIP情報を削除します
ifconfig br0 10.0.0.12/24 up #ens33ネットワークカードのIP情報をbr0ネットワークカードに変更します
route add default gw 10.0.0.2 #ゲートウェイを追加
[ root@kvm-node1 ~]# chmod u+x br0.sh
[ root@kvm-node1 ~]# ./br0.sh
ifocnfigを使用してネットワークカードのIP情報を表示すると、br0のアドレスが10.0.0.12/24に変更されていることがわかります。
[ root@kvm-node1 ~]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.12 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::20c:29ff:fe51:970 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:51:09:70 txqueuelen 1000(Ethernet)
RX packets 553 bytes 41723(40.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 680 bytes 63511(62.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::5505:5aa:3f96:f3f8 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:51:09:70 txqueuelen 1000(Ethernet)
RX packets 6107998 bytes 8708309251(8.1 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 534420 bytes 68906654(65.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1(Local Loopback)
RX packets 0 bytes 0(0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0(0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:fb:b1:55 txqueuelen 1000(Ethernet)
RX packets 6685 bytes 278745(272.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6981 bytes 34351624(32.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::fc54:ff:fe6b:5fee prefixlen 64 scopeid 0x20<link>
ether fe:54:00:6b:5f:ee txqueuelen 1000(Ethernet)
RX packets 16 bytes 1650(1.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 987 bytes 52236(51.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
コマンドを使用して、KVM仮想マシンの情報を変更します
[ root@kvm-node1 ~]# virsh edit CentOS-7-x86_64
69< interfacetype='network'>着替える:<interfacetype='bridge'> ##ブリッジング
71< source network='default'/>着替える:<source bridge='br0'/>
変更が完了したら、仮想マシンを閉じ、仮想マシンを起動し、VNCツールを使用してipを10.0.0.14/24に変更し、ホストマシンにpingを実行して、pingできるかどうかを確認し、ssh経由で接続します。
[ root@kvm-node1 ~]# virsh shutdown CentOS-7-x86_64
Domain CentOS-7-x86_64 is being shutdown
[ root@kvm-node1 ~]# virsh start CentOS-7-x86_64
Domain CentOS-7-x86_64 started
ローカルのsshソフトウェアを介して、接続してみてください。接続すると、IP情報が表示されます。
上記は、CentOS7でのKVMのインストールと簡単な管理です。
この記事はリンクアドレスを恒久的に更新します:[http://www.linuxidc.com/Linux/2017-08/146414。](https://www.linuxidc.com/Linux/2017-08/146414.htm)
Recommended Posts