KVM概述
什么是虚拟化
虚拟化就是把硬件资源从物理方式转变为逻辑方式, 打破原有物理结构, 使用户可以灵活管理这些资源, 并且允许1台物理机上同时运行多个操作系统, 以实现资源利用率最大化和灵活管理的一项技术.
虚拟化的优势
1.减少服务器数量, 降低硬件采购成本.
2.资源利用率最大化
3.降低机房空间、散热、用电消耗的成本
4.硬件资源可动态调整, 提高企业IT业务灵活性.
5.高可用性
6.在不中断服务的情况下进行物理硬件调整
7.降低管理成本
8.具备更高效的灾备能力
KVM虚拟化
KVM自Linux2.6.20版本后就直接整合到Linux内核中, 它依托CPU虚拟化指令集(如Inter-VT、AMD-V)实现高性能的虚拟化支持. 由于与Linux内核高度整合, 因此在性能、安全性、兼容性、稳定性上都有很好的表现.
搭建KVM虚拟化平台
KVM环境搭建
1.关闭虚拟机, 并在设置中开启虚拟化.
2.检测系统是否已经支持虚拟化, 有条目表示已支持.
1
| cat /proc/cpuinfo | egrep 'vmx|svm' | wc -l
|
3.安装KVM环境后并重启加载KVM相关模块
1 2 3
| yum -y install qemu-kvm qemu-kvm-tools yum -y install libvirt python-virtinst libvirt-python virt-install virt-manager shutdown -r now
|
qemu-kvm qemu-kvm-tools
:虚拟操作系统模拟器加速模块(KVM核心)
libvirt
:必须要装的核心工具
virt-manager
:虚拟机图形管理工具
bridge-utils
:虚拟机与外界通信的命令管理工具
virt-install
:虚拟机安装工具
pyhon-virtinst
::包含python模块和工具(virt-install,virt-clone和virt-image)
4.查看KVM模块是否被正确加载
kvm_amd 2176426 0
kvm 578518 1 kvm_amd
irqbypass 13503 1 kvm
5.开启KVM服务, 并设置开机自启动.
1 2
| systemctl start libvirtd systemctl enable libvirtd
|
6.查看KVM服务状态
1 2
| systemctl status libvirtd systemctl is-enabled libvirtd
|
设置KVM网络
1.查看虚拟机网卡信息, 确定名称后复制文件.
1 2 3
| ip addr cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-br0
|
2.修改ens33网卡配置
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
#BOOTPROTO=none
#DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=eb242f93-3890-4f77-b15a-12589b9e7bad
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.100.60
#PREFIX=24
#GATEWAY=192.168.100.2
#DNS1=192.168.100.2
BRIDGE=br0
NM_CONTROLLED=no
3.修改桥接网卡配置
1 2
| vim ifcfg-br0 sed -i "/UUID/c UUID=`uuidgen`" ifcfg-br0
|
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
UUID=03983d4e-3d8d-4212-aa90-7043a259ff6b
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.127.60
PREFIX=24
GATEWAY=192.168.127.1
DNS1=192.168.127.1
4.重启网络服务
1 2
| systemctl stop NetworkManager systemctl restart network
|
5.查看网络配置信息
ridge name bridge id STP enabled interfaces
br0 8000.000c293a6592 no ens33
virbr0 8000.525400c83c0d yes virbr0-nic
KVM创建管理
打开KVM图形化管理界面
1.创建镜像存储池
2.用WinSCP软件将镜像文件上传至指定目录下
3.创建存储池
注: 在创建该存储池时请保证磁盘容量足够大, 以便存储新建的虚拟机.
 |
 |
 |
4.创建存储卷
5.创建虚拟机
 |
 |
 |
 |
 |
 |
 |
 |
 |
可用cat /proc/scsi/scsi
命令查看该主机是否为虚拟机
KVM功能管理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| virsh -h
ls /etc/libvirt/qemu/
virsh list --all
virsh shutdown 虚拟机名 virsh start 虚拟机名
virsh destroy 虚拟机名
virsh create /etc/libvirt/qemu/虚拟机名.xml
virsh suspend 虚拟机名 virsh resume 虚拟机名
virsh dumpxml 虚拟机名 > /etc/libvirt/qemu/配置文件名2.xml
virsh autostart 虚拟机名
|
上述命令将创建/etc/libvirt/qemu/autostart/目录, 目录内容为开机自动启动的系统.
虚拟机的删除与添加
1 2 3 4
| virsh shutdown test01 virsh undefine test01 ls /etc/libvirt/qemu/ virsh list --all
|
1 2 3 4
| cd /etc/libvirt/qemu mv 虚拟机名.xml 虚拟机名.xml virsh define 虚拟机名.xml virsh list --all
|
KVM文件管理
磁盘格式转换
1.转换格式
1 2 3 4
| qemu-img info /路径/虚拟机名.img virsh shutdown 虚拟机名
qemu-img convert -f raw /路径/虚拟机名.img -O qcow2 /路径/虚拟机名.qcow2
|
image: /data/centos7/CentOS7_10_kvm.img
file format: raw
virtual size: 20G (21474836480 bytes)
disk size: 20G
2.编辑配置
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/data/centos7/CentOS7_10_kvm.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
虚拟机克隆
1 2 3
| virsh list --all virt-clone -o 虚拟机名 -n 克隆虚拟机名 -f /data/Centos7/虚拟机名.qcow2 virsh start 虚拟机名
|
虚拟机快照
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| virsh snapshot-create 虚拟机名
virsh snapshot-current 虚拟机名
virsh snapshot-list 虚拟机名
virsh snapshot-revert 虚拟机名 快照名
virsh snapshot-delete 虚拟机名 快照名
|