EL6.6 x64 下部署 KVM虚拟化

EL6.6 x64 下部署 KVM虚拟化

 

KVM Kernel Virtual Machine的简写,目前RedHat只支持在RHEL5.4及以上的64位系统平台上运行,同时需要硬件(CPU)支持VT技术,KVM的前身是QEMU2008年被RedHat收购并获得一项hypervisor技术,不过RedHatKVM被认为将成为未来的Linux hypervisor的主流,准确的来说,KVM仅仅是linux内核的一个模块,管理和创建完整的KVM虚拟机需要更过的辅助工具。

 

KVM 2.6.20版本后就直接整合到linux 内核,它依托CPU虚拟化指令集(如Inter-VT AMD-V)实现高性能的虚拟化支持,由于与Linux内核高度整合,因此在性能,安全性,兼容性,稳定性上有很好的实现,每个虚拟化操作系统表现为单个系统进程并与linux安全模块(selinux)有很好的整合。

EL6.6 x64 下部署 KVM虚拟化

KVM架构图

 

KVM虚拟化硬性条件:

1、真机64位操作系统,RHEL5.4及以上的系统平台

2CPU支持VT技术(BIOS中开启)

 

注:VMware 虚拟机中 linux 开启前需要勾选Inter VT-x/EPT AMD/RVI(v)

EL6.6 x64 下部署 KVM虚拟化

 

安装前要查看CPU是否支持虚拟化

Inter CPU

cat /proc/cpuinfo |grep vmx

 

AMD CPU

cat /proc/cpuinfo |grep smv

 

[root@Localhost ~]# cat /proc/cpuinfo |grep vmx –color=auto

flags         : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes hypervisor lahf_lm ida arat dts tpr_shadow vnmi ept vpid

KVM安装方式

 

安装前关闭iptables防火墙与selinux

[root@localhost ~]# service iptables stop

[root@localhost ~]# setenforce 0

 

1、可在安装系统时选择桌面与虚拟化选项

EL6.6 x64 下部署 KVM虚拟化

2、在已有的系统上安装KVM软件

可用yum源安装以下软件包:配置yum源

[root@localhost ~]# mount /dev/cdrom  /media

[root@localhost ~]# cd /etc/yum.repos.d/

[root@localhost yum.repos.d]# mkdir bak

[root@localhost yum.repos.d]# mv *.repo bak/

[root@localhost yum.repos.d]# vim yum.repo

[base]

name=base

baseurl=file:///media/cdrom/

gpgcheck=1

 

[root@localhost ~]# yum -y groupinstall “Desktop”                        #安装GNOME桌面环境

[root@localhost ~]# yum -y install qemu-kvm.x86_64                   #KVM模块

[root@localhost ~]# yum -y install qemu-kvm-tools.x86_64         #KVM调试工具,可不安装

[root@localhost ~]# yum -y install python-virtinst.noarch        #python组件,记录创建VM时的xml文件

[root@localhost ~]# yum -y install qemu-img.x86_64                    #qemu组件,创建磁盘,启动虚拟机

[root@localhost ~]# yum -y install bridge-utils.x86_64             #网络支持工具

[root@localhost ~]# yum -y install libvirt                                           #虚拟机管理工具

[root@localhost ~]# yum -y install virt-manager                              #图形界面管理虚拟机

 

检测安装是否成功

[root@Localhost ~]# lsmod | grep kvm

kvm_intel              55496  0

kvm                   337772  1 kvm_intel

 

设置KVM网络

宿主服务器安装完成KVM,首先要设定网络,在libvirt中运行KVM网络有两种方法,NATBridge,默认是NAT

 

1、用户模式,即NAT方式,这种方式是默认网络,数据包由NAT方式通过主机接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络

2、桥接模式,这种模式允许虚拟机像一台独立的主机一样拥有网络,外部机器可以直接访问到虚拟机内部,但需要网卡支持,并编辑网卡参数文件以支持桥接。

 

Bridge案例:

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

NM_CONTROLLED=no

ONBOOT=yes

TYPE=Ethernet

HWADDR=00:0c:29:3c:f7:d9

BRIDGE=”br0″

 

[root@localhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0

BOOTPROTO=static

NM_CONTROLLED=no

ONBOOT=yes

TYPE=Bridge

IPADDR=192.168.200.200

NETMASK=255.255.255.0

 

[root@localhost ~]# service network restart

 

[root@localhost ~]# ifconfig

br0       Link encap:Ethernet  HWaddr 00:0C:29:3C:F7:D9 

          inet addr:192.168.200.211  Bcast:192.168.200.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fe3c:f7d9/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 b)  TX bytes:496 (496.0 b)

 

eth0      Link encap:Ethernet  HWaddr 00:0C:29:3C:F7:D9 

          inet6 addr: fe80::20c:29ff:fe3c:f7d9/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:236 errors:0 dropped:0 overruns:0 frame:0

          TX packets:171 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:29331 (28.6 KiB)  TX bytes:16011 (15.6 KiB)

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:16 errors:0 dropped:0 overruns:0 frame:0

          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:1072 (1.0 KiB)  TX bytes:1072 (1.0 KiB)

 

virbr0    Link encap:Ethernet  HWaddr 52:54:00:0F:9C:6B 

          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

 

出现以上信息说明网卡桥接成功。

 

 

KVM管理工具virt-manager

virt-manager是基于libvirt 的图形化虚拟机管理软件,不同版本的virt-manager的界面和操作方法可能不同,是使用KVM虚拟机最简单的方法

EL6.6 x64 下部署 KVM虚拟化

配置linux的图形窗口转移到windows上:

[root@Localhost ~]# tail -1 /etc/profile

export DISPLAY=192.168.200.1:0.0               #192.168.200.1为windows主机IP地址

[root@Localhost ~]# source /etc/profile

windows开启 Xmanager 中的 Passive

 

创建虚拟机:

1、创建存储池并创建存储卷:

双击localhost(QEMU)–> 存储–> 单击 + 按钮新建存储池,创建两个存储池 KVM ISO 将RHEL6.6安装镜像上传到服务器目录/virtual/ISO中

EL6.6 x64 下部署 KVM虚拟化

EL6.6 x64 下部署 KVM虚拟化

EL6.6 x64 下部署 KVM虚拟化

EL6.6 x64 下部署 KVM虚拟化

 

2、创建存储卷,单击KVM,单击对话框右下角的新建卷,设置最大容量与分配容量。

EL6.6 x64 下部署 KVM虚拟化

3、回到虚拟机系统管理器,右键localhost(QEMU),新建–> 设置相应的名字,浏览镜像位置,选择操作系统类型及版本

EL6.6 x64 下部署 KVM虚拟化

EL6.6 x64 下部署 KVM虚拟化

4、分配内存和CPU资源,选择立即分配整个磁盘,选择管理或其他现有存储,选择文件

EL6.6 x64 下部署 KVM虚拟化

EL6.6 x64 下部署 KVM虚拟化

 

勾选 在安装前自定义配置

在Overview视图中:

机器设置                 把机器设置-时钟偏移-改为localtime 应用

 

EL6.6 x64 下部署 KVM虚拟化

EL6.6 x64 下部署 KVM虚拟化

Boot Options 主机引导时启动虚拟机,宿主机启动后,vm也会启动

EL6.6 x64 下部署 KVM虚拟化

显示VNC   将Keymap设置为Copy Local Keymap  单击 Begin Installation

EL6.6 x64 下部署 KVM虚拟化

 

安装操作系统

EL6.6 x64 下部署 KVM虚拟化

 

 

KVM基本功能管理

1、查看命令帮助

[root@localhost ~]# virsh -h

 

virsh [options]… [<command_string>]

virsh [options]… <command> [args…]

 

  options:

    -c | –connect=URI      hypervisor connection URI

    -r | –readonly         connect readonly

    -d | –debug=NUM        debug level [0-4]

    -h | –help             this help

    -q | –quiet            quiet mode

    -t | –timing           print timing information

 

2、查看KVM的配置文件存放目录(KVM01.xml是虚拟系统实例的配置文件)

[root@Localhost ~]# ls /etc/libvirt/qemu

autostart  KVM01.xml  networks

 

3、查看虚拟机状态

[root@Localhost ~]# virsh list –all

 Id    名称                         状态

—————————————————-

 7     KVM01                          running

4、虚拟机的关机与开机,首先确保acpid服务安装并运行,在虚拟机中

EL6.6 x64 下部署 KVM虚拟化

EL6.6 x64 下部署 KVM虚拟化

 

[root@Localhost ~]# virsh shutdown KVM01

域 KVM01 被关闭

[root@Localhost ~]# virsh list –all

 Id    名称                         状态

—————————————————-

 –     KVM01                          关闭

 

[root@Localhost ~]# virsh start KVM01

域 KVM01 已开始

[root@Localhost ~]# virsh list –all

 Id    名称                         状态

—————————————————-

 9     KVM01                          running

 

5、强制实例系统关闭电源

[root@Localhost ~]# virsh destroy KVM01

域 KVM01 被删除

 

6、通过配置文件启动虚拟机系统

[root@Localhost ~]# virsh create /etc/libvirt/qemu/KVM01.xml

域 KVM01 被创建(从 /etc/libvirt/qemu/KVM01.xml)

 

[root@Localhost ~]# virsh list –all

 Id    名称                         状态

—————————————————-                

 10    KVM01                          running

 

7、挂起虚拟机

[root@Localhost ~]# virsh suspend KVM01

域 KVM01 被挂起

 

[root@Localhost ~]# virsh list –all

 Id    名称                         状态

—————————————————-

 10    KVM01                          暂停

 

8、恢复虚拟机

[root@Localhost ~]# virsh resume KVM01

域 KVM01 被重新恢复

 

[root@Localhost ~]# virsh list –all

 Id    名称                         状态

—————————————————-

 10    KVM01                          running

 

9、配置虚拟机实例伴随宿主机自动启动

[root@Localhost ~]# virsh autostart KVM01

域 KVM01标记为自动开始

 

上述命令将创建 /etc/libvirt/qemu/autostart/ 目录,目录内容为开机自动启动的系统

[root@Localhost ~]# ls /etc/libvirt/qemu/autostart/

KVM01.xml

 

10、导出(备份)虚拟机配置

[root@Localhost ~]# virsh dumpxml KVM01 > /etc/libvirt/qemu/KVM02.xml

[root@Localhost ~]# ls /etc/libvirt/qemu

autostart  KVM01.xml  KVM02.xml  networks
 

11、虚拟机的删除与添加,删除虚拟机:

[root@Localhost ~]# virsh destroy KVM01

域 KVM01 被删除

[root@Localhost ~]# virsh undefine KVM01

域 KVM01 已经被取消定义

 

[root@Localhost ~]# ls /etc/libvirt/qemu

autostart  KVM02.xml  networks

[root@Localhost ~]# ls /virtual/KVM/

KVM01.img

 

查看删除结果,KVM01的配置文件被删除,但是磁盘文件不会被删除

 

 

通过virsh list –all 查看不到centos6.5的信息,说明此虚拟机被删除

[root@localhost ~]# virsh list –all

 Id    名称                         状态

—————————————————-

 

12、通过备份的配置文件重新定义虚拟机:

[root@Localhost ~]# ls /etc/libvirt/qemu

autostart  KVM02.xml  networks

[root@Localhost ~]# mv /etc/libvirt/qemu/KVM02.xml /etc/libvirt/qemu/KVM01.xml

 

重新定义虚拟机

[root@Localhost ~]# cd /etc/libvirt/qemu

[root@Localhost qemu]# virsh define KVM01.xml

定义域 KVM01(从 KVM01.xml)

 

[root@Localhost qemu]# virsh list –all

 Id    名称                         状态

—————————————————-

 –     KVM01                          关闭

来源:Stestack

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年10月12日
下一篇 2018年10月12日

相关推荐