KVM虚拟化部署文档v10文档格式.docx

上传人:b****3 文档编号:16925717 上传时间:2022-11-27 格式:DOCX 页数:12 大小:124.20KB
下载 相关 举报
KVM虚拟化部署文档v10文档格式.docx_第1页
第1页 / 共12页
KVM虚拟化部署文档v10文档格式.docx_第2页
第2页 / 共12页
KVM虚拟化部署文档v10文档格式.docx_第3页
第3页 / 共12页
KVM虚拟化部署文档v10文档格式.docx_第4页
第4页 / 共12页
KVM虚拟化部署文档v10文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

KVM虚拟化部署文档v10文档格式.docx

《KVM虚拟化部署文档v10文档格式.docx》由会员分享,可在线阅读,更多相关《KVM虚拟化部署文档v10文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

KVM虚拟化部署文档v10文档格式.docx

安装 

软件包,系统会在启动时自动加载模块。

加载了模块后,才能进一步通过其他工具创建虚拟机。

但仅有 

模块是远远不够的,因为用户无法直接控制内核模块去做事情,还必须有一个用户空间的工具。

关于用户空间的工具,KVM 

的开发者选择了已经成型的开源虚拟化软件 

QEMU。

QEMU 

是一个强大的虚拟化软件,它可以虚拟不同的 

CPU 

构架。

比如说在 

x86 

的 

上虚拟一个Power的CPU,并利用它编译出可运行在 

Power 

上的程序。

KVM使用了QEMU的基于 

的部分,并稍加改造,形成可控制 

内核模块的用户空间工具QEMU-KVM。

所以 

发行版中分为 

内核部分的 

内核模块和 

QEMU-KVM 

工具。

这就是 

和 

的关系。

 

Libvirt、virsh、virt-manager:

尽管 

工具可以创建和管理 

虚拟机,RedHat 

为 

开发了更多的辅助工具,比如 

libvirt、libguestfs 

等。

原因是 

工具效率不高,不易于使用。

Libvirt 

是一套提供了多种语言接口的 

API,为各种虚拟化工具提供一套方便、可靠的编程接口,不仅支持 

KVM,而且支持 

Xen 

等其他虚拟机。

使用 

libvirt,你只需要通过 

libvirt 

提供的函数连接到 

或 

宿主机,便可以用同样的命令控制不同的虚拟机了。

不仅提供了 

API,还自带一套基于文本的管理虚拟机的命令 

virsh,你可以通过使用 

virsh 

命令来使用 

的全部功能。

但最终用户更渴望的是图形用户界面,这就是 

virt-manager。

他是一套用 

python 

编写的虚拟机管理图形界面,用户可以通过它直观地操作不同的虚拟机。

Virt-manager 

就是利用 

API 

实现的。

二、KVM服务器部署

2.1打开CPU虚拟化功能

BIOS开启VirtualizationTechnology

#egrep‘vmx|svm’/proc/cpuinfo

#查看CPU是否支持虚拟化,VMX表示是Intel处理器,SVM表示是AMD处理器

2.2最小化安装系统

安装如下虚拟化包,主要有:

@virtualization

@Base

@Core

@additional-devel

@base

@large-systems

@storage-client-iscsi

@system-manage-snmp

@virtualization-client

@virtualization-platform

@virtualization-toolsk

2.3安装KVM相关RPM包文件

#yuminstall–ykvmpython-virtinstlibvirtbridge-utilsvirt-managerqemu-kvm-toolsvirt-viewervirt-viewervirt-v2vlibguestfs-tools

#rpm–qa|grep–E‘qemu|libvirt|virt’

#查看装了哪些包

#libvirt-client是libvirt的客户端,最重要的功能之一就是在宿主机关机时可以通知虚拟机也关机,使虚拟机系统正常关机,而不是被强制关机,导致数据丢失

#gpxe-rom-qemu是虚拟机iPXE的启动固件,支持虚拟机从网络启动

#libvirt-python是libvirt为Python提供的API

#python-virtinst是一套python的虚拟机安装工具

#qemu-kvm是KVM在用户空间运行的程序

#virt-manager是基于libvirt的图形化虚拟机管理软件

#libvirt是用于管理虚拟机,它提供了一套虚拟机操作API,可以使用virsh等命令

#virt-viewer用于虚拟机的控制台的console

#virt-top用于类似于top命令,查看虚拟机的资源使用情况

#virt-what在虚拟机内部执行,查看虚拟机运行的虚拟化平台

#qemu-img用于操作虚拟机硬盘镜像的创建、查看和格式化

#kvm软件包包含有kvm内核模块,它可以默认Linux内核中提供kvm管理程序

#bridge-utils安装网络支持,设置桥接

2.4宿主机系统配置

关闭防火墙,关闭selinux

#由于防火墙和selinux会阻止libvirt为虚拟机创建网络设备

2.5确认KVM模块是否加载

#lsmod|grepkvm

kvm_intel534840

kvm3165061kvm_intel

如果没有正确加载,手动加载模块

#modprobekvm-intel

reboot重新验证一下

2.6Bridge桥接原理

Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。

可以使虚拟机成为网络中具有独立IP的主机。

桥接网络(也叫物理设备共享)被用作把一个物理设备复制到一台虚拟机。

网桥多用作高级设置,特别是主机多个网络接口的情况。

如上图,网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。

2.7host机器配置桥接网络

2.7.1查看网络是否工作

确保你想使用bridge网桥的网卡能够为kvm虚拟机模块提供网络连接能力并且网卡是否可以工作.这个网卡应该要能够给guest的kvm虚拟机提供相同的网络支持.接下来例子说明了网卡的配置,并且可以被外部网络访问.这个例子中,使用eth0网卡.

2.7.2备份network-scripts网络脚本文件

备份网络配置到不同的目录下,将来可以用来恢复网络配置,.根据下面的命令将网络脚本ifcfg-eth0 

网卡到/tmp目录:

#cp/etc/sysconfig/network-scripts/ifcfg-eth0/tmp

注意:

不要把文件copy到/etc/sysconfig/network-scripts/目录或者其子目录

2.7.3为桥接新建配置文件

为Linux的bridge创建一个新的配置文件为/etc/sysconfig/network-scripts/ifcfg-br0,这里br0是bridge网桥的名字,同eth0类似.使用以下命令

#cpifcfg-eth0ifcfg-br0

2.7.4编辑bridge网桥配置文件

编辑配置文件,让数据包通过bridge(网桥)进行上网.你的网络配置很可能是通过静态ip(BOOTPROTO=static)上网或者是从DHCP服务器获得ip(BOOTPROTO=dhcp)上网的.

如果你的网络是通过静态ip地址来配置的,那么你的配置很可能是和下面一样的:

DEVICE=eth0

BOOTPROTO=static

HWADDR=00:

14:

5E:

C2:

1E:

40

IPADDR=10.10.1.152

NETMASK=255.255.255.0

ONBOOT=yes

下面的表格显示了eth0和br0的静态ip配置内容,可以根据下面进行编辑

staticip配置

/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=eth0

TYPE=EthernetHWADDR=00:

40ONBOOT=yes

NM_CONTROLLED=no

BRIDGE=br0

DEVICE=br0

TYPE=Bridge

NM_CONTROLLED=noBOOTPROTO=staticIPADDR=10.10.1.152NETMASK=255.255.255.0ONBOOT=yes

下面表格显示的eth0和br0的DHCP配置情况.

DHCP配置

40ONBOOT=yesNM_CONTROLLED=noBRIDGE=br0

DEVICE=br0

TYPE=BridgeNM_CONTROLLED=noBOOTPROTO=dhcpONBOOT=yes

2.7.5重启网络服务

重启网络以验证网络配置是否工作,如果网络配置不正确,网络连接将会断开,你的电脑将失去访问能力.这样的话,检查以下配置文件,然后使用以下的命令重启以下网络服务:

#servicenetworkrestart

2.7.6系统内核参数配置

禁用网络过滤器:

向文件/etc/sysctl.conf添加以下代码:

net.bridge.bridge-nf-call-ip6tables=0

net.bridge.bridge-nf-call-iptables=0

net.bridge.bridge-nf-call-arptables=0

重新加载kernel参数:

#sysctl-p

验证配置是否成功

通过运行ifconfig来验证以下配置是否成功.如果出现两个项,即网桥的br0和现在在工作的eth0:

br0 

Linkencap:

Ethernet 

HWaddr00:

inetaddr:

10.10.1.152 

Bcast:

10.10.1.255 

Mask:

255.255.255.0

inet6addr:

fe80:

:

214:

5eff:

fec2:

1e40/64Scope:

Link

UPBROADCASTRUNNINGMULTICAST 

MTU:

1500 

Metric:

1

RXpackets:

125errors:

0dropped:

0overruns:

0frame:

TXpackets:

81errors:

0carrier:

collisions:

0txqueuelen:

RXbytes:

16078(15.7KiB) 

TXbytes:

18542(18.1KiB)

eth0 

206errors:

58errors:

1000

27308(26.6KiB) 

13881(13.5KiB)

Interrupt:

74Memory:

da000000-da012800

你可能发现eth0的网络信息里面没有ipv4的地址了.或者你的GUI界面的网络显示你是断网的.这不用担心.因为eth0的网络能力已经通过br0进行工作.你的host网络还是能正常工作的。

也可以使用以下的命令来查看网桥是否工作。

#brctlshow

bridgename 

bridgeid 

STPenabled 

interfaces

virbr0 

8000.000000000000 

yes

8000.000e0cb30550 

no 

eth0

如果是类似的输出,那么你的Linux的Bridge网桥就配置的差不多了。

2.7.7开启相应的服务

#/etc/init.d/messagebusstart

#开启LinuxICP服务,这是Linux的IPC(InterprocessCommunication,进程间通讯)服务。

确切地说,它与DBUS交互,是重要的系统服务。

强烈建议开启它。

#/etc/init.d/libvirtdrestart

#启动virbr0

2.7.8可关闭virbr0

安装完KVM后会发现网络接口中多了一个叫做virbr0的虚拟网络接口。

#ifconfig

...

 

HWaddrd2:

91:

97:

b8:

3d:

fc 

inetaddr:

192.168.122.1 

192.168.122.255 

UPBROADCASTMULTICAST 

RXpackets:

0errors:

TXpackets:

collisions:

RXbytes:

0(0.0B) 

0(0.0B)

这是由于安装和启用了libvirt服务后生成的,libvirt在服务器(host)上生成一个virtualnetworkswitch(virbr0),host上所有的虚拟机(guests)通过这个virbr0连起来。

默认情况下virbr0使用的是NAT模式(采用IPMasquerade),所以这种情况下guest通过host才能访问外部。

大多数时候我们虚拟机使用的是bridge(网桥)直接连到局域网里,所以这个virbr0不是必须的(注:

不要搞混淆了,bridge和这里的virbr0bridge是互不相干的)。

如何关掉这个virbr0呢?

先net-destroy然后net-undefine,最后别忘了重启libvirtd让设置生效:

#virshnet-list

Name 

State 

Autostart

-----------------------------------------

default 

active 

#virshnet-destroydefault

Networkdefaultdestroyed

#virshnet-undefinedefault

Networkdefaulthasbeenundefined

#servicelibvirtdrestart

Stoppinglibvirtddaemon:

OK 

]

Startinglibvirtddaemon:

三、virt-install命令部署虚拟机

virt-install是一个在命令行创建KVM虚拟机的工具,使用virt-install配合一些配置参数,最终可以生成一个完整的.XML虚拟机配置文件。

3.1安装并配置VNC服务

#yuminstall–ytigervnc

#yuminstall-ytigervnc-server

#vim/etc/sysconfig/vncserver

VNCSERVERS=”1:

root”

#配置宿主机VNC显示器为1,端口是5901

#vncpasswd

#设置VNC密码

3.2新建虚拟机磁盘

KVM虚拟机的磁盘镜像从存储方式上看,可以分为两种,第一种方式为存储于文件系统上,第二种方式为直接使用裸设备。

裸设备的使用方式可以是直接使用裸盘,也可以使用LVM的方式。

经常使用的是RAW和qcow2。

3.2.1创建RAW格式镜像

#qemu-imgcreatetest50G

3.2.2创建qcow2格式镜像

#qemu-imgcreatetest.qcow2-fqcow250G

3.2.3镜像信息查看

[root@localhostnetwork-scripts]#qemu-imginfo/data/kvm/rhel01.img

image:

/data/kvm/rhel01.img

fileformat:

qcow2

virtualsize:

20G(21474836480bytes)

disksize:

5.5G

cluster_size:

65536

3.3虚拟机创建

#virt-install--name=rhel01--ram=1024--vcpu=2--os-type=linux--hvm--cdrom=/tmp/rhel-server-6.5-x86_64-dvd.iso-diskpath=/data/kvm/rhel01.qcow2,format=qcow2,size=20,bus=virtio--bridge=br0--vnc--vnclisten=0.0.0.0--vncport=5910--accelerate

#--ram配置虚拟机内存,单位是MB

#--name配置虚拟机的名称

#--vcpu配置CPU个数

#--os-type指定操作系统类型,如linux、windows

#--hvm配置使用全虚拟化

#--cdrom使用cdrom安装系统,指定ISO位置

#--diskpath设置虚拟机磁盘文件的路径

#format磁盘文件的格式

#size磁盘文件的大小

#bus=virtio指定磁盘总线

#--bridge配置桥接的网卡

#--vnc打开VNC支持

#--vcport指定VNC端口

#--vnclisten指定监听的地址

#--acclerate当安装QEMU客户机时,如果支持可用KVM或KQEMU内核加速能力。

除非一个客户机操作系统不兼容加速,这个选项是推荐最好加上。

如果KVM和KQEMU都支持,KVM加速器优先使用。

注意安装windows2012系统时,需要额外安装virtio驱动,可以参考如下

#virt-install--name=windows01--ram=1024--vcpu=2--os-type=windows--hvm--cdrom=/tmp/cn_windows_server_2012_x64_dvd_915588.iso--diskpath=/data/kvm/windows01.qcow2,format=qcow2,size=50,bus=virtio--bridge=br0--vnc--vnclisten=0.0.0.0--vncport=5920--accelerate--os-variant=win2k8--diskpath=/tmp/virtio-win-0.1.117_amd64.vfd,device=floppy

四、管理虚拟机

4.1查看虚拟机列表和状态

[root@localhosttmp]#virshlist--all

IdNameState

----------------------------------------------------

-rhel01shutoff

-rhel02shutoff

4.2启动虚拟机

[root@localhosttmp]#virshstartrhel01

Domainrhel01started

4.3关闭虚拟机

正常关闭虚拟机

#virshshutdownrhel01

强制关闭虚拟机

#virshdestroyrhel01

4.4删除虚拟机

#virshundefinerhel01

#rm–rf/data/kvm/rhel01.img

然后再删除磁盘文件

4.5编辑虚拟机

#virsheditrhel01

注意直接vi修改XML文件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1