KVMのフルネームはカーネルベースの仮想マシンです。つまり、KVMはLinuxカーネルに基づいて実装されています。
KVMにはkvm.koというカーネルモジュールがあり、仮想CPUとメモリの管理にのみ使用されます。
では、ストレージやネットワーク機器などのIOの仮想化を誰が実現するのでしょうか。
これは、LinuxカーネルとQemuによって行われます。
率直に言って、ハイパーバイザーとして、KVM自体は仮想マシンのスケジューリングとメモリ管理にのみ焦点を当てています。 IOペリフェラルのタスクはLinuxカーネルとQemuに引き継がれます
cpuが仮想化をサポートしているかどうかを確認します
[ root@localhost ~]# grep -E '(vmx|svm)'/proc/cpuinfo **
qemu-kvm(ユーザーモード管理ツール)、libvirt(コマンドライン管理ツール)、virt-install(kvmツールのインストール)、bridge-utils(ブリッジデバイス管理ツール)をインストールします。
[ root@localhost ~]# yum install -y qemu-kvm libvirt virt-install bridge-utils
必ずkvmモジュールをロードしてください
[ root@localhost ~]# lsmod |grep kvm
kvm_intel 1748410
kvm 5785181 kvm_intel
irqbypass 135031 kvm
# ロードされていない場合は、コマンドを実行します
[ root@localhost ~]# modprobe kvm
[ root@localhost ~]# modprobe kvm-intel
libvirtdサービスを開始します
[ root@localhost ~]# systemctl enable libvirtd
[ root@localhost ~]# systemctl start libvirtd
[ root@localhost ~]# systemctl status libvirtd
kvmブリッジモードを構成する
[ root@localhost ~]# cd /etc/sysconfig/network-scripts/[root@localhost network-scripts]# cp ifcfg-ens32 ifcfg-br0
[ root@localhost network-scripts]# vim ifcfg-br0
NAME=br0
DEVICE=br0
ONBOOT=yes
NETBOOT=yes
IPV6INIT=no
BOOTPROTO=static
NM_CONTROLLED=no
TYPE=Bridge
IPADDR=192.168.0.127
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8[root@localhost network-scripts]# vim ifcfg-ens32
NAME=ens32
DEVICE=ens32
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
BRIDGE=br0
橋を見る
[ root@localhost ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29d1267b no ens32
virbr0 8000.52540063d8f4 yes virbr0-nic
virbr0を削除します
[ root@localhost ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29d1267b no ens32
virbr0 8000.52540063d8f4 yes virbr0-nic
[ root@localhost ~]# virsh net-list
Name State Autostart Persistent
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - default active yes yes
[ root@localhost ~]# virsh net-destroy default
Network default destroyed
[ root@localhost ~]# virsh net-undefine default
Network default has been undefined
[ root@localhost ~]# systemctl restart libvirtd.service
[ root@localhost ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29d1267b no ens32
virt-managerを使用して仮想マシンをグラフィカルにインストールするため、デスクトップもインストールする必要があります
[ root@localhost ~]# yum grouplist
[ root@localhost ~]# yum groupinstall "GNOME Desktop"-y
中国のデスクトップを構成する
grep -E "^[ \t]*export[ \t]+LANG[ \t]*="/etc/profile&& y="yes"|| y="no"if[["$y"="yes"]]; then
sed -r -i -e '/^[ \t]*export[ \t]+LANG[ \t]*=/c\export LANG="zh_CN.UTF-8"'/etc/profile
else
echo 'export LANG="zh_CN.UTF-8"'>>/etc/profile
fi
source /etc/profile
virt-managerをインストールします
[ root@localhost ~]# yum -y install virt-manager
xshellリンク
[ root@localhost ~]# virt-manager
ISOシステムイメージは、事前にサーバー上の/ data / iso
などのディレクトリに保存してください。
[ root@localhost ~]# mkdir -p /data/{iso,kvmstorage}[root@localhost ~]# cd /data/iso/[root@localhost iso]# ll
合計金額4217748-rw-r--r--1ルートルート950009856112215:24 CentOS-7-x86_64-Minimal-1804.iso
- rw-r--r--1ルートルート33689620483月232012cn_windows_server_2008_r2.iso
新しい仮想マシン
KVM仮想マシンの管理は、主に仮想マシンを管理するためのvirshコマンドを介して行われます。
コマンドヘルプ
[ root@localhost ~]# virsh --help
仮想マシンのステータスを表示する
[ root@localhost ~]# virsh list --all
ID名のステータス
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4 win2k8r2 running
シャットダウン
[ root@localhost ~]# virsh shutdown win2k8r2
強制的に電源を切る
[ root@localhost ~]# virsh destroy win2k8r2
構成ファイルから仮想マシンを作成する
[ root@localhost ~]# virsh create /etc/libvirt/qemu/win2k8r2.xml
自動的に起動するように仮想マシンを設定します
[ root@localhost ~]# virsh autostart win2k8r2
[ root@localhost ~]# ll /etc/libvirt/qemu/autostart/
合計金額0
lrwxrwxrwx 1ルートルート301、2413:06 win2k8r2.xml ->/etc/libvirt/qemu/win2k8r2.xml
どこにでもある仮想マシン構成ファイル
[ root@localhost ~]# virsh dumpxml win2k8r2 >/etc/libvirt/qemu/win2k8r2_bak.xml
仮想マシンを削除します(このコマンドは構成ファイルのみを削除し、ディスクファイルは削除しません)
[ root@localhost ~]# virsh undefine win2k8r2
バックアップ構成ファイルをエクスポートして元のKVM仮想マシンの定義を復元し、仮想マシンを再定義します。
[ root@localhost ~]# mv /etc/libvirt/qemu/win2k8r2_bak.xml /etc/libvirt/qemu/win2k8r2.xml
[ root@localhost ~]# virsh define /etc/libvirt/qemu/win2k8r2.xml
構成ファイルの編集
[ root@localhost ~]# virsh edit win2k8r2
ハング
[ root@localhost ~]# virsh suspend win2k8r2
戻す
[ root@localhost ~]# virsh resume win2k8r2
ストレージボリュームを作成する
[ root@localhost ~]# qemu-img create -f qcow2 /data/kvmstorage/centos7.qcow2 20G
Formatting '/data/kvmstorage/centos7.qcow2', fmt=qcow2 size=21474836480 encryption=off cluster_size=65536 lazy_refcounts=off
[ root@localhost ~]# ll //data/kvmstorage
合計金額7437168-rw-r--r--1ルートルート1971年1月2413年:21 centos7.qcow2
- rw-------1 qemu qemu 42956488704 2413年1月:21 win2k8r2.qcow2
仮想マシンを生成する
[ root@localhost ~]# virt-install --virt-type kvm --name centos --ram 1024 \
- - disk /data/kvmstorage/centos7.qcow2,format=qcow2 \
- - network bridge=br0 \
- - graphics vnc,listen=0.0.0.0--noautoconsole \
- - os-type=linux --os-variant=rhel7 \
- - location=/data/iso/CentOS-7-x86_64-Minimal-1804.iso
[ root@localhost ~]# virsh list --all
ID名のステータス
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 win2k8r2 running
7 centos running
Recommended Posts