什么是KVM?
KVM(基于内核的虚拟机)是针对Intel 64和AMD 64硬件上的Linux的完整虚拟化解决方案,自2.6.20起包含在Linux内核中,对于大多数工作负载稳定且快速。
服务器虚拟化平台是云计算的基础,微软的私有云平台主要由Hyper-V(服务器虚拟化)(vsphere可选)、SYSTEMCENTER套件组成。开源云平台主要由:KVM、VMware、XEN服务器虚拟化产品(可选)+CloudStack or Openstack组成
服务器虚拟化产品不至上面提到的几款,例如:openvz
*本文中测试环境为CENTOS6.9
KVM 功能
KVM支持以下功能:
- 超配:分配比系统上可用资源更多的vCPU或内存,充分利用服务器硬件资源
- 精简配置:灵活分配存储,优化来宾虚拟机的可用空间
- 磁盘I/O限制:提供对从虚拟机发送到主机的磁盘I / O设置
- NUMA平衡:提高在NUMA硬件系统上运行的应用程序的性能
- 虚拟CPU热添加功能:提供在运行虚拟机时增加处理能力所需的功能,无需停机
还有很多功能会随着更新不断变化
KVM安装
先决条件:
确保系统具有硬件虚拟化扩展,所有裸金属架构的虚拟化都在有CPU硬件支持
对于基于Intel的主机,使用以下命令验证CPU虚拟化扩展[ vmx ]是否可用:
grep -e 'vmx' /proc/cpuinfo
For AMD-based:
grep -e 'svm' /proc/cpuinfo
OR:
grep -E 'svm|vmx' /proc/cpuinfo
如果没有输出,请确保在BIOS中启用了虚拟化扩展
## 添加EPEL源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
1、首先安装 qemu-kvm和qemu-img 这些软件包提供用户级KVM和磁盘映像管理器。
yum install qemu-kvm qemu-img
2、接下来还需要安装一些有用的工具来管理我们的平台
virt-manager提供了一个GUI工具来管理你的虚拟机。
libvirt-client提供了一个CL工具来管理你的虚拟环境,这个工具叫做virsh。
virt-install提供命令“virt-install”来从CLI创建虚拟机。
libvirt提供了服务器和主机端库,以便与虚拟机管理程序和主机系统进行交互
yum install virt-manager libvirt libvirt-python libvirt-client
3、对于RHEL/CentOS7用户,还需要安装其他软件包组,例如:虚拟化客户端,虚拟化平台和虚拟化工具
yum groupinstall virtualization-client virtualization-platform virtualization-tools
4、虚拟化守护进程是“ libvirtd ”
service libvirtd restart systemctl restart libvirtd
使用KVM创建虚拟机
virt-manager是一个基于GUI的工具,我们可以通过GNOME直接在终端输入:virt-manager启动它
如果你用的是Windows,我们需要选安装Xmanager.Enterprise或者Xming,设置X11转发
附 Xmanagerv5.1242下载地址:https://pan.baidu.com/s/1jkaXx67WBgWQ7AV8EgPGUA 密码:aenb
在SSH中输入:virt-manager
*如果遇到报错:Unable to initialize GTK: could not open display
首先查看本机sshd是否开启X11转发: /etc/ssh/sshd_config
X11Forwarding yes
检查xorg-x11是否安装: rpm -qa |grep xorg
virt-manager默认连接到本地Loclhost本地,同时你也可以连接到其它KVM主机,在创建虚拟机之前需要确认一些存储及网络配置,例如虚拟磁盘的路径、映像的位置等,EDIT——Connection Details
KVM储存支持文件目录、物理磁盘、群集目录、ISCSI、LVM卷等多种方式,见图:
网络模式主要三种:(与VMWARE有些类似)
1、桥接
2、NAT
3、host
NEW打开新建虚拟机向导,给虚拟机输入一个名称
选择ISO映像或使用本地CDROM,最后选择需要安装的虚拟机操作系统版本
接下来设置虚拟机的内存和vCPU,磁盘位置完成虚拟机创建
最后启动虚拟机安装操作系统即可
第一次启动可能会遇到一个问题,打开控制台后,键盘输入无效,打开Virtual Machine Details,设置显示VNC的键盘映射为en-us