主流虚拟化技术的对比以及优缺点。

Xen 半虚拟化

Xen是半虚拟化技术,它并不是一个真正的虚拟机,而是相当于自己运行了一个内核的实例,Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。它打算在单个计算机上运行多达100个满特征的操作系统。操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。可以自由的加载内核模块,虚拟的内存和IO,稳定而且可预测。分Xen+pv+和Xen+hvm,区别就是pv只支持linux,而hvm支持win系统。

优势:

  1.开放源代码;2.Xen支持非中断的动态迁移,可以允许动态工作负载平衡和例行维护而几乎没有任何宕机时间;3.Xen具有更好的处理性能(接近于本地处理)。4.Xen支持一个客体虚拟机的数量呈线性增长,可以支持30个以上工作负载同时运行。5.Xen在虚拟网络支持、虚拟存储支持、安全增强、高可用性、容错处理、电源管理、HPC或者实时支持、虚拟CPU可扩展性、跨平台兼容性。虚拟机可移植性、虚拟应用设备市场以及已经建立起来的云服务社区等诸多方面都要比KVM优越。6.因此KVM只是在技术上比较与众不同,并且拥有几个不错的应用场景。但是作为企业级的服务器虚拟化技术,和Xen比起来,KVM尚有较大差距。

劣势:

  1.磁盘I/O方面略逊于KVM;2.然而使用泛虚拟化技术需要修改操作系统,默认Windows的安装并不支持泛虚拟化工作环境;3.最后一点是KVM是Linux内核的一部分,而Xen做到最好也无非是整合到Linux中。随着时间的推移,Ret Hat(目前掌握KVM技术),作为Linux企业市场中份额最大的企业,将会使虚拟化技术的后来者--KVM同Xen一样功能齐全。

KVM 硬件辅助虚拟化

KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。但是,KVM 本身不执行任何硬件模拟,需要客户空间程序通过 /dev/kvm 接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示映射回宿主的显示屏。目前这个应用程序是 QEMU。

优势:

和xen类似,比xen更好的一点是,kvm是完全虚拟的,只对硬件的CPU和内存做分配,是依赖于硬件本身的,所有的kvm类+型的虚拟技术都可以装各种linux的发行版和各种win的发行版,不管供应商在主页有没有写明是否支持win,只要你配置够win运行,那就肯定可以装的上去,只是方法的问题而已。1.有快照系统,易于容灾恢复。2.通过网络IP控制(IPkvm),不受距离影响,管理更为灵活;3.设备扩展更为容易;4.及时性更强,设备出现问题,在家也可以第一时间实现控制。

劣势:

  1.占用IP资源,依赖硬件,需要IP来进行控制;2.面临网络风险问题,安全性不强;3.占用网络宽带流量,受宽带影响,会有滞后感,网络中断即无法工作;4.增加独立用户认证系统和维护调度量,以及网络安全防火墙,增加成本;5.受网络影响大,无法做到高分辨率;6.允许同时登陆用户少。7.ESXI正在解决以上弱势,但是太贵,普通企业无法承受按照CPU/颗/年授权使用。

Virtuozzo/OpenVZ 操作系统层虚拟化

Hyper-VHyper-V是微软提出的一种系统管理程序虚拟化技术,能够实现桌面虚拟化 。Hyper-V Server 2012完成RTM版发布是微软的一款虚拟化产品,是微软第一个采用类似Vmware ESXi和Citrix Xen的基于hypervisor的技术。这也意味着微软会更加直接地与市场先行者VMware展开竞争,但竞争的方式会有所不同。 是操作系统级别的虚拟化技术,是底层操作系统上的一层应用,这意味着易于理解和低权重开销,一般来说也意味着更优的性能。但是OpenVZ配置起来比较灵活,给黑心服务商改低限制的机会。

优势:

  1.具有标准的启动脚本、软件厂商提供的软件可以运行在VPS内部而无需为OpenVZ做特别的修改或调整,扩展性强。2.用户可以修改任何配置文件和安装其他软件,灵活性非常高,易于管理维护。3.每个VPS账户相互之间完全隔离,包括文件系统、进程、内部进程、操作系统等,独立性非常强;

劣势:

  1.超卖,没有不超卖的,导致各种石头盘,钻石盘。连带的cpu也被过度分割导致性能升值不如其标明的1/10。再有就是内存,基本上OpenVZ技术没有独占的,都是共享,别人多了你就少了,而且这种技术最大的劣势就是内存下来后直接就是down机。还有开设vpn各种不方便。

在物理机上实现lnmp,至少三台VMware虚拟机。

安装物理机(略),一键部署lnmp,贴出脚本,自行修改:

#!/bin/bash
NGINX_V=1.15.6
PHP_V=5.6.36
TMP_DIR=/tmpINSTALL_DIR=/usr/localPWD_C=$PWDecho
echo -e "\tMenu\n"
echo -e "1. Install Nginx"
echo -e "2. Install PHP"
echo -e "3. Install MySQL"
echo -e "4. Deploy LNMP"
echo -e "9. Quit"function command_status_check() {if [ $? -ne 0 ]; thenecho $1exitfi
}function install_nginx() {cd $TMP_DIRyum install -y gcc gcc-c++ make openssl-devel pcre-devel wgetwget http://nginx.org/download/nginx-${NGINX_V}.tar.gztar zxf nginx-${NGINX_V}.tar.gzcd nginx-${NGINX_V}./configure --prefix=$INSTALL_DIR/nginx \--with-http_ssl_module \--with-http_stub_status_module \--with-streamcommand_status_check "Nginx - 平台环境检查失败!"make -j 4 command_status_check "Nginx - 编译失败!"make installcommand_status_check "Nginx - 安装失败!"mkdir -p $INSTALL_DIR/nginx/conf/vhostalias cp=cp ; cp -rf $PWD_C/nginx.conf $INSTALL_DIR/nginx/confrm -rf $INSTALL_DIR/nginx/html/*echo "ok" > $INSTALL_DIR/nginx/html/status.htmlecho '<?php echo "ok"?>' > $INSTALL_DIR/nginx/html/status.php$INSTALL_DIR/nginx/sbin/nginxcommand_status_check "Nginx - 启动失败!"
}function install_php() {cd $TMP_DIRyum install -y gcc gcc-c++ make gd-devel libxml2-devel \libcurl-devel libjpeg-devel libpng-devel openssl-devel \libmcrypt-devel libxslt-devel libtidy-develwget http://docs.php.net/distributions/php-${PHP_V}.tar.gztar zxf php-${PHP_V}.tar.gzcd php-${PHP_V}./configure --prefix=$INSTALL_DIR/php \--with-config-file-path=$INSTALL_DIR/php/etc \--enable-fpm --enable-opcache \--with-mysql --with-mysqli --with-pdo-mysql \--with-openssl --with-zlib --with-curl --with-gd \--with-jpeg-dir --with-png-dir --with-freetype-dir \--enable-mbstring --enable-hashcommand_status_check "PHP - 平台环境检查失败!"make -j 4 command_status_check "PHP - 编译失败!"make installcommand_status_check "PHP - 安装失败!"cp php.ini-production $INSTALL_DIR/php/etc/php.inicp sapi/fpm/php-fpm.conf $INSTALL_DIR/php/etc/php-fpm.confcp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpmchmod +x /etc/init.d/php-fpm/etc/init.d/php-fpm startcommand_status_check "PHP - 启动失败!"
}read -p "请输入编号:" number
case $number in1)install_nginx;;2)install_php;;3)install_mysql;;4)install_nginxinstall_php;;9)exit;;
esac

实现效果:



虚拟机安装 Ubuntu一台,centos7.9六台,其中两台为web服务器

将2中的VMware虚拟机迁移到kvm环境中。

创建宿主机与kvm实例

验证宿主机是否开启虚拟化:

grep -E "vmx|svm"  /proc/cpuinfo | wc -l


我的虚拟机脑图:

安装kvm工具包:132机器:

[root@10 ~]# yum install qemu-kvm qemu-kvm-tools libvirt libvirt-client virt-manager virt-install -y
[root@10 ~]# systemctl start libvirtd
[root@10 ~]# systemctl enable libvirtd
[root@10 ~]# ifconfig                    #验证是否生成NAT网卡virbre


133机器也同样上述操作,后期会演示热迁移

修改IP

vim /etc/libvirt/qemu/networks/default.xml

修改以下四处

重启network,打开virt-manager

virt-manager

创建kvm虚拟机:可以通过命令,也可以通过virt-manager来创建,这里演示以命令创建:

创建磁盘

qemu-img create -f raw /var/lib/libvirt/images/centos-7.raw 10G

上传ISO文件:

用virt-manager:    [root@10 images]# virt-manager
上传ISO文件:
[root@10 ~]# mkdir /data/ISOs -p
[root@10 ~]# cd /data/ISOs/
[root@10 ISOs]# ll
total 0

使用xftp上传ISO镜像

创建虚拟机:

virt-install --virt-type kvm  --name centos7 --ram 1024  --vcpus 2  --cdrom=/data/ISOs/CentOS-7-x86_64-DVD-2009.iso  --disk path=/var/lib/libvirt/images/centos-7.raw     --network network=default  --graphics  vnc,listen=0.0.0.0  --noautoconsole

注意:路径改为自己的存储路径
这里一定要快速进入virt-manager

这里一定要快速进入virt-manager

[root@10 ~]# virt-manager

打断自动安装,更改kvm虚拟机ifnames等文件,否则后期容易乱


修改地址及配置文件(同前期博客)

安装成功,测试连通性:

热迁移((冷迁移:把vmdk文件上传到宿主机,然后转换为qcow2格式传输至kvm虚拟机即可(略)),这里着重将热迁移)

134机器安装NFS

134:
[root@10 ~]# yum install nfs-utils -y
[root@10 ~]# mkdir /data/vmdata -p   #新建kvm的文件目录
[root@10 ~]# vim /etc/exports
/data/vmdata *(rw,no_root_squash)                                 #把文件共享给所有人
[root@10 ~]# systemctl restart nfs
[root@10 ~]# systemctl enable nfs
虚拟机关机,把磁盘文件拷到存储机上去

进入133:

[root@10 ~]# cd /var/lib/libvirt/images/
[root@10 images]# ll
三台都安装nfs[root@10 images]#yum install nfs-utils -y         #方便挂载

进入132:

[root@10 ~]# showmount -e 10.0.0.134
[root@10 ~]# mount -t nfs 10.0.0.134:/data/vmdata /mnt/
看挂载是否成功:[root@10 ~]# df -TH


[root@10 ~]# virt-manager
[root@10 ~]# cd /var/lib/libvirt/images/       #没有路径的话就返回到第一步去装kvm工具包
[root@10 images]# ll

一般这里是有kvm虚拟机的,直接把们cp到存储机去:
cp * /mnt/

拷完之后在两个服务器上分别挂载存储,使用mount去挂,建议放在lib目录,使用命令挂载:

132:
[root@10 images]# mount -t nfs 10.0.0.134:/data/vmdata /var/lib/libvirt/images/
[root@10 images]# lll

可以看到挂过来了[root@10 images]# df -TH

在源主机(10.0.0.133)的kvm上添加一个免密认证

g.cn/ed32b4818926415c9145dbd8732de35d.png)
成功

给源主机加一个解析,133:

[root@10 images]# vim /etc/hosts

右键开始迁移

成功

热迁移速度很快,还可以反迁移:

vSphere, ESXi 和 vCenter 的区别

VMware vSphere

集成容器(VIC)建立了一个在轻量级虚拟机内部署并管理容器的环境,一体式虚拟化解决方案。全新的虚拟机环境提供了更高级别的硬件隔离度,灵活性以及可扩展性使得容器对开发人员以及企业应用具有如此大的吸引力。收费,但可以免费试用。

VMware ESXi

创建的虚拟设备(虚拟机),如今,ESXi已经实现了与Virtual Appliance Marketplace的直接整合,使用户能够即刻下载并运行虚拟设备。这为即插即用型软件的交付与安装提供了一种全新和极其简化的方式。收费,但可以免费申请试用60天。可通过web界面来管理kvm虚拟机

VMware vCenter

虚拟机/虚拟化管理平台,功能更加强大。vCenter server 是安装在 Window 服务器或 Linux 服务器里面。VMware vCenter server 是一个中心化的管理应用。你可以通过它管理所有的虚拟机和 ESXi 物理机。vSphere client 可以通过访问 vCenter Server 来管理 EXSi 服务器。vCenter server 是一个企业级的产品,有许多企业级的功能,像 vMotion, VMware High Availability, VMware Update Manager 和 VMware Distributed Resource Scheduler(DRS)。你可以方便的通过 vCenter server 克隆存在的虚拟机。所以,vCenter 也是 vSphere 套件的一个重要组成部分。你需要单独购买 vCenter 的 license。

ESXi安装Ubuntu虚拟机,并克隆4台,安装一台windows虚拟机"

安装ESXI,和安装虚拟机的步骤一样,安装界面区别:




脑图
键盘选择美式:


按f2修改配置:

网络配置修改\测试:

通过浏览器登录web界面:


安装UBUNTU虚拟机:

上载镜像





安装成功

克隆

安装wendows虚拟机:


修改网络等防火墙配置:


新建完成
如果觉得对您有用,请点个赞哦♪(^∀^●) ↓↓↓

centos7.9-kvm-ESXi相关操作相关推荐

  1. centos7修改ip地址自动获取_南京课工场IT培训:如何搭建DHCP服务器及自动获取IP地址及相关操作...

    DHCP服务相关理论知识 DHCP服务分为以下三点, IP地址(例:192.168.1.0) 子网掩码(例:255.255.255.0) 网关 DHCP服务的好处: 减少管理员的工作量 避免输入错误的 ...

  2. Centos7搭建KVM虚拟化平台之基于OVS网桥

    Centos7搭建KVM虚拟化平台之基于OVS网桥 文章目录 Centos7搭建KVM虚拟化平台之基于OVS网桥 一.什么是虚拟化技术?为什么要用虚拟化技术? 二.Qemu-KVM基本工作原理分析 三 ...

  3. Centos7 安装KVM

    参考文章: KVM 介绍(1):简介及安装 centos7安装部署kvm,照做就行 Centos7搭建KVM 第二章:KVM安装 - CharlieBrown - 博客园 KVM简介: https:/ ...

  4. 10、自学——Linux的学习进度与任务【用户和用户组相关操作】

    用户和用户组相关操作 用户和用户组定义: 用户:资源获取标识符(资源分配),是安全权限模型的可信要素之一 用户组:用户组是指多个用户的集合,方便对一类需要同样权限的用户授权   密码:用户认证  Li ...

  5. centos7.3 kvm虚拟化全自动化部署(0915金测OK)

    环境说明: VMware中的centos7做kvm虚拟化实验必须的设置,否则无法正常使用kvm虚拟化功能: #kvm虚拟化一键安装和启动的脚本(已测OK) #说明:此脚本实现kvm虚拟化平台的一键安装 ...

  6. 关于Linux中的apt-get的相关操作及原理

    关于Linux中的apt-get的相关操作及原理 Linux下的apt-get指令与相关文件夹 apt-get是linux下的一种简便的安装和更新软件的方法,在装软件的时候常用的命令就是 sudo a ...

  7. Centos7安装kvm服务器

    Centos7安装kvm服务器 什么是kvm virt-manager及相关软件简介 virt-manger架构及原理 KVM QEMU Libvirt 检查硬件是否支持kvm虚拟化 启用嵌套虚拟化( ...

  8. 04Linux常用命令(文件系统与磁盘相关操作)

    Linux常用命令(文件系统与磁盘相关操作) 1.基础知识 1:通常称呼一个可被挂载的数据为一个文件系统而不是一个分区.2:操作系统的文件数据除了文件的实际内容外,通常含有非常多的属性,例如Linux ...

  9. Docker--镜像、容器相关操作

    Docker--r镜像.容器相关操作 一.镜像操作 1.搜索镜像 2.下载镜像 3.镜像打标签 4.查看镜像信息 5.删除镜像 6.运行镜像 7.镜像的导出.导入 二.容器操作 1.查看所有容器(包括 ...

  10. 2021年大数据HBase(五):HBase的相关操作JavaAPI方式

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase的相关操作-JavaAPI方式 一.需求说明 ...

最新文章

  1. [原创]java读写word文档,完美解决方案
  2. 路由器级联后网速慢的原因分析和问题解决
  3. BabyXor flower逆向寒假生涯(19/100)
  4. Java内存泄漏问题
  5. WordPress 多媒体库添加分类和标签支持
  6. 楷体任务用Ant来构建你的项目
  7. SpringCloud学习笔记019---Windows 平台安装 MongoDB
  8. python里的class_Python中的Class的讨论
  9. linux scp 非22端口,[ssh scp sftp] 连接远程ssh非22端口的服务器方法
  10. raspberry pi 4检查ch340/ch341驱动
  11. coreldraw教程入门零基础coreldraw下载coreldraw2019安装
  12. 用python手把手教你玩跳一跳小游戏,直接打出高分
  13. 新浪登陆按钮三种方式解析
  14. Excel报表的导出
  15. Matlab龚珀兹曲线模型预测,统计预测方法及预测模型介绍.ppt
  16. 各版本Metal支持的iOS版本与MacOS版本
  17. java递归多层(多节点)xml和map互相转换
  18. js callee与caller 区别
  19. asp mysql 不用 dsn,另类: asp不用DSN访问数据库
  20. 【html+css3+js】 鼠标悬停控件改变鼠标样式

热门文章

  1. 金属学复习【3】 --- 二元合金相图和合金的凝固
  2. java dom4j读写锁,java锁的深度化-重入锁,读写锁,乐观锁,悲观锁
  3. startup_LPC17XX.s 启动文件分析
  4. 启科量子可视化量子编程——QuComposer
  5. 人工智能实践:Tensorflow笔记 Class 5:卷积神经网络
  6. android根文件系统目录结构
  7. Latex系列2---段落编写+标题编写+目录生成
  8. Mybatis从入门到精通读书笔记
  9. 国标28181:海康、大华、宇视摄像头怎么添加GB28181协议
  10. 博弈论读书笔记(三):负和、零和、正和博弈