kvm和VMware有何区别?

kvm和VMware有何区别?,第1张

基于kvm虚拟机软件的厂商代表是新华三集团。
作为业内最早基于KVM(Kernel-basedVirtualMachine)底层架构进行服务器虚拟化研发的厂商之一,新华三集团于2009年开启了服务器虚拟化技术的探索之路,并于2011年正式发布第一代虚拟化软件H3CCAS(CloudAutomationSystem)。
KVM官方版是一款专为Linux系统的虚拟机软件。KVM最新版是基于内核的开源虚拟化,能够帮助用户在linux系统之中模拟windows系统,实现了跨系统安装软件的自由

不同的基于KVM的虚拟化平台,可能会采用不同的虚拟化组件,目前主流的采用QEMU-KVM组件,但在不同的产品里版本有所不同,功能也有差异,下面就几个概念进行梳理下

KVM:Kernel-Based Virtual Machine 基于内核的虚拟机,是Linux内核的一个可加载模块,通过调用Linux本身内核功能,实现对CPU的底层虚拟化和内存的虚拟化,使Linux内核成为虚拟化层,需要x86架构的,支持虚拟化功能的硬件支持(比如Intel VT,AMD-V),是一种全虚拟化架构。KVM在2007年年2月被导入Linux 2620内核中。从存在形式来看,它包括两个内核模块:kvmko  和  kvm_intelko(或kvm_amdko),本质上,KVM是管理虚拟硬件设备的驱动,该驱动使用字符设备/dev/kvm(由KVM本身创建)作为管理接口,主要负责vCPU的创建,虚拟内存的分配,vCPU寄存器的读写以及vCPU的运行。

QEMU:是一套由Fabrice Bellard编写的模拟处理器的自由软件,它是一个完整的可以单独运行的软件,可以独立模拟出整台计算机,包括CPU,内存,IO设备,通过一个特殊的“重编译器”对特定的处理器的二进制代码进行翻译,从而具有了跨平台的通用性。QEMU有两种工作模式:系统模式,可以模拟出整个电脑系统,另一种是用户模式,可以运行不同与当前硬件平台的其他平台上的程序(比如在x86平台上运行跑在ARM平台上的程序);其代码地址 >

QEMU-KVM:从前面对KVM内核模块的介绍知道,它只负责CPU和内存的虚拟化,加载了它以后,用户就可以进一步通过工具创建虚拟机(KVM提供接口),但仅有KVM还是不够的,用户无法直接控制内核去做事情(KVM只提供接口,怎么创建虚拟机,分配vCPU等并不在它上面进行),还必须有个运行在用户空间的工具才行,KVM的开发者选择了比较成熟的开源虚拟化软件QEMU来作为这个工具,并对其进行了修改,最后形成了QEMU-KVM。

在QEMU-KVM中,KVM运行在内核空间,QEMU运行在用户空间,实际模拟创建,管理各种虚拟硬件,QEMU将KVM整合了进来,通过/ioctl 调用 /dev/kvm,从而将CPU指令的部分交给内核模块来做,KVM实现了CPU和内存的虚拟化,但kvm不能虚拟其他硬件设备,因此qemu还有模拟IO设备(磁盘,网卡,显卡等)的作用,KVM加上QEMU后就是完整意义上的服务器虚拟化

当然,由于qemu模拟io设备效率不高的原因,现在常常采用半虚拟化的virtio方式来虚拟IO设备,另文再谈

综上所述,QEMU-KVM具有两大作用:

1提供对cpu,内存(KVM负责),IO设备(QEMU负责)的虚拟

2对各种虚拟设备的创建,调用进行管理(QEMU负责)

libvirt

顺带提一提libvirt,这是RedHat开始支持KVM后,大概是觉得QEMU+KVM方案中的用户空间虚拟机管理工具不太好用或者通用性不强,所以干脆搞了个libvirt出来,一个针对各种虚拟化平台的虚拟机管理的API库,一些常用的虚拟机管理工具如virsh(类似vim编辑器),virt-install,virt-manager等和云计算框架平台(如OpenStack,OpenNebula,Eucalyptus等)都在底层使用libvirt提供的应用程序接口。

libvirt主要由三个部分组成:API库,一个守护进程 libvirtd 和一个默认命令行管理工具 virsh。

总结:

目前来说,QEMU是一个独立的虚拟化解决方案,并不依赖KVM(它本身自己可以做CPU和内存的模拟,只不过效率较低),而KVM是另一套虚拟化解决方案,对CPU进行虚拟效率较高(采用了硬件辅助虚拟化),但本身不提供其他设备的虚拟化,借用了QEMU的代码进行了定制,所以KVM方案一定要依赖QEMU

即使后来RedHat后来开发了libvirt,也只能简单的认为是个虚拟机管理工具,仍然需要通过用户空间QEMU来与KVM进行交互

你从实体服务器的分离出来的虚拟机,它和你的实体服务器处在一个局域网内,因此你可以在实体服务器中,通过ssh访问到“虚拟机”,

但是你这个虚拟机并没有接入公网,他和你的设备不属于一个广域网,因此你肯定访问不到,需要做端口映射,将虚拟机的端口映射到实体服务器的端口上,这样才能通过公网访问,

具体端口映射方法,需要你自己去百度

一、 服务器配置过程说明

首先需要现在服务器上找一个节点装window server,然后开始配置存储阵列为RAID 5;然后创建Proxmox集群以及KVM(也就是虚拟节点),在每个节点上安装centos系统并下载Teamviewer;最后简单讲讲Proxmox中节点备份与恢复。

二、 配置RAID:

1) 基本概念:

其实首先要知道RAID是什么,它相当于是一个存储模式,其实就是平常说起来很高大上的存储阵列,是在window server上面做的,也就是机房的服务器。一般机房默认是RAID 0,其实基本没什么改变,就是该有几块硬盘就用几块,不需要做额外的设置;但是这样一来缺点也很明显,因为一旦坏了那就只能自己和自己去哭了,没有备份或者恢复机制。所以现在一般都做RAID 5,就是相当于会腾出一块硬盘来做恢复与备份,用空间来换取整个集群的安全,还是很划算的。步骤如下:

2) *** 作流程:

按照顺序傻瓜 *** 作向后点:硬件配置,配置向导——第一步,下一步——第1a步,清除外部配置,下一步——第2步,RAID0,下一步(这是为了清除最开始的时候默认RAID0配置)——第3步,协议:SAS,介质类型:HDD,加密功能:非加密,将磁盘全部选中,下一步——第4步,自动生成的参数,我的是:651700,1MB,自适应预读;回写,下一步——第5步,此步中要注意所有的物理磁盘都显示出来了,否则就要返回关机重配,完成——成功!

三、 开始创建Proxmox集群

1)基本概念:  

这一步是为了能在上一步的基础上(window server *** 作系统和RAID 5的存储阵列)进一步安装集群,在集群上分配节点,然后每个节点都可以分别分给不同的人来 *** 作,这样就是我们日常中 *** 作的节点。步骤如下:

2) *** 作流程: 

a 此时为无界面阶段

方法一: 进入黑屏界面之后,先按F11,进入界面选择UEFI,再选择有DVD那一步的选项;再按F1,进入简洁界面;BIOS-BOOT,进入界面;选择DVD;选择F2(此处有空白,3min);reboot;等待等待等待,之后的就是安装好之后的步骤···F1~~~

方法二: F12,然后PXE boot然后选择DVD或者SLOT选项

b 接着是有安装界面的 *** 作

同样是傻瓜式 *** 作向后点: 下一步—— country:China,TimeZone:Asia/Chongqing,KeyBoard Layout:US,English,下一步—— 此处参数由自己定,下一步——下一步—— 成功! 

c 傻瓜 *** 作结束,开始命令行 *** 作进行集群搭建。 但是集群搭建之前需要解决两个问题:

1、vi编辑器过于不好用,下载vim: apt-get update; apt-get installvim;(然后在用vim编辑的时候看不到最上面就用shift+pageup向上调)

2、修改/etc/hosts与/etc/hostname中参数: 将二者中的PVE都改成每个ip对应的名字,eg:pve14之类的,这样节点才能加进去。

d开始集群命令行 *** 作:

1、创建集群名字aciecluster:pvecm create aciecluster

2、登陆每个slave 节点,执行:pvecm add 1921682104(主节点IP)

3、在主节点查看状态:pvecm nodes

4、登录:>

e。出现问题:250节点加不进去

1、添加节点后面添加–force(是两个横线),命令变成:pvecm add 1921682250;

2、再重启集群:重启物理机;之后在客户端命令重启reboot

四、 创建KVM

1) 基本概念 

其实KVM就是一个一个的虚拟节点,和虚拟机差不多,只不过这是安装在服务器端的虚拟机,安装步骤如下。

2)安装步骤

点击数据中心下想要创建节点的服务器,然后在右上角有“创建VM”标志——一般:点击之后给节点命名,给定VM ID,此处还可以改在其他的服务器上创建节点——OS:点选右侧Linux3x/26kernel——CD/DVD:选第一个,导入镜像——硬盘:自己设置参数——CPU:自己设置参数——内存:自己设置参数——网络:自己设置参数——确认

五、 节点上CentOS 64系统安装:

1) 注意事项:

a)ALT+F5是把屏幕缩小,大致能看到下一步的位置;之后的界面就看不到了,在看不到tab之后连按两下就到了下一步

b) 第一个选skip;安装系统,一路正常配置,直到界面:

2)安装步骤:

use all space,review and modify partition layout,点击“next”——删除所有分区后,创建两个分区,其中一个为/boot(大小为200),另一个为/(点选“fill to maximum allowable size”,大小不用填写,意为自动分配所有剩余空间给它)—— Yes——next——Format——write changes to disk——next——点选minimal,next—— 完成后配置用户信息,欧了!

六、 配置IP并下载Teamviewer

上面的步骤基本上节点已经差不多了,就差IP了,配好IP后为了方便 *** 作节点,每个节点上最好下载一个Teamviewer。步骤如下:

1、虚拟机联网(保证ip不变):

1)首先改成NAT模式(虚拟机——可移动设备——网络适配器——设置)

2)然后在IPv4里面把ip设置成手动的,更改IP地址、子网掩码、网关以及DNS,应用

3)最后点击右上角小电脑的logo,勾选enable notification就行了

2、 右上角小电脑变成disconnect的了,也就是说网络不能连接,而且ifconfig也找不到ip地址:

1)首先就是按照“1、”的步骤重新试一遍,其中要多注意一点就是他的物理地址要改成本机物理地址,就是ifconfig命令之后出来的那个本机地址(不是ip)

2)如果没有ifconfig信息,那么就需要先设置网络为桥接模式,然后再将网络改回来NAT模式。

3、开始下载Teamviewer:

1)wget downloadteamviewercom/download/linux_teamviewerrpm

2)yum install linux_teamviewerrpm3)这里就不用解压了,直接就可以运行了,此时已经能用了,在Application-Internet中找到teamviewer,可以右键把它加到桌面上

4、设置开机自启

1)在system-preference-startup Application 中设置

2)点击add,将Teamviewer的属性(从Teamviewer属性中复制出来黏贴进去就行了)添加进去,欧了

七、 Proxmox节点恢复与备份

自此为止,节点已经全部搞定了,然后之后就涉及到节点备份与恢复的问题,这里会简略讲一下。

1) 备份:

选中数据中心,选择存储标签,选中要添加支持的存储,点击编辑,在内容的下拉菜单中选上Backups。这里的最大备份数必须大于等于1,其含义为当某个虚拟机的备份文件超过最大备份数时,再进行备份将会删除时间最早的备份。这对后面要提到的自动备份计划而言非常有用,可以省去我们人工删除过时备份的麻烦。

PVE的备份文件存在/dump文件夹中,根据备份时选择的数据压缩方式的不同,生成vmalo或者vmagz为后缀的文件,同时伴随一个相关的log日志文件。Path/Target为PVE备份文件夹所在的路径,在本例中备份文件将存储在/var/lib/vz/dump文件夹中。

接下来我们就可以开始备份了。先选中数据中心,切换到备份标签页,点击添加,将出现创建:备份计划对话框,可以选择需要备份的节点,设定备份计划于每周周几的几点开始,然后选择需要进行备份的虚拟机,设置数据压缩方式与备份模式后即可。数据备份将于设定时间自动启动。

当然了,我们也可以对单个虚拟机进行立即备份,选中需要备份的虚拟机,切换到备份标签,设置备份模式与数据压缩方式,点击备份即可开始备份。

2) 挂载磁盘将文件拷贝出来:

步骤很简单,就是先把硬盘插到你所在的服务器物理机上,然后

1)下载ntfs驱动: apt-get update apt-get install ntfs-3g

2)创建挂载点文件夹: mkdir /mnt/windows

3)进入/dev/查看移动硬盘信息 fdisk -l

4)插入移动硬盘,再次在/dev目录下执行查看移动硬盘信息 fdisk -l

5)比较两次信息,发现多出一个/dev/sda1,将sda1挂载到文件夹中: mount -t ntfs-3g /dev/sda1 /mnt/windows

6)进入目标文件夹(promox备份的文件都在/var/lib/vz中) cd /var/lib/vz

7)将文件拷贝到挂载硬盘中 cp -r(整个文件夹复制) dump /mnt/windows

8)解除挂载(相当于安全退出) umont /mnt/windowsd)

3)数据恢复:

同样的上述挂载步骤,将所移出来的文件放在/var/lib/vz/dump中,可以看到备份文件以vmalzo为后缀。选中需要使用的备份文件,点击恢复,将d出Restore VM对话框,可以设置存储位置与VM ID,点击恢复即可开始恢复。有意思的是,这里的VM ID除了可以设置成原有的虚拟机ID,将备份文件恢复并覆盖该虚拟机外,还可以设置成新的ID,将备份文件生成其他的与备份虚拟机一模一样的虚拟机。至此,服务器杂七杂八的配置完毕,如果有需要还会再进行补充的。

问题解决:1、节点关不掉以及开不了(命令查询去官网查看)

1)204节点开不了:索性就不开了,将pve、pve14、pve15全部关掉,这样就剩下那个关不掉的节点了。

2)205节点关不掉:关闭的时候会报错,报错信息是节点因为克隆被锁住了,用命令行将节点断开连接,然后再关掉。 qm unlink 205 -force qm unlock 205 qm destory 205 -skiplock


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13338252.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-17
下一篇 2023-07-17

发表评论

登录后才能评论

评论列表(0条)

保存