CentOS7.2でのKVMのインストールと予備使用

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のインストール手順

  1. qemu-kvmとlibvirtをインストールします
[ root@kvm-node1 ~]# yum install -y qemu-kvm libvirt   ###qemu-Kvmは、仮想マシンのハードディスクを作成するために使用されます,libvirtは仮想マシンの管理に使用されます
  1. virt-installをインストールします
[ root@kvm-node1 ~]# yum install -y virt-install    ###仮想マシンの作成に使用
  1. libvirtdを起動し、起動するように設定します。起動後、ifconfigを使用して、追加のvirbr0ネットワークカードがあることを確認します。デフォルトのIPは192.168.122.1/24で、libvirtdが正常に起動したことを示します。デフォルトでifconfigコマンドがない場合は、yuminstall-を使用します。 yネットツールのインストール
[ 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を使用して仮想マシンの作成を開始します。

  1. KVMを使用して仮想マシン(CentOS7)を作成します

  2. 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
  1. virt-installを使用して、CentOS-7-x86_64という名前の仮想マシンを作成します。作成する前に、CentOS7のISOイメージをアップロードします。ルートディレクトリにISOディレクトリフォルダーを作成することをお勧めします。

[ 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を管理します

  1. virshを使用して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、メモリなど、多くの仮想マシン情報を確認できます。

  1. CPUホット追加(KVMはCPUホット追加をサポートしますが、[ホスト](https://cloud.tencent.com/product/cdh?from=10680)が仮想マシンのシステムと同じであるという制限があります。ここで、ホストマシンはCentOS7であり、仮想マシンもCentOS7であるため、CPUホット追加をシミュレートできますが、それは事実です。 (これは実稼働環境には推奨されません)
[ 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 list --all ##仮想マシンのステータスを表示
Id          Name            State


[ root @ kvm-node1〜] #virsh start CentOS-7-x86_64 ##仮想マシンを起動します
Domain CentOS-7-x86_64 started


[ root@kvm-node1 ~]# virsh list --all 
Id          Name          State

3        CentOS-7-x86_64     running

まず、VNCツールを使用して仮想マシンのcpu情報を表示します

ホスト上のコマンドでコア数を追加します

[ root@kvm-node1 ~]# virsh setvcpus CentOS-7-x86_64 2--live ##仮想マシンのcpuを2coreに追加します

次に、VNCツールを使用して仮想マシンのCPU情報を表示します

  1. メモリホット追加(まだ本番環境での使用は推奨されていません。機能を知っているだけです)

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ツールを使用して仮想マシンに接続し、メモリが変更されたかどうかを確認します。

  1. ネットワークカードの構成(KVM仮想マシンのネットワークカードをブリッジモードに変更して、LAN上の他のユーザーが通常どおりにアクセスできるようにする方法)
[ 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

CentOS7.2でのKVMのインストールと予備使用
centos7kvmのインストールと使用
CentOSでのMysqlのインストールと使用
Centos7elk7.1.1のインストールと使用
CentOSでNginxとuを使用する
Centos6.5のインストールとKVMの展開
CentOSでのJava-JDKのインストールと構成
CentOS6.8でdockerをインストールして使用する
CentOS7でのErlang20.2のインストールと展開
CentOS 7でのTomcatのインストールと構成(Tomcatの起動)
CentOS6 / 7でのMySQL8.0のインストール、展開、および構成
centos7でのredisのインストールと構成
CentOSでのZabbixのインストールと展開およびローカリゼーション
CentOS7でのJenkinsのインストールと展開のチュートリアル
Centos7でのRedis3のインストール
VMware10でのCentOS7のインストールと構成のグラフィックチュートリアル
CentOSでのMySQL8.0のインストールと展開、非常に詳細!
Centosでのconfluence6.3操作記録のインストールとクラッキング
CentOSでのRedisクラスターのインストール
Centos7のインストールと構成のプロメテウス
CentosでのJira7操作記録のインストールとクラッキング
CentOS7のインストールと構成PPTP
UbuntuでのPythonでのGDALのインストールと使用
CentOSのインストールと構成cmake
Centos7.5のインストールと構成MongoDB4.0.4
CentOSでのRedisクラスターのインストール
CentOS7のインストールと構成PPTP
GitLabのインストールと基本的な使用
centOS7でのSparkのインストールと構成のチュートリアルの詳細な説明
Jexus 5.8.2を使用して、CentosでAsp.netコアをデプロイして実行します
Centos7のインストールとJenkinsの構成
ubuntu / debianの下にdigをインストールして使用します
Centos5.2でLAMPをコンパイルしてインストールします
ジェンキンス学習のcentos6.9の下でのインストール
CentOS6最小インストールKVM詳細チュートリアル
CentOS7のインストールとGitlabのメンテナンス
CentOS7でOpenSSLとOpenSSHをアップグレードする
CentOS7.3はiptablesをインストールして詳細に使用します
CentosでTomcatを展開して最適化する
ubuntuおよびwindowsでのRedisのインストール
CentOS7.Xシステムのインストールと最適化
Python3をインストールし、CentOS8でansible
CentOS 7Tomcatサービスのインストールと構成
CentOS7はSQLServerをインストールして使用します
CentOSNTPサーバーのインストールと構成
CentOS7の下にPython3とPyをインストールします
CentOs7のインストールと展開Zabbix3.4オリジナル
Centos7mysqlデータベースのインストールと構成
CentOS6.3の下にMono3.2とJexus5.4をインストールします
2019-07-09CentOS7のインストール
centos7_1708のインストール
CentOS7システムのインストールと構成のグラフィックチュートリアル
CentOS7でlibmodbusライブラリをコンパイルしてインストールします
Centos-6.5LNMP環境のインストールと展開
LinuxカーネルのコンパイルとCentOSシステムのインストール
Centos7.6オペレーティングシステムのインストールと最適化の記録
Centos7のインストールとgitlabサーバーの展開
Ubuntu16.04でのCUDAのインストールとアンインストール
Win10サブシステムUbuntuのインストールと使用
Centospython3コンパイルインストールとコンパイルgccアップグレード
Centos7ハイブスタンドアロンモードのインストールと構成