CentOS7下实现KVM的安装部署实验指导
2018-11-07 刘云伟
目录
一 简述
二 虚拟化技术的概述
1 虚拟化技术概述
2 虚拟化技术的比较
三 Kvm虚拟化概述
1 Kvm虚拟化介绍
2 Kvm的架构
3 Kvm的特性
4 KVM 系统管理程序
5 虚拟化技术的优势
四 Centos简介
1 Centos 介绍
2Centos 特点
五 KVM虚拟化平台的搭建
1 开启电脑的vt虚拟化功能
2 系统安装
六 查看我们的硬件是否支持虚拟化:
七 配置yum环境
八ssh 连接Linux
九 安装KVM
1 yum仓库安装KVM软件
2 查看虚拟化环境
3 查看libvirtd这个服务的状态发现未启动
4 手动配置虚拟网桥
十 虚拟化平台构建
十一 Linux CentOS7的图形界面安装
十二 在运行的centos系统上创建新的硬盘(实验室可能部分失败)
一 简述
主机上可以同时运行多个逻辑计算机,而每个逻辑计算机可以运行各种不同的操作系统,每个应用程序均可以在相互独立的空间内运行并且互不影响,这样可以很明显的提高企业计算机的工作效率。基于kvm的虚拟化平台利用kvm和管理平台Centos来实现内部虚拟机集群的管理,简化了维护人员的操作,使得整个集群拥有良好的可靠性和扩展性。本文使用Linux系统中的Centos下的KVM虚拟机来搭建多台虚拟机,实现了KVM虚拟化平台的构建。
二 虚拟化技术的概述
1 虚拟化技术概述
虚拟化最近有显著的成就,因为开源虚拟机管理程序在不断进步与发展,这种改进使得操作系统与大功率服务器快速增长的利用之间的障碍大大减少。软件仿真虚拟化最近一直是关注的焦点,常见的软件仿真虚拟化途径有两个,一个是完全虚拟化一个是半虚拟化。这两个途径各有优缺点,半虚拟化的主要优势在于它运行尽可能快地基于软件的虚拟化,以不支持有专利的操作系统为代价。而完全虚拟化没有这个限制,但是,完全虚拟化管理程序非常复杂。目前,基于硬件的虚拟化,这个线路已经变得模糊起来,随着Intel的VT技术和AMD的SVM技术的出现,编写一个管理程序变得更加简单。现在,保持管理程序复杂性到最小程度,对于完全虚拟化受益匪浅。
2 虚拟化技术的比较
现在的虚拟化技术领域有许多优秀的方案可供选择,通过分析这些主流的虚拟化技术来选择最适合应用场景的方案。
VMware vSphere是VMware公司销售的商业软件产品之一,是一整套虚拟化应用产品,用户可以创建和运行多个虚拟机,在虚拟机上运行各种操作系统。作为虚拟化业界的领军产品,VMware已经变得非常成熟,其已经成为许多大型公司虚拟化的解决方案,但是VMware是收费产品,价格昂贵,对于一些中小企业来说是一笔不小的开支。
Hyper-V 是微软公司的一个虚拟化解决方案,是一种基于hypervisor的技术。它是微软windows 2008 R2附带的虚拟化组件,需要购买足够的授权才能使用,从性能上来讲,虚拟windows的话有绝对的优势,可以得到微软官方的支持,性能优化不必担心,虚拟linux性能可能会有一些问题。
Xen是一个开放源码的虚拟技术,支持hypervisor和虚拟机相互通讯,需要特定地修改操作系统使其可以运行虚拟机,操作系统和虚拟化平台之间通过相互协作支持,来创建虚拟机管理程序并对性能进行高度优化。不过xen最大的缺陷是linux内核不支持Xen,Xen需要作为linux主流内核的补丁安装到特殊的linux内核上。
Kvm是一种年轻的虚拟化技术,吸取了其他虚拟化技术的优点,有着极其简单的架构,而且不存在历史兼容性的包袱,在现在的虚拟化实践中有着优异的表现。不同于xen,kvm有着它的先天优势,其作为linxu的内核模块受到许多厂商的支持。用户空间通过QEMU模拟硬件来为虚拟机使用,每一个虚拟机就是linux系统中的一个进程,从而可以很方便地对虚拟机进行管理监控。
三 Kvm虚拟化概述
1 Kvm虚拟化介绍
KVM(全称是Kernel-based Virtual Machine)是Linux下x86 硬件平台上的全功能虚拟化解决方案,它是基于硬件的虚拟化技术,可以不修改客户机的操作系统,我们可以使用KVM来部署在一个受支持的处理器上,而且可以从Linux上支持任何平台,相对于Xen,其核心源码很少。Kvm是一种相对较新的虚拟化技术,吸取了其他虚拟化技术的优点,有着极其简单的架构,但是也有非常强大的虚拟化引擎,而且不存在历史兼容性的包袱,在现在的虚拟化实践中有着优异的表现。不同于xen,kvm有着它的先天优势,其作为linxu的内核模块受到许多厂商的支持,从而可以很方便地对虚拟机进行管理。
2 Kvm的架构
按照虚拟机的基本架构来区分的话,虚拟机一般分为两种结构:
第一种结构要求虚拟机运行在特定操作系统的宿主机上,虚拟机监控程序运行在底层的软件层,不仅需要实现系统初始化、物理资源的分配管理等作用,同时它也要执行虚拟机的创建、调度、管理和资源分配等任务。例如主流的开源虚拟化软件xen、成熟的虚拟化软件VMware ESX/ESXi、微软的Hyper-v是这种结构。
第二种结构的宿主机可以安装普通的操作系统,应用程序是虚拟机的管理程序,运行在该操作系统上,这样做的最大好处是可以在现有操作系统的基础上运行虚拟机而不必重新安装系统,充分利用了操作系统的资源,而且解放了虚拟机监控程序对物理资源的管理,因此实现起来很简洁。Kvm就是属于这种类型,常见的还有VMware workstation、virtualbox。
既然kvm可以依附于现有的操作系统,那么我们可以将kvm以内核模块的形式去实现功能,剩下的部分依靠linux内核实现,最大限度重用代码。
3 Kvm的特性
Kvm提供了在linux系统中运行虚拟机的能力,它可以通过简单的加载内核模块将linux内核转换为一个系统管理程序,但是由于标准的linux内核是一个系统管理程序,所以kvm将继承许多标准内核的基本功能。
4 KVM 系统管理程序
KVM 通过简单地加载内核模块而将 Linux 内核转换为一个系统管理程序。这个内核模块可以导出一个名为 /dev/kvm 的设备,它可以启用内核的客户模式。有了这个设备,VM 使自己的地址空间独立于内核或运行着的任何其他 VM 的地址空间。设备树中的设备对于所有用户空间进程来说都是通用的,但是每个打开
/dev/kvm 的进程看到的是不同的映射。KVM 会简单地将
Linux 内核转换成一个系统管理程序,由于标准 Linux 内核就是一个系统管理程序,因此它会从对标准内核的修改中获益良多。对这些 Linux 组件进行优化都可以让系统管理程序和 Linux 客户操作系统同时受益,使用内核作为一个系统管理程序,就可以启动其他操作系统。
5 虚拟化技术的优势
KVM 是解决虚拟化问题的一个解决方案,因为它是第一个进入内核的虚拟化解决方案,很难想象它会很快用于服务器虚拟化。由于 KVM 需要的修改较少,并且可以将标准内核转换成一个系统管理程序,所以它的优势显而易见。
Kvm吸取了其他虚拟化技术的优点,有着极其简单的架构,而且不存在历史兼容性的包袱,在现在的虚拟化实践中有着优异的表现。不同于xen,kvm有着它的先天优势,其作为linxu的内核模块受到许多厂商的支持。用户空间通过QEMU模拟硬件来为虚拟机使用,每一个虚拟机就是linux系统中的一个进程,从而可以很方便地对虚拟机进行管理监控。
第二个优点是KVM即内核本身的一部分,因此可以利用内核的优化和改进,与其他技术相比这种方法是一种不会过时的技术。
四 Centos简介
1 Centos 介绍
CentOS是2003年底才正式诞生,是一个旨在对Red Hat Enterprise Linux(简称RHEL)源代码进行重建、使其转化为可安装Linux版本的项目,而且在RHEL的基础上修正了大量现知的漏洞,并且希望能够为所包含的软件包提供定期安全更新。
CentOS即社区企业操作系统,它是来自于RHEL依照开放源代码规定释出的源代码所编译而成,由于出自同样的源代码,所以有些要求高度稳定性的服务器将CentOS替代了商业版的RHEL使用,但是CentOS并不包含封闭源代码软件。
2 Centos
特点
CentOS是Linux的一个发行版,是Red Hat公司产品,是RedHatEnterpriseLinux的免费版本,其优点包括无处不在的虚拟化、保守性强、更好的稳定性和高可用性、稳定的环境、长期的升级更新支持、更高的能效以及提供多个最新软件技术。但也存在不足之处,缺乏最新Linux技术、项目偶尔无法实现提供定期安全更新及稳定发布的承诺。
五 KVM虚拟化平台的搭建
KVM是基于内核的虚拟化技术,要运行KVM虚拟化环境,安装一个Linux操作系统的宿主机(Host)是必需的。由于Redhat公司是目前对KVM项目投入最多的企业之一,从RHEL6开始,其系统自带的虚拟化方案就采用了KVM,而且RHEL也是最流行的企业级Linux发行版之一。KVM作为流行的开源虚拟机之一,它可以在绝大多数流行的Linux系统上编译和运行,所以我们可以选择RHEL之外的其他Linux发行版,比如CentOS、Fedora、Ubuntu、Debian、OpenSuse等系统都是不错的选择。本设计采利用VMware
Workstation11在win7操作系统上虚拟化出一台centos6系统来对虚拟化平台的搭建。
1 开启电脑的vt虚拟化功能(实验室默认开启,此步可以跳过)
检查 BIOS 中是否开启VT,如果没有启用,虚拟机将会十分慢。执行
INFO: KVM (vmx) is disabled by your BIOS(KVM
[vmx]被你的BIOS禁用)
HINT: Enter your BIOS setup and enable Virtualization
Technology (VT)
则须要进入的BIOS设置界面,启用虚拟化技术[VT],设置步骤为:
进入BIOS后,选择ADVANCED。然后至
PROCESSOR CONFIGURATION进去找到, INTEL ® VIRTUALIZATION TECHNOLOGY
。设置成ENABLE。保存退出 。
2 系统安装
打开VM虚拟机,新建一台虚拟机,选择Centos.iso镜像文件安装。硬件配置如下:
NAT(用户模式):数据包由NAT方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络。
Bridge(桥接模式):允许虚拟机像一台独立的主机一样拥有网络。
虚拟机运行虚拟机需要VM开启此功能(虚拟机关机时开启)
NAT(用户模式):数据包由NAT方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络。
Bridge(桥接模式):允许虚拟机像一台独立的主机一样拥有网络。虚拟机运行虚拟机需要VM开启此功能(虚拟机关机时开启)。
点击右下角配置,配置完成后点击保存,然后点击完成,点击开始安装
设置ROOT密码
六
查看我们的硬件是否支持虚拟化:
#egrep '(vmx|svm)' /proc/cpuinfo
kvm虚拟机首先需要查看物理机的cpu是否支持虚拟化,半虚拟化是不能运行与安装KVM虚拟机的。如果看到有输出结果,即证明cpu 支持虚拟化。显示如下图4-2即正确。
七 配置yum环境
使用如下命令新建一个挂载点并挂载修改yum源配置
修改yum源配置,把CentOS-Base.repo文件备份
修改CentOS-Base.repo的内容,注释文档中的所有mirrorlist属性,把baseurl属性打开注释,并设置baseurl的属性值为挂载点
baseurl=file:///media/CentOS/ 最后的enable=0改为enable=1 (用VI 不要用VIM 光标移动到想插入字符的地方按i进入编辑模式,按ESC退出编辑模式,按Shift+;,之后输入wq按回车保存文件)
输入 yum list 若出现以下信息则表示yum配置本地源成功!
如果想要恢复使用网络上的源,再次把CentOS-Base.repo.bak重命名为CentOS-Base.repo就可以了。注意系统重启之后,需要再次手动挂载,如果需要的话,可以设置/media/CentOS自动挂载。在/etc/fstab配置文件中新添加一行,表示自动挂载/media/CentOS。如下所示:
八 ssh 连接Linux
输入ip address查看自己虚拟机IP地址(如果没有发现IP地址,请直接跳过此步,然后到时候直接做完桥接网卡,在进行此步骤)
查看WINDOWS主机IP是否和虚拟机在同一网络 ping Centos 主机IP
查看Centos 上的SSHD服务是否正常启动
#systemctl status sshd.service
将镜像Centos和win2012service ISO文件和驱动文件导入到虚拟机内tmp文件夹内
九 安装KVM
. 1
yum仓库安装KVM软件
yum install -y virt-* qemu-kvm libvirt bridge-utils qemu-kvm-tools
2 查看虚拟化环境
查看kvm模块支持确认载入kvm模块验证方法:使用命令lsmod | grep kv
显示如下图两行即正确
将镜像Centos和win2012service ISO文件和驱动文件导入到虚拟机内tmp文件夹内
九 安装KVM
1 yum仓库安装KVM软件
#yum install -y virt-* qemu-kvm libvirt bridge-utils qemu-kvm-tools
2 查看虚拟化环境
查看kvm模块支持确认载入kvm模块验证方法:使用命令lsmod | grep kv
3 查看libvirtd这个服务的状态发现未启动
Libvirt是用于管理虚拟化平台的开源的API,后台程序和管理工具。它可以用于管理KVM、Xen、VMware ESX,QEMU和其他虚拟化技术。这些API在云计算的解决方案中广泛使用。 [1]
#systemctl status libvirtd 查看该服务状态
#systemctl start libvirtd 启动该服务
#systemctl enable libvirtd 开机自启动
4 手动配置虚拟网桥
Kvm 网络有两种模式:
NAT(用户模式):数据包由NAT方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络。
Bridge(桥接模式):允许虚拟机像一台独立的主机一样拥有网络。
执行
#chkconfig NetworkManager off
#systemctl stop NetworkManager.service
可关闭networkmanager服务;
创建br0网桥 执行以下命令:
#cd /etc/sysconfig/network-scripts/
(找到对应的网卡配置文件,电脑网卡不一样,名字可能不一样)
#cp ifcfg-ens33 ifcfg-br0
#vi ifcfg-ens33
编辑ens33 内容(删除原来所有的内容)改为:
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0
#vi br0
编辑 ifcfg-br0
(删除原来所有的内容)改为:
DEVICE=br0
BOOTPROTO=static
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.1.XX(桥接的IP地址)
NETMASK=255.255.255.0
GATEWAY=192.168.XX(桥接的网关)
STP=on
DELAY=0
实验室的windows主机地址如192.168.1.34
那么IPADDR为192.168.1.134(为了避免人多冲突,桥接地址为最后主机地址加100,
34+100)网关就是windows主机的网管
执行:
#service network restart
十 虚拟化平台构建
创建centos虚拟机
命令安装win2012
Virt-install
help man virt-install(里面的命令参数十分详细,而且后面还有实例,只不过是英文的)
命令安装win2012
virt-install --connect qemu:///system --name=a --os-variant=winxp --ram=1024 --vcpus=1 --disk path=/var/lib/libvirt/images/a.qcow2,format=qcow2,size=18,bus=virtio --accelerate
--vnc --vncport=5909 --vnclisten=0.0.0.0 --noautoconsole --disk path=/tmp/wuns.iso,device=cdrom --disk path=/tmp/virtio-win-0.1.141_amd64.man,device=floppy,perms=rw
红色标记的两个内容是安装系统的镜像文件路径和驱动路径,如果名字不对,会提示找不到文件,所以要改成自己对应的文件名称
解释: --connect
qemu:///system 连接域 --os-variant=winxp 指定安装虚拟机安装的操作系统版本安装windows就是winxp(这里其他版本系统做的KVM可能会有其他格式,可以通过man virt-install去里面看具体支持的版本,如果是装linux写rehl7)ram=1024
内存指定为1024
–vcpus=1指定分配给虚拟机的CPU核心数量为1 --disk
path=/var/lib/libvirt/images/a.qcow2,format=qcow2,size=18,bus=virtio 设置虚拟机的文件为路径,格式为qcow2 硬盘尺寸是18G 使用virtio驱动(如果要装WINDOWS系统的话必须安装对应的驱动,否则就不能找到硬盘,或者设置成ide,但是性能降低)
–accelerate 加速安装 -vnc --vncport=5909 --vnclisten=0.0.0.0
设置连接方式为VNC 端口为5909(一会连接VNC输入虚拟机桥接的IP地址然后+:9 例如192.168.1.131:9)–noautoconsole 不输出命令终端(没有这个参数,虚拟机创建完硬盘就会等待用户操作安装,但是如果安装linux可以通过其他参数设置也能终端安装,不需要VNC)–disk path=/tmp/virtio-win-0.1.141_amd64.man,device=floppy,perms=rw
设置驱动
命令说明:
·
–name 指定虚拟机的名称
·
–memory 指定分配给虚拟机的内存资源大小
·
maxmemory 指定可调节的最大内存资源大小,因为KVM支持热调整虚拟机的资源
·
–vcpus 指定分配给虚拟机的CPU核心数量
·
maxvcpus 指定可调节的最大CPU核心数量
·
–os-type 指定虚拟机安装的操作系统类型
·
–os-variant 指定系统的发行版本
·
–location 指定ISO镜像文件所在的路径,支持使用网络资源路径,也就是说可以使用URL
·
–disk path 指定虚拟硬盘所存放的路径及名称,size 则是指定该硬盘的可用大小,单位是G
·
–bridge 指定使用哪一个桥接网卡,也就是说使用桥接的网络模式
·
–graphics 指定是否开启图形
·
–console 定义终端的属性,target_type 则是定义终端的类型
·
–extra-args 定义终端额外的参数
·
–cdrom iso文件路径
管理kvm虚拟机
常用的虚拟机管理命令
列出所有的虚拟机
virsh list
–all
显示虚拟机信息
virsh dominfo
kvm-11
显示虚拟机内存和cpu的使用情况
yum install
virt-top -y
virt-top12
显示虚拟机分区信息
virt-df kvm-11
关闭虚拟机(shutodwn)
virsh shutdon kvm-11
启动虚拟机
virsh start
kvm-11
设置虚拟机(kvm-1)跟随系统自启
virsh autostart
kvm-11
关闭虚拟及自启
virsh autostart
–disable kvm-11
删除虚拟机
virsh undefine
kvm-11
通过控制窗口登录虚拟机
virsh console
kvm-11
查看VNC端口开放
用VNC连接完成虚拟机图像安装(这里注意要关闭防火墙,要不然链接不上)
systemctl stop firewalld.service
安装完后虚拟机默认关闭,输入命令查看并且开启虚拟机,然后再用VNC
连接进入设置密码。
命令安装Centos
#virt-install --connect qemu:///system --name=a --os-variant=rhel7 --ram=1024 --vcpus=1 --disk path=/var/lib/libvirt/images/b.qcow2,format=qcow2,size=18,bus=virtio --accelerate --vnc --vncport=5908 --vnclisten=0.0.0.0 --noautoconsole --disk path=/tmp/ CentOS-7-x86_64-Everything-1804.iso,device=cdrom
十一 Linux CentOS 7的图形界面安装
首先安装X(X Window System)
#yum groupinstall "X Window System"
回车(注意有引号)
检查一下我们已经安装的软件以及可以安装的软件,用命令
#yum grouplist
安装 GNOME
Desktop(注意中间输入Y或者加-y)
由于这个软件组比第一个要大很多(包含700个左右的软件),安装过程会很慢,请耐心等待。安装完成会出现complete!
安装完成后我们可以通过命令 startx 进入图形界面,第一次进入会比较慢,请耐心等待。(可能需要重启,命令为reboot)
Virt-manager命令打开控制台,新建虚拟机。
十二 在运行的centos系统上创建新的硬盘
(上述的hos0或者host2不确定,每台电脑的接口不一样名称不一样)
当你看到上述描述信息时,表示新创建的硬盘已经创建成功
输入quit退出,然后格式化分区