共计 21618 个字符,预计需要花费 55 分钟才能阅读完成。
简介
KVM 是 Kernel Virtual Machine 的简写,目前 Red Hat 只支持在 64 位的 RHEL5.4 及以上的系统运行 KVM,同时硬件需要支持 VT 技术。KVM 的前身是 QEMU,2008 年被 Red Hat 公司收购并获得一项 hypervisor 技术,不过 Red Hat 的 KVM 被认为是将成为未来 Linux hypervisor 的主流,准确来说,KVM 仅仅是 Linux 内核的一个模块。管理和创建完整的 KVM 虚拟机,需要更多的辅助工具。
案例:搭建 KVM 虚拟化平台
一、案例分析
1、案例概述
公司部分 Linux 服务器利用率不高,为充分利用这些 Linux 服务器,可以部署 KVM,在物理机上运行多个业务系统。例如,在运行 Nginx 的服务器上部署 KVM,然后在虚拟机上运行 Tomcat
2、案例前置知识点
KVM 自 Linux 2.6.20 版本后就直接整合到 Linux 内核,它依托 CPU 和虚拟化指令集(如 Inter-VT、AMD-V)实现高性能的虚拟化支持。由于与 Linux 内核高度整合,因此在性能、安全性、兼容性、稳定性上都有很好的表现
图上简单描述了 KVM 虚拟化架构,在 KVM 环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程。因此它可以很方便地与 Linux 系统中的安全模块进行整合(SElinux),可以灵活地实现资源的管理及分配
3、案例环境
采用 CentOS 6.6 x86_64,开启 CPU 虚拟化支持
二、案例实施
1、安装方式
(1)最简单的安装方法就是在安装系统的时候,选择桌面安装,然后选择虚拟化选项
安装桌面
安装虚拟化平台
(2)在已有系统基础上,安装 KVM 所需软件
yum -y groupinstall “Desktop” // 安装 GNOME 桌面环境
yum -y install qemu-kvm.x86_64 //KVM 模块
yum -y install qemu-kvm-tools.x86_64 //KVM 调试工具,可不安装
yum -y install Python-virtinst.noarch //python 组件,记录创建 VM 时的 xml 文件
yum -y install qemu-img.x86_64 //qemu 组件,创建磁盘、启动虚拟机等
yum -y install bridge-utils.x86_64 // 网络支持工具
yum -y install libvirt // 虚拟机管理工具
yum -y install virt-manager // 图形界面管理虚拟机
yum -y install libguestfs* //virt-cat 等命令的支持软件包
(3)验证。重启系统后,查看 CPU 是否支持虚拟化,对于 Inter 服务器可以 通过一下命令查看,只要有输出就说明 CPU 支持虚拟化;AMD 服务器可用 cat /proc/cpuinfo | grep smv 命令查看
[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 tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi ept vpid fsgsbase bmi1 avx2 smep bmi2 invpcid
检查 KVM 模块是否安装:
[root@localhost ~]# lsmod | grep kvm
kvm_intel 55496 0
kvm 337772 1 kvm_intel
2、设置 KVM 网络
宿主服务器安装完成 KVM,首先要设定网络,在 libvirt 中运行 KVM 网络有两种方法:NAT 和 Bridge,默认是 NAT
关于两种模式的说明:
(1)用户模式,即 NAT 方式,这种方式是默认网络,数据包由 NAT 方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络
(2)桥接模式,这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持
这里以 Bridge(桥接)为例
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:4C:0C:24
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
BRIDGE=”br0″
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
重启 network 服务
[root@localhost ~]# service network restart
正在关闭接口 br0:[确定]
正在关闭接口 eth0:[确定]
关闭环回接口:[确定]
弹出环回接口:[确定]
弹出界面 eth0:[确定]
弹出界面 br0:
正在决定 br0 的 IP 信息 … 完成。[确定]
确认 IP 地址信息
[root@localhost ~]# ifconfig
br0 Link encap:Ethernet HWaddr 00:0C:29:4C:0C:24
inet addr:192.168.0.106 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe4c:c24/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:70 errors:0 dropped:0 overruns:0 frame:0
TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:69660 (68.0 KiB) TX bytes:3066 (2.9 KiB)
eth0 Link encap:Ethernet HWaddr 00:0C:29:4C:0C:24
inet6 addr: fe80::20c:29ff:fe4c:c24/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28413 errors:0 dropped:0 overruns:0 frame:0
TX packets:20243 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:37239885 (35.5 MiB) TX bytes:1683986 (1.6 MiB)
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:65536 Metric:1
RX packets:140 errors:0 dropped:0 overruns:0 frame:0
TX packets:140 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12096 (11.8 KiB) TX bytes:12096 (11.8 KiB)
virbr0 Link encap:Ethernet HWaddr 52:54:00:0B:01:73
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)
出现以上信息,说明网卡桥接成功了
3、KVM 管理
[root@localhost ~]# virt-manager
virt-manager 是基于 libvirt 的图像化虚拟机管理软件。请注意,不同的发行版上 virt-manager 的版本可能不同,图形界面和操作方法可能不同。本文使用了 Centos 6 企业版。创建 KVM 虚拟机最简单的方法是通过 virt-manager 接口。从控制台窗口启动这个工具,以 root 身份输入 virt-manager 命令
虚拟机管理界面
虚拟机管理步骤如下
(1)创建存储池,双击 localhost(QEMU),选择“存储选项卡”,然后单击“+”按钮新建存储池。单击“前进”按钮,根据提示输入或浏览以设置存储目录,如 /data_kvm/store,最后单击“完成”按钮即可
创建存储池
(2)以同样的操作创建一个镜像存储池,命名为 linux_iso,目录为 /data_kvm/iso 即可。在安装操作系统时,我们把镜像上传到服务器目录 /data_kvm/iso
创建镜像存储池
(3)创建存储卷,单击刚创建好的“linux”,单击对话框右下角的“新建卷”按钮建立一个存储卷,并设置最大容量与分配容量
创建存储卷
(4)单击“完成”按钮后,回到虚拟系统管理器。右击“localhost(QEMU)”,然后选择“新建”选项,在弹出的对话框中将虚拟机名称命令为“Centos-6.6”,然后单击“前进”按钮
新建虚拟机(1)
单击“浏览”按钮选择镜像文件,再选择操作系统类型及版本
新建虚拟机(2)
单击“前进”按钮,在对话框中适当分配内存和 CPU 资源,如 1 核 CPU、512MB 内存
新建虚拟机(3)
单击“前进”按钮,在对话框中勾选“立即分配整个磁盘”复选框,点选“管理的或者其他现有存储”单选按钮,单击“浏览”按钮选择文件,然后单击“前进”按钮
新建虚拟机(4)
在所示的对话框中勾选“在安装前自定义配置”复选框,单击“完成”按钮,弹出对话框
新建虚拟机(5)
新建虚拟机(6)
在“Overview”视图中,定位到“机器设置”,把机器设置 - 时钟偏移 - 改为“localtime”,单击“应用”按钮即可。定位到“Boot Options”,勾选“主机引导时启动虚拟机”复选框,这样在物理宿主机启动后,这个 VM 也会启动,最后单击“应用”按钮。如果要远程管理,需要在“显示 VNC”中,将 Keymap 设置为“Copy Local Keymap”
新建虚拟机(7)
最后单击“Begin Installation”按钮即可,整个虚拟机配置过程完成。下面就是安装操作系统的工作,和平时安装 Linux 系统一样
CentOS 安装界面
案例:使用 KVM 命令集管理虚拟机
一、案例分析
案例环境使用一台物理机器,一台服务器安装 Centos 6.6 的 64 位系统(即 Stranded), Centos-6.6 是在宿主机 Stranded 中安装的虚拟机
主机 | 操作系统 | IP 地址 | 主要软件 |
Stranded | Centos-6.6 x86_64 | 192.168.1.100 | Xshell |
Centos-6.6 | Centos-6.6 x86_64 | 192.168.1.103 | Xmanager |
二、案例实施
1、安装 Linux 虚拟机
安装过程同上一案例,使用 Xshell 远程控制 Stranded 主机
2、KVM 基本功能管理
(1)查看命令帮助
[root@localhost ~]# virsh -h
…… // 省略输出内容
(2)查看 KVM 的配置文件存放目录(Centos-6.6.xml 是虚拟机系统实例的配置文件)
[root@localhost ~]# ls /etc/libvirt/qemu
autostart Centos-6.6.xml networks
(3)查看虚拟机状态
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
2 Centos-6.6 running
(4)虚拟机关机与开机
首先要确认 acpid 服务安装并运行
[root@localhost ~]# virsh shutdown Centos-6.6
[root@localhost ~]# virsh start Centos-6.6
(5)强制实例系统关闭电源
[root@localhost ~]# virsh destroy Centos-6.6
(6)通过配置文件启动虚拟机系统实例
[root@localhost ~]# virsh create /etc/libvirt/qemu/Centos-6.6.xml
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
3 Centos-6.6 running
(7)挂起虚拟机
[root@localhost ~]# virsh suspend Centos-6.6
查看虚拟机状态
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
3 Centos-6.6 暂停
(8)恢复虚拟机
[root@localhost ~]# virsh resume Centos-6.6
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
3 Centos-6.6 running
(9)配置虚拟机实例伴随宿主机自动启动
[root@localhost ~]# virsh autostart Centos-6.6
上述命令将创建 /etc/libvirt/qemu/autostart/ 目录,目录内容为开机自动启动的系统
(10)导出虚拟机配置
[root@localhost ~]# virsh dumpxml Centos-6.6 >/etc/libvirt/qemu/Centos-02-6.6.xml
(11)虚拟机的删除与添加
删除虚拟机
[root@localhost ~]# virsh shutdown Centos-6.6
[root@localhost ~]# virsh undefine Centos-6.6
查看删除结果,Centos-6.6 的配置文件被删除,但磁盘文件不会被删除
[root@localhost ~]# ls /etc/libvirt/qemu
autostart Centos-02-6.6.xml networks
通过 virsh list -all 查看不到 Centos-6.6 的信息,说明此虚拟机被删除
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
通过备份的配置文件重新定义虚拟机
[root@localhost ~]# cd /etc/libvirt/qemu
[root@localhost qemu]# mv Centos-02-6.6.xml Centos-6.6.xml
重新定义虚拟机
[root@localhost qemu]# virsh define Centos-6.6.xml
查看虚拟机信息
[root@localhost qemu]# virsh list –all
Id 名称 状态
—————————————————-
– Centos-6.6 关闭
(12)修改虚拟机配置信息(用来修改系统内存大小、磁盘文件等信息)
直接通过 vim 命令修改
[root@localhost ~]# vim /etc/libvirt/qemu/Centos-6.6.xml
通过 virsh 命令修改
[root@localhost ~]# virsh edit Centos-6.6
3、KVM 文件管理
通过文件管理可以直接查看、修改、复制虚拟机的内部文件。例如,当系统因为配置问题无法启动时,可以直接修改虚拟机的文件。虚拟机磁盘文件有 raw 与 qcow2 格式,KVM 虚拟机默认使用 raw 格式,raw 格式性能最好,速度最快,其缺点是不支持一些新的功能,如镜像、Zlib 磁盘压缩、AES 加密等,针对两种格式的文件有不同的工具可供选择。这里介绍本地 YUM 安装 libguestfs-tools 后产生的命令行工具(这个工具可以直接读取 qcow2 格式的磁盘文件,因此需要将 raw 格式的磁盘文件转换成 qcow2 的格式)
(1)转换 raw 格式磁盘至 qcow2 格式
查看当前磁盘格式
[root@localhost ~]# qemu-img info /data_kvm/store/linux_kvm.img
image: /data_kvm/store/linux_kvm.img
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 10G
关闭虚拟机
[root@localhost ~]# virsh shutdown Centos-6.6
转换磁盘文件格式
[root@localhost ~]# qemu-img convert -f raw -O qcow2 /data_kvm/store/linux_kvm.img /data_kvm/store/linux_kvm.qcow2
(2)修改 Centos-6.6 的 xml 配置文件
[root@localhost ~]# virsh edit Centos-6.6
…… // 省略部分内容
<disk type=’file’ device=’disk’>
<driver name=’qemu’ type=’qcow2′ cache=’none’/>
<source file=’/data_kvm/store/linux_kvm.qcow2’/>
<target dev=’vda’ bus=’virtio’/>
<address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x06′ function=’0x0’/>
</disk>
…… // 省略部分内容
(3)virt-cat 命令,类似于 cat 命令
[root@localhost ~]# virt-cat -a /data_kvm/store/linux_kvm.qcow2 /etc/sysconfig/network
NETWORINT=yes
HOSTNAME=localhost.localdomain
(4)virt-edit 命令,用于编辑文件,用法与 vim 基本一致
[root@localhost ~]# virt-edit -a /data_kvm/store/linux_kvm.qcow2 /etc/resolv.conf
nameserver 8.8.8.8
(5)virt-df 命令用于查看虚拟机磁盘信息
[root@localhost ~]# virt-df -h Centos-6.6
Filesystem Size Used Available Use%
Centos-6.6:/dev/sda1 476M 32M 419M 7%
Centos-6.6:/dev/sdb1 4.3G 4.3G 0 100%
Centos-6.6:/dev/VolGroup/lv_root 8.3G 620M 7.2G 8%
4、虚拟机克隆
(1)查看虚拟机状态
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
– Centos-6.6 关闭
(2)从 Centos-6.6 克隆 Centos-02-6.6
[root@localhost ~]# virt-clone -o Centos-6.6 -n Centos-02-6.6 -f /data_kvm/store/Centos-02-6.6.qcow2
(3)查看虚拟机状态
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
– Centos-02-6.6 关闭
– Centos-6.6 关闭
(4)启动虚拟机
[root@localhost ~]# virsh start Centos-02-6.6
5、虚拟机快照
KVM 虚拟机要使用快照功能,磁盘格式必须是 qcow2,之前已经将 Centos-6.6 的磁盘格式转换成了 qcow2
下面介绍 KVM 虚拟机快照备份的过程
(1)对 Centos-6.6 创建快照
[root@localhost ~]# virsh snapshot-create Centos-6.6
Domain snapshot 1440950172 created
(2)查看虚拟机快照版本信息
[root@localhost ~]# virsh snapshot-current Centos-6.6
<domainsnapshot>
<name>1440950172</name> // 快照版本号
<state>shutoff</state>
…… // 省略部分内容
(3)查看快照信息
[root@localhost ~]# virsh snapshot-list Centos-6.6
名称 Creation Time 状态
————————————————————
1440950172 2015-08-30 23:56:12 +0800 shutoff
(4)创建新快照
[root@localhost ~]# virsh snapshot-create Centos-6.6
Domain snapshot 1440950433 created
(5)查看快照信息
[root@localhost ~]# virsh snapshot-list Centos-6.6
名称 Creation Time 状态
————————————————————
1440950172 2015-08-30 23:56:12 +0800 shutoff
1440950433 2015-08-31 00:00:33 +0800 shutoff
(6)回复虚拟机状态至 1440950172
[root@localhost ~]# virsh snapshot-revert Centos-6.6 1440950172
(7)查看虚拟机快照版本信息
[root@localhost ~]# virsh snapshot-current Centos-6.6
<domainsnapshot>
<name>1440950172</name> // 快照版本号
<state>shutoff</state>
…… // 省略部分输出
(8)删除快照
[root@localhost ~]# virsh snapshot-delete Centos-6.6 1440950172
Domain snapshot 1440950172 deleted
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-10/136164.htm
简介
KVM 是 Kernel Virtual Machine 的简写,目前 Red Hat 只支持在 64 位的 RHEL5.4 及以上的系统运行 KVM,同时硬件需要支持 VT 技术。KVM 的前身是 QEMU,2008 年被 Red Hat 公司收购并获得一项 hypervisor 技术,不过 Red Hat 的 KVM 被认为是将成为未来 Linux hypervisor 的主流,准确来说,KVM 仅仅是 Linux 内核的一个模块。管理和创建完整的 KVM 虚拟机,需要更多的辅助工具。
案例:搭建 KVM 虚拟化平台
一、案例分析
1、案例概述
公司部分 Linux 服务器利用率不高,为充分利用这些 Linux 服务器,可以部署 KVM,在物理机上运行多个业务系统。例如,在运行 Nginx 的服务器上部署 KVM,然后在虚拟机上运行 Tomcat
2、案例前置知识点
KVM 自 Linux 2.6.20 版本后就直接整合到 Linux 内核,它依托 CPU 和虚拟化指令集(如 Inter-VT、AMD-V)实现高性能的虚拟化支持。由于与 Linux 内核高度整合,因此在性能、安全性、兼容性、稳定性上都有很好的表现
图上简单描述了 KVM 虚拟化架构,在 KVM 环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程。因此它可以很方便地与 Linux 系统中的安全模块进行整合(SElinux),可以灵活地实现资源的管理及分配
3、案例环境
采用 CentOS 6.6 x86_64,开启 CPU 虚拟化支持
二、案例实施
1、安装方式
(1)最简单的安装方法就是在安装系统的时候,选择桌面安装,然后选择虚拟化选项
安装桌面
安装虚拟化平台
(2)在已有系统基础上,安装 KVM 所需软件
yum -y groupinstall “Desktop” // 安装 GNOME 桌面环境
yum -y install qemu-kvm.x86_64 //KVM 模块
yum -y install qemu-kvm-tools.x86_64 //KVM 调试工具,可不安装
yum -y install Python-virtinst.noarch //python 组件,记录创建 VM 时的 xml 文件
yum -y install qemu-img.x86_64 //qemu 组件,创建磁盘、启动虚拟机等
yum -y install bridge-utils.x86_64 // 网络支持工具
yum -y install libvirt // 虚拟机管理工具
yum -y install virt-manager // 图形界面管理虚拟机
yum -y install libguestfs* //virt-cat 等命令的支持软件包
(3)验证。重启系统后,查看 CPU 是否支持虚拟化,对于 Inter 服务器可以 通过一下命令查看,只要有输出就说明 CPU 支持虚拟化;AMD 服务器可用 cat /proc/cpuinfo | grep smv 命令查看
[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 tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi ept vpid fsgsbase bmi1 avx2 smep bmi2 invpcid
检查 KVM 模块是否安装:
[root@localhost ~]# lsmod | grep kvm
kvm_intel 55496 0
kvm 337772 1 kvm_intel
2、设置 KVM 网络
宿主服务器安装完成 KVM,首先要设定网络,在 libvirt 中运行 KVM 网络有两种方法:NAT 和 Bridge,默认是 NAT
关于两种模式的说明:
(1)用户模式,即 NAT 方式,这种方式是默认网络,数据包由 NAT 方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络
(2)桥接模式,这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持
这里以 Bridge(桥接)为例
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:4C:0C:24
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
BRIDGE=”br0″
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
重启 network 服务
[root@localhost ~]# service network restart
正在关闭接口 br0:[确定]
正在关闭接口 eth0:[确定]
关闭环回接口:[确定]
弹出环回接口:[确定]
弹出界面 eth0:[确定]
弹出界面 br0:
正在决定 br0 的 IP 信息 … 完成。[确定]
确认 IP 地址信息
[root@localhost ~]# ifconfig
br0 Link encap:Ethernet HWaddr 00:0C:29:4C:0C:24
inet addr:192.168.0.106 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe4c:c24/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:70 errors:0 dropped:0 overruns:0 frame:0
TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:69660 (68.0 KiB) TX bytes:3066 (2.9 KiB)
eth0 Link encap:Ethernet HWaddr 00:0C:29:4C:0C:24
inet6 addr: fe80::20c:29ff:fe4c:c24/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28413 errors:0 dropped:0 overruns:0 frame:0
TX packets:20243 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:37239885 (35.5 MiB) TX bytes:1683986 (1.6 MiB)
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:65536 Metric:1
RX packets:140 errors:0 dropped:0 overruns:0 frame:0
TX packets:140 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12096 (11.8 KiB) TX bytes:12096 (11.8 KiB)
virbr0 Link encap:Ethernet HWaddr 52:54:00:0B:01:73
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)
出现以上信息,说明网卡桥接成功了
3、KVM 管理
[root@localhost ~]# virt-manager
virt-manager 是基于 libvirt 的图像化虚拟机管理软件。请注意,不同的发行版上 virt-manager 的版本可能不同,图形界面和操作方法可能不同。本文使用了 Centos 6 企业版。创建 KVM 虚拟机最简单的方法是通过 virt-manager 接口。从控制台窗口启动这个工具,以 root 身份输入 virt-manager 命令
虚拟机管理界面
虚拟机管理步骤如下
(1)创建存储池,双击 localhost(QEMU),选择“存储选项卡”,然后单击“+”按钮新建存储池。单击“前进”按钮,根据提示输入或浏览以设置存储目录,如 /data_kvm/store,最后单击“完成”按钮即可
创建存储池
(2)以同样的操作创建一个镜像存储池,命名为 linux_iso,目录为 /data_kvm/iso 即可。在安装操作系统时,我们把镜像上传到服务器目录 /data_kvm/iso
创建镜像存储池
(3)创建存储卷,单击刚创建好的“linux”,单击对话框右下角的“新建卷”按钮建立一个存储卷,并设置最大容量与分配容量
创建存储卷
(4)单击“完成”按钮后,回到虚拟系统管理器。右击“localhost(QEMU)”,然后选择“新建”选项,在弹出的对话框中将虚拟机名称命令为“Centos-6.6”,然后单击“前进”按钮
新建虚拟机(1)
单击“浏览”按钮选择镜像文件,再选择操作系统类型及版本
新建虚拟机(2)
单击“前进”按钮,在对话框中适当分配内存和 CPU 资源,如 1 核 CPU、512MB 内存
新建虚拟机(3)
单击“前进”按钮,在对话框中勾选“立即分配整个磁盘”复选框,点选“管理的或者其他现有存储”单选按钮,单击“浏览”按钮选择文件,然后单击“前进”按钮
新建虚拟机(4)
在所示的对话框中勾选“在安装前自定义配置”复选框,单击“完成”按钮,弹出对话框
新建虚拟机(5)
新建虚拟机(6)
在“Overview”视图中,定位到“机器设置”,把机器设置 - 时钟偏移 - 改为“localtime”,单击“应用”按钮即可。定位到“Boot Options”,勾选“主机引导时启动虚拟机”复选框,这样在物理宿主机启动后,这个 VM 也会启动,最后单击“应用”按钮。如果要远程管理,需要在“显示 VNC”中,将 Keymap 设置为“Copy Local Keymap”
新建虚拟机(7)
最后单击“Begin Installation”按钮即可,整个虚拟机配置过程完成。下面就是安装操作系统的工作,和平时安装 Linux 系统一样
CentOS 安装界面
案例:使用 KVM 命令集管理虚拟机
一、案例分析
案例环境使用一台物理机器,一台服务器安装 Centos 6.6 的 64 位系统(即 Stranded), Centos-6.6 是在宿主机 Stranded 中安装的虚拟机
主机 | 操作系统 | IP 地址 | 主要软件 |
Stranded | Centos-6.6 x86_64 | 192.168.1.100 | Xshell |
Centos-6.6 | Centos-6.6 x86_64 | 192.168.1.103 | Xmanager |
二、案例实施
1、安装 Linux 虚拟机
安装过程同上一案例,使用 Xshell 远程控制 Stranded 主机
2、KVM 基本功能管理
(1)查看命令帮助
[root@localhost ~]# virsh -h
…… // 省略输出内容
(2)查看 KVM 的配置文件存放目录(Centos-6.6.xml 是虚拟机系统实例的配置文件)
[root@localhost ~]# ls /etc/libvirt/qemu
autostart Centos-6.6.xml networks
(3)查看虚拟机状态
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
2 Centos-6.6 running
(4)虚拟机关机与开机
首先要确认 acpid 服务安装并运行
[root@localhost ~]# virsh shutdown Centos-6.6
[root@localhost ~]# virsh start Centos-6.6
(5)强制实例系统关闭电源
[root@localhost ~]# virsh destroy Centos-6.6
(6)通过配置文件启动虚拟机系统实例
[root@localhost ~]# virsh create /etc/libvirt/qemu/Centos-6.6.xml
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
3 Centos-6.6 running
(7)挂起虚拟机
[root@localhost ~]# virsh suspend Centos-6.6
查看虚拟机状态
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
3 Centos-6.6 暂停
(8)恢复虚拟机
[root@localhost ~]# virsh resume Centos-6.6
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
3 Centos-6.6 running
(9)配置虚拟机实例伴随宿主机自动启动
[root@localhost ~]# virsh autostart Centos-6.6
上述命令将创建 /etc/libvirt/qemu/autostart/ 目录,目录内容为开机自动启动的系统
(10)导出虚拟机配置
[root@localhost ~]# virsh dumpxml Centos-6.6 >/etc/libvirt/qemu/Centos-02-6.6.xml
(11)虚拟机的删除与添加
删除虚拟机
[root@localhost ~]# virsh shutdown Centos-6.6
[root@localhost ~]# virsh undefine Centos-6.6
查看删除结果,Centos-6.6 的配置文件被删除,但磁盘文件不会被删除
[root@localhost ~]# ls /etc/libvirt/qemu
autostart Centos-02-6.6.xml networks
通过 virsh list -all 查看不到 Centos-6.6 的信息,说明此虚拟机被删除
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
通过备份的配置文件重新定义虚拟机
[root@localhost ~]# cd /etc/libvirt/qemu
[root@localhost qemu]# mv Centos-02-6.6.xml Centos-6.6.xml
重新定义虚拟机
[root@localhost qemu]# virsh define Centos-6.6.xml
查看虚拟机信息
[root@localhost qemu]# virsh list –all
Id 名称 状态
—————————————————-
– Centos-6.6 关闭
(12)修改虚拟机配置信息(用来修改系统内存大小、磁盘文件等信息)
直接通过 vim 命令修改
[root@localhost ~]# vim /etc/libvirt/qemu/Centos-6.6.xml
通过 virsh 命令修改
[root@localhost ~]# virsh edit Centos-6.6
3、KVM 文件管理
通过文件管理可以直接查看、修改、复制虚拟机的内部文件。例如,当系统因为配置问题无法启动时,可以直接修改虚拟机的文件。虚拟机磁盘文件有 raw 与 qcow2 格式,KVM 虚拟机默认使用 raw 格式,raw 格式性能最好,速度最快,其缺点是不支持一些新的功能,如镜像、Zlib 磁盘压缩、AES 加密等,针对两种格式的文件有不同的工具可供选择。这里介绍本地 YUM 安装 libguestfs-tools 后产生的命令行工具(这个工具可以直接读取 qcow2 格式的磁盘文件,因此需要将 raw 格式的磁盘文件转换成 qcow2 的格式)
(1)转换 raw 格式磁盘至 qcow2 格式
查看当前磁盘格式
[root@localhost ~]# qemu-img info /data_kvm/store/linux_kvm.img
image: /data_kvm/store/linux_kvm.img
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 10G
关闭虚拟机
[root@localhost ~]# virsh shutdown Centos-6.6
转换磁盘文件格式
[root@localhost ~]# qemu-img convert -f raw -O qcow2 /data_kvm/store/linux_kvm.img /data_kvm/store/linux_kvm.qcow2
(2)修改 Centos-6.6 的 xml 配置文件
[root@localhost ~]# virsh edit Centos-6.6
…… // 省略部分内容
<disk type=’file’ device=’disk’>
<driver name=’qemu’ type=’qcow2′ cache=’none’/>
<source file=’/data_kvm/store/linux_kvm.qcow2’/>
<target dev=’vda’ bus=’virtio’/>
<address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x06′ function=’0x0’/>
</disk>
…… // 省略部分内容
(3)virt-cat 命令,类似于 cat 命令
[root@localhost ~]# virt-cat -a /data_kvm/store/linux_kvm.qcow2 /etc/sysconfig/network
NETWORINT=yes
HOSTNAME=localhost.localdomain
(4)virt-edit 命令,用于编辑文件,用法与 vim 基本一致
[root@localhost ~]# virt-edit -a /data_kvm/store/linux_kvm.qcow2 /etc/resolv.conf
nameserver 8.8.8.8
(5)virt-df 命令用于查看虚拟机磁盘信息
[root@localhost ~]# virt-df -h Centos-6.6
Filesystem Size Used Available Use%
Centos-6.6:/dev/sda1 476M 32M 419M 7%
Centos-6.6:/dev/sdb1 4.3G 4.3G 0 100%
Centos-6.6:/dev/VolGroup/lv_root 8.3G 620M 7.2G 8%
4、虚拟机克隆
(1)查看虚拟机状态
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
– Centos-6.6 关闭
(2)从 Centos-6.6 克隆 Centos-02-6.6
[root@localhost ~]# virt-clone -o Centos-6.6 -n Centos-02-6.6 -f /data_kvm/store/Centos-02-6.6.qcow2
(3)查看虚拟机状态
[root@localhost ~]# virsh list –all
Id 名称 状态
—————————————————-
– Centos-02-6.6 关闭
– Centos-6.6 关闭
(4)启动虚拟机
[root@localhost ~]# virsh start Centos-02-6.6
5、虚拟机快照
KVM 虚拟机要使用快照功能,磁盘格式必须是 qcow2,之前已经将 Centos-6.6 的磁盘格式转换成了 qcow2
下面介绍 KVM 虚拟机快照备份的过程
(1)对 Centos-6.6 创建快照
[root@localhost ~]# virsh snapshot-create Centos-6.6
Domain snapshot 1440950172 created
(2)查看虚拟机快照版本信息
[root@localhost ~]# virsh snapshot-current Centos-6.6
<domainsnapshot>
<name>1440950172</name> // 快照版本号
<state>shutoff</state>
…… // 省略部分内容
(3)查看快照信息
[root@localhost ~]# virsh snapshot-list Centos-6.6
名称 Creation Time 状态
————————————————————
1440950172 2015-08-30 23:56:12 +0800 shutoff
(4)创建新快照
[root@localhost ~]# virsh snapshot-create Centos-6.6
Domain snapshot 1440950433 created
(5)查看快照信息
[root@localhost ~]# virsh snapshot-list Centos-6.6
名称 Creation Time 状态
————————————————————
1440950172 2015-08-30 23:56:12 +0800 shutoff
1440950433 2015-08-31 00:00:33 +0800 shutoff
(6)回复虚拟机状态至 1440950172
[root@localhost ~]# virsh snapshot-revert Centos-6.6 1440950172
(7)查看虚拟机快照版本信息
[root@localhost ~]# virsh snapshot-current Centos-6.6
<domainsnapshot>
<name>1440950172</name> // 快照版本号
<state>shutoff</state>
…… // 省略部分输出
(8)删除快照
[root@localhost ~]# virsh snapshot-delete Centos-6.6 1440950172
Domain snapshot 1440950172 deleted
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-10/136164.htm