kvm虚拟化平台搭建入门
KVM虚拟化有两种网络模式:
1)Bridge网桥模式
2)NAT网络地址转换模式
Bridge方式适用于服务器主机的虚拟化。NAT方式适用于桌面主机的虚拟化。
环境:
本次实验要开启VMWare中对应CentOS6.5虚拟机的虚拟化功能--在虚拟机设置--处理器--虚拟化引擎--勾选虚拟化Intel VT-x/EPT 或 AMD-V/RVI(V)
1、安装方式
图形化安装CentOS6.5--采用最小化安装系统--选择桌面安装--选择虚拟化选项
2,安装kvm所需软件
[root@localhost ~]# yum -y groupinstall "Desktop" [root@localhost ~]# 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支持虚拟化的相关信息
inter:
[root@localhost ~]# cat /proc/cpuinfo | grep vmx 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 pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dts tpr_shadow vnmi ept vpid fsgsbase smep
AMD:
[root@localhost ~]# cat /proc/cpuinfo | grep smv
4、设置KVM网络
在libvirt中运行KVM网络有两种:用户模式-NAT和桥接模式-Bridge,默认是NAT模式
,根据实际的需求我们采用桥接模式。
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 //修改配置文件ifcfg-eth0 DEVICE=eth0 HWADDR=:0c::8e:ac:f7 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=n0 BOOTPROTO=none BRIDGE="br0" ~ ~ ~
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0 //新建bro DEVICE=br0 TYPE=Bridge ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=172.16.1.2 NETMASK=255.255.0.0
重启network服务
[root@localhost ~]# service network restart
正在关闭接口 eth0: bridge br0 does not exist!
[确定]
关闭环回接口: [确定]
弹出环回接口: [确定]
弹出界面 eth0: [确定]
弹出界面 br0: Determining if ip address 172.16.1.2 is already in use for device br0...
[确定]
确认IP地址信息
[root@localhost ~]# ifconfig
br0 Link encap:Ethernet HWaddr :0C::8E:AC:F7
inet addr:172.16.1.2 Bcast:172.16.255.255 Mask:255.255.0.0
inet6 addr: fe80::20c:29ff:fe8e:acf7/ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: ( (2.4 KiB)
eth0 Link encap:Ethernet HWaddr :0C::8E:AC:F7
inet6 addr: fe80::20c:29ff:fe8e:acf7/ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: ( (59.2 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::/ Scope:Host
UP LOOPBACK RUNNING MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: ( (1.2 KiB)
virbr0 Link encap:Ethernet HWaddr :::4D::
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: ( (0.0 b)
输出以上信息,说明网卡桥接成功了!
5、KVM管理
virt-manager是基于libvirt的图形化虚拟机管理软件,该软件不同的版本,图形界面和操作方法也可能不同,在Shell环境下,以root身份输入命令:virt-manager 即可调出虚拟化管理器。
[root@localhost ~]# virt-manager
Xlib: extension "RANDR" missing on display "localhost:10.0".
6、虚拟化管理的步骤如下:
1)创建存储池
双击localhost(QEMU)--选择“储存”选项卡--单击“+”新建储存池:名称“baishuchao”;目录
注:这是存储池路径,我现在这里是实验环境选择默认即可,如在实际环境中需要添加到后台存储服务器上
2)再创建一个镜像储存池
双击localhost(QEMU)--选择“储存”选项卡--单击“+”新建储存池:名称“baishuchao_iso”;目录“/data_kvm/iso”--单击“完成”。
上传iso镜像文件
注:这里是利用xftp第三方软件进行网络上传的
3)创建存储卷
单击刚创建好的“bdqn”存储池--单击对话框右下角“新建卷”按钮建立一个储存卷:名称:“baishuchao_kvm”;设置存储卷的最大容量和分配容量“10240MB”--单击“完成”。
4)创建虚拟机
虚拟系统管理器--右击“Localhost(QEMU)”--单击“新建”选项--虚拟机名称“CentOS6.5”--打击“前进”按钮--分配内存和CPU资源--单击“前进”按钮--勾选“立即分配整个磁盘”,点选“管理的或者其他现有存储”,单击“浏览”按钮选择文件--单击“前进”按钮--勾选“在安装前自定义配置”--单击“完成”。在“Overview”视图,定位到“机器设置”-时钟偏移-改为“localtime”,单击应用;定位到“Boot Option”,勾选“主机引导时启动虚拟机”复选框-单击应用;在“显示VNC”中,将Keymap设置为“Copy Local Keymap”。
设置完毕后,单击“Begin Installation”按钮即可,整个虚拟机配置过程完成。下面就是一步一步安装系统了。
第二部分 使用KVM命令集管理虚拟机
、安装Linux虚拟机
虚拟机172.16.1.12宿主机(当作物理机)已安装,使用Xshell远程控制该宿主机。
、KVM基本功能管理
)查看命令帮助
[root@localhost ~]# ls /etc/libvirt/qemu
autostart CentOS6..xml networks
)查看KVM的配置文件存放目录(CentOS6..xml是虚拟机系统实例的配置文件)
ls /etc/libvirt/qemu
)查看虚拟机状态
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
CentOS6. running
)虚拟机关机与开机
注意:首先要确认acpid服务已安装并运行
[root@localhost ~]# rpm -qa acpid
acpid--2.1.el6.x86_64
[root@localhost ~]# /etc/rc.d/init.d/acpid start
启动 acpi 守护进程: [确定]
[root@localhost ~]# virsh shutdown CentOS6.
域 CentOS6. 被关闭
[root@localhost ~]# virsh start CentOS6.
域 CentOS6. 已开始
)强制实例系统关闭电源
[root@localhost ~]# virsh destroy CentOS6.
域 CentOS6. 被删除
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- CentOS6. 关闭
)通过配置文件启动虚拟机系统实例
[root@localhost ~]# virsh create /etc/libvirt/qemu/CentOS6..xml
域 CentOS6. 被创建(从 /etc/libvirt/qemu/CentOS6..xml)
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
CentOS6. running
)挂起虚拟机
[root@localhost ~]# virsh suspend CentOS6.
域 CentOS6. 被挂起
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
CentOS6. 暂停
)恢复虚拟机
[root@localhost ~]# virsh resume CentOS6.
域 CentOS6. 被重新恢复
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
CentOS6. running
)配置虚拟机实例伴随宿主机自动启动
[root@localhost ~]# virsh autostart CentOS6.
域 CentOS6.5标记为自动开始
该目录内容为开机自动启动的系统
[root@localhost ~]# ls -hl /etc/libvirt/qemu/autostart/
总用量
lrwxrwxrwx root root 9月 : CentOS6..xml -> /etc/libvirt/qemu/CentOS6..xml
)导出虚拟机配置
virsh dumpxml CentOS6. >/etc/libvirt/qemu/test02.xml
[root@localhost ~]# ls /etc/libvirt/qemu
autostart CentOS6..xml networks test02.xml
)虚拟机的删除和添加
[root@localhost ~]# virsh shutdown CentOS6.
域 CentOS6. 被关闭
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- CentOS6. 关闭
[root@localhost ~]# virsh undefine CentOS6.
域 CentOS6. 已经被取消定义
[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..xml
[root@localhost qemu]# virsh define CentOS6..xml
定义域 CentOS6.(从 CentOS6..xml)
[root@localhost ~] virsh list --all
Id 名称 状态
----------------------------------------------------
- CentOS6. 关闭
)修改虚拟机的配置信息(可修改系统内存大小、磁盘文件等信息)
vim /etc/libvirt/qemu/CentOS6..xml
通过virsh命令修改
virsh edit CentOS6.
第三部分 KVM文件的管理
注意:首先安装文件格式转换的命令行工具
[root@localhost Packages]# yum -y install libguestfs-tools
、转换raw格式磁盘文件至qcow2格式
查看当前磁盘文件格式
[root@localhost ~] qemu-img info /data_kvm/store/baishuchao_kvm.img
image: /data_kvm/store/baishuchao_kvm.img
file format: raw
bytes)
disk size: 10G
关闭虚拟机CentOS6.
[root@localhost qemu]# virsh shutdown CentOS6.
域 CentOS6. 被关闭
转换磁盘文件格式
qemu-img convert -f raw -O qcow2 /data_kvm/store/baishuchao_kvm.img /data_kvm/store/baishuchao_kvm.qcow2
、修改CentOS6.5的xml配置文件
[root@localhost ~]# virsh edit CentOS6.
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/data_kvm/store/baishuchao_kvm.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
编辑了域 CentOS6. XML 配置。
、virt-cat命令,类似于cat命令
virt-cat -a /data_kvm/store/baishuchao_kvm.qcow2 /etc/sysconfig/network
、virt-edit命令,用于编辑文件,用法与vim基本一致。
virt-edit -a /data_kvm/store/baishuchao_kvm.qcow2 /etc/resolv.conf
、virt-df命令查看虚拟磁盘信息
virt-df -h
[root@localhost ~]# virt-df -h CentOS6.
Filesystem Size Used Available Use%
CentOS6.:/dev/sda1 1008M 57M 900M %
第四部分 虚拟机的克隆
、查看虚拟机的状态
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- CentOS6. 关闭
、从CentOS6.5克隆test01
virt-clone -o CentOS6. -n test01 -f /data_kvm/store/baishuchao_kvm.qcow2
[root@localhost ~]# virt-clone -o CentOS6. -n test01 -f /data_kvm/store/test01.qcow2
正在分配 GB :
Clone 'test01' created successfully.
、查看虚拟机状态
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
- CentOS6. 关闭
- test01 关闭
、启动虚拟机
[root@localhost ~]# virsh start test01
域 test01 已开始
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
test01 running
- CentOS6. 关闭
第五部分 虚拟机快照
KVM虚拟机要使用镜像功能,磁盘格式必须为qcow2.
[root@localhost ~]# qemu-img info /data_kvm/store/test01.qcow2
image: /data_kvm/store/test01.qcow2
file format: qcow2
bytes)
disk size: 607M
cluster_size:
KVM虚拟机快照备份过程如下:
)对CentOS6.5创建快照
[root@localhost ~]virsh snapshot-create CentOS6.
)查看虚拟机快照版本信息
[root@localhost ~]virsh snapshot-current CentOS6.
)查看快照信息
[root@localhost ~]virsh snapshot-list CentOS6.
)创建新快照
[root@localhost ~]virsh snapshot-create CentOS6.
)查看快照信息
[root@localhost ~]virsh snapshot-list CentOS6.
)恢复虚拟机至某个快照状态
[root@localhost ~]virsh snapshot-revert CentOS6.
)查看虚拟机快照版本信息
[root@localhost ~]virsh snapshot-current CentOS6.
)删除快照
[root@localhost ~]virsh snapshot-delete CentOS6.
kvm虚拟化平台搭建入门的更多相关文章
- kvm虚拟化平台搭建
一.虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行.虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程.CPU的虚拟化技术可以单CPU模 拟多CPU并行,允许一个平台同时运行多个操 ...
- KVM 虚拟化基本搭建
KVM虚拟化技术 KVM是基于x86架构上Linux操作系统的全虚拟化解决方案 ,在Centos6.3系统中,kvm已经被集成到内核中,相当于使用内核来做虚拟机管理程序.由于KVM本身就工作于内核环境 ...
- Linux 部署KVM虚拟化平台
简单介绍 KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案.KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Lin ...
- KVM虚拟化平台环境部署
一:安装依赖包 二:配置网卡 三:配置环境 实验环境: KVM01 192.168.200.10 关闭防火墙及相关的安全机制 [root@KVM01 ~]# systemctl stop fire ...
- KVM虚拟化技术实战全过程
今天准备开始.................... centos安装-kvm 教程: http://www.linuxidc.com/Linux/2017-01/140007.htm http:// ...
- KVM虚拟化技术
KVM虚拟化技术 Qemu-kvm kvm virt-manager VNC Qemu-kvm创建和管理虚拟机 一.KVM简介 KVM(名称来自英语:Kernel-basedVirtual Machi ...
- kvm虚拟化之convirt集中管理平台搭建
情况说明: (1)本文采用OEL6.3x64操作系统,需要有KVM安装环境.(2)convirt2.1.1采用源码方式安装,convirt环境分别两部分,一部分是cms,用于管理kvm/xen虚拟主机 ...
- <Mastering KVM Virtualization>:第三章 搭建独立的KVM虚拟化
在第二章,你了解了KVM的内部结构:在本章中,您将了解如何将Linux服务器设置为虚拟化主机.我们正在讨论将KVM用于虚拟化并将libvirt作为虚拟化管理引擎. KVM开启了虚拟化并利用你的服务器或 ...
- [原创]KVM虚拟化管理平台的实现
KVM虚拟化管理平台的实现 源码链接:https://github.com/wsjhk/IaaS_admin.git 根据KVM虚拟化管理的要求,设计并实现网页操作管理KVM虚拟机.设计原理架构如下图 ...
随机推荐
- 解决Oracle+weblogic系统死机的问题
前段时间发布的系统(Oracle+weblogic)频繁挂掉,每天早上9点.下午2点高峰期就挂,纠结了很长时间,最终解决,方法描述下. 执行select count(*),status from v$ ...
- PYTHON实现DES加密及base64源码
要求是实现DES加密,解密,我是用python实现的,还是有挺多坑的,改bug就改了挺久,加密实现后,解密过程就比较轻松. 另外,附加base64编码源码 要求:输入秘钥为64位二进制数(有效位为56 ...
- 深入理解JavaScript系列:为什么03-0.2不等于0.1
五一宅家看书,所以接着更新一篇文章. 今天讲一下为什么03-0.2不等于0.1这个问题. 有点标题党的味道,在JavaScript中,当你试着对小数进行加减运算时,有时候会发现某个结果并非我们所想的那 ...
- sql语句查询结果添加排序列(转)
给查询出的SQL记录添加序号列,解决方法有以下两种 第一: select ROW_NUMBER() OVER (ORDER BY a.字段 ASC) AS XUHAO,a.* from table ...
- 带head的gridview
这是github上的一个项目,根据谷歌的那个HeadGridView改的,因为谷歌的那个addHeadView后宽度不能填充屏幕,下面是代码. 来源:https://github.com/liaohu ...
- 出现( linker command failed with exit code 1)错误总结 (转)
这种问题,通常出现在添加第三方库文件或者多人开发时. 这种问题一般是找不到文件而导致的链接错误. 我们可以从如下几个方面着手排查. 1.以如下错误为例,如果是多人开发,你同步完成后发现出现如下的错误. ...
- Lua Coroutine详解
协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈,局部变量和指令指针,同时又与其它协同程序共享全局变量和其它大部分东西.线程与协同程序的主要区别在于,一个具有多线程的程序可以同时运行几个线程 ...
- zookeeper的安装(图文详解。。。来点击哦!)
zookeeper的安装(图文详解...来点击哦!) 一.服务器的配置 三台服务器: 192.168.83.133 sunshine 192.168.83.134 sunshineMin 19 ...
- 最短路径问题——floyd算法
floyd算法和之前讲的bellman算法.dijkstra算法最大的不同在于它所处理的终于不再是单源问题了,floyd可以解决任何点到点之间的最短路径问题,个人觉得floyd是最简单最好用的一种算法 ...
- Groovy入门教程
Groovy入门教程 kmyhy@126.com 2009-5-13 一.groovy是什么 简单地说,Groovy 是下一代的java语言,跟java一样,它也运行在 JVM 中. 作为跑在JVM ...