欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

centos7环境,kvm命令行模式部署虚拟机

程序员文章站 2022-05-10 10:45:43
...

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

centos7环境,kvm命令行模式部署虚拟机
检查cpu是否支持虚拟化

[aaa@qq.com c7-41 ~] egrep '(vmx|svm)' /proc/cpuinfo

centos7环境,kvm命令行模式部署虚拟机
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.

相关参数注释centos7环境,kvm命令行模式部署虚拟机

[aaa@qq.com c7-41 opt] virsh list --all #查看虚拟机运行状态
 Id    Name                           State
----------------------------------------------------
 1     c77                            running

6,使用vnc登陆,开始设置安装虚拟机
centos7环境,kvm命令行模式部署虚拟机
选择语言
centos7环境,kvm命令行模式部署虚拟机选择时区
centos7环境,kvm命令行模式部署虚拟机
centos7环境,kvm命令行模式部署虚拟机
最小化安装,可以安装在几个工具centos7环境,kvm命令行模式部署虚拟机centos7环境,kvm命令行模式部署虚拟机
关闭kdump
centos7环境,kvm命令行模式部署虚拟机
centos7环境,kvm命令行模式部署虚拟机
centos7环境,kvm命令行模式部署虚拟机
centos7环境,kvm命令行模式部署虚拟机
centos7环境,kvm命令行模式部署虚拟机
centos7环境,kvm命令行模式部署虚拟机
开始安装
centos7环境,kvm命令行模式部署虚拟机
设置用户密码
centos7环境,kvm命令行模式部署虚拟机
centos7环境,kvm命令行模式部署虚拟机
安装完成,重启
centos7环境,kvm命令行模式部署虚拟机
重启后会断掉,在服务器上执行启动命令

[aaa@qq.com c7-41 opt] virsh start c77 #c77是创建虚拟机的名字
Domain c77 started

重新登录vnc
centos7环境,kvm命令行模式部署虚拟机

相关标签: kvm