KVM虚拟化技术介绍以及相关操作

一、KVM架构

KVM功能,是以扩展虚拟化CPU为硬件基础(如Intel-VT,AMD-V),利用CPU虚拟化技术。

KVM作为内核的一个模块,来提供虚拟化功能。如果系统需要虚拟化功能,则KVM模块可以被linux内核按需动态加载到内存运行。如果不需要的KVM功能,可以动态卸载该模块。

QEMU是一套模拟CPU的开源软件。KVM作为内核的一个模块,可以通过QEMU提供的模拟方式,来使用处理器。这样,KVM就提供了一个模拟的(虚拟的)硬件层,虚拟机就运行在这个模拟的硬件层之上。

KVM虚拟化技术介绍以及相关操作

二、KVM软件安装

1、查看CPU是否支持VT技术

KVM虚拟化技术介绍以及相关操作

2、清理环境:卸载KVM

yum remove `rpm -qa | egrep 'qemu|virt|KVM'` -y && rm -rf /var/lib/libvirt/ /etc/libvirt

3、安装软件

yum -y install *qemu* *virt* librbd1-devel

qemu-KVM:主包

libvirt:API接口

virt-manage:图形管理程序

  • 在所谓的kvm技术中,应用到的实则有2个东西: qemu+kvm
  • kvm负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备;
  • qemu是模拟Io设备(网卡,磁盘》,kvm加上qemu之后就能实现真正意义上服务器虚拟化。
  • 由于用到了上面两个东西,所以一般都称之为qemu-kvm。
  • libvirt则是调用kvm虚拟化技术的接口用于管理的,用7ibvirt管理方便.

4、启动libvirtd

systemctl start libvirtd && systemctl enable libvirtd

5、查看KVM模块加载

lsmod | grep KVM

6、四种安装GuestOS方式

KVM虚拟化技术介绍以及相关操作

KVM虚拟化技术介绍以及相关操作

先通过安装飞机驾驶舱方式安装

yum install -y cockpit && systemctl start cockpit && systemctl enable cockpit

7、查看9090端口是否启用

netstat -lpnt

8、关闭防火墙

systemctl stop firewalld
setenforce 0
[root@localhost ~]# vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

9、浏览器访问:服务地址:9090

KVM虚拟化技术介绍以及相关操作

KVM虚拟化技术介绍以及相关操作

飞机驾驶舱cockpit安装完毕


1、使用图形方式安装GuestOS

#打开虚拟系统管理器

virt-manager

选择新建虚拟机

KVM虚拟化技术介绍以及相关操作

KVM虚拟化技术介绍以及相关操作

KVM虚拟化技术介绍以及相关操作

KVM虚拟化技术介绍以及相关操作

KVM虚拟化技术介绍以及相关操作

KVM虚拟化技术介绍以及相关操作

KVM虚拟化技术介绍以及相关操作

然后开始进入安装界面


2、使用命令行模式安装

虚拟机组成部分

1、虚拟机配置文件

[root@localhost ~]# ls /etc/libvirt/qemu
networks vm1.xml

2、存储虚拟机的介质

[root@localhost ~]# ls /var/lib/libvirt/images/
vm1.qcow2
[root@localhost ~]#

根据配置文件配置虚拟机

1.需要拷贝之前的磁盘镜像文件

[root@localhost qemu]# cd /var/lib/libvirt/images/
[root@localhost images]# cp vm1.qcow2 vm2.img
[root@localhost images]# ll
总用量 10487812
-rw-------. 1 root root 5369757696 5   2 11:11 vm1.qcow2
-rw-------  1 root root 5369757696 5   2 11:19 vm2.img

2.需要拷贝之前的配置文件

[root@localhost ~]# cd /etc/libvirt/qemu/
[root@localhost qemu]# cp vm1.xml vm2.xml
[root@localhost qemu]#

3.配置文件需要修改必要的内存

[root@localhost images]# vim /etc/libvirt/qemu/vm2.xml

KVM虚拟化技术介绍以及相关操作

KVM虚拟化技术介绍以及相关操作

KVM虚拟化技术介绍以及相关操作

4.创建虚拟机

[root@localhost images]# virsh define /etc/libvirt/qemu/vm2.xml
定义域 vm2(从 /etc/libvirt/qemu/vm2.xml)

5.重启一下kvm服务

[root@localhost images]# systemctl restart libvirtd

6.宿主机开启路由转发

#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1    #添加这一行

保存退出后,启动

[root@localhost images]# sysctl -p
net.ipv4.ip_forward = 1
[root@localhost images]#

7.验证

#打开虚拟系统管理器

virt-manager

查看是否显示创建的虚拟机vm2?

KVM虚拟化技术介绍以及相关操作

打开虚拟机查看是否可用

KVM虚拟化技术介绍以及相关操作

结果:命令行创建的虚拟机可用并且可以ping通外网,如果ping不通记得激活一下网卡


升级虚拟机配置

添加磁盘镜像

[root@localhost images]# vim /etc/libvirt/qemu/vm1.xml    #添加一下信息
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/vm1-1.qcow2'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x17' function='0x0'/>
    </disk>

创建新的空磁盘卷

[root@localhost images]# qemu-img create -f qcow2 /var/lib/libvirt/images/vm1-1.qcow2 2G
Formatting '/var/lib/libvirt/images/vm1-1.qcow2', fmt=qcow2 size=2147483648 encryption=off cluster_size=65536 lazy_refcounts=off
[root@localhost images]#

重新定义

[root@localhost images]# virsh define /etc/libvirt/qemu/vm1.xml

定义域 vm1(从 /etc/libvirt/qemu/vm1.xml)

[root@localhost images]#

查看vm1有没有添加硬盘成功

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1 1024M  0 rom  
vda             252:0    0    5G  0 disk
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0    4G  0 part
  ├─centos-root 253:0    0  3.5G  0 lvm  /
  └─centos-swap 253:1    0  512M  0 lvm  [SWAP]
vdb             252:16   0    2G  0 disk
[root@localhost ~]#

添加成功


三、KVM存储

概念

  • KVM必须要配置一个目录当作它存储磁盘镜像(存储卷)的目录,我们称这个为存储池

默认存储池

/var/lib/libvirt/images

1、存储池管理

1.创建基于文件夹的存储池(目录)

[root@localhost ~]# mkdir -p /data/vmfs

2.定义存储池与其目录

[root@localhost ~]# virsh pool-define-as vmdisk --type dir --target /data/vmfs
定义池 vmdisk

[root@localhost ~]#

3.创建以定义的存储池

1)创建已定义的存储池

[root@localhost ~]# virsh pool-build vmdisk

构建池 vmdisk

[root@localhost ~]#

2)查看已定义的存储池

[root@localhost ~]# virsh  pool-list --all
名称               状态     自动开始
-------------------------------------------
default              活动     是       
root                 活动     是       
vmdisk               不活跃  否       

4.激活并设置自动启动存储池

 [root@localhost ~]# virsh pool-start vmdisk
池 vmdisk 已启动     

[root@localhost ~]# virsh pool-autostart vmdisk
池 vmdisk 标记为自动启动

[root@localhost ~]# virsh pool-list --all  
名称               状态     自动开始
-------------------------------------------
default              活动     是       
root                 活动     是       
vmdisk               活动     是  

5.在存储池中创建虚拟机存储卷

[root@localhost ~]# virsh vol-create-as vmdisk kvm1.qcow2 3G --format qcow2

创建卷 kvm1.qcow2

[root@localhost ~]#

注意:

1:KVM存储池主要是体现一种管理方式,可以通过挂载存储目录,lvm逻辑卷的方式创建存储池,虚拟机存储卷创建完成后,剩下的操作与无存储卷的方式无任何区别了。

注2:KVM存储池也要用于虚拟机迁移任务。

[root@localhost ~]# ll /data/vmfs -h
总用量 196K
-rw------- 1 root root 193K 52 14:56 kvm1.qcow2
[root@localhost ~]#

6.存储池相关管理命令

(1)在存储池中删除存储卷

[root@localhost ~]# virsh vol-delete --pool vmdisk kvm1.qcow2

卷 kvm1.qcow2 被删除

(2)撤销激活存储卷

[root@localhost ~]# virsh pool-destroy vmdisk

销毁池 vmdisk

(3)删除存储池定义的目录

[root@localhost ~]# virsh pool-delete vmdisk

池 vmdisk 被删除

(4)撤销定义存储池

[root@localhost ~]# virsh pool-undefine vmdisk

池 vmdisk 已经被撤销定义

到此KVM存储池配置与管理操作完毕

2、生产环境中添加lvm和远程·存储即可

添加lvm和远程存储即可

3、磁盘格式

3.1.磁盘镜像文件格式

raw

原始格式,性能最好

qcow2

性能上还是不如raw,但是raw不支持快照,qcow2支持快照。

qed

目前默认安装好的用的是raw格式,所有做快照要把他转换成qcow2格式

什么叫写时拷贝?

raw立刻分配空间,不管你有没有用到那么多空间

qcow2只是承诺给你分配空间,但是只有当你需要用空间的时候,才会给你空间。最多只给你承诺空间的大小,避免空间浪费

3.2.创建磁盘文件

建立qcow2格式磁盘文件

[root@localhost ~]# qemu-img create -f qcow2  /var/lib/libvirt/test.qcow2 3G               
Formatting '/var/lib/libvirt/test.qcow2', fmt=qcow2 size=3221225472 encryption=off cluster_size=65536 lazy_refcounts=off
[root@localhost ~]#

建立raw格式磁盘文件

[root@localhost ~]# qemu-img create -f raw  /var/lib/libvirt/test.img 2G
Formatting '/var/lib/libvirt/test.img', fmt=raw size=2147483648

查看已经创建的虚拟磁盘文件

[root@localhost ~]# ll -h /var/lib/libvirt/
-rw-r--r-- 1 root root 2.0G 5 2 15:59 test.img #raw直接分配了内存空间
-rw-r--r-- 1 root root 193K 5 2 15:58 test.qcow2 #qcow2没有直接分配了内存空间
[root@localhost libvirt]# qemu-img info test.img
image: test.img
file format: raw
virtual size: 2.0G (2147483648 bytes)
disk size: 0

4、挂载磁盘

  • 当虚拟机无法启动,而磁盘文件没有损坏时,可以将虚拟机的主分区挂载,拷贝重大信息出来
  • 使用Libguestfs,第一需要使用Libvirt。Libvirt是一个管理接口,可以和KVM、Xen和其他一些基于Liunx的虚拟机相互连接。
  • Libguestfs的功能更加强劲,可以打开Windows虚拟机上的文件。但是第一你需要将虚拟机迁移到libguestfs可用的环境当中,也就是Linux环境。

查看磁盘分区信息

[root@localhost ~]# virt-df -h -d vm1


文件系统                            大小 已用空间 可用空间 使用百分比%
vm1:/dev/sda1                            1014M       100M       914M   10%
vm1:/dev/centos/root                      3.5G       974M       2.5G   28%
[root@localhost ~]#

[root@localhost ~]# virt-filesystems -d vm1
/dev/sda1
/dev/centos/root

挂载磁盘镜像分区

[root@localhost ~]# guestmount -d vm1 -m /dev/centos/root --rw /mnt
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  4.8G     0  4.8G    0% /dev
tmpfs                   tmpfs     4.8G     0  4.8G    0% /dev/shm
tmpfs                   tmpfs     4.8G   13M  4.8G    1% /run
tmpfs                   tmpfs     4.8G     0  4.8G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        44G   20G   25G   45% /
/dev/sda1               xfs      1014M  213M  802M   21% /boot
tmpfs                   tmpfs     967M     0  967M    0% /run/user/0
/dev/fuse               fuse      3.5G 1007M  2.6G   29% /mnt
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

撤销挂载

[root@localhost ~]# guestunmount /mnt/
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# ls
[root@localhost mnt]#

四、KVM基本管理

1.KVM管理

查看 启动 关闭 重启 重置 查看

查看虚拟机

[root@localhost ~]# virsh list --all
Id    名称                         状态
----------------------------------------------------
-     vm1                            关闭
-     vm2                            关闭

[root@localhost ~]#

查看KVM虚拟机配置文件

[root@localhost ~]# virsh dumpxml vm1
<domain type='kvm'>
  <name>vm1</name>
  <uuid>6b10e3d2-7cb5-4827-8f3e-efe33703e5c1</uuid>
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
    <boot dev='hd'/>
  </os>

将vm1虚拟机的配置文件保存至vm6.xml:

virsh dumpxml vm1 > /etc/libvirt/qemu/vm6.xml

使用edit修改配置文件,如果直接用vim编辑器修改配置文件,需要重启libvirtd服务

[root@localhost ~]# virsh edit vm1

暂停虚拟机

[root@localhost ~]# virsh suspend vm1

域 vm1 被挂起

恢复虚拟机

[root@localhost ~]# virsh resume vm1

域 vm1 被重新恢复

关闭虚拟机

方法一
[root@localhost ~]# virsh shutdown vm1
域 vm1 被关闭

方法二
[root@localhost ~]# virsh destroy vm1

KVM虚拟化技术介绍以及相关操作

重启虚拟机

[root@localhost ~]# virsh reboot vm1

域 vm1 正在被重新启动

重置虚拟机(比重启的启动速度快)

[root@localhost ~]# virsh reset vm1

重新设定域 vm1

[root@localhost ~]#
删除虚拟机
[root@localhost ~]# ll /etc/libvirt/qemu
总用量 24
drwx------. 3 root root 42 5 1 17:08 networks
-rw------- 1 root root 4592 5 3 12:01 vm1.xml
-rw------- 1 root root 4590 5 2 11:39 vm2.xml
-rw-r--r-- 1 root root 4642 5 3 11:52 vm6.xml
[root@localhost ~]# virsh undefine vm1

域 vm1 已经被撤销定义

[root@localhost ~]# ll /etc/libvirt/qemu
总用量 16
drwx------. 3 root root   42 5   1 17:08 networks
-rw-------  1 root root 4590 5   2 11:39 vm2.xml
-rw-r--r--  1 root root 4642 5   3 11:52 vm6.xml
[root@localhost ~]#
[root@localhost ~]# ll /var/lib/libvirt/images/
总用量 10488020
-rw-r--r-- 1 root root 9286 5 2 11:58 route
-rw-r--r-- 1 root root 197120 5 2 12:43 vm1-1.qcow2
-rw-------. 1 qemu qemu 5369757696 5 3 13:27 vm1.qcow2
-rw------- 1 root root 5369757696 5 2 12:22 vm2.img
[root@localhost ~]#

注意:虚拟机在开启的情况下undefine是无法删除的,只会删除配置文件,磁盘镜像还在,但是如果在destroy会直接删除

[root@localhost ~]# virsh destroy vm1
域 vm1 被删除
[root@localhost ~]#

设置虚拟机开机启动

[root@localhost ~]# virsh autostart vm2

域 vm2标记为自动开始

[root@localhost ~]# ls /etc/libvirt/qemu/autostart/ #此目录默认不存在,设置开机启动后自动创建
vm2.xml
[root@localhost ~]#

撤销虚拟机开机启动

[root@localhost ~]# virsh autostart --disable vm2
域 vm2撤销标记为自动开始
[root@localhost ~]#

查看所有开机自启的gues os

[root@localhost ~]# ll /etc/libvirt/qemu/autostart/

总用量 0

[root@localhost ~]# virsh list --all --autostart
Id 名称 状态
----------------------------------------------------
[root@localhost ~]#

2、字符终端

KVM虚拟化技术介绍以及相关操作


创建快照

[root@localhost ~]# virsh snapshot-create-as vm2 vm2.snap
已生成域快照 vm2.snap
[root@localhost ~]#

查看镜像格式

[root@localhost ~]# qemu-img info /var/lib/libvirt/images/vm2.img image: /var/lib/libvirt/images/vm2.img file format: qcow2 virtual size: 5.0G (5368709120 bytes) disk size: 5.0G cluster_size: 65536 Snapshot list: ID TAG VM SIZE DATE VM CLOCK 1 vm2.snap 0 2022-05-03 14:37:36 00:00:00.000 Format specific information: compat: 1.1 lazy refcounts: true [root@localhost ~]#

查看创建的快照

[root@localhost ~]# virsh snapshot-list vm2
名称               生成时间              状态
------------------------------------------------------------
vm2.snap             2022-05-03 14:37:36 +0800 shutoff


[root@localhost ~]#

创建磁盘

[root@localhost qemu]# qemu-img create -f raw /var/lib/libvirt/images/vm2-1.raw 2G
Formatting '/var/lib/libvirt/images/vm2-1.raw', fmt=raw size=2147483648

将磁盘添加到vm2虚拟机上面

  <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/vm2-1.raw'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </disk>

KVM虚拟化技术介绍以及相关操作

重新加载文件

[root@localhost qemu]# virsh define vm2.xml
定义域 vm2(从 vm2.xml)


[root@localhost qemu]#

启动vm2虚拟机

[root@localhost qemu]# virsh start vm2

域 vm2 已开始

[root@localhost qemu]#

尝试给raw格式的磁盘镜像做快照

[root@localhost qemu]# virsh snapshot-create-as vm2 vm2.snap1

错误:不支持的配置:存储类型 vdb 不支持磁盘 raw 的内部快照

[root@localhost qemu]#

失败

raw格式转换成qcow2

[root@localhost qemu]# qemu-img convert -O qcow2 /var/lib/libvirt/images/vm2-1.raw /var/lib/libvirt/images/vm2-1.qcow2

[root@localhost qemu]# #查看是否转成功

[root@localhost qemu]# ll /var/lib/libvirt/images/ -h
总用量 11G
-rw-r--r--  1 root root 9.1K 5   2 11:58 route
-rw-r--r--  1 root root 193K 5   2 12:43 vm1-1.qcow2
-rw-------. 1 root root 5.1G 5   3 13:29 vm1.qcow2
-rw-r--r--  1 root root 193K 5   3 15:07 vm2-1.qcow2
-rw-r--r--  1 qemu qemu 2.0G 5   3 14:54 vm2-1.raw
-rw-------  1 qemu qemu 5.1G 5   3 15:07 vm2.img
[root@localhost qemu]#
[root@localhost qemu]# #查看是否转成功
[root@localhost images]# qemu-img info vm2-1.qcow2
image: vm2-1.qcow2
file format: qcow2
virtual size: 2.0G (2147483648 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@localhost images]#

将虚拟机的硬盘只想转换后的qcow2.img

[root@localhost images]# vim /etc/libvirt/qemu/vm2.xml 
    
<disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/vm2-1.qcow2'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </disk>

重新加载配置文件

[root@localhost images]# virsh define /etc/libvirt/qemu/vm2.xml

定义域 vm2(从 /etc/libvirt/qemu/vm2.xml)

[root@localhost images]#

创建快照

[root@localhost images]# virsh snapshot-create-as vm2 vm2.snap2

已生成域快照 vm2.snap2

查看添加的硬盘

KVM虚拟化技术介绍以及相关操作

给虚拟机创建第三个快照vm2.snap3

[root@localhost images]# virsh snapshot-create-as vm2 vm2.snap3

已生成域快照 vm2.snap3

[root@localhost images]#

恢复到快照vm2.snap3(注意先将虚拟机关机)

[root@localhost images]# virsh snapshot-revert vm2 vm2.snap3

产看虚拟机快照

[root@localhost images]# virsh snapshot-list vm2
名称               生成时间              状态
------------------------------------------------------------
vm2.snap             2022-05-03 14:37:36 +0800 shutoff
vm2.snap2            2022-05-03 15:34:11 +0800 running
vm2.snap3            2022-05-03 15:44:07 +0800 running


[root@localhost images]#

KVM虚拟化技术介绍以及相关操作

删除虚拟机快照

[root@localhost images]# virsh snapshot-delete --snapshotname vm2.snap3 vm2

已删除域快照 vm2.snap3

[root@localhost images]#

再次查看快照

[root@localhost images]# virsh snapshot-list vm2
名称               生成时间              状态
------------------------------------------------------------
vm2.snap             2022-05-03 14:37:36 +0800 shutoff
vm2.snap2            2022-05-03 15:34:11 +0800 running

[root@localhost images]#

一、KVM网络管理

NAT网络拓扑

KVM虚拟化技术介绍以及相关操作

KVM虚拟化技术介绍以及相关操作

显示虚拟网卡机口

[root@localhost images]# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.5254000fa76a       yes             virbr0-nic
                                                        vnet0

删除虚拟网卡

[root@localhost images]# brctl delif virbr0 vnet0
[root@localhost images]# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.5254000fa76a       yes             virbr0-nic
[root@localhost images]#

添加虚拟网卡

[root@localhost images]# brctl addif virbr0 vnet0   
[root@localhost images]# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.5254000fa76a       yes             virbr0-nic
                                                        vnet0
[root@localhost images]#

1.创建虚拟机vm2虚拟网卡的配置文件

[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts

[root@localhost network-scripts]# vim ifcfg-br0

DEVICE=br0
ONBOOT="yes"
BOOTPROTO=static
DEFROUTE=yes
IPADDR=192.168.124.225
GATEWAY=192.168.126.2
NETMASK=255.255.255.0
DNS1=192.168.0.1
DNS2=8.8.8.8

修改宿主机网卡配置文件

[root@localhost network-scripts]# vim ifcfg-ens33
DEVICE="ens33"
ONBOOT="yes"
BRIDGE=br0

重启网络服务

[root@localhost network-scripts]# systemctl restart libvirtd
[root@localhost network-scripts]# systemctl restart network

删除桥接网卡步骤:

1.删除br0的配置文件

[root@localhost network-scripts]# rm -rf ifcfg br0
[root@localhost network-scripts]# rm -rf ifcfg-ens33

2.修改正常网卡的配置文件

[root@localhost network-scripts]# mv ifcfg-ens33.back ifcfg-ens33
[root@localhost network-scripts]#

3.重启服务

[root@localhost network-scripts]# systemctl restart libvirtd    #重启KVM服务
[root@localhost network-scripts]# systemctl restart network    #重启网卡
[root@localhost network-scripts]#

KVM虚拟化技术介绍以及相关操作

2 .配置文件方式创建nat网络

[root@localhost ~]# cp /etc/libvirt/qemu/networks/default.xml /etc/libvirt/qemu/networks/nat1.xml
[root@localhost ~]# cd /etc/libvirt/qemu/networks/

[root@localhost networks]# vim nat1.xml #修改nat网络配置文件

<network>
  <name>nat1</name>
  <uuid>f567528c-40fa-4f10-b19a-349b09d1361b</uuid>
  <forward mode='nat'/>
  <bridge name='virbr1' stp='on' delay='0'/>
  <mac address='52:54:00:0f:a8:61'/>
  <ip address='192.168.120.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.120.2' end='192.168.120.254'/>
    </dhcp>
  </ip>
</network>

KVM虚拟化技术介绍以及相关操作

重启服务

[root@localhost networks]# systemctl restart libvirtd

如果是图形化界面就可以选择刚创建的网卡nat1

KVM虚拟化技术介绍以及相关操作

KVM虚拟化技术介绍以及相关操作

3 .配置文件方式创建isolated网络

[root@localhost networks]# cp default.xml isolated200.xml
[root@localhost networks]# vim isolated200.xml
<network>
  <name>isolated200</name>
  <uuid>f567528c-40fa-4f10-b09b-349b09d1361b</uuid>
  <bridge name='virbr2' stp='on' delay='0'/>
  <mac address='52:54:00:0f:a9:6b'/>
  <ip address='192.168.121.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.121.2' end='192.168.121.254'/>
    </dhcp>
  </ip>
</network>

KVM虚拟化技术介绍以及相关操作

#重启服务

[root@localhost networks]# systemctl restart libvirtd

#查看所有网络

[root@localhost networks]# virsh net-list
名称 状态 自动开始 持久
----------------------------------------------------------
default 活动 是 是
nat1 活动 否 是

#启动网络

[root@localhost networks]# virsh net-start isolated200
网络 isolated200 已开始

#开机自启动

[root@localhost networks]# virsh net-autostart isolated200
网络isolated200标记为自动启动

#查看所有网络

[root@localhost networks]# virsh net-list
名称               状态     自动开始  持久
----------------------------------------------------------
default              活动     是           是
isolated200          活动     是           是
nat1                 活动     否           是

KVM虚拟化技术介绍以及相关操作

创建网卡之后,添加即可,添加方式与nat1网卡添加上一致

© 版权声明

相关文章

3 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    刘玮 读者

    刚开始研究的时候就用的KVM后来发现PVE比他更好用。关键还是免费的。商用还稳定。WEB操作。

    无记录
  • 头像
    乐高忍者 读者

    PVE底层也是kvm,省资源,也有图形化界面

    无记录
  • 头像
    冷眸一笑 读者

    收藏了,感谢分享

    无记录