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 | yum -y install qemu-kvm qemu-kvm-tools |
qemu-kvm qemu-kvm-tools
:虚拟操作系统模拟器加速模块(KVM核心)libvirt
:必须要装的核心工具virt-manager
:虚拟机图形管理工具bridge-utils
:虚拟机与外界通信的命令管理工具virt-install
:虚拟机安装工具pyhon-virtinst
::包含python模块和工具(virt-install,virt-clone和virt-image)
4.查看KVM模块是否被正确加载
1 | lsmod | grep kvm |
kvm_amd 2176426 0 kvm 578518 1 kvm_amd irqbypass 13503 1 kvm
5.开启KVM服务, 并设置开机自启动.
1 | systemctl start libvirtd |
6.查看KVM服务状态
1 | systemctl status libvirtd |
设置KVM网络
1.查看虚拟机网卡信息, 确定名称后复制文件.
1 | ip addr |
2.修改ens33网卡配置
1 | vim ifcfg-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 | vim 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 | systemctl stop NetworkManager |
5.查看网络配置信息
1 | brctl show |
ridge name bridge id STP enabled interfaces br0 8000.000c293a6592 no ens33 virbr0 8000.525400c83c0d yes virbr0-nic
KVM创建管理
打开KVM图形化管理界面
1 | virt-manager |
1.创建镜像存储池
2.用WinSCP软件将镜像文件上传至指定目录下
3.创建存储池
4.创建存储卷
5.创建虚拟机
可用cat /proc/scsi/scsi
命令查看该主机是否为虚拟机
KVM功能管理
1 | # 查看命令帮助 |
上述命令将创建/etc/libvirt/qemu/autostart/目录, 目录内容为开机自动启动的系统.
虚拟机的删除与添加
1 | virsh shutdown test01 |
配置文件会被删除, 但是磁盘文件不会被删除.
1 | cd /etc/libvirt/qemu |
KVM文件管理
磁盘格式转换
1.转换格式
1 | qemu-img info /路径/虚拟机名.img |
image: /data/centos7/CentOS7_10_kvm.img file format: raw virtual size: 20G (21474836480 bytes) disk size: 20G
2.编辑配置
1 | virsh edit 虚拟机名 |
<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 | virsh list --all |
虚拟机快照
1 | # 创建快照 |