安装环境
经过网上查找安装教程,并进行多次反复比对,本次安装的环境为VMware Workstation 15 Pro、Ubuntu 18.04、CentOS 7
相关环境安装教程:
VMware15的下载及安装教程
VMware 15 虚拟机安装Ubuntu 18.04
win10下VMware15安装centos7详细步骤 实测完整步骤
CentOS创建kvm虚拟化平台
宿主机环境设置,设置宿主机支持虚拟化
查看是否支持虚拟化
egrep '(vmx|svm)' /proc/cpuinfo
查看、加载kvm,关闭selinux
lsmod | grep kvm:查看是否加载KVM
modprobe kvm:加载KVM
setenforce 0:关闭selinux
安装kvm相关依赖
yum install qemu-kvm qemu-img \
virt-manager libvirt libvirt-python virt-manager \
libvirt-client virt-install virt-viewer -y
systemctl start libvirtd
systemctl enable libvirtd
报错:var/run/yum.pid 已被锁定,PID 为 2895 的另一个程序正在运行。
解决:rm -f /var/run/yum.pid
新建两个目录分别用来存储之后创建虚拟机的iso文件和磁盘文件
mkdir /home/iso
mkdir /home/images
启动virt-manager
virt-manager
使用virt-manager创建虚拟机
Ubuntu创建kvm虚拟化平台
宿主机环境设置
确定Ubuntu虚拟机是否支持虚拟化
egrep -c '(vmx|svm)' /proc/cpuinfo
kvm相关依赖包安装
sudo apt-get install qemu-kvm
sudo apt-get install qemu
sudo apt-get install virt-manager
sudo apt-get install virt-viewer
sudo apt-get install libvirt-bin
sudo apt-get install bridge-utils
依赖包介绍
qemu
QEMU是一款开源的模拟器及虚拟机监管器(Virtual Machine Monitor, VMM)。QEMU主要提供两种功能给用户使用。一是作为用户态模拟器,利用动态代码翻译机制来执行不同于主机架构的代码。二是作为虚拟机监管器,模拟全系统,利用其他VMM(Xen, KVM, etc)来使用硬件提供的虚拟化支持,创建接近于主机性能的虚拟机。
qemu-kvm
虽然kvm的技术已经相当成熟而且可以对很多东西进行隔离,但是在某些方面还是无法虚拟出真实的机器。比如对网卡的虚拟,那这个时候就需要另外的技术来做补充,而qemu-kvm则是这样一种技术。它补充了kvm技术的不足,而且在性能上对kvm进行了优化。
qemu、kvm、与qemu-kvm关系:
QEMU提供一系列的硬件模拟设备(CPU,网卡,磁盘等),客户机指令都需要QEMU翻译,因而性能较差。KVM是linux内核提供的虚拟化,可以用来进行vCPU的创建与运行,虚拟内存的地址空间分配,指令执行效率较高,但KVM只实现了内核中对处理器虚拟化特性的支持,缺乏设备虚拟化以及相应的用户空间管理虚拟机的工具。
QEMU-KVM就是KVM与QEMU的结合,KVM负责CPU虚拟化+内存虚拟化,QEMU模拟其它IO设备。KVM虚拟机的创建依赖qemu-kvm:作为虚拟机上层控制和界面,KVM使用 qemu 作为上层管理(命令行)。qemu 是独立虚拟软件,能独立运行虚拟机(根本不需要 kvm )。 qemu 是该软件的加速软件。 kvm 并不需要 qemu 进行虚拟处理,只是需要它的上层管理界面进行虚拟机控制。虚拟机依旧是由 kvm 驱动。
virt-manager,virt-viewer
虚拟机图形化管理工具
virt-viewer是一个用于显示虚拟机的图形控制台的最小工具。
Virtual Machine Manager (virt-manager) 是一个轻量级应用程序套件,形式为一个管理虚拟机的命令行或图形用户界面 (GUI)。除了提供对虚拟机的管理功能外,virt-manager 还通过一个嵌入式虚拟网络计算 (VNC) 客户端查看器为 Guest 虚拟机提供一个完整图形控制台。
libvirt
我们在创建和管理KVM虚拟机时还需要libvirt这个重要的组件:它是一系列提供出来的库函数,用以其他技术调用,来管理机器上的虚拟机。包括各种虚拟机技术,kvm、xen与lxc等,都可以调用libvirt提供的api对虚拟机进行管理。有这么多的虚拟机技术,它为何能提供这么多的管理功能那。是因为它的设计理念,它是面向驱动的架构设计。对任何一种虚拟机技术都开发设计相对于该技术的驱动。这样不同虚拟机技术就可以使用不同驱动,而且相互直接不会影响,方便扩展。而且libvirt提供了多种语言的编程接口,可以直接通过编程,调用libvirt提供的对外接口实现对虚拟机的操作。如今流行的云计算中的IaaS是与该库联系相当密切的。
Bridge
bridge是一个虚拟网络设备,具有网络设备的特性(可以配置IP、MAC地址等);而且bridge还是一个虚拟交换机,和物理交换机设备功能类似。对于普通的网络设备来说,只有两端,从一端进来的数据会从另一端出去,如物理网卡从外面网络中收到的数据会转发给内核协议栈,而从协议栈过来的数据会转发到外面的物理网络中。而bridge不同,bridge有多个端口,数据可以从任何端口进来,进来之后从哪个口出去和物理交换机的原理差不多,要看mac地址。
Bridge-utils:
在Bridge-utils的包中包含用于创建和管理桥接设备所需的工具。对于为虚拟机(VM)设置网络很有用
sudo apt-get install qemu报错
解决方法:sudo apt-get update
sudo apt-get update报错
解决方法:将目录下/var/lib/apt/lists/partial/所有的文件清掉:
sudo rm /var/lib/apt/lists/* -vf
sudo rm/var/lib/dpkg/lock-fronted
sudo rm/var/lib/dpkg/lock