@toc
虚拟化技术主要分类
KVM虚拟化技术简介
KVM概述
KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hypervisor(提供虚拟机真正管理的工具)
KVM架构
KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。但是,KVM 本身不执行任何硬件模拟,需要客户空间程序通过 /dev/kvm 接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示映射回宿主的显示屏。目前这个应用程序是 QEMU。
KVM软件安装
查看系统版本
查看CPU内核是否支持虚拟化
[root@kvm ~]# grep -E "vmx|svm" /proc/cpuinfo如果没有过滤出来vmx或svm,需要开启硬件虚拟化设置,重启后再次查看
查看是否加载KVM模块
[root@kvm ~]# lsmod |grep kvm如果没有执行modeprode kvm命令加载
关闭selinux
[root@kvm ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config安装KVM相关软件包
[root@kvm ~]# yum install qemu-kvm virt-manager libvirt virt-install virt-viewer –y qemu-kvm: KVM模块 libvirt: 虚拟管理模块 virt-manager: 图形界面管理虚拟机 virt-install: 虚拟机命令行安装工具kvm负责cpu虚拟化和内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备qemu是模拟IO设备(网卡、磁盘),kvm加上qemu之后就能实现真正意义上服务器虚拟化libvirt则是调用kvm虚拟化技术的接口用于管理的,用libvirt管理方便。
启动libvirt并设置开机自启动
systemctl start libvirtd systemctl enable libvirtd使用图形化界面安装虚拟机
安装之前需要先上传镜像文件 方法一:dd if=/dev/cdrom of=/home/iso/centos7u4_x86_64.iso方法二:可以将window下的镜像文件传送到虚拟机上,方便安装(用mobaxterm或者xftp传)
点击Finish完成配置操作,开始安装
之后的安装过程相信大家在之前在vmware中对安装虚拟机都没有问题,这里不再演示了安装完成后进入登陆页面
完全文本方式安装
[root@kvm images]# virt-install --virt-type kvm --name kvm1 --ram 500 --cdrom=/home/iso/CentOS-7-x86_64-Minimal-2009.iso --disk path=/home/images/centos7.qcow2,size=5 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole安装完成后,查看
[root@kvm ~]# virsh list #查看运行中的虚拟机 [root@kvm ~]# virsh list --all #查看所有已安装的虚拟机命令行管理工具
virsh console minglinux01 #进入指定虚拟机 virsh shutdown minglinux01 #关闭虚拟机 virsh start minglinux01 #开启虚拟机 virsh destroy minglinux01 #类似stop,这个是强制停止 virsh define minglinux01 #以配置文件的形式创建一个虚拟机 virsh undefine minglinux01 #彻底销毁虚拟机,会删除虚拟机配置文件,virsh list --all就看不到了 ls /etc/libvirt/qemu/ #可以查看虚拟机配置文件 virsh autostart minglinux01 #宿主机开机该虚拟机也开机 virsh autostart --disable minglinux01 #解除开机启动 virsh suspend minglinux01 #挂起 virsh resume minglinux01 #恢复根据配置文件创建虚拟机
[root@kvm ~]# ls /etc/libvirt/qemu/kvm1.xml /etc/libvirt/qemu/kvm1.xml #虚拟机配置文件 [root@kvm ~]# ls /var/lib/libvirt/images/kvm1.qcow2 /var/lib/libvirt/images/kvm1.qcow2 #储存虚拟机的介质(磁盘镜像文件)1.拷贝配置文件及磁盘镜像文件[root@kvm ~]# cp /etc/libvirt/qemu/kvm1.xml /etc/libvirt/qemu/kvm2.xml [root@kvm ~]# cp /var/lib/libvirt/images/kvm1.qcow2 /var/lib/libvirt/images/kvm2.qcow2 2.修改配置文件[root@kvm ~]# vim /etc/libvirt/qemu/kvm2.xml
8 <domain type='kvm'> 9 <name>kvm1</name> #修改虚拟机名字 10 <uuid>77341e88-c483-40b8-943b-ebf59988e219</uuid> #修改uuid 11 <memory unit='KiB'>1048576</memory> #内存大小 12 <currentMemory unit='KiB'>1048576</currentMemory> #和上面保持一致 13 <vcpu placement='static'>1</vcpu> #cpu个数 44 <source file='/var/lib/libvirt/images/kvm1.qcow2'/> #修改磁盘文件镜像名 77 <mac address='52:54:00:6e:24:f0'/> #修改mac地址,只能修改后三段3.创建虚拟机[root@kvm ~]# virsh define /etc/libvirt/qemu/kvm2.xml 4.重启libvirtd[root@kvm ~]# systemctl restart libvirtd5.宿主机开启路由转发[root@kvm ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf[root@kvm ~]# sysctl -p #生效net.ipv4.ip_forward = 1[root@kvm ~]# virt-manager #进入图形界面,查看创建好的虚拟机