centos7环境,kvm命令行模式部署虚拟机
KVM简介
KVM(名称来自英语:Kernel-basedVirtual Machine的缩写,即基于内核的虚拟机),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。KVM在2007年2月被导入Linux 2.6.20核心中,以可加载核心模块的方式被移植到FreeBSD及illumos上。
KVM在具备Intel VT或AMD-V功能的x86平台上运行。它也被移植到S/390,PowerPC与IA-64平台上。在Linux内核3.9版中,加入ARM架构的支持。
1).KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机)。
2).是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。
3).它包含一个为处理器提供底层虚拟化 可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。
4).KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。
5).KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)。
6).在主流的Linux内核,如2.6.20以上的内核均已包含了KVM核心。
kvm 是linux内核包含的东西,使用qemu作为上层管理(命令行)。
1).要求cpu 必须支持虚拟化。
2).性能:作为服务器很好,可是图形能力十分的差。即使放电影,图像也是像刷油漆一样,一层一层的。
3).cpu使用率控制很好。
4).控制上比较简洁,功能比较丰富:比如使用“无敌功能”所有更改指向内存,你的镜像永远保持干净。“母镜像”功能让你拥有n个独立快照点。还有很多参数。另外,kvm作为内核级的虚拟机,刚开始发展关注的公司比较多——但是还没有达到商业应用的水平。
KVM内存管理:
KVM继承了Linux系统管理内存的诸多特性,比如,分配给虚拟使用的内存可以被交换至交换空间、能够使用大内存页以实现更好的性能,以及对NUMA的支持能够让虚拟机高效访问更大的内存空间等。
KVM基于Intel的EPT(ExtendedPage Table)或AMD的RVI(Rapid Virtualization Indexing)技术可以支持更新的内存虚拟功能,这可以降低CPU的占用率,并提供较好的吞吐量。
此外,KVM还借助于KSM(Kernel Same-pageMerging)这个内核特性实现了内存页面共享。KSM通过扫描每个虚拟机的内存查找各虚拟机间相同的内存页,并将这些内存页合并为一个被各相关虚拟机共享的单独页面。在某虚拟机试图修改此页面中的数据时,KSM会重新为其提供一个新的页面副本。实践中,运行于同一台物理主机上的具有相同GuestOS的虚拟机之间出现相同内存页面的概率是很高的,比如共享库、内核或其它内存对象等都有可能表现为相同的内存页,因此,KSM技术可以降低内存占用进而提高整体性能。
1,环境准备
4G,2核
#关闭防火墙和selinux
[aaa@qq.com c7-41 ~] systemctl stop firewalld
[aaa@qq.com c7-41 ~] systemctl disable firewalld
[aaa@qq.com c7-41 ~] setenforce 0
[aaa@qq.com c7-41 ~] sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
检查cpu是否支持虚拟化
[aaa@qq.com c7-41 ~] egrep '(vmx|svm)' /proc/cpuinfo
2,安装所需组件kvm用户态模块
[aaa@qq.com c7-41 ~] yum -y install qemu-kvm qemu-kvm-tools libvirt
#libvirt用来管理kvm
#kvm属于内核不用安装
[aaa@qq.com c7-41 ~] systemctl start libvirtd #启动libvirt
[aaa@qq.com c7-41 ~] systemctl enable libvirtd #添加开机自启
3,进入opt,上传镜像,使用dd命令,复制系统镜像,挂载到光盘上
[aaa@qq.com c7-41 ~] cd /opt/
[aaa@qq.com c7-41 opt] ls
CentOS-7-x86_64-DVD-1908.iso
[aaa@qq.com c7-41 opt] dd if=/dev/cdrom of=/opt/CentOS-7-x86_64-DVD-1908.iso
4,创建磁盘
[aaa@qq.com c7-41 opt] qemu-img create -f qcow2 /opt/c77.qcow2 8G
Formatting '/opt/c77.qcow2', fmt=qcow2 size=8589934592 encryption=off cluster_size=65536 lazy_refcounts=off
[aaa@qq.com c7-41 opt] ll
total 4554948
-rw-r--r-- 1 root root 197120 May 13 14:11 c77.qcow2
-rw-r--r-- 1 root root 4664066048 May 13 14:08 CentOS-7-x86_64-DVD-1908.iso
5,安装虚拟机
[aaa@qq.com c7-41 opt] yum -y install virt-install
[aaa@qq.com c7-41 opt] virt-install --virt-type=kvm --name=c77 --vcpus=1 -r 1024 --cdrom=/opt/CentOS-7-x86_64-DVD-1908.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --disk path=/opt/c77.qcow2,size=6,format=qcow2
Starting install...
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
相关参数注释
[aaa@qq.com c7-41 opt] virsh list --all #查看虚拟机运行状态
Id Name State
----------------------------------------------------
1 c77 running
6,使用vnc登陆,开始设置安装虚拟机
选择语言
选择时区
最小化安装,可以安装在几个工具
关闭kdump
开始安装
设置用户密码
安装完成,重启
重启后会断掉,在服务器上执行启动命令
[aaa@qq.com c7-41 opt] virsh start c77 #c77是创建虚拟机的名字
Domain c77 started
重新登录vnc