1、kvm简介 python
(1)简介编程
KVM:就是Keyboard Video Mouse的缩写。KVM 交换机经过直接链接键盘、视频和鼠标 (KVM) 端口,让您可以访问和控制计算机。KVM 技术无需目标服务器修改软件。这就意味着能够在 Windows 的 BIOS 环境下,随时访问目标计算机。KVM 提供真正的主板级别访问,并支持多平台服务器和串行设备。ubuntu
KVM 技术已经从最初的基础SOHO办公型,发展成为企业 IT 基础机房设施管理系统。能够从kvm 客户端管理软件轻松的直接访问位于多个远程位置的服务器和设备。KVM over IP 解决方案具有完善的多地点故障转移功能、符合新服务器管理标准 (IPMI) 的直接界面,以及将本地存储媒体映射至远程位置的功能。vim
KVM 是个"怪胎",本来是类型2 的主机虚拟化;但一旦在OS 上加载了kvm.ko 模块,就会"感染"OS,使其变为hypervisor(kvm),本来的软件空间做为控制台,转化成类型1 模式的主机虚拟化centos
(2)KVM的组件服务器
① kvm.ko:模块网络
API 应用程序编程接口架构
② qemu-kvm:用户空间的工具程序;dom
qemu-KVM是一种开源虚拟器,它为KVM管理程序提供硬件仿真。ide
运行中的一个kvm虚拟机就是一个qemu-kvm进程,运行qemu-kvm程序并传递给它合适的选项及参数即能完成虚拟机启动,终止此进程即能关闭虚拟机;
③ libvirt 虚拟化库:Libvirt是一个C工具包,能够与最近版本的Linux(以及其余操做系统)的虚拟化功能进行交互。主包包含了导出虚拟化支持的libvirtd服务器。
C/S:
Client:
libvirt-client
virt-manager
Daemon:
libvirt-daemon
(3)KVM模块load进内存以后,系统的运行模式:
内核模式:GuestOS执行IO类的操做时,或其它的特殊指令操做时的模式;它也被称为"Guest-Kernel"模式;
用户模式:Host OS的用户空间,用于代为GuestOS发出IO请求;
来宾模式:GuestOS的用户模式;全部的非IO类请求
2、安装
(1)前提:
① 必须跑在x86 系统的架构上
② 必须支持硬件级虚拟化
vmx:Intel VT-x
svm:AMD AMD-vt
③ 在虚拟机上再虚拟化,需开启虚拟化 Intel VT-x/EP
1.配置主机支持虚拟化
2.查看是否支持
1 # grep -i -E '(vmx|svm|lm)' /proc/cpuinfo 2 3 注意:vmx 或 svm或lm 必须出现一个,表示是支持的
3.装载KVM 模块
1 # yum -y install kvm python-virtinst libvirt bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v 2 # yum update 3 # yum upgrade 4 # modprobe kvm
4.查看模块
1 # lsmod |grep kvm
5.安装用户端工具 qemu-kvm
1 # yum install libvirt-daemon-kvm qemu-kvm virt-manager -y
6.启动kvm守护程序并建立虚拟桥
1 # systemctl start libvirtd.service 2 # virsh iface-bridge eth0(ens33) br0 //centos6是eth0,7是ens33 3 # systemctl restart netowrk
7.打virt-manager 窗口,建立虚拟机
#查看虚拟机
1 # virt-manager
8.上传镜像用于建立系统
9.建立虚拟机
(1)选择本地镜像安装
(2)选取镜像
(3)配置cpu、内存
(4)配置硬盘大小
(5)核对配置信息,勾选安装前配置,注意网络选网桥br0
(6)选取键盘和图形界面VNC,方便鼠标键盘操做
(7)开始安装
(8)最小化安装
(9)配置网络
(10)配置密码开始安装
(11)安装完成,测试链接
3、Virsh经常使用命令
1 virsh list #显示本地活动虚拟机 2 virsh list –all #显示本地全部的虚拟机(活动的+不活动的) 3 virsh define ubuntu.xml #经过配置文件定义一个虚拟机(这个虚拟机还不是活动的) 4 virsh start ubuntu #启动名字为ubuntu的非活动虚拟机 5 virsh create ubuntu.xml # 建立虚拟机(建立后,虚拟机当即执行,成为活动主机) 6 virsh suspend ubuntu # 暂停虚拟机 7 virsh resume ubuntu # 启动暂停的虚拟机 8 virsh shutdown ubuntu # 正常关闭虚拟机 9 virsh destroy ubuntu # 强制关闭虚拟机 10 virsh dominfo ubuntu #显示虚拟机的基本信息 11 virsh domname 2 # 显示id号为2的虚拟机名 12 virsh domid ubuntu # 显示虚拟机id号 13 virsh domuuid ubuntu # 显示虚拟机的uuid 14 virsh domstate ubuntu # 显示虚拟机的当前状态 15 virsh dumpxml ubuntu # 显示虚拟机的当前配置文件(可能和定义虚拟机时的配置不一样,由于当虚拟机启动时,须要给虚拟机分配id号、uuid、vnc端口号等等) 16 virsh setmem ubuntu 512000 # 给不活动虚拟机设置内存大小 17 virsh setvcpus ubuntu 4 # 给不活动虚拟机设置cpu个数 18 virsh edit ubuntu # 编辑配置文件(通常是在刚定义完虚拟机以后)
4、Qemu-kvm安装
1.建立虚拟网桥
1 # yum -y install bridge-utils 2 # brctl addbr br-int0 3 # brctl show
1 # ifconfig -a
2.激活网桥
1 # ip link set br-int0 up
3.删除网桥
1 # ip link set br-int0 down 2 # brctl delbr br-int0 3 # ifconfig -a 4 # brctl show
4.手动建立物理网桥
1 # cd /etc/sysconfig/network-scripts 2 # cp ifcfg-eth1/ens33 ifcfg-br0 3 # vim ifcfg-br0 4 TYPE=Bridge 5 NAME=br0 6 UUID=395fbf3c-07ef-4f58-a6a6-049c646a3d2b 7 DEVICE=br0 8 ONBOOT=yes 9 IPADDR=192.168.11.199 10 NETMASK=255.255.255.0 11 GATEWAY=192.168.11.254 12 DNS1=114.114.114.114 13 ZONE=public
5.把主机的网卡链接到网桥上
1 # vim ifcfg-eth1/ens33 2 DEVICE=eth1/ens33 3 ONBOOT=yes 4 BRIDGE=br0
6.重启网卡
1 # systemctl restart network 2 # brctl show
7.安装qemu-kvm
1 # yum install qemu-kvm libvirt-daemon-kvm virt-manager 2 # modprobe kvm 3 # lsmod |grep kvm
8.建立软连接,把qemu写入PATH变量
1 # ln -sv /usr/libexec/qemu-kvm /usr/bin/ 2 # qemu-kvm -h
9.安装VNC图形工具
1 # yum install vnc-server tigervnc -y 2 # vncpasswd 3 # vncserver
10.建立虚拟机所须要的iso镜像和磁盘
1 # mkdir /kvm/images -pv 2 # qemu-img create -o preallocation=metadata -f qcow2 /kvm/images/centos.qcow2 60G
11.建立虚拟机
1 # qemu-kvm -cpu host -smp 1 -name centos -m 512 -drive file=/kvm/images/centos.qcow2,if=ide,media=disk,format=qcow2 -drive file=/var/lib/libvirt/images/CentOS-7-x86_64-DVD-1804.iso,media=cdrom -boot dc -usbdevice tablet 2 3 -cpu :指定CPU的模式 4 5 -smp :指定CPU的个数 6 7 -name :指定虚拟机的名字 8 9 -m :指定虚拟机内存大小 10 11 -drive file :指定硬盘设备文件 12 13 if=ide :指定硬盘设备链接的借口类型 14 15 media=disk :指定硬盘设备为磁盘 16 17 format=qcow2 :指定映像文件的格式 18 19 -boot :定义启动引导次序
12.另开终端打开安装
1 # vncviewer :5900
13.开始安装