设为首页 收藏本站
查看: 1271|回复: 0

[经验分享] 通过案例部署KVM虚拟化平台

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-17 09:22:00 | 显示全部楼层 |阅读模式
                      通过案例  搭建KVM虚拟化平台

注意:1本次实验要开启VMWare中对应CentOS6.5虚拟机的虚拟化功能--在虚拟机设置--处理器--虚拟化引擎--勾选虚拟化Intel VT-x/EPT 或 AMD-V/RVI(V)
2.KVM是Kernel 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.jpg
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服务
[iyunv@localhost ~]# service network restart
正在关闭接口 br0:                                         [确定]
正在关闭接口 eth0:                                        [确定]
关闭环回接口:                                             [确定]
弹出环回接口:                                             [确定]
弹出界面 eth0:                                            [确定]
弹出界面 br0: Determining if ip address 192.168.1.100 is already in use for device br0...

确认IP地址信息:                                                          [确定]
[iyunv@localhost ~]# ifconfig
wKioL1ZJVKHTG9JqAAEqe4PSIOU235.jpg

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

5、KVM管理
virt-manager是基于libvirt的图形化虚拟机管理软件,该软件不同的版本,图形界面和操作方法也可能不同,在Shell环境下,以root身份输入命令:virt-manager 即可调出虚拟化管理器。
[iyunv@localhost ~]# virt-manager
Xlib:  extension "RANDR" missing on display "localhost:10.0".
wKiom1ZJVHXwoX-4AAGlsNS8HTg383.jpg

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.jpg

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


wKioL1ZJVZ7y9HefAAFhraFVG2k020.jpg
wKioL1ZJVbPjWqSOAAFEJEE2-ks112.jpg
wKioL1ZJVgDydnG0AAFEK8uWQxE181.jpg

wKiom1ZJVeCTUIdPAAGuuB4oXOM362.jpg

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

第二部分 使用KVM命令集管理虚拟机
1、安装Linux虚拟机
虚拟机192.168.1.100宿主机(当作物理机)已安装,可使用Xshell远程控制该宿主机或在本机上操作。

2、KVM基本功能管理
1)查看命令帮助
wKioL1ZJVsrCXjDHAAD1nIzw1_s908.jpg
[iyunv@localhost ~]# ls /etc/libvirt/qemu
autostart  CentOS6.5.xml  networks

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

3)查看虚拟机状态
[iyunv@localhost ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
3     CentOS6.5                      running

4)虚拟机关机与开机
注意:首先要确认acpid服务已安装并运行

[iyunv@localhost ~]# rpm -qa acpid
acpid-1.0.10-2.1.el6.x86_64

[iyunv@localhost ~]# /etc/rc.d/init.d/acpid start
启动 acpi 守护进程:                                       [确定]

[iyunv@localhost ~]# virsh shutdown CentOS6.5
域 CentOS6.5 被关闭

[iyunv@localhost ~]# virsh start CentOS6.5
域 CentOS6.5 已开始

5)强制实例系统关闭电源
[iyunv@localhost ~]# virsh destroy CentOS6.5
域 CentOS6.5 被删除

[iyunv@localhost ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
-     CentOS6.5                      关闭
wKiom1ZJVpjwTsiWAADnm6BLBiM591.jpg


6)通过配置文件启动虚拟机系统实例
[iyunv@localhost ~]# virsh create /etc/libvirt/qemu/CentOS6.5.xml
域 CentOS6.5 被创建(从 /etc/libvirt/qemu/CentOS6.5.xml)

[iyunv@localhost ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
5     CentOS6.5                      running

7)挂起虚拟机
[iyunv@localhost ~]# virsh suspend CentOS6.5
域 CentOS6.5 被挂起

[iyunv@localhost ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
5     CentOS6.5                      暂停

8)恢复虚拟机
[iyunv@localhost ~]# virsh resume CentOS6.5
域 CentOS6.5 被重新恢复

[iyunv@localhost ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
5     CentOS6.5                      running

9)配置虚拟机实例伴随宿主机自动启动
[iyunv@localhost ~]# virsh autostart CentOS6.5
域 CentOS6.5标记为自动开始

该目录内容为开机自动启动的系统
[iyunv@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

[iyunv@localhost ~]# ls /etc/libvirt/qemu
autostart  CentOS6.5.xml  networks  test02.xml

11)虚拟机的删除和添加
[iyunv@localhost ~]# virsh shutdown CentOS6.5
域 CentOS6.5 被关闭

[iyunv@localhost ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
-     CentOS6.5                      关闭

[iyunv@localhost ~]# virsh undefine CentOS6.5
域 CentOS6.5 已经被取消定义
wKioL1ZJVwax0HAEAADnUCItdmE375.jpg

[iyunv@localhost ~]# ls /etc/libvirt/qemu
autostart  networks  test02.xml

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

通过virsh list --all 查看不到CentOS6.5的信息,说明此虚拟机被删除。
[iyunv@localhost ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------

通过备份配置文件重新定义虚拟机
cd /etc/libvirt/qemu
mv test02.xml CentOS6.5.xml
[iyunv@localhost qemu]# virsh define CentOS6.5.xml
定义域 CentOS6.5(从 CentOS6.5.xml)

[iyunv@localhost ~] virsh list --all
Id    名称                         状态
----------------------------------------------------
-     CentOS6.5                      关闭

12)修改虚拟机的配置信息(可修改系统内存大小、磁盘文件等信息)
vim /etc/libvirt/qemu/CentOS6.5.xml

通过virsh命令修改
virsh edit CentOS6.5

第三部分 KVM文件的管理

注意:首先安装文件格式转换的命令行工具
[iyunv@localhost Packages]# yum -y install libguestfs-tools

1、转换raw格式磁盘文件至qcow2格式
查看当前磁盘文件格式
[iyunv@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.jpg


关闭虚拟机CentOS6.5
[iyunv@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.5的xml配置文件
[iyunv@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.jpg

编辑了域 CentOS6.5 XML 配置。

3、virt-cat命令,类似于cat命令
virt-cat -a /data_kvm/store/benet_kvm.qcow2 /etc/sysconfig/network

4、virt-edit命令,用于编辑文件,用法与vim基本一致。
virt-edit -a /data_kvm/store/benet_kvm.qcow2 /etc/resolv.conf

5、virt-df命令查看虚拟磁盘信息
virt-df -h
[iyunv@localhost ~]# virt-df -h CentOS6.5
Filesystem                                Size       Used  Available  Use%
CentOS6.5:/dev/sda1                      1008M        57M       900M    6%

第四部分 虚拟机的克隆
1、查看虚拟机的状态
[iyunv@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
[iyunv@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、查看虚拟机状态
[iyunv@localhost ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
-     CentOS6.5                      关闭
-     test01                         关闭

4、启动虚拟机
[iyunv@localhost ~]# virsh start test01
域 test01 已开始

[iyunv@localhost ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
7     test01                         running
-     CentOS6.5                      关闭

第五部分 虚拟机快照

KVM虚拟机要使用镜像功能,磁盘格式必须为qcow2.
[iyunv@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.jpg

KVM虚拟机快照备份过程如下:
1)对CentOS6.5创建快照
[iyunv@localhost ~]virsh snapshot-create CentOS6.5

2)查看虚拟机快照版本信息
[iyunv@localhost ~]virsh snapshot-current CentOS6.5

3)查看快照信息
[iyunv@localhost ~]virsh snapshot-list CentOS6.5

4)创建新快照
[iyunv@localhost ~]virsh snapshot-create CentOS6.5

5)查看快照信息
[iyunv@localhost ~]virsh snapshot-list CentOS6.5

6)恢复虚拟机至某个快照状态
[iyunv@localhost ~]virsh snapshot-revert CentOS6.5 1282572963

7)查看虚拟机快照版本信息
[iyunv@localhost ~]virsh snapshot-current CentOS6.5

8)删除快照
[iyunv@localhost ~]virsh snapshot-delete CentOS6.5 1282572963

总结:KVM虚拟化平台,现作为Linux内核模块之一,它依托CPU虚拟化指令集(如Intel-VT,AMD-V)实现高性能的安全稳定的虚拟化支持。
       KVM对硬件的要求,必须是64位操作系统,其CPU支持lntel或AMD虚拟化,可以分别通过cat /proc/cpuinfo |grep vmx 或cat /proc/cpuinfo |grep smv 来查看。
      KVM 可通过命令集管理,但宠大的命令集很难清楚明了,所以通常都是在桌面环境下通过图形界面管理,直观方便。

                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-140178-1-1.html 上篇帖子: KVM虚拟化下使用virsh shutdown命令无法关闭windows 下篇帖子: centos 6.7 安装kvm
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表