VMware下的Centos7实践Kvm虚拟化(通俗易懂)

虽然网上已经有很多关于kvm安装的教程了,但我还是看得头晕,有的教程里安装的包很多,有的很少,也没说明那些安装包的作用是干嘛的,用的命令也不一样,也没解释命令的意思是什么。

我重新写一个教程,尽量通俗易懂点,也是给增强我的记忆。

这里提示下,Hyper-v就是一个大坑!本来我是用Hyper-v来学习这个Kvm虚拟化的,我创建的宿主虚拟机可以连外网,宿主机里创建的kvm虚拟机是用桥接网络,但无论怎样设置都连接不了外网,kvm的虚拟机可以ping得通宿主机,宿主机也能ping得通kvm的虚拟机,宿主机可以ping得通外网,但就是kvm的虚拟机ping不通外网,但害我查了一整天,后面无奈用回VMware后,网络全都正常。

而且用Hyper-v,明显我的电脑内存占好多,每次启动,还要等半天的什么合并检查点,还不能连接U盘。

准备工作:一台能上网的Centos7虚拟机,VncViewer(这是在window运行的,到时可以连接虚拟机),XShell(远程ssh工具),XFtp(上传安装包)

VncViewer下载地址:https://www.realvnc.com/en/connect/download/viewer/

XShell、XFtp下载地址:https://www.netsarang.com/zh/free-for-home-school/

主要步骤:

  1. 开启嵌套虚拟功能(如果你不是用虚拟机的话,这步就不用)
  2. 安装kvm工具包
  3. 设置桥接网卡(如果是用Nat的,这步不用)
  4. 创建第一个kvm虚拟机(安装方式分控制台安装及远程图形化安装

1、开启嵌套虚拟功能

一开始我是在hyper-v的虚拟机上安装的,hyper-v比vmware麻烦点,得用以下命令操作

#以下命令不区分大小写
Get-VM    #获取全部虚拟机
Get-VMProcessor -VMName xxx | fl    #查看虚拟机属性,ExposeVirtualizationExtensions属性代表是否开启嵌套虚拟化
Set-VMProcessor -ExposeVirtualizationExtensions $true -VMName xxx    #开启嵌套虚拟化,得先把虚拟机关机,不然会出错

后面改用VMware就简单多了,如下图,把红圈里两个复选框勾上就行了,虚拟机得先关机才能修改

打开虚拟机,输入以下命令,查看是否支持虚拟化,如果没上面的操作是肯定没有的

cat /proc/cpuinfo | egrep "vmx|svm"


2、安装kvm工具包

我看网上好多教程安装的包很多,但又没说明各个包是干什么的,原谅我有点强迫症,我必须得了解每个包作用到底是干什么的

但经我测试后,最终发现只需安装三个包,分别是libvirt、qemu-kvm、virt-install(网上写的一些其它的包,如libvirt-python、libvirt-client、qemu-img,其实在安装这3个包时也会顺带安装了)。

我的理解:kvm只是linux一个功能,但linux没有提供任何方便我们去使用它的命令,所以需要安装一些工具,而libvirt、qemu-kvm、virt-install都是工具包,qemu-kvm提供一些qemu开头的命令(这个不安装会提供错误主机不支持任意虚拟化选项),libvirt提供一个服务(libvirtd)和其它virsh管理命令,virt-install提供安装管理虚拟机的命令

yum -y install qemu-kvm libvirt virt-install

因为我的是命令行管理,不在虚拟机上用图形化管理,所以只需这三个包,因为要在虚拟机上图形管理,还得安装个XWindows,我觉得生产环境应该也没人去装个图形管理。

还有一个包bridge-utils,这是用来管理桥接网卡的,这个我装libvirt包时也顺带装了,如果你的没包装,就安装一下

yum -y install bridge-untils

3、设置桥接网卡

经常玩虚拟机的都知道有两种试,一种是Nat,一种是桥接,

Nat就好比宿主机(就是安装kvm虚拟化的主机)是台路由器,虚拟机是连接路由器下面的电脑,跟宿主机同个网段的电脑是访问不了虚拟机的,要访问的话,就得在宿主机上设置端口映射。

而桥接就是把宿主机的物理网卡当做一个交换机,虚拟机直接连接交换机,那就跟宿主机是同一个网段的了,可以被其它电脑访问到,一般做服务虚拟化都是用桥接模式。

先切换到网卡目录,然后把原来的网卡文件复制一份,名称为ifcfg-br0,命令如下

cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-br0  #你的不一定是ifcfg-ens33,我开始用hyper-v时,接口是叫eth0

然后修改ifcfg-br0的配置,如下

修改ifcfg-ens33,主要是新增加一行,如下所示,如果你的本来是静态IP的话,就把静态IP的配置注释掉,只保留在br0就行了

然后重启下网络服务

systemctl restart NetworkManager
systemctl restart network

然后查看下网桥接口

brctl show

这个图是我在后面补的,红圈的是在启动虚拟机后才有的,你如果按博客顺序的话,现在应该是看不到这个红圈的vnet0的,等你把虚拟机启动后,再查看就看到这个vnet0,这表示vnet0也挢接在br0下面


4、创建第一个kvm虚拟机

这个就需要用到之前安装的包virt-install了,我先把命令主要参数列出来

#virt-install参数
--name=xxx                            #虚拟机唯一名称
--memory=1024[,maxmemory=2048]        #虚拟机内存,单位为mb --memory=1024,maxmemory=2048
--vcpus=1[,maxvcpus=4]                #虚拟机CPU数量
--cdrom=/xxx/xxx                     #指定安装源文件
--location=/xxx/xxx                    #指定安装源文件,跟--cdrom二选一,如果要用控制台安装得用这个,配合--extra-args参数
--disk path=/xx/xxx[,size=10,format=raw] #存储文件及格式
--graphics vnc,port=xxx,listen=xxx     #图形化参数,不用图形化用--graphics none --extra-args="console=ttyS0"
--network bridge=br0              #网络连接方式
--os-variant=xxx               #对应的系统值,可以osinfo-query os这个查对应值
--virt-type=kvm                   #虚拟机类型
--noautoconsole                #不自动连接,默认是安装时用virt-viewer或者virsh console去连接虚拟机

把管理虚拟机的命令也写一下

virsh list --all    #查看所有虚拟机,加all列出关机状态的
virsh console xxx    #以控件台连接到指定虚拟机
virsh start xxx        #启动虚拟机
virsh shutdown xxx    #关闭虚拟机,一般关不了
virsh destroy xxx    #强制关闭虚拟机
virsh autostart xxx    #设置虚拟机随机启动
virsh undefine xxx    #删除虚拟机,只会删除对应的xml,硬盘文件不会删除
virsh autostart xxx    #设置虚拟机自动启动

4.1、利用VncViewer远程图形化安装的方式

virt-install主要参数--graphics vnc,port=5901,listen=xxx

原理就是用virt-install命令安装时,在宿主机上开启一个vnc端口5901,然后用VncViewer程序连接宿主机的5901端口,跟平时图形化安装一样了。

推荐用Xshell连接,因为可以方便地复制命令,再装个XFtp上传iso文件到/data/iso目录里

创建所需目录

mkdir -p /data/iso /data/vm

把安装文件上传到/data/iso后,用Xshell连接后,复制以下命令,回车(以下命令的斜杠,只是为了好看分行,不是必要的)

virt-install --name=c7 --memory=1024 --vcpus=1 --cdrom=/data/iso/CentOS-7-x86_64-Minimal-1810.iso --disk path=/data/vm/c7.qcow2,size=10,format=qcow2 --network bridge=br0 --virt-type=kvm --os-variant=centos7.0 --graphics vnc,listen=0.0.0.0,port=5900 --noautoconsole

看到以上提示,就可以用VncViewer来连接了,对了,得先把防火墙服务给关了

systemctl stop firewalld  #关闭防火墙服务
systemctl --zone=public --add-ports=5900/tcp --permanent    #或者用这个开放5900端口

在vncViewer上输入ip跟端口号

然后就可以图形化安装了,非常方便。

4.2、用控制台安装的方式

virt-install主要参数--location跟--extra-args配合,不用--cdrom参数,复制以下命令,回车

virt-install --name=c7-2 --memory=1024 --vcpus=1 --location=/data/iso/CentOS-7-x86_64-Minimal-1810.iso --disk path=/data/vm/c7-2.qcow2,size=5,format=qcow2 --network bridge=br0 --virt-type=kvm --os-variant=centos7.0 --graphics none --extra-args ‘console=ttyS0‘

接着就会进入控制台安装界面,如下图所示

可能还有些人没在控制台安装过centos7,那我简单说下

观察这个,这些可以对应我上面的那个图形化安装的图,注意红圈,打X的就是已经设置好了,!的代表还没设置,需要进行配置,输入q退出安装,输入b开始安装,输入r刷新

  1. 语言设置
  2. 时区设置
  3. 安装源
  4. 软件选择
  5. 安装位置
  6. Kdump
  7. 网络配置
  8. Root密码
  9. 用户设置

那我们需要对那些!的配置项进行设置,或者修改原来设置,先修改第1项,语言设置,输入1回车,会显示下图,找到我们的中文,输入68,回车

然后输入1,简体中文,回车

会回到主界面,你会看到第1项已经变了,变成简体中文了

再配置时区,输入2,回车,然后输入1(Set timezone),然后输入2(Asia亚洲),然后输入64(Shanhai上海)

回到主界面,发现第2项已改变了

接着再设置安装位置,输入5,回车,如下图,看到硬盘前面已经是X,说明已经选择了,直接输入c继续就好了

这里不太懂,我默认,输入c继续

还是保持默认LVM,输入c继续

会回到主界面,发现安装位置也改变了,那最后来设置下Root密码,输入8,回车

重复输入两次root密码

回到主界面,发现没有!号了,那输入b就可以进行安装了,你会发现其实控制台安装跟图形化安装也是差不多的。

安装好后启用下网卡,就可以正常连接外网的,我一开始是用Hyper-v,导致虚拟机一直连不了外网,以为哪里配置不对,用回VMware后就一切正常。

原文地址:https://www.cnblogs.com/caijt/p/11174676.html

时间: 2024-11-24 16:55:29

VMware下的Centos7实践Kvm虚拟化(通俗易懂)的相关文章

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

环境说明: VMware中的centos7做kvm虚拟化实验必须的设置,否则无法正常使用kvm虚拟化功能: #kvm虚拟化一键安装和启动的脚本(已测OK) #说明:此脚本实现kvm虚拟化平台的一键安装,并且创建一台新的虚拟机vmx0,给vmx0全自动安装系统. 本文是通过脚本在centos7系统中全自动化安装和配置kvm虚拟化平台,并通过脚本创建一台新虚拟机vmx0,并且自动安装centos7系统.本案脚本创建的虚拟机vmx0配置了vnc和console控制功能.本文附带了mininal和gno

vmware下为CentOS7设置静态IP

vmware下为CentOS7设置静态IP可以分为三个主要步骤: 1. 在windows中设置VMWare创建的虚拟网络 2. 设置VMWare为静态IP 3. 设置CentOS7的网络为静态IP 首先来到控制面板下 如图所示,点击"VMware Network Adapter VMnet8",可以看到如下图所示的界面 再点击属性我们可以看到下一个界面 双击红色框中的部分,又可以看到如下界面 上图中红色框中的部分可以修改也可以不修改,看你喜好,记住上面的数字后面会用到,然后在Windo

Vmware下配置Centos7服务器(二)

在"Vmware下配置Centos7服务器(一)"一文中已经配置好了虚拟机,Centos7等相关的网络环境,接下来就开始搭建Linux的Java Web服务器了. 第一步:配置jdk环境 1.检查并卸载自带的jdk: 查询命令:java -version :javac -version (自带的jdk没有安装Javac服务,不能编译java文件) 查询命令:rpm -qa | grep java 卸载命令:rpm -e --nodeps java版本(根据查询命令,卸载对应的Java版

Centos7构建KVM虚拟化平台,并通过KVM安装虚拟机

什么是虚拟化? 虚拟化就是把硬件资源从物理方式转变为逻辑方式,打破了物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的一项技术. 虚拟化的优势 减少服务器数量,降低硬件采购成本: 资源利用率最大化: 降低机房空间.散热.用电消耗的成本等: 硬件资源可动态调整,提高企业IT业务灵活性: 高可用性: 在不中断服务的情况下进行物理硬件资源调整: 降低管理成本: 具备更高效的容灾能力. KVM虚拟化 kvm自从Linux2.6.20版本后就

CentOS7.4——KVM虚拟化一 安装配置及基本操作

KVM的安装配置与基本操作 目录第一部分 实验环境第二部分 安装图形界面第三部分 配置KVM虚拟化第四部分 创建桥接网卡第五部分 KVM虚拟环境中安装系统第六部分 克隆第七部分 其它命令 第一部分 实验环境Linux服务器一台IP地址:192.168.80.40(kvm01) 第二部分 安装图形界面[[email protected] ~]# yum groupinstall "GNOME 桌面" –y //安装图形界面注意,如果在控制台上操作(或者没有中文环境),yum groupi

centos7部署KVM虚拟化平台详解

KVM自Linux 2.6.20版本后就直接整合到Linux内核,它依托CPU虚拟化指令集实现高性能的虚拟化支持.它与Linux内核高度整合,因此在性能.安全性.兼容性.稳定性上都有很好的表现.在KVM环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程.因此它可以很方便地与Linux系统中的安全模块进行整合(SELinux),可以灵活的实现硬件资源的管理和分配,KVM虚拟化的架构图如下: 话不多说,开始搭建KVM虚拟化平台: 1.安装: [[email protected] media]

生产环境下戴尔 R820 kvm虚拟化部署三(centos6.6 kvm虚拟化部署)

三.kvm虚拟化部署 #安装kvm软件包 yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v #补充安装kvm虚拟化一些管理工具包 yum -y install libguestfs-tools #查看虚拟机运行情况并开启 [[email protected] network-scripts]# service libvirt

VMware下安装CentOS7.2

1.什么是虚拟机 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统.流行的虚拟机软件有VMware(VMWare ACE).Virtual Box和Virtual PC,它们都能在Windows系统上虚拟出多个计算机. 2.为什么要用虚拟机,虚拟机的优点 虚拟机软件可以在一台电脑上模拟出来若干台PC,每台PC可以运行单独的操作系统而互不干扰,可以实现一台电脑"同时"运行几个操作系统,还可以将这几个操作系统连成一个网

生产环境下戴尔 R820 kvm虚拟化部署四(kvm虚拟机克隆)

五.克隆一台虚拟机 前提: 1.模版机的网卡配置文件中的UUID.MAC地址已经删除([[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0) 2.网卡配置文件已经被清空([[email protected] ~]# > /etc/udev/rules.d/70-persistent-net.rules) 3.模版机处于关机状态 查看克隆的详细信息 克隆过程 raid10的情况下,24G大小克隆需要4分钟左右,具体