虚拟化简介

一、什么是虚拟化

       虚拟化就是通过模拟计算机硬件(cpu,内存,硬盘,网卡)来实现在一台物理服务器上运行同时多个不同的操作系统,并且使每个操作系统之间都是互相隔离的。

二、安装kvm虚拟机

1. 环境准备

优化:
       kvm01在安装系统的时候,不要使用自动分区,使用标准分区。自动分区使用的LVM分区,在使用kvm的时候,特别卡!

       关闭selinux和firewalld

2. 安装kvm管理工具

2.1 查看系统是否支持KVM虚拟化

[root@kvm01 ~]# egrep '(vmx|svm)' /proc/cpuinfo

flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu 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 3dnowprefetch arat tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec

flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu 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 3dnowprefetch arat tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec

2.2 安装kvm软件包

[root@kvm01 ~]# yum install libvirt virt-install qemu-kvm qemu-kvm-tools kvm kmod-kvm -y

#启动libvirtd服务

[root@kvm01 ~]# systemctl start libvirtd.service

[root@kvm01 ~]# systemctl status libvirtd.service

● libvirtd.service - Virtualization daemon

   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)

   Active: active (running) since Sun 2020-08-30 17:59:21 CST; 26s ago

     Docs: man:libvirtd(8)

           https://libvirt.org

 Main PID: 12611 (libvirtd)

    Tasks: 20 (limit: 32768)

   CGroup: /system.slice/libvirtd.service

           ├─12611 /usr/sbin/libvirtd

           └─12637 /usr/sbin/ebtables --concurrent -L

 

Aug 30 17:58:52 kvm01 systemd[1]: Starting Virtualization daemon...

Aug 30 17:59:21 kvm01 systemd[1]: Started Virtualization daemon.

其中:

        libvirt服务:管理kvm虚拟机的生命周期

       virt-install工具:创建安装虚拟机

       qemu-kvm工具:使用qemu-img为虚拟机提供硬盘

2.3 Linux上几种虚拟化软件

      qemu 软件纯模拟全虚拟化软件,特别慢!

      xen 性能特别好,需要使用专门修改之后的内核,兼容性差

      KVM 需要cpu支持虚拟化,基于内核,不需要使用专门的内核,兼容行好,性能较好。

2.4 查看虚拟化环境

[root@kvm01 ~]# lsmod |grep kvm

kvm_intel             170181  0

kvm                   554609  1 kvm_intel

irqbypass              13503  1 kvm

[root@kvm01 ~]# virsh --version

4.5.0

[root@kvm01 ~]# virt-install --version

1.5.0

3. 安装一台基于centos7系统的web01的kvm虚拟机

3.1 创建虚拟机

注:提前将centos7操作系统的iso文件上传到宿主机

[root@kvm01 ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web01 --memory 1024 --vcpus 1 --disk /data/centos7.qcow2,format=qcow2,size=10 --cdrom /data/CentOS-7-x86_64-DVD-1611.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

 

Starting install...

Allocating 'centos7.qcow2'                                                                                          |  10 GB  00:00:00    

Domain installation still in progress. You can reconnect to

the console to complete the installation process.

[root@kvm01 ~]# ll /data

total 4279496

-rw-------  1 qemu qemu 10739318784 Sep  5 13:24 centos7.qcow2

-rw-r--r--. 1 qemu qemu  4379901952 Feb 22  2017 CentOS-7-x86_64-DVD-1611.iso

3.2 查看虚拟机状态

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

 Id    Name                           State

----------------------------------------------------

 1     web01                          running

查询vnc端口号vncdisplay

[root@kvm01 ~]# virsh vncdisplay web01

:0

其他管理命令:

     virsh帮助命令:virsh -help

     列表  virsh  list

     开机  virsh  start

    关机  virsh  shutdown

    拔电源关机   virsh    destroy

    导出配置 virsh dumpxml

    删除 virsh undefine(推荐:先destroy,再undefine)

    通过配置文件启动虚拟机  virsh create /etc/libvirt/qemu/web01.xml

    配置开机自启动虚拟机:virsh autostart web01

    导入配置 virsh define

    修改配置 virsh edit

    重命名 virsh domrename

   挂起服务器:virsh suspend web01

   恢复服务器:virsh resume web01

3.3 vnc登录安装cenos7 操作系统,进行安装

      在window上安装TightVNC,tightvnc官网:http://www.tightvnc.com。vnc是一个跨平台的远程桌面软件,待会安装kvm虚拟机系统的时候使用。

      安装完成后,查看状态

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

 Id    Name                           State

----------------------------------------------------

 -     web01                          shut off

 

[root@kvm01 ~]# virsh start web01

Domain web01 started

 

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

 Id    Name                           State

----------------------------------------------------

 2     web01                          running

4 实现使用console登录控制

4.1 使用console登录连接的原因

      常规情况下,安装完 KVM 之后,可能都会通过 VNC 连接到 KVM 虚拟机里面去修改 IP 等信息。但是一旦虚拟机比较多的话,打开过多的端口会造成安全问题

      很多时候,一般是通过跳板机连接的宿主机,如果window和kvm宿主机没有直达的路由,这时候vnc都用不了,如何快速进入到 KVM 虚拟机里面去排查问题呢?

4.2 centos7虚拟机配置console连接

第一个里程:vnc登录获取虚拟机ip

第二个里程:ssh远程连接,添加ttyS0的许可,允许root登陆

[root@kvm01 ~]# ssh root@192.168.122.227

The authenticity of host '192.168.122.227 (192.168.122.227)' can't be established.

ECDSA key fingerprint is 99:3d:73:32:27:b3:05:1e:ec:d6:8c:40:06:e5:76:53.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.122.227' (ECDSA) to the list of known hosts.

root@192.168.122.227's password:

Last login: Sat Sep  5 13:50:29 2020

[root@bogon ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"

第三个里程:重启kvm虚拟机,参数生效

[root@localhost ~]# reboot

第四个里程:使用virsh console连接虚拟机

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

 Id    Name                           State

----------------------------------------------------

 2     web01                          running

[root@kvm01 ~]# virsh console web01

Connected to domain web01

Escape character is ^]

 

CentOS Linux 7 (Core)

Kernel 3.10.0-514.el7.x86_64 on an x86_64

 

bogon login: root

Password:

Last login: Sat Sep  5 13:53:17 from 192.168.122.1

[root@bogon ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:64:0d:85 brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.227/24 brd 192.168.122.255 scope global dynamic eth0

       valid_lft 3500sec preferred_lft 3500sec

    inet6 fe80::4ff4:9fdc:8840:a641/64 scope link

       valid_lft forever preferred_lft forever

[root@bogon ~]# who

root     ttyS0        2020-09-05 13:56

5. 为web01永久增加一块20G磁盘

5.1 kvm虚拟机两种常用的格式

raw:裸格式,占用空间比较大,不适合远程传输,不支持快照功能,性能较好

qcow2:cow(copy on write)占用空间小,适合传输,支持快照,性能比raw差一点点

5.2 创建虚拟磁盘

[root@kvm01 ~]# qemu-img create -f qcow2 /data/centos7-add01.qcow2 20G

Formatting '/data/centos7-add01.qcow2', fmt=qcow2 size=21474836480 encryption=off cluster_size=65536 lazy_refcounts=off

#查看虚拟磁盘信息

[root@kvm01 ~]# qemu-img info /data/centos7-add01.qcow2

image: /data/centos7-add01.qcow2

file format: qcow2

virtual size: 20G (21474836480 bytes)

disk size: 283M

cluster_size: 65536

Format specific information:

    compat: 1.1

    lazy refcounts: false

5.3 添加磁盘

第一种方法:临时添加

[root@kvm01 ~]# virsh attach-disk web01 /data/centos7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2

Disk attached successfully

第二种:永久添加添加磁盘

#编辑虚拟机配置文件添加以下内容

[root@kvm01 ~]# virsh edit web01

Domain web01 XML configuration not changed

    ............

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

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

      <source file='/data/centos7-add01.qcow2'/>

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

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

    </disk>

   ,,,,,,,,,,,,,,,,

5.4 查看磁盘

[root@kvm01 ~]# virsh console web01

Connected to domain web01

Escape character is ^]

 

CentOS Linux 7 (Core)

Kernel 3.10.0-514.el7.x86_64 on an x86_64

 

bogon login: root

Password:

Last login: Sat Sep  5 13:56:59 on ttyS0

[root@bogon ~]# fdisk -l

 

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x000047ba

 

   Device Boot      Start         End      Blocks   Id  System

/dev/vda1   *        2048    20971519    10484736   83  Linux

 

Disk /dev/vdb: 21.5 GB, 21474836480 bytes, 41943040 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

 

[root@bogon ~]# lsblk

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT

sr0     11:0    1 1024M  0 rom 

vda    253:0    0   10G  0 disk

└─vda1 253:1    0   10G  0 part /

vdb    253:16   0   20G  0 disk

5.5 对添加的磁盘进行分区、格式化、挂载等操作

#分区

[root@localhost ~]# fdisk  /dev/vdb

Welcome to fdisk (util-linux 2.23.2).

 

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

 

Device does not contain a recognized partition table

Building a new DOS disklabel with disk identifier 0x6e0a0ef4.

Command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p):

Using default response p

Partition number (1-4, default 1):

First sector (2048-41943039, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):

Using default value 41943039

Partition 1 of type Linux and of size 20 GiB is set

 

Command (m for help): p

 

Disk /dev/vdb: 21.5 GB, 21474836480 bytes, 41943040 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x6e0a0ef4

 

   Device Boot      Start         End      Blocks   Id  System

/dev/vdb1            2048    41943039    20970496   83  Linux

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

#格式化

[root@localhost ~]# mkfs.ext4 /dev/vdb1

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

1310720 inodes, 5242624 blocks

262131 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=2153775104

160 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

    4096000

 

Allocating group tables: done                            

Writing inode tables: done                           

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done 

#挂载

[root@localhost ~]# mount /dev/vdb1 /mnt

[root@localhost ~]# ll /mnt

total 16

drwx------. 2 root root 16384 Sep  5 14:54 lost+found

[root@localhost ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/vda1       9.8G  1.1G  8.2G  11% /

devtmpfs        488M     0  488M   0% /dev

tmpfs           497M     0  497M   0% /dev/shm

tmpfs           497M  6.6M  490M   2% /run

tmpfs           497M     0  497M   0% /sys/fs/cgroup

tmpfs           100M     0  100M   0% /run/user/0

/dev/vdb1        20G   45M   19G   1% /mnt

5.6 qemu-img的其他命令

创建虚拟磁盘:

[root@kvm01 ~]# qemu-img create -f qcow2 /data/test1.qcow2 10G
Formatting '/data/test1.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off

[root@kvm01 ~]# qemu-img create test.raw 10G
Formatting 'test.raw', fmt=raw size=10737418240

 

查看虚拟磁盘信息

[root@kvm01 ~]# qemu-img info /data/test.qcow2
image: /data/test.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 766M
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true

调整虚拟磁盘容量大小

[root@kvm01 ~]# qemu-img resize /data/test1.qcow2 +5G
Image resized.
[root@kvm01 ~]# qemu-img info /data/test1.qcow2
image: /data/test1.qcow2
file format: qcow2
virtual size: 15G (16106127360 bytes)
disk size: 260K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false

磁盘格式转换

qemu-img convert -f raw -O qcow2 test.raw oldboy.qcow2

[root@kvm01 ~]# qemu-img convert -f raw -O qcow2 test.raw haha.qcow2
[root@kvm01 ~]# ll
total 200
-rw-r--r-- 1 root root 197120 Sep 8 23:21 haha.qcow2
-rw-r--r-- 1 root root 10737418240 Sep 8 23:20 test.raw

5.7 以磁盘的方式创建虚拟机

[root@kvm01 data]# virt-install --virt-type kvm --os-type=linux --os-variant rhel6 --name web02 --memory 1024 --vcpus 1 --disk /data/test.qcow2,format=qcow2,size=10 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

Starting install...
Domain creation completed.

[root@kvm01 data]# virsh list --all
Id Name State
----------------------------------------------------
1 web02 running

[root@kvm01 data]# virsh vncdisplay web02
:0

 

6. kvm快照管理

    快照的含义:对某一个特定文件系统在某一个特定时间内的一个具有只读属性的镜像。当需要重新返回到某一系统状态,又不想创建多个虚拟机的时候,就可以使用快照功能。或者,系统崩溃或系统异常,都可以通过使用恢复到快照来保持磁盘文件系统和系统存储。总之,快照可以实现热备和回滚的功能。

   快照就是虚拟机的状态。根据虚拟机的状态快照分为以下三种:

开机状态下的快照          占用资源多   拍摄快照速度慢 

挂起状态的快照             占用资源稍多  拍摄快速度稍慢

关机状态的快照             占用资源少, 拍摄速度快 

6.1 创建快照

[root@kvm01 ~]# virsh snapshot-create-as --domain web01 --name "web01-v1"

Domain snapshot web01-v1 created

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

 Name                 Creation Time             State

------------------------------------------------------------

 web01-v1             2020-09-06 13:33:49 +0800 running

6.2 查看快照信息

[root@kvm01 ~]# virsh snapshot-info --domain web01 --snapshotname web01-v1

Name:           web01-v1

Domain:         web01

Current:        yes

State:          running

Location:       internal

Parent:         -

Children:       0

Descendants:    0

Metadata:       yes

6.3 查看虚拟机快照占用磁盘空间

[root@kvm01 ~]# qemu-img info /data/centos7.qcow2

image: /data/centos7.qcow2

file format: qcow2

virtual size: 10G (10737418240 bytes)

disk size: 1.8G

cluster_size: 65536

Snapshot list:

ID        TAG                 VM SIZE                DATE       VM CLOCK

1         web01-v1               251M 2020-09-06 13:33:50   00:30:02.483

Format specific information:

    compat: 1.1

    lazy refcounts: true

6.4 恢复快照

注:恢复前先关闭虚拟机

[root@kvm01 ~]# virsh destroy web01

Domain web01 destroyed

 

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

 Id    Name                           State

----------------------------------------------------

 -     web01                          shut off

#恢复

[root@kvm01 ~]# virsh snapshot-revert web01 --snapshotname web01-v1

 

[root@kvm01 ~]# echo $?

0

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

 Id    Name                           State

----------------------------------------------------

 3     web01                          running

#测试Console登录

[root@kvm01 ~]# virsh console web01

Connected to domain web01

Escape character is ^]

 

[root@bogon ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:64:0d:85 brd ff:ff:ff:ff:ff:ff

    inet 10.0.0.134/24 brd 10.0.0.255 scope global dynamic eth0

       valid_lft 1792sec preferred_lft 1792sec

    inet6 fe80::4ff4:9fdc:8840:a641/64 scope link

       valid_lft forever preferred_lft forever

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:f4:2d:06 brd ff:ff:ff:ff:ff:ff

    inet 172.16.1.134/24 brd 172.16.1.255 scope global eth1

       valid_lft forever preferred_lft forever

    inet6 fe80::9b4a:36d2:9866:d71c/64 scope link

       valid_lft forever preferred_lft forever

6.5 删除快照

[root@kvm01 ~]# virsh snapshot-delete web01 --snapshotname web01-v1

Domain snapshot web01-v1 deleted

 

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

 Name                 Creation Time             State

------------------------------------------------------------

[root@kvm01 ~]# qemu-img info /data/centos7.qcow2

image: /data/centos7.qcow2

file format: qcow2

virtual size: 10G (10737418240 bytes)

disk size: 1.8G

cluster_size: 65536

Format specific information:

    compat: 1.1

    lazy refcounts: true

7.kvm虚拟机的桥接网络

7.1  使用桥接网络的原因:
       运行虚拟机的目的是,在虚拟机中运行业务,现在业务所需要的服务都已经运行了,除了在宿主机上能访问,其他人也能访问。

7.2 创建桥接网络

[root@kvm01 ~]# virsh iface-bridge eth0 br0
Created bridge br0 with attached device eth0

[root@kvm01 ~]# ifconfig br0
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.7 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::20c:29ff:fe99:38a prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:99:03:8a txqueuelen 1000 (Ethernet)
RX packets 91 bytes 8172 (7.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 66 bytes 8201 (8.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@kvm01 ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:99:03:8a txqueuelen 1000 (Ethernet)
RX packets 4492 bytes 305680 (298.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5643 bytes 953880 (931.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

#查看网卡配置文件

[root@kvm01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE="br0"
[root@kvm01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="none"
IPADDR="10.0.0.7"
NETMASK="255.255.255.0"
GATEWAY="10.0.0.254"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
DHCPV6C="no"
STP="on"
DELAY="0"

#删除网桥
[root@kvm01 ~]# virsh iface-unbridge eth0 br0

7.3 基于桥接网络创建虚拟机

[root@kvm01 ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel6 --name web03 --memory 1024 --vcpus 1 --disk /opt/test.qcow2,format=qcow2,size=10 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

Starting install...
Allocating 'test.qcow2' | 10 GB 00:00:00
Domain creation completed.

[root@kvm01 ~]# virsh list --all
Id Name State
----------------------------------------------------
1 web01 running
3 web03 running

[root@kvm01 ~]# virsh vncdisplay web03
:1

7.4 为已有的虚拟机创建桥接网络

       需求:宿主机增加一块eth1的网卡,ip地址为172.16.1.131/32,并为web01永久性增加一块桥接网卡eth1,最终 web01的eth0和eth1分别桥接宿主机的eth0和eth1

7.4.1  为宿主机添加网卡eth1

第一个里程:重启kvm01主机,查看网卡

[root@kvm01 ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:ec:c7:2d brd ff:ff:ff:ff:ff:ff

    inet 10.0.0.131/24 brd 10.0.0.255 scope global dynamic eth0

       valid_lft 1624sec preferred_lft 1624sec

    inet6 fe80::6ed5:223:b2c8:f7d7/64 scope link

       valid_lft forever preferred_lft forever

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:ec:c7:37 brd ff:ff:ff:ff:ff:ff

    inet6 fe80::fb8f:3fbd:4d9e:75e2/64 scope link

       valid_lft forever preferred_lft forever

4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000

    link/ether 52:54:00:9e:d1:fe brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0

       valid_lft forever preferred_lft forever

5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000

    link/ether 52:54:00:9e:d1:fe brd ff:ff:ff:ff:ff:ff

第二个里程:配置eth1网卡的ip地址

[root@kvm01 ~]# nmtui

第三个里程:重启网络服务

[root@kvm01 ~]# systemctl restart NetworkManager

[root@kvm01 ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:ec:c7:2d brd ff:ff:ff:ff:ff:ff

    inet 10.0.0.131/24 brd 10.0.0.255 scope global dynamic eth0

       valid_lft 1799sec preferred_lft 1799sec

    inet6 fe80::6ed5:223:b2c8:f7d7/64 scope link

       valid_lft forever preferred_lft forever

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:ec:c7:37 brd ff:ff:ff:ff:ff:ff

    inet 176.16.1.131/24 brd 176.16.1.255 scope global eth1

       valid_lft forever preferred_lft forever

    inet6 fe80::fb8f:3fbd:4d9e:75e2/64 scope link

       valid_lft forever preferred_lft forever

4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000

    link/ether 52:54:00:9e:d1:fe brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0

       valid_lft forever preferred_lft forever

5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000

    link/ether 52:54:00:9e:d1:fe brd ff:ff:ff:ff:ff:ff

7.4.2 web01临时增加一块桥接网卡eth1

[root@kvm01 ~]# virsh domiflist web01

Interface  Type       Source     Model       MAC

-------------------------------------------------------

vnet0      network    default    virtio      52:54:00:64:0d:85

#web01

[root@localhost ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:64:0d:85 brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.227/24 brd 192.168.122.255 scope global dynamic eth0

       valid_lft 1891sec preferred_lft 1891sec

    inet6 fe80::4ff4:9fdc:8840:a641/64 scope link

       valid_lft forever preferred_lft forever

#临时添加eth1

[root@kvm01 ~]# virsh attach-interface web01 --type network  --model  virtio --source default

Interface attached successfully

 

[root@kvm01 ~]# virsh domiflist web01

Interface  Type       Source     Model       MAC

-------------------------------------------------------

vnet0      network    default    virtio      52:54:00:64:0d:85

vnet1      network    default    virtio      52:54:00:12:5a:85

#查看web01网卡的ip地址

[root@localhost ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:64:0d:85 brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.227/24 brd 192.168.122.255 scope global dynamic eth0

       valid_lft 1880sec preferred_lft 1880sec

    inet6 fe80::4ff4:9fdc:8840:a641/64 scope link

       valid_lft forever preferred_lft forever

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:12:5a:85 brd ff:ff:ff:ff:ff:ff

    inet6 fe80::b948:8495:9e36:346a/64 scope link

       valid_lft forever preferred_lft forever

[root@localhost ~]# systemctl restart NetworkManager

[root@localhost ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:64:0d:85 brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.227/24 brd 192.168.122.255 scope global dynamic eth0

       valid_lft 3599sec preferred_lft 3599sec

    inet6 fe80::4ff4:9fdc:8840:a641/64 scope link

       valid_lft forever preferred_lft forever

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:12:5a:85 brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.127/24 brd 192.168.122.255 scope global dynamic eth1

       valid_lft 3599sec preferred_lft 3599sec

    inet6 fe80::b948:8495:9e36:346a/64 scope link

       valid_lft forever preferred_lft forever

7.4.3 web01永久性增加一块桥接网卡eth1

         通过修改配置文件的方式永久的增加网卡

[root@kvm01 ~]# virsh attach-interface web01 --type network --model  virtio --source default --config

Interface attached successfully

[root@kvm01 ~]# virsh domiflist web01

Interface  Type       Source     Model       MAC

-------------------------------------------------------

vnet0      network    default    virtio      52:54:00:64:0d:85

vnet1      network    default    virtio      52:54:00:f4:2d:06

[root@kvm01 ~]# virsh edit web01

关机web01,再开机

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

 Id    Name                           State

----------------------------------------------------

 4     web01                          running

 

[root@kvm01 ~]# virsh destroy web01

Domain web01 destroyed

 

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

 Id    Name                           State

----------------------------------------------------

 -     web01                          shut off

 

[root@kvm01 ~]# virsh start web01

Domain web01 started

 

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

 Id    Name                           State

----------------------------------------------------

 5     web01                          running

#登录web01查看是否有eth1

[root@kvm01 ~]# virsh console web01

Connected to domain web01

Escape character is ^]

 

CentOS Linux 7 (Core)

Kernel 3.10.0-514.el7.x86_64 on an x86_64

 

localhost login: root

Password:

Last login: Sat Sep  5 16:03:10 on ttyS0

[root@localhost ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:64:0d:85 brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.227/24 brd 192.168.122.255 scope global dynamic eth0

       valid_lft 3596sec preferred_lft 3596sec

    inet6 fe80::4ff4:9fdc:8840:a641/64 scope link

       valid_lft forever preferred_lft forever

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:f4:2d:06 brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.160/24 brd 192.168.122.255 scope global dynamic eth1

       valid_lft 3596sec preferred_lft 3596sec

    inet6 fe80::9b4a:36d2:9866:d71c/64 scope link

       valid_lft forever preferred_lft forever

7.4.4 桥接网络

第一个里程:创建桥接网络

[root@kvm01 ~]# brctl addbr br0

[root@kvm01 ~]# brctl addbr br1

[root@kvm01 ~]# ifconfig br0 up

[root@kvm01 ~]# ifconfig br1 up

第二个里程:编辑网卡配置文件

[root@kvm01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0

[root@kvm01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE="br0"

ONBOOT="yes"

TYPE="Bridge"

BOOTPROTO="none"

IPADDR="10.0.0.131"

NETMASK="255.255.255.0"

GATEWAY="10.0.0.254"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

DHCPV6C="no"

STP="on"

DELAY="0"

[root@kvm01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

[root@kvm01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"

ONBOOT="yes"

BRIDGE="br0"

[root@kvm01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br1

[root@kvm01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br1

DEVICE="br1"

ONBOOT="yes"

TYPE="Bridge"

BOOTPROTO="none"

IPADDR="172.16.1.131"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

DHCPV6C="no"

STP="on"

DELAY="0"

[root@kvm01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1

[root@kvm01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

BRIDGE="br1"

第三个里程:重启网络服务

[root@kvm01 ~]# systemctl restart network

[root@kvm01 ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000

    link/ether 00:0c:29:ec:c7:2d brd ff:ff:ff:ff:ff:ff

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br1 state UP qlen 1000

    link/ether 00:0c:29:ec:c7:37 brd ff:ff:ff:ff:ff:ff

4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000

    link/ether 00:0c:29:ec:c7:2d brd ff:ff:ff:ff:ff:ff

    inet 10.0.0.131/24 brd 10.0.0.255 scope global br0

       valid_lft forever preferred_lft forever

    inet6 fe80::20c:29ff:feec:c72d/64 scope link

       valid_lft forever preferred_lft forever

5: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000

    link/ether 00:0c:29:ec:c7:37 brd ff:ff:ff:ff:ff:ff

    inet 172.16.1.131/16 brd 172.16.255.255 scope global br1

       valid_lft forever preferred_lft forever

    inet6 fe80::20c:29ff:feec:c737/64 scope link

       valid_lft forever preferred_lft forever

6: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000

    link/ether 52:54:00:9e:d1:fe brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0

       valid_lft forever preferred_lft forever

7: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000

    link/ether 52:54:00:9e:d1:fe brd ff:ff:ff:ff:ff:ff

第四个里程:修改web01的配置文件

[root@kvm01 ~]# virsh edit web01

Domain web01 XML configuration edited.

    <interface type='bridge'>

      <mac address='52:54:00:64:0d:85'/>

      <source bridge='br0'/>

      <model type='virtio'/>

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

    </interface>

    <interface type='bridge'>

      <mac address='52:54:00:f4:2d:06'/>

      <source bridge='br1'/>

      <model type='virtio'/>

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

    </interface>

第五个里程:重新启动web01

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

 Id    Name                           State

----------------------------------------------------

 1     web01                          running

 

[root@kvm01 ~]# virsh destroy web01

Domain web01 destroyed

 

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

 Id    Name                           State

----------------------------------------------------

 -     web01                          shut off

 

[root@kvm01 ~]# virsh start web01

Domain web01 started

 

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

 Id    Name                           State

----------------------------------------------------

 2     web01                          running

 

第六个里程:console登录获取ip,远程登录

[root@kvm01 ~]# virsh console web01

Connected to domain web01

Escape character is ^]

 

CentOS Linux 7 (Core)

Kernel 3.10.0-514.el7.x86_64 on an x86_64

 

bogon login: root

Password:

Last login: Sun Sep  6 12:54:37 on ttyS0

[root@bogon ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:64:0d:85 brd ff:ff:ff:ff:ff:ff

    inet 10.0.0.134/24 brd 10.0.0.255 scope global dynamic eth0

       valid_lft 1781sec preferred_lft 1781sec

    inet6 fe80::4ff4:9fdc:8840:a641/64 scope link

       valid_lft forever preferred_lft forever

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:f4:2d:06 brd ff:ff:ff:ff:ff:ff

    inet6 fe80::9b4a:36d2:9866:d71c/64 scope link

       valid_lft forever preferred_lft forever

#为eth1编辑网卡配置信息

[root@bogon ~]# nmtui

#重启网络服务

[root@bogon ~]# systemctl restart network

[root@bogon ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:64:0d:85 brd ff:ff:ff:ff:ff:ff

    inet 10.0.0.134/24 brd 10.0.0.255 scope global dynamic eth0

       valid_lft 1784sec preferred_lft 1784sec

    inet6 fe80::4ff4:9fdc:8840:a641/64 scope link

       valid_lft forever preferred_lft forever

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 52:54:00:f4:2d:06 brd ff:ff:ff:ff:ff:ff

    inet 172.16.1.134/24 brd 172.16.1.255 scope global eth1

       valid_lft forever preferred_lft forever

    inet6 fe80::9b4a:36d2:9866:d71c/64 scope link

       valid_lft forever preferred_lft forever

7.4.5 ssh远程登录

[C:\~]$ ssh root@10.0.0.134

 

 

Connecting to 10.0.0.134:22...

Connection established.

To escape to local shell, press 'Ctrl+Alt+]'.

 

WARNING! The remote SSH server rejected X11 forwarding request.

Last login: Sun Sep  6 13:04:19 2020

[root@bogon ~]# who

root     ttyS0        2020-09-06 13:04

root     pts/0        2020-09-06 13:11 (10.0.0.253)

[root@bogon ~]# ping www.baidu.com

PING www.a.shifen.com (61.135.185.32) 56(84) bytes of data.

64 bytes from 61.135.185.32 (61.135.185.32): icmp_seq=1 ttl=128 time=25.8 ms

64 bytes from 61.135.185.32 (61.135.185.32): icmp_seq=2 ttl=128 time=28.7 ms

64 bytes from 61.135.185.32 (61.135.185.32): icmp_seq=3 ttl=128 time=26.4 ms

64 bytes from 61.135.185.32 (61.135.185.32): icmp_seq=4 ttl=128 time=29.4 ms

^C

--- www.a.shifen.com ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3007ms

rtt min/avg/max/mdev = 25.835/27.616/29.437/1.525 ms

#eth1

[root@kvm01 ~]# ssh root@172.16.1.134

The authenticity of host '172.16.1.134 (172.16.1.134)' can't be established.

ECDSA key fingerprint is 99:3d:73:32:27:b3:05:1e:ec:d6:8c:40:06:e5:76:53.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '172.16.1.134' (ECDSA) to the list of known hosts.

root@172.16.1.134's password:

Last login: Sun Sep  6 13:11:03 2020 from 10.0.0.253

[root@bogon ~]# who

root     ttyS0        2020-09-06 13:04

root     pts/0        2020-09-06 13:11 (10.0.0.253)

root     pts/1        2020-09-06 13:12 (172.16.1.131)

[root@bogon ~]# ping 172.16.1.131

PING 172.16.1.131 (172.16.1.131) 56(84) bytes of data.

64 bytes from 172.16.1.131: icmp_seq=1 ttl=64 time=0.422 ms

64 bytes from 172.16.1.131: icmp_seq=2 ttl=64 time=0.339 ms

64 bytes from 172.16.1.131: icmp_seq=3 ttl=64 time=1.06 ms

64 bytes from 172.16.1.131: icmp_seq=4 ttl=64 time=0.272 ms

^C

--- 172.16.1.131 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3002ms

rtt min/avg/max/mdev = 0.272/0.524/1.065/0.317 ms

8.kvm虚拟机克隆

1)完整克隆

方法一:使用virsh-clone命令

[root@kvm01 ~]# virsh list --all
Id Name State
----------------------------------------------------
- web01 shut off

[root@kvm01 ~]# virt-clone -o web01 --auto-clone
Allocating 'centos7-clone.qcow2' | 10 GB 00:02:17

Clone 'web01-clone' created successfully.

[root@kvm01 ~]# virsh list --all
Id Name State
----------------------------------------------------
- web01 shut off
- web01-clone shut off

#重命名

[root@kvm01 ~]# virsh domrename web01-clone web02
Domain successfully renamed

[root@kvm01 ~]# virsh list --all
Id Name State
----------------------------------------------------
- web01 shut off
- web02 shut off

#启动

[root@kvm01 ~]# virsh start web02
Domain web02 started

[root@kvm01 ~]# virsh list --all
Id Name State
----------------------------------------------------
3 web02 running
- web01 shut off

[root@kvm01 ~]# virsh vncdisplay web02
:0

[root@kvm01 ~]# ll /data
total 3174568
-rw------- 1 qemu qemu 1545535488 Sep 9 23:46 centos7-clone.qcow2
-rw------- 1 root root 10739318784 Sep 5 17:48 centos7.qcow2

方法二:手动修改配置文件

a. 克隆虚拟磁盘文件

[root@kvm01 ~]# cp /data/centos7.qcow2  /data/web03.qcow2

b. 生成新的虚拟机配置文件

    name修改
   uuid删掉
   disk路径/opt/web03.qcow2
   mac地址删除

[root@kvm01 ~]# virsh dumpxml web01 >/data/web03.xml

[root@kvm01 ~]# vim /data/web03.xml

......

<name>web03</name>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>

.......

.......

<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/data/web03.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>

........

.......

<interface type='network'>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
</interface>

......

c. 测试启动

[root@kvm01 ~]# virsh define /data/web03.xml

Domain web03 defined from /data/web03.xml

[root@kvm01 ~]# virsh list --all
Id Name State
----------------------------------------------------
- web01 shut off
- web03 shut off

[root@kvm01 ~]# virsh start web03
Domain web03 started

[root@kvm01 ~]# virsh list --all
Id Name State
----------------------------------------------------
4 web03 running
- web01 shut off

[root@kvm01 ~]# virsh vncdisplay web03
:0

2)链接克隆

[root@kvm01 ~]# qemu-img create -f qcow2 -b /data/centos7.qcow2 /data/web04.qcow2
Formatting '/data/web04.qcow2', fmt=qcow2 size=10737418240 backing_file='/data/centos7.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off

[root@kvm01 ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /data/web04.qcow2,format=qcow2,size=10 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

Starting install...
Allocating 'web04.qcow2' | 10 GB 00:00:00
Domain creation completed.

[root@kvm01 ~]# ll -h /data/web04.qcow2
-rw-r--r-- 1 qemu qemu 5.0M Sep 10 00:15 /data/web04.qcow2

[root@kvm01 ~]# virsh list --all
Id Name State
----------------------------------------------------
4 web03 running
5 web04 running
- web01 shut off

[root@kvm01 ~]# virsh vncdisplay web04
:1

posted @ 2020-09-10 00:17  出水芙蓉·薇薇  阅读(708)  评论(0编辑  收藏  举报