KVM简介
KVM(Kernel-based Vritual Machine)–基于内核的虚拟机
KVM 是基于虚拟化扩展的X86硬件的开源Linux原生的全虚拟化方案(要求cpu支持Intel-VT-x或AMD-V)
KVM内嵌于内核模块中,模拟处理器和内存以支持虚拟机运行
虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;
虚拟机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能
但KVM本身不执行任何模拟。需要客户空间程序(虚拟机)通过/dev/kvm(此虚拟设备需要开起硬件辅助虚拟化才能看到)接口设置一个客户机虚拟服务器的地址空间,
并且由Qemu模拟I/O(ioctl)进行调度资源和维护管理
Libvirt:KVM的管理工具,除了可以管理KVM这类VMM,还可以管理Xen,VirtualBox,甚至OpenStack底层
Libvirt包含3个组件:后台daemon程序libvirtd、API库、命令行工具virsh
KVM 虚拟化架构/三种模式
1、客户模式(guestOS):VM中的OS为GuestOS
客户机在操作系统中运行的模式,客户机分为内核模式和用户模式,作用如下:
2、用户模式:
为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,Qemu工作在此模式下(Qemu的主要功能)
3、linux内核模式
模拟CPU、内存,实现客户模式切换,处理从客户模式的推出,KVM即运行在此模式下
1、Guest:客户机系统,包括CPU(vCPU)、内存、驱动(Console、网卡、I/O 设备驱动等),
被KVM 置于一种受限制的CPU 模式下运行。
2、KVM 内核模块模拟处理器和内存以支持虚拟机运行
3、Qemu 主要处理I/O以及为客户提供一个用户空间/dev/kvm 工具libvirt 来进行虚拟机管理
ioctl(定义) 专用于设备输入输出操作的系统调用
libvirt:KVM管理工具
以上构成一个完整的虚拟化平台
安装centos7系统
在VMware软件中新建虚拟机,并安装centos7系统
此处比较简单,不在赘述
centos7系统开局优化和KVM环境准备
centos7系统安装完成后,需要勾选上KVM虚拟化功能,且网卡选择NAT模式
设置镜像光盘自动挂载
[root@localhost ~]# vim /etc/fstab
/dev/sr0 /mnt iso9660 defaults 0 0 '//尾行添加'
优化ssh
[root@localhost ~]# vim /etc/ssh/sshd_config
UseDNS no '//取消注释,并将yes改成no'
yum本地仓库搭建
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv * bak
mv: 无法将目录"bak" 移动至自身的子目录"bak/bak" 下
[root@localhost yum.repos.d]# ls
bak
[root@localhost yum