部署KVM虚拟化平台

一、基本概述

1.KVM原理

广义的KVM包含两部分,一部分是基于Linux内核支持KVM内核模块,另一部分是简化和修改Qemu。

KVM内核模块处理器和内存支持虚拟机运行,Qemu主要处理I/O为用户提供空间工具进行处理。

2.KVM三种工作模式

客户模式:执行非I/O的客户代码,虚拟机运行在这个模式下 (客户是虚拟机)

  •     用户模式:qeum
  •     内核模式:模拟cpu,内存

用户模式:用户执行I/O代码,QEMU运行在这个模式下,

  •      QEMU
  •     libkvm :通过iovtl进入内核
  •      Ioctl:输入输出控制器
  •      Fd:通过ioctl向设备驱动器(dev/kvm)创建,运行(虚拟机)操作。

内核模式:CPU调度和内存管理相关。

二、实验分析

1.准备 kvm 虚拟化环境

yum -y install qemu-kvm

yum -y install qemu-kvm-tools

yum -y install virt-install

yum -y install qemu-img

yum -y install bridge-utils

yum -y install libvirt

yum -y install virt-manager

yum -y install libguestfs-tools

备注:

qemu-kvm : kvm核心包–虚拟操作系统模拟器加速模块

qemu-kvm-tools :qemu-kvm的工具包

virt-install:虚拟机安装工具

qemu-img :是QEMU的磁盘管理工具

bridge-utils:虚拟机与外界通信的命令管理工具

libvirt:必须要装的核心工具

virt-manager:虚拟机图形管理工具(宿主机有桌面环境时可以考虑安装,命令操作或者远程控制则不需要)

QEMU是“Quick Emulator”的缩写,是一个用C语言编写的开源虚拟化软件。

QEMU(Quick Emulator)快速仿真器

libguestfs-tools:用于访问虚拟机的磁盘映像文件提供的一组命令

关机,设置CPU支持虚拟化,然后开机

 

[root@kvm01 ~]# cat /proc/cpuinfo | grep vmx     (查看主机是否支持虚拟化技术)[root@kvm01 ~]# lsmod | grep kvm         ( 内核模块是否支持)

安装完成后还需要开启 libvirtd 服务,以开启相关支持。
[root@kvm01
 ~]# systemctl start libvirtd
[root@kvm01 ~]# systemctl enable libvirtd

2.设置KVM网络

[root@kvm01 ~]# cd /etc/sysconfig/network-scripts/

[root@kvm01 network-scripts]# cp ifcfg-ens33 ifcfg-br0

备注:

ifcfg-ens33  做物理网卡(网关)

ifcfg-br0   桥接网卡

[root@kvm01 ~]# vim ifcfg-ens33

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

IPADDR=192.168.10.108

NETMASK=255.255.255.0

GATEWAY=192.168.10.254

DNS1=223.6.6.6

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=ens33

DEVICE=ens33

ONBOOT=yes

BRIDGE=br0            (添加)

[root@kvm01 ~]# vim ifcfg-br0

TYPE=Bridge

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

IPADDR=192.168.10.108

NETMASK=255.255.255.0

GATEWAY=192.168.10.254

DNS1=223.6.6.6

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=br0

DEVICE=br0

ONBOOT=yes

[root@kvm01 ~]# systemctl restart network

[root@kvm01 ~]# ifconfig

3KVM 管理

[root@kvm01 ~]# virt-manager

1)创建存储池

存储池的名称为:kgc

存储池的目录为:/data_kvm/store

(2)创建存储卷

在bdqn的存储池中添加存储卷

存储卷名称为:test01

卷最大容量10G

(3)将Linux系统的ISO文件拷贝到/opt目录下,并关闭存储设置

4)在kvm01的主机上新建虚拟机,名称为test01

4.使用 KVM 命令集管理虚拟机

1)查看命令帮助

[root@kvm01 ~]# virsh -h

2)查看 KVM 的配置文件存放目录

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

3)查看虚拟机状态

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

4)虚拟机关机与开机

[root@kvm01 ~]# virsh shutdown test01

[root@kvm01 ~]# virsh start test01

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

[root@kvm01 ~]# virsh destroy test01

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

[root@kvm01 ~]# virsh create /etc/libvirt/qemu/test01.xml

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

7)挂起虚拟机

[root@kvm01 ~]# virsh suspend test01

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

8)恢复虚拟机

[root@kvm01 ~]# virsh resume test01

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

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

[root@kvm01 ~]# virsh autostart test01

10)导出虚拟机配置

[root@kvm01 ~]# virsh dumpxml test01 > /etc/libvirt/qemu/test02.xml

11)虚拟机的删除与添加

删除虚拟机。

[root@kvm01 ~]# virsh shutdown test01

[root@kvm01 ~]# virsh undefine test01   ()

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

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

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

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

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

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

[root@bdqn qemu]# mv test02.xml test01.xml

重新定义虚拟机。

[root@bdqn qemu]# virsh define test01.xml

查看虚拟机信息。

[root@bdqn qemu]# virsh list --all

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

直接通过 vim 命令修改。

[root@kvm01 ~]# vim /etc/libvirt/qemu/test01.xml

通过 virsh 命令修改。

[root@kvm01 ~]# virsh edit test01

5.KVM文件管理

1)查看当前磁盘格式

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

备注:

如果虚拟机磁盘文件不是 qcow2 格式,可以通过 qemu-img 命令转换磁盘文件格式,

如执行以下操作可以将 test01 虚拟机 raw 格式磁盘转换至 qcow2 格式。

[root@kvm01 ~]# virsh shutdown test01

[root@kvm01 ~]# qemu-img convert -f raw -O qcow2 /data_kvm/store/test01.img /data_kvm/store/test01.qcow2

执行转换磁盘格式的命令后还需要修改 test01 xml 配置文件中磁盘的类型与磁盘文件名。

[root@kvm01 ~]# virsh edit test01

…… //省略部分内容

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

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

<source file='/data_KVM/store/test01.qcow2'/>

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

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

</disk>

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

使用这个命令需要安装 libguestfs-tools-c 工具包。

[root@kvm01 ~]# virt-cat -a /data_kvm/store/test01.qcow2 /etc/sysconfig/grub

3virt-edit 命令

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

[root@kvm01 ~]# virt-edit -a /data_kvm/store/test01.qcow2 /etc/resolv.conf

4virt-df 命令

virt-df 命令用于查看虚拟机磁盘信息。

[root@kvm01 ~]# virt-df -h test01

6.虚拟机克隆

1)查看虚拟机状态

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

2)从 test01 克隆 test02

[root@kvm01 ~]# virt-clone -o test01 -n test02 -f /data_kvm/store/test02.qcow2

-o 指定克隆名称

 -n新的虚拟机

-f  test02克隆的文件位置

3)查看虚拟机状态

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

4)启动虚拟机

[root@kvm01 ~]# virsh start test02

5. 虚拟机快照

KVM 虚拟机要使用镜像功能,磁盘格式必须为 qcow2。下面介绍 KVM 虚拟机快照备

份的过程。

1)对 test01 创建快照

[root@kvm01 ~]# virsh snapshot-create test01

已生成域快照 1503494464

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

[root@kvm01 ~]# virsh snapshot-current test01

3)查看快照信息

[root@kvm01 ~]# virsh snapshot-list test01

4)创建新快照

[root@kvm01 ~]# virsh snapshot-create test01

5)查看快照信息

[root@kvm01 ~]# virsh snapshot-list test01

6)恢复虚拟机状态

[root@kvm01 ~]# virsh snapshot-revert test01 1503494464

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

[root@kvm01 ~]# virsh snapshot-current test01

8)删除快照

[root@kvm01 ~]# virsh snapshot-delete test01 1503494464

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值