通过案例部署KVM虚拟化平台

通过案例  搭建KVM虚拟化平台

 

注意:1实验要开启VMWare中对应CentOS6.5虚拟机的虚拟化功能--在虚拟机设置--处理器--虚拟化引擎--勾选虚拟化Intel VT-x/EPT 或 AMD-V/RVI(V)

2.KVMKernel Virtual Machine的缩写,目前RedHat 只支持在64位的系统上运行KVM , 同时硬件要支持VT技术。

案例环境:采用的是CentOS6.5x86_64,开启虚拟化支持

1、安装方式

图形化安装CentOS6.5--采用最小化安装系统--选择桌面安装--选择虚拟化选项

 

2、在已有系统基础上,安装KVM所需软件

yum -y groupinstall "Desktop"

yum -y install qemu-kvm.x86_64 qemu-kvm-tools.x86_64 python-virtinst.noarch qemu-img.x86_64 bridge-utils.x86_64 libvirt virt-manager

 

3、验证--安装好以上RPM包后,最好重启一下系统,再查看CPU是否支持虚拟化

1)查看以下两种类型CPU支持虚拟化的相关信息

A.Intel

cat /proc/cpuinfo | grep vmx

B.AMD

CAT /proc/cpuinfo | grep smv

wKioL1ZJVICiH8bHAAE4Mu85bV0675.png 

2)查看KVM模块是否成功安装

lsmod | grep kvm

 

4、设置KVM网络

libvirt中运行KVM网络有两种:用户模式-NAT和桥接模式-Bridge,默认是NAT模式

,根据实际的需求我们采用桥接模式。

vim /etc/sysconfig/network-scripts/ifcfg-eth0(修改配置文件ifcfg-eth0)

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=none

HWADDR=00:0c:29:25:6a:6e

BRIDGE="br0"

 

vim /etc/sysconfig/network-scripts/ifcfg-br0(新建配置文件ifcfg-br0)

DEVICE=br0

TYPE=Bridge

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=192.168.1.100

NETMASK=255.255.255.0

 

重启network服务

[root@localhost ~]# service network restart

正在关闭接口 br0:                                         [确定]

正在关闭接口 eth0:                                        [确定]

关闭环回接口:                                             [确定]

弹出环回接口:                                             [确定]

弹出界面 eth0:                                            [确定]

弹出界面 br0: Determining if ip address 192.168.1.100 is already in use for device br0...

 

确认IP地址信息:                                                          [确定]

[root@localhost ~]# ifconfig

wKioL1ZJVKHTG9JqAAEqe4PSIOU235.png 

 

输出以上信息,说明网卡桥接成功了!

 

5KVM管理

virt-manager是基于libvirt的图形化虚拟机管理软件,该软件不同的版本,图形界面和操作方法也可能不同,在Shell环境下,以root身份输入命令:virt-manager 即可调出虚拟化管理器。

[root@localhost ~]# virt-manager

Xlib:  extension "RANDR" missing on display "localhost:10.0".

wKiom1ZJVHXwoX-4AAGlsNS8HTg383.png 

 

6、虚拟化管理的步骤如下:

1)创建存储池

双击localhost(QEMU)--选择“储存”选项卡--单击“+”新建储存池:名称“bdqn;目录“/data_kvm/store--单击“完成”。

 

2)再创建一个镜像储存池

双击localhost(QEMU)--选择“储存”选项卡--单击“+”新建储存池:名称“bdqn_iso;目录“/data_kvm/iso--单击“完成”。

 

上传iso镜像文件

可用mount -o 或别的方法把镜像上传到服务器目录/data_kvm/iso

3)创建存储卷

单击刚创建好的“bdqn”存储池--单击对话框右下角“新建卷”按钮建立一个储存卷:名称:“benet_kvm;设置存储卷的最大容量和分配容量“10240MB--单击“完成”。wKiom1ZJVKehQwdGAAHYtsuQJAY931.png

 

4)创建虚拟机

虚拟系统管理器--右击“Localhost(QEMU)--单击“新建”选项--虚拟机名称“CentOS6.5--打击“前进”按钮--分配内存和CPU资源--单击“前进”按钮--勾选“立即分配整个磁盘”,点选“管理的或者其他现有存储”,单击“浏览”按钮选择文件--单击“前进”按钮--勾选“在安装前自定义配置”--单击“完成”。在“Overview”视图,定位到“机器设置”-时钟偏移-改为“localtime,单击应用;定位到“Boot Option,勾选“主机引导时启动虚拟机”复选框-单击应用;在“显示VNC”中,将Keymap设置为“Copy Local Keymap”。

wKioL1ZJVTTxP5kzAAE-6Xem0RE735.png 

 

 

wKioL1ZJVZ7y9HefAAFhraFVG2k020.png 

wKioL1ZJVbPjWqSOAAFEJEE2-ks112.png 

wKioL1ZJVgDydnG0AAFEK8uWQxE181.png


 wKiom1ZJVeCTUIdPAAGuuB4oXOM362.png

 

设置完毕后,单击“Begin Installation”按钮即可,整个虚拟机配置过程完成。下面就是一步一步安装系统了。

wKiom1ZJVl3D3WEGAAIDIHfkGb4339.png

 

第二部分 使用KVM命令集管理虚拟机

1、安装Linux虚拟机

虚拟机192.168.1.100宿主机(当作物理机)已安装,使用Xshell远程控制该宿主机或在本机上操作。

 

2KVM基本功能管理

1)查看命令帮助

wKioL1ZJVsrCXjDHAAD1nIzw1_s908.png 

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

autostart  CentOS6.5.xml  networks

 

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

ls /etc/libvirt/qemu

 

3)查看虚拟机状态

[root@localhost ~]# virsh list --all

 Id    名称                         状态

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

 3     CentOS6.5                      running

 

4)虚拟机关机与开机

注意:首先要确认acpid服务已安装并运行

 

[root@localhost ~]# rpm -qa acpid

acpid-1.0.10-2.1.el6.x86_64

 

[root@localhost ~]# /etc/rc.d/init.d/acpid start

启动 acpi 守护进程:                                       [确定]

 

[root@localhost ~]# virsh shutdown CentOS6.5

域 CentOS6.5 被关闭

 

[root@localhost ~]# virsh start CentOS6.5

域 CentOS6.5 已开始

 

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

[root@localhost ~]# virsh destroy CentOS6.5

域 CentOS6.5 被删除

 

[root@localhost ~]# virsh list --all

 Id    名称                         状态

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

 -     CentOS6.5                      关闭

wKiom1ZJVpjwTsiWAADnm6BLBiM591.png 

 

 

6)通过配置文件启动虚拟机系统实例

[root@localhost ~]# virsh create /etc/libvirt/qemu/CentOS6.5.xml

域 CentOS6.5 被创建(从 /etc/libvirt/qemu/CentOS6.5.xml

 

[root@localhost ~]# virsh list --all

 Id    名称                         状态

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

 5     CentOS6.5                      running

 

7)挂起虚拟机

[root@localhost ~]# virsh suspend CentOS6.5

域 CentOS6.5 被挂起

 

[root@localhost ~]# virsh list --all

 Id    名称                         状态

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

 5     CentOS6.5                      暂停

 

8)恢复虚拟机

[root@localhost ~]# virsh resume CentOS6.5

域 CentOS6.5 被重新恢复

 

[root@localhost ~]# virsh list --all

 Id    名称                         状态

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

 5     CentOS6.5                      running

 

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

[root@localhost ~]# virsh autostart CentOS6.5

域 CentOS6.5标记为自动开始

 

该目录内容为开机自动启动的系统

[root@localhost ~]# ls -hl /etc/libvirt/qemu/autostart/

总用量 0

lrwxrwxrwx 1 root root 31 9月  24 17:18 CentOS6.5.xml -> /etc/libvirt/qemu/CentOS6.5.xml

 

10)导出虚拟机配置

virsh dumpxml CentOS6.5 >/etc/libvirt/qemu/test02.xml

 

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

autostart  CentOS6.5.xml  networks  test02.xml

 

11)虚拟机的删除和添加

[root@localhost ~]# virsh shutdown CentOS6.5

域 CentOS6.5 被关闭

 

[root@localhost ~]# virsh list --all

 Id    名称                         状态

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

 -     CentOS6.5                      关闭

 

[root@localhost ~]# virsh undefine CentOS6.5

域 CentOS6.5 已经被取消定义

wKioL1ZJVwax0HAEAADnUCItdmE375.png 

 

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

autostart  networks  test02.xml

 

注意:CentOS6.5的配置文件被删除,但是磁盘文件不会被删除

 

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

[root@localhost ~]# virsh list --all

 Id    名称                         状态

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

 

通过备份配置文件重新定义虚拟机

cd /etc/libvirt/qemu

mv test02.xml CentOS6.5.xml

[root@localhost qemu]# virsh define CentOS6.5.xml 

定义域 CentOS6.5(从 CentOS6.5.xml

 

[root@localhost ~] virsh list --all

 Id    名称                         状态

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

 -     CentOS6.5                      关闭

 

12)修改虚拟机的配置信息(可修改系统内存大小、磁盘文件等信息)

vim /etc/libvirt/qemu/CentOS6.5.xml

 

通过virsh命令修改

virsh edit CentOS6.5

 

第三部分 KVM文件的管理

 

注意:首先安装文件格式转换的命令行工具

[root@localhost Packages]# yum -y install libguestfs-tools

 

1、转换raw格式磁盘文件至qcow2格式

查看当前磁盘文件格式

[root@localhost ~] qemu-img info /data_kvm/store/benet_kvm.img 

image: /data_kvm/store/benet_kvm.img

file format: raw

virtual size: 10G (10737418240 bytes)

disk size: 10G

 wKiom1ZJVvvDSDftAACVYC3Qr68019.png

 

 

关闭虚拟机CentOS6.5

[root@localhost qemu]# virsh shutdown CentOS6.5

域 CentOS6.5 被关闭

 

转换磁盘文件格式

qemu-img convert -f raw -O qcow2 /data_kvm/store/benet_kvm.img /data_kvm/store/benet_kvm.qcow2

 

2、修改CentOS6.5xml配置文件

[root@localhost ~]# virsh edit CentOS6.5

<disk type='file' device='disk'>

      <driver name='qemu' type='qcow2' cache='none'/>

      <source file='/data_kvm/store/benet_kvm.qcow2'/>

      <target dev='vda' bus='virtio'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>

</disk>

wKioL1ZJV6WC4wOeAAEOzPgvXc0808.png 

 

编辑了域 CentOS6.5 XML 配置。

 

3virt-cat命令,类似于cat命令

virt-cat -a /data_kvm/store/benet_kvm.qcow2 /etc/sysconfig/network

 

4virt-edit命令,用于编辑文件,用法与vim基本一致。

virt-edit -a /data_kvm/store/benet_kvm.qcow2 /etc/resolv.conf

 

5virt-df命令查看虚拟磁盘信息

virt-df -h

[root@localhost ~]# virt-df -h CentOS6.5

Filesystem                                Size       Used  Available  Use%

CentOS6.5:/dev/sda1                      1008M        57M       900M    6%

 

第四部分 虚拟机的克隆

1、查看虚拟机的状态

[root@localhost ~]# virsh list --all

 Id    名称                         状态

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

 -     CentOS6.5                      关闭

 

2、从CentOS6.5克隆test01

virt-clone -o CentOS6.5 -n test01 -f /data_kvm/store/benet_kvm.qcow2

[root@localhost ~]# virt-clone -o CentOS6.5 -n test01 -f /data_kvm/store/test01.qcow2 

正在分配 'test01.qcow2'                                          |  10 GB     00:05     

 

Clone 'test01' created successfully.

 

3、查看虚拟机状态

[root@localhost ~]# virsh list --all

 Id    名称                         状态

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

 -     CentOS6.5                      关闭

 -     test01                         关闭

 

4、启动虚拟机

[root@localhost ~]# virsh start test01

域 test01 已开始

 

[root@localhost ~]# virsh list --all

 Id    名称                         状态

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

 7     test01                         running

 -     CentOS6.5                      关闭

 

第五部分 虚拟机快照

 

KVM虚拟机要使用镜像功能,磁盘格式必须为qcow2.

[root@localhost ~]# qemu-img info /data_kvm/store/test01.qcow2 

image: /data_kvm/store/test01.qcow2

file format: qcow2

virtual size: 10G (10737418240 bytes)

disk size: 607M

cluster_size: 65536

wKioL1ZJV8rjtHY7AAFTq2QKkik767.png 

 

KVM虚拟机快照备份过程如下:

1)对CentOS6.5创建快照

[root@localhost ~]virsh snapshot-create CentOS6.5

 

2)查看虚拟机快照版本信息

[root@localhost ~]virsh snapshot-current CentOS6.5

 

3)查看快照信息

[root@localhost ~]virsh snapshot-list CentOS6.5

 

4)创建新快照

[root@localhost ~]virsh snapshot-create CentOS6.5

 

5)查看快照信息

[root@localhost ~]virsh snapshot-list CentOS6.5

 

6)恢复虚拟机至某个快照状态

[root@localhost ~]virsh snapshot-revert CentOS6.5 1282572963

 

7)查看虚拟机快照版本信息

[root@localhost ~]virsh snapshot-current CentOS6.5 

 

8)删除快照

[root@localhost ~]virsh snapshot-delete CentOS6.5 1282572963

 

总结:KVM虚拟化平台,现作为Linux内核模块之一,它依托CPU虚拟化指令集(如Intel-VT,AMD-V)实现高性能的安全稳定的虚拟化支持。

       KVM对硬件的要求,必须是64位操作系统,其CPU支持lntelAMD虚拟化,可以分别通过cat /proc/cpuinfo |grep vmx cat /proc/cpuinfo |grep smv 来查看。

      KVM 可通过命令集管理,但宠大的命令集很难清楚明了,所以通常都是在桌面环境下通过图形界面管理,直观方便。


你可能感兴趣的:(kvm)