kvm实验案例

KVM三种工作模式

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

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

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

1.1.3 案例环境

1. 本案例实验环境

主机

操作系统

IP地址

主要软件

kvm01

CentOS 7.9 x86_64

192.168.10.108

KVM 虚拟机

kvm02

CentOS 7.9 x86_64

192.168.10.109

2. 案例需求

1)安装 KVM

2)完成基本的 KVM 操作管理(创建、启动、停止等)。

3)完成 KVM 命令行操作虚拟机。

3. 案例实现思路

1)准备 KVM 装环境。

2)安装 KVM

3)配置 KVM 桥接网络。

4)创建 KVM 存储池并安装虚拟机。

5)命令行操作虚拟机。

1.2 搭建 KVM 虚拟化平台

1.2.1 准备 kvm 虚拟化环境

1.安装

1YUM 安装 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:用于访问虚拟机的磁盘映像文件提供的一组命令

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

3)开机后验证

[root@kvm01 ~]# cat /proc/cpuinfo | grep vmx

[root@kvm01 ~]# lsmod | grep kvm

4开启 libvirtd 服务

安装完成后还需要开启 libvirtd 服务,以开启相关支持。

[root@kvm01 ~]# systemctl start libvirtd

[root@kvm01 ~]# systemctl enable libvirtd

2.设置 KVM 网络

这里以 Bridge(桥接)为例进行操作演示

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

[root@kvm01 network-scripts]# cp 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

备注:

在此处做个快照,为后面章节做好实验环境

在另一台kvm主机上重复以上操作,最后也做个快照

3KVM 管理

[root@kvm01 ~]# virt-manager

1)创建存储池

存储池的名称为:bdqn

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

2)创建存储卷

bdqn的存储池中添加存储卷

存储卷名称为:test01

卷最大容量10G

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

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

1.2.2 使用 KVM 命令集管理虚拟机

1KVM 基本功能管理

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

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

4. 虚拟机克隆

1)查看虚拟机状态

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

2)从 test01 克隆 test02

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

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

KVM三种工作模式

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

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

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

1.1.3 案例环境

1. 本案例实验环境

主机

操作系统

IP地址

主要软件

kvm01

CentOS 7.9 x86_64

192.168.10.108

KVM 虚拟机

kvm02

CentOS 7.9 x86_64

192.168.10.109

2. 案例需求

1)安装 KVM

2)完成基本的 KVM 操作管理(创建、启动、停止等)。

3)完成 KVM 命令行操作虚拟机。

3. 案例实现思路

1)准备 KVM 装环境。

2)安装 KVM

3)配置 KVM 桥接网络。

4)创建 KVM 存储池并安装虚拟机。

5)命令行操作虚拟机。

1.2 搭建 KVM 虚拟化平台

1.2.1 准备 kvm 虚拟化环境

1.安装

1YUM 安装 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:用于访问虚拟机的磁盘映像文件提供的一组命令

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

3)开机后验证

[root@kvm01 ~]# cat /proc/cpuinfo | grep vmx

[root@kvm01 ~]# lsmod | grep kvm

4开启 libvirtd 服务

安装完成后还需要开启 libvirtd 服务,以开启相关支持。

[root@kvm01 ~]# systemctl start libvirtd

[root@kvm01 ~]# systemctl enable libvirtd

2.设置 KVM 网络

这里以 Bridge(桥接)为例进行操作演示

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

[root@kvm01 network-scripts]# cp 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

备注:

在此处做个快照,为后面章节做好实验环境

在另一台kvm主机上重复以上操作,最后也做个快照

3KVM 管理

[root@kvm01 ~]# virt-manager

1)创建存储池

存储池的名称为:bdqn

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

2)创建存储卷

bdqn的存储池中添加存储卷

存储卷名称为:test01

卷最大容量10G

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

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

1.2.2 使用 KVM 命令集管理虚拟机

1KVM 基本功能管理

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

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

4. 虚拟机克隆

1)查看虚拟机状态

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

2)从 test01 克隆 test02

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值