虚拟化

目录

一、了解虚拟化
二、常见虚拟化软件
三、虚拟化架构
四、KVM介绍
五、Centos7上安装KVM
六、配置网卡
七、创建虚拟机安装Centos7
八、虚拟机管理
九、克隆虚拟机
十、快照管理
十一、磁盘格式
十二、磁盘扩容(raw)
十三、磁盘扩容(qcow2)
十四、调整cpu内存和网卡
十五、迁移虚拟机

一、了解虚拟化

VMware Workstation就是虚拟化
虚拟化简单讲,就是把一台物理计算机虚拟成多台逻辑计算机,每个逻辑计算机里面可以运行不同的操作系统,相互不受影响,这样就可以充分利用硬件资源
关键词Hypervisor(VMM) 虚拟机管理器
虚拟化技术分为全虚拟化和半虚拟化
早期的CPU硬件不支持虚拟化,虚拟机上的操作系统(guestos)要想使用cpu资源,需要通过VMM来翻译指令,这个过程比较耗费资源,这种虚拟化技术叫做全虚拟化(VMware Workstation)
半虚拟化技术通过修改guestos内核,让guestos可以直接使用CPU资源,而不需要翻译指令了,从而节省了资源,但修改内核比较鸡肋(XEN)
后续cpu厂商直接支持虚拟化,不需要通过VMM翻译指令了,无所谓半虚拟化和全虚拟化
参考 http://www.cnblogs.com/xusongwei/archive/2012/07/30/2615592.html http://itoedr.lofter.com/post/1472ba_69c62fa

二、常见虚拟化软件

VMware系列
VMware workstation、VMware vsphere(VMware esxi)、VMware Fusion(Mac)
Xen 开源 半虚拟化
XenServer 商业,厂商Ctirx,基于Xen的
KVM 开源 基于linux内核模块
Hyper-V 商业,厂商微软
Openvz 开源 基于linux 虚拟机和宿主机共用一个内核
VirtualBox 开源 Sun公司开发 Oracle收购Sun
http://developer.huawei.com/ict/forum/thread-23385-1-1.html

三、虚拟化架构

虚拟化_第1张图片

参考 http://developer.huawei.com/ict/forum/thread-23385-1-1.html

四、KVM介绍

KVM是以色列初创公司Qumranet开发,2008年9月RedHat公司收购了Qumranet
KVM是Linux内核的一个模块,它把Linux内核变成了一个Hypervisor
KVM是完全开源的,RedHat基于KVM的虚拟化解决方案叫做RHEV
KVM在Linux操作系统里面以进程的形式出现,由标准的Linux调度程序进行调度,这使得KVM能够使用Linux内核的已有功能
只有一个KVM内核模块还不能实现虚拟化的全部功能,就好比操作系统只有内核还不能成为一个完整的操作系统一样
QEMU是一个开源的虚拟化软件,纯软件,可以虚拟化所以的硬件,性能不强
KVM基于QEMU开发了一个能够运行在用户空间的工具QEMU-KVM
磁盘、网络设备等都是通过QEMU-KVM这个工具模拟出来的
KVM和QEMU-KVM通信是通过/dev/kvm实现的
libvirt是用来管理KVM虚拟机的API,其命令为virsh

  • KVM架构图
虚拟化_第2张图片

五、Centos7上安装KVM

前提是CPU支持虚拟化
虚拟机设置内存4G,增加一个50G的虚拟磁盘,处理器2核,虚拟化引擎三个虚拟化相关的选项打上对勾
关闭iptables或者firewalld
关闭selinux
格式化新磁盘,挂载到/kvm_data
检查cpu参数是否支持虚拟化
grep -Ei 'vmx|svm' /proc/cpuinfo
安装kvm
yum install -y virt-* libvirt bridge-utils qemu-img

虚拟化_第3张图片
[root@minglinux-01 ~] free  #内存
              total        used        free      shared  buff/cache   available
Mem:        3863532      741024     2514740       45368      607768     2821328
Swap:       2097148           0     2097148
[root@minglinux-01 ~] cat /proc/cpuinfo| grep "cpu cores"| uniq  #核数
cpu cores   : 2
[root@minglinux-01 ~] grep -Ei 'vmx|svm' /proc/cpuinfo  #有vmx表示cpu支持虚拟化  
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 rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust smep arat spec_ctrl intel_stibp arch_capabilities
···

#查看系统磁盘情况
[root@minglinux-01 ~] fdisk -l

磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000236bc

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     4605951     2097152   82  Linux swap / Solaris
/dev/sda3         4605952    62914559    29154304   83  Linux

磁盘 /dev/sdb:53.7 GB, 53687091200 字节,104857600 个扇区  #/dev/sdb就时新增的虚拟磁盘
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xbffc2ce5
···

#格式化磁盘
[root@minglinux-01 ~] mkfs.ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
/dev/sdb is apparently in use by the system; will not make a 文件系统 here!
[root@minglinux-01 ~] dmsetup status
vg1-lv1: 0 614400 linear 
[root@minglinux-01 ~] dmsetup remove_all
[root@minglinux-01 ~] mkfs.ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
3276800 inodes, 13107200 blocks
655360 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2162163712
400 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, 7962624, 11239424

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成   


#挂载磁盘并设置开机自动挂载
[root@minglinux-01 ~] blkid /dev/sdb
/dev/sdb: UUID="e2119ff0-fb55-4347-a381-495e519eb26e" TYPE="ext4" 
[root@minglinux-01 ~] mkdir /kvm_data
[root@minglinux-01 ~] mount /dev/sdb /kvm_data/
[root@minglinux-01 ~] vim /etc/fstab 
#文件最后加入如下一行
12 /dev/sdb           /kvm_data      ext4    defaults   0 0

#关闭iptables或者firewalld,关闭selinux
[root@minglinux-01 ~] systemctl stop firewalld
[root@minglinux-01 ~] systemctl stop iptables
[root@minglinux-01 ~] systemctl disable firewalld
[root@minglinux-01 ~] systemctl disable iptables
Removed symlink /etc/systemd/system/basic.target.wants/iptables.service.
[root@minglinux-01 ~] iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
[root@minglinux-01 ~] getenforce 
Disabled

#最后安装kvm
[root@minglinux-01 ~] yum install -y  virt-*  libvirt  bridge-utils qemu-img

六、配置网卡

配置网卡,增加桥接网卡
设置一个br0网卡,TYPE为Bridge,IP地址设置为ens33的ip
ens33配置文件里把IP地址去掉,增加BRIDGE=br0
检查KVM模块是否加载
lsmod|grep kvm
启动libvirtd服务
systemctl start libvirtd
brctl show可以看到两个网卡br0和virbr0

#设置br0桥接网卡,之前已经创建过,两个网卡
[root@minglinux-01 ~] cat /etc/sysconfig/network-scripts/ifcfg-br0 
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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
#UUID=c0f01c3c-028a-4219-86db-bc442037da9b
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.162.130
GATEWAY=192.168.162.2
NETMASK=255.255.255.0
BROADCAST=192.168.162.255
DNS1=119.29.29.29
DNS2=8.8.8.8

[root@minglinux-01 ~] cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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
#UUID=c0f01c3c-028a-4219-86db-bc442037da9b
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.162.130
#GATEWAY=192.168.162.2
#NETMASK=255.255.255.0
#BROADCAST=192.168.162.255
#DNS1=119.29.29.29
BRIDGE=br0

[root@minglinux-01 ~] ip addr
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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: ens33:  mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 00:0c:29:3f:e6:9f brd ff:ff:ff:ff:ff:ff
    inet6 fe80::20c:29ff:fe3f:e69f/64 scope link 
       valid_lft forever preferred_lft forever
3: ens37:  mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:0c:29:3f:e6:a9 brd ff:ff:ff:ff:ff:ff
4: br0:  mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:3f:e6:9f brd ff:ff:ff:ff:ff:ff
    inet 192.168.162.130/24 brd 192.168.162.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe3f:e69f/64 scope link 
       valid_lft forever preferred_lft forever

#检查KVM模块是否加载
[root@minglinux-01 ~] lsmod|grep kvm
kvm_intel             183720  0 
kvm                   578558  1 kvm_intel
irqbypass              13503  1 kvm

#启动libvirtd服务
[root@minglinux-01 ~]  systemctl start  libvirtd
[root@minglinux-01 ~] ps aux |grep libvirtd
root      15584  3.6  0.4 1006920 15496 ?       Ssl  20:51   0:00 /usr/sbin/libvirtd
root      15774  0.0  0.0 112720   984 pts/0    S+   20:51   0:00 grep --color=auto libvirtd

#查看桥接网卡
[root@minglinux-01 ~] brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.000c293fe69f   no      ens33
virbr0      8000.525400eae033   yes     virbr0-nic

七、创建虚拟机安装Centos7

上传centos7的镜像文件到虚拟机
命令行安装centos7
virt-install --name=minglinux01 --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/data/CentOS-7-x86_64-DVD-1804.iso --disk path=/kvm_data/minglinux01.img,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
各选项含义依次是虚拟机名称、内存、最大内存(可在线调整内存)、CPU核数、CPU最大核数、操作系统类型、操作系统版本、系统镜像路径(可以是镜像网络地址)、虚拟磁盘路径名称大小、桥接网卡名字、是否开启图形、一些终端属性。

#rz工具最大支持2G的文件,这里使用xftp传输
[root@minglinux-01 ~] ll CentOS-7-x86_64-DVD-1804.iso 
-rw-r--r-- 1 root root 4470079488 3月  22 21:09 CentOS-7-x86_64-DVD-1804.iso
[root@minglinux-01 ~] mv CentOS-7-x86_64-DVD-1804.iso /data/

#开始安装
[root@minglinux-01 ~] virt-install --name=minglinux01 --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/data/CentOS-7-x86_64-DVD-1804.iso --disk path=/kvm_data/minglinux01.img,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"

开始安装......
搜索文件 .treeinfo......                                                      |  354 B  00:00:00     
搜索文件 vmlinuz......                                                        | 5.9 MB  00:00:00     
···
···
Installation    #出现一些安装选项

 1) [x] Language settings                 2) [!] Time settings
        (English (United States))                (Timezone is not set.)
 3) [!] Installation source               4) [!] Software selectionb | Help: F1 
        (Processing...)                          (Processing...)
 5) [!] Installation Destination          6) [x] Kdump
        (No disks selected)                      (Kdump is enabled)
 7) [ ] Network configuration             8) [!] Root password
        (Not connected)                          (Password is not set.)
 9) [!] User creation
  Please make your choice from above ['q' to quit | 'b' to begin installation |
  'r' to refresh]: 
#感叹号的选项需要进行选择设置,语言时区什么的就不列出了,第8项密码设置123456。最后选'b' to begin installation 


#第5项配置
Installation

 1) [x] Language settings                 2) [x] Time settings
        (Simplified Chinese (China))             (Asia/Shanghai timezone)
 3) [x] Installation source               4) [x] Software selection
        (Local media)                            (Minimal Install)
 5) [!] Installation Destination          6) [x] Kdump
        (No disks selected)                      (Kdump is enabled)
 7) [ ] Network configuration             8) [!] Root password
        (Not connected)                          (Password is not set.)
 9) [!] User creation
        (No user will be created)
  Please make your choice from above ['q' to quit | 'b' to begin installation |
  'r' to refresh]: 5
================================================================================
================================================================================
Probing storage...
Installation Destination

[x] 1) : 10 GiB (vda)

1 disk selected; 10 GiB capacity; 10 GiB free ...

  Please make your choice from above ['q' to quit | 'c' to continue |
  'r' to refresh]: c  
================================================================================
================================================================================
Autopartitioning Options

[ ] 1) Replace Existing Linux system(s)

[x] 2) Use All Space

[ ] 3) Use Free Space

Installation requires partitioning of your hard drive. Select what space to use
for the install target.

  Please make your choice from above ['q' to quit | 'c' to continue |
  'r' to refresh]: 2
================================================================================
================================================================================
Autopartitioning Options

[ ] 1) Replace Existing Linux system(s)

[x] 2) Use All Space

[ ] 3) Use Free Space

Installation requires partitioning of your hard drive. Select what space to use
for the install target.

  Please make your choice from above ['q' to quit | 'c' to continue |
  'r' to refresh]: c   
================================================================================
================================================================================
Partition Scheme Options

[ ] 1) Standard Partition

[ ] 2) Btrfs

[x] 3) LVM

[ ] 4) LVM Thin Provisioning

Select a partition scheme configuration.

  Please make your choice from above ['q' to quit | 'c' to continue |
  'r' to refresh]: 1  
================================================================================
================================================================================
Partition Scheme Options

[x] 1) Standard Partition

[ ] 2) Btrfs

[ ] 3) LVM

[ ] 4) LVM Thin Provisioning

Select a partition scheme configuration.

  Please make your choice from above ['q' to quit | 'c' to continue |
  'r' to refresh]: c
Generating updated storage configuration
Checking storage configuration...


  Please make your choice from above ['q' to quit | 'c' to continue |
  'r' to refresh]: c
Generating updated storage configuration
···
···
Running post-installation scripts
.
        Use of this product is subject to the license agreement found at /usr/share/centos-release/EULA

        Installation complete.  Press return to quit
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。

#最后出现这哥退出提示时不需要按回车,按ctrl+]退出安装控制台,虚拟机minglinux01会继续进行重启。
#直接按回车minglinux01进行重启会导致宿主机也重启了

八、虚拟机管理

安全完虚拟机需要重启,要退出虚拟机使用快捷键ctrl ]
ps aux |grep kvm //查看kvm进程
virsh list //查看虚拟机列表,只能看到运行的虚拟机
virsh list --all //查看虚拟机列表,包括未运行的虚拟机
virsh console minglinux01//进入指定虚拟机
virsh shutdown minglinux01 //关闭虚拟机
virsh start minglinux01 //开启虚拟机
virsh destroy minglinux01//类似stop,这个是强制停止
virsh undefine minglinux01//彻底销毁虚拟机,会删除虚拟机配置文件,virsh list --all就看不到了
ls /etc/libvirt/qemu/ //可以查看虚拟机配置文件
virsh autostart minglinux01//宿主机开机该虚拟机也开机
virsh autostart --disable minglinux01//解除开机启动
virsh suspend minglinux01//挂起
virsh resume minglinux01//恢复

[root@minglinux-01 ~] ls /kvm_data/
lost+found  minglinux01.img
[root@minglinux-01 ~] virsh list
 Id    名称                         状态
----------------------------------------------------

[root@minglinux-01 ~] virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     minglinux01                    关闭

[root@minglinux-01 ~] virsh start minglinux01
域 minglinux01 已开始

[root@minglinux-01 ~] virsh list
 Id    名称                         状态
----------------------------------------------------
 2     minglinux01                    running

[root@minglinux-01 ~] virsh suspend minglinux01
域 minglinux01 被挂起

[root@minglinux-01 ~] virsh list
 Id    名称                         状态
----------------------------------------------------
 2     minglinux01                    暂停

[root@minglinux-01 ~] virsh resume minglinux01
域 minglinux01 被重新恢复

[root@minglinux-01 ~] virsh list
 Id    名称                         状态
----------------------------------------------------
 2     minglinux01                    running

#进入虚拟机
[root@minglinux-01 ~] virsh console minglinux01
连接到域 minglinux01
换码符为 ^]


CentOS Linux 7 (Core)
Kernel 3.10.0-862.el7.x86_64 on an x86_64

localhost login: root
密码:
[root@localhost ~]# 
[root@localhost ~]# ip addr
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:5e:a1:45 brd ff:ff:ff:ff:ff:ff

#自动获取ip地址,网段和宿主机一样,这样获取到的ip是动态的,也可以设置为静态ip
[root@localhost ~]# dhclient eth0
[root@localhost ~]# ip addr
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:5e:a1:45 brd ff:ff:ff:ff:ff:ff
    inet 192.168.162.132/24 brd 192.168.162.255 scope global dynamic eth0
       valid_lft 1798sec preferred_lft 1798sec
[root@localhost ~]# ping baidu.com
PING baidu.com (220.181.57.216) 56(84) bytes of data.
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=1 ttl=128 time=75.1 ms
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=2 ttl=128 time=99.7 ms
64 bytes from 220.181.57.216 (220.181.57.216): icmp_seq=3 ttl=128 time=114 ms
 
--- baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 75.152/96.455/114.494/16.228 ms

[root@localhost ~]# yum install -y net-tools
[root@localhost ~]# ifconfig 
eth0: flags=4163  mtu 1500
        inet 192.168.162.132  netmask 255.255.255.0  broadcast 192.168.162.255
        ether 52:54:00:5e:a1:45  txqueuelen 1000  (Ethernet)
        RX packets 6461  bytes 11138596 (10.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3697  bytes 213441 (208.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 256  bytes 22272 (21.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 256  bytes 22272 (21.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

#看一下内存大小、CPU核数和磁盘空间
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            479          87         140           6         251         228
Swap:          1023           0        1023
[root@localhost ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores   : 1
[root@localhost ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/vda3       8.0G  1.1G  7.0G   13% /
devtmpfs        486M     0  486M    0% /dev
tmpfs           496M     0  496M    0% /dev/shm
tmpfs           496M  6.7M  490M    2% /run
tmpfs           496M     0  496M    0% /sys/fs/cgroup
/dev/vda1      1014M  124M  891M   13% /boot
tmpfs            48M     0   48M    0% /run/user/0

#按ctrl+]退出minglinux01回到minglinxu-01
[root@minglinux-01 ~] top |grep qemu-kvm #有一个qemu-kvm进程,该进程占用多少资源对应虚拟机minglinux01占用多少资源
 27255 qemu      20   0 1794888 498620   9752 S   1.0 12.9   1:11.75 qemu-kvm                           
 27255 qemu      20   0 1794888 498620   9752 S   1.0 12.9   1:11.78 qemu-kvm                           
 27255 qemu      20   0 1794888 498620   9752 S   1.0 12.9   1:11.81 qemu-kvm 

#查看虚拟机配置文件
[root@minglinux-01 ~] ls /etc/libvirt/qemu/
minglinux01.xml  networks

#虚拟磁盘文件,这个文件删除虚拟机才是完全销毁
[root@minglinux-01 ~] ls /kvm_data/
lost+found  minglinux01.img


九、克隆虚拟机

virsh shutdown minglinux01
virt-clone --original minglinux01 --name minglinux02 --file /kvm_data/minglinux02.img
--original指定克隆源虚拟机
--name指定克隆后的虚拟机名字
--file指定目标虚拟机的虚拟磁盘文件
如果minglinux01虚拟机开机状态,则提示先关闭或者暂停虚拟机

[root@minglinux-01 ~] virsh shutdown minglinux01
[root@minglinux-01 ~] virt-clone --original minglinux01 --name minglinux02 --file /kvm_data/minglinux02.img
正在分配 'minglinux02.img'                                                    |  10 GB  00:02:37     

成功克隆 'minglinux02'。
[root@minglinux-01 ~] virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     minglinux01                    关闭
 -     minglinux02                    关闭

[root@minglinux-01 ~] ls /etc/libvirt/qemu/
minglinux01.xml  minglinux02.xml  networks

#启动进入minglinux02
[root@minglinux-01 ~] virsh start minglinux02
[root@minglinux-01 ~] virsh console minglinux02
[root@localhost ~]# ifconfig 
eth0: flags=4163  mtu 1500
        inet 192.168.162.132  netmask 255.255.255.0  broadcast 192.168.162.255
        ether 52:54:00:bf:74:ab  txqueuelen 1000  (Ethernet)
        RX packets 233  bytes 13766 (13.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 41  bytes 3828 (3.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

十、快照管理

创建快照 virsh snapshot-create minglinux01
raw格式的虚拟磁盘不支持做快照,qcow2支持
qemu-img info /kvm_data/minglinux01.img //查看minglinux01.img信息,同时会查看到快照列表
virsh snapshot-list minglinux01 //列出所有快照
virsh snapshot-current minglinux01//查看当前快照版本
ls /var/lib/libvirt/qemu/snapshot/minglinux01//查看所有快照配置文件
virsh snapshot-revert minglinux01 1553268958//恢复指定快照
virsh snapshot-delete minglinux01 1553268958//删除快照

[root@minglinux-01 ~] virsh snapshot-create minglinux01
已生成域快照 1553268958
[root@minglinux-01 ~] qemu-img info /kvm_data/minglinux01.img
image: /kvm_data/minglinux01.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 1.3G
cluster_size: 65536
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         1553268958                0 2019-03-22 23:35:58   00:00:00.000
Format specific information:
    compat: 1.1
    lazy refcounts: true
[root@minglinux-01 ~] qemu-img info /kvm_data/minglinux02.img
image: /kvm_data/minglinux02.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 1.3G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true
[root@minglinux-01 ~] qemu-img info /kvm_data/minglinux02.img
image: /kvm_data/minglinux02.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 1.3G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true
[root@minglinux-01 ~] virsh snapshot-list minglinux01
 名称               生成时间              状态
------------------------------------------------------------
 1553268958           2019-03-22 23:35:58 +0800 shutoff
[root@minglinux-01 ~] virsh snapshot-current minglinux01

  1553268958
  shutoff
  1553268958
···
···
[root@minglinux-01 ~] virsh snapshot-create minglinux01
已生成域快照 1553269577
[root@minglinux-01 ~] virsh snapshot-list minglinux01
 名称               生成时间              状态
------------------------------------------------------------
 1553268958           2019-03-22 23:35:58 +0800 shutoff
 1553269577           2019-03-22 23:46:17 +0800 shutoff

[root@minglinux-01 ~] virsh snapshot-revert minglinux01 1553268958

[root@minglinux-01 ~] virsh snapshot-delete minglinux01 1553268958
已删除域快照 1553268958

[root@minglinux-01 ~] virsh snapshot-list minglinux01
 名称               生成时间              状态
------------------------------------------------------------
 1553269577           2019-03-22 23:46:17 +0800 shutoff

#有写东西不一样
[root@minglinux-01 ~] du -sh /kvm_data/*
16K /kvm_data/lost+found
1.4G    /kvm_data/minglinux01.img
1.3G    /kvm_data/minglinux02.img
[root@minglinux-01 ~] ls -lh /kvm_data/minglinux0*
-rw------- 1 root root  11G 3月  22 23:35 /kvm_data/minglinux01.img
-rw------- 1 qemu qemu 1.3G 3月  22 23:39 /kvm_data/minglinux02.img

十一、磁盘格式

虚拟磁盘常用格式raw、qcow2
qemu-img info /kvm_data/minglinux01.img//查看虚拟磁盘格式
qemu-img create -f raw /kvm_data/minglinux01_2.img 2G//创建2G的raw格式磁盘
把raw格式的磁盘转换为qcow2格式
qemu-img convert -O qcow2 /kvm_data/minglinux01_2.img /kvm_data/minglinux01_2.qcow2
转换后用ls -lth查看磁盘文件的大小,可以看到qcow2文件比较小,raw文件大小和我们指定空间大小一样是2G。
qcow2用多大就分多大,占用更小空间。
raw格式的磁盘性能比qcow2要好,但是raw格式的磁盘无法做快照
给minglinux02转换为raw格式的磁盘
virsh shutdown minglinux02
qemu-img convert -O raw /kvm_data/minglinux02.img /kvm_data/minglinux02_3.raw
virsh edit minglinux02//更改格式和文件路径
virsh start minglinux02

#创建2G的raw格式磁盘
[root@minglinux-01 ~] qemu-img create -f raw /kvm_data/minglinux01_2.img 2G
Formatting '/kvm_data/minglinux01_2.img', fmt=raw size=2147483648 
[root@minglinux-01 ~] qemu-img info /kvm_data/minglinux01_2.img
image: /kvm_data/minglinux01_2.img
file format: raw
virtual size: 2.0G (2147483648 bytes)
disk size: 0

#把raw格式的磁盘转换为qcow2格式
[root@minglinux-01 ~] qemu-img convert -O qcow2 /kvm_data/minglinux01_2.img /kvm_data/minglinux01_2.qcow2
[root@minglinux-01 ~] qemu-img info /kvm_data/minglinux01_2.img
image: /kvm_data/minglinux01_2.img
file format: raw
virtual size: 2.0G (2147483648 bytes)
disk size: 0
[root@minglinux-01 ~] qemu-img info /kvm_data/minglinux01_2.qcow2 
image: /kvm_data/minglinux01_2.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@minglinux-01 ~] ls -lht /kvm_data/
总用量 2.6G
-rw-r--r-- 1 root root 193K 3月  22 23:51 minglinux01_2.qcow2
-rw-r--r-- 1 root root 2.0G 3月  22 23:50 minglinux01_2.img
-rw------- 1 qemu qemu 1.3G 3月  22 23:49 minglinux02.img
-rw------- 1 root root  11G 3月  22 23:47 minglinux01.img
drwx------ 2 root root  16K 3月  22 20:15 lost+found

#给minglinux02转换为raw格式的磁盘
[root@minglinux-01 ~] qemu-img convert -O raw /kvm_data/minglinux02.img /kvm_data/minglinux02_3.raw

[root@minglinux-01 ~] ls -lht /kvm_data/
总用量 3.9G
-rw-r--r-- 1 root root  10G 3月  23 00:11 minglinux02_3.raw
-rw------- 1 root root 1.3G 3月  23 00:09 minglinux02.img
-rw-r--r-- 1 root root 193K 3月  22 23:51 minglinux01_2.qcow2
-rw-r--r-- 1 root root 2.0G 3月  22 23:50 minglinux01_2.img
-rw------- 1 root root  11G 3月  22 23:47 minglinux01.img
drwx------ 2 root root  16K 3月  22 20:15 lost+found

#修改minglinux02配置文件,更改格式和文件路径
[root@minglinux-01 ~] virsh edit minglinux02
编辑了域 minglinux02 XML 配置。
#修改内容如下
     33       
     34       

#启动minglinux02,可以看到启动后其虚拟磁盘文件的属主属组后变为qemu
[root@minglinux-01 ~] ls -l /kvm_data/
总用量 4057272
drwx------ 2 root root       16384 3月  22 20:15 lost+found
-rw-r--r-- 1 root root  2147483648 3月  22 23:50 minglinux01_2.img
-rw-r--r-- 1 root root      197120 3月  22 23:51 minglinux01_2.qcow2
-rw------- 1 root root 10739515904 3月  22 23:47 minglinux01.img
-rw-r--r-- 1 root root 10737418240 3月  23 00:11 minglinux02_3.raw
-rw------- 1 root root  1388707840 3月  23 00:09 minglinux02.img
[root@minglinux-01 ~] virsh start minglinux02
域 minglinux02 已开始

[root@minglinux-01 ~] ls -l /kvm_data/
总用量 4057272
drwx------ 2 root root       16384 3月  22 20:15 lost+found
-rw-r--r-- 1 root root  2147483648 3月  22 23:50 minglinux01_2.img
-rw-r--r-- 1 root root      197120 3月  22 23:51 minglinux01_2.qcow2
-rw------- 1 root root 10739515904 3月  22 23:47 minglinux01.img
-rw-r--r-- 1 qemu qemu 10737418240 3月  23 00:11 minglinux02_3.raw
-rw------- 1 root root  1388707840 3月  23 00:09 minglinux02.img

#给明minginux02创建快照  
[root@minglinux-01 ~] virsh snapshot-create minglinux02
错误:不支持的配置:存储类型 vda 不支持磁盘 raw 的内部快照

十二、磁盘扩容(raw)

qemu-img resize /kvm_data/minglinux02_3.raw +2G
qemu-img info /kvm_data/minglinux02_3.raw
virsh destroy minglinux02
virsh start minglinux02
virsh console minglinux02
fdisk -l 查看磁盘情况,并分新的分区
除了对已有磁盘扩容外,还可以额外增加磁盘
qemu-img create -f raw /kvm_data/minglinux02_2.raw 5G
virsh edit minglinux02 //增加,注意更改source、target、slot
virsh destroy minglinux02
virsh start minglinux02

#给minglinux02机器磁盘扩容
[root@minglinux-01 ~] ls -lh /kvm_data/
总用量 3.9G
drwx------ 2 root root  16K 3月  22 20:15 lost+found
-rw-r--r-- 1 root root 2.0G 3月  22 23:50 minglinux01_2.img
-rw-r--r-- 1 root root 193K 3月  22 23:51 minglinux01_2.qcow2
-rw------- 1 root root  11G 3月  22 23:47 minglinux01.img
-rw-r--r-- 1 qemu qemu  10G 3月  23 00:33 minglinux02_3.raw
-rw------- 1 root root 1.3G 3月  23 00:09 minglinux02.img
[root@minglinux-01 ~] qemu-img resize /kvm_data/minglinux02_3.raw +2G
Image resized.
[root@minglinux-01 ~] qemu-img info /kvm_data/minglinux02_3.raw
image: /kvm_data/minglinux02_3.raw
file format: raw
virtual size: 12G (12884901888 bytes)
disk size: 1.3G
#扩容后需重启进入虚拟机才能生效
[root@minglinux-01 ~] virsh destroy minglinux02
域 minglinux02 被删除

[root@minglinux-01 ~] virsh start minglinux02
域 minglinux02 已开始

[root@minglinux-01 ~] virsh console minglinux02
连接到域 minglinux02
···
[root@localhost ~]# fdisk -l

磁盘 /dev/vda:12.9 GB, 12884901888 字节,25165824 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00002d30

   设备 Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200     4196351     1048576   82  Linux swap / Solaris
/dev/vda3         4196352    20971519     8387584   83  Linux
#新增的2G磁盘空间是不能加现有分区的,想要利用上这2G空间可以建立新的分区,不要把原来的分区破坏
[root@localhost ~]# fdisk /dev/vda
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):p

磁盘 /dev/vda:12.9 GB, 12884901888 字节,25165824 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00002d30

   设备 Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200     4196351     1048576   82  Linux swap / Solaris
/dev/vda3         4196352    20971519     8387584   83  Linux

命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): p
已选择分区 4
起始 扇区 (20971520-25165823,默认为 20971520):
将使用默认值 20971520
Last 扇区, +扇区 or +size{K,M,G} (20971520-25165823,默认为 25165823):
将使用默认值 25165823
分区 4 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/vda:12.9 GB, 12884901888 字节,25165824 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00002d30

   设备 Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200     4196351     1048576   82  Linux swap / Solaris
/dev/vda3         4196352    20971519     8387584   83  Linux
/dev/vda4        20971520    25165823     2097152   83  Linux

命令(输入 m 获取帮助):q
#磁盘扩容的方式外,还可以使用额外增加磁盘的方式给虚拟机扩容
#创建新的虚拟磁盘
[root@minglinux-01 ~] qemu-img create -f raw /kvm_data/minglinux02_2.raw 5G
Formatting '/kvm_data/minglinux02_2.raw', fmt=raw size=5368709120 
[root@minglinux-01 ~] qemu-img info /kvm_data/minglinux02_2.raw
image: /kvm_data/minglinux02_2.raw
file format: raw
virtual size: 5.0G (5368709120 bytes)
disk size: 0

#改配置文件
[root@minglinux-01 ~] virsh edit minglinux02
编辑了域 minglinux02 XML 配置。
#新增了一组
     32     
     33       
     34       
     35       
     36       
37 38 39 40 41 42
43 [root@minglinux-01 ~] virsh destroy minglinux02 域 minglinux02 被删除 [root@minglinux-01 ~] virsh start minglinux02 域 minglinux02 已开始 [root@minglinux-01 ~] virsh console minglinux02 [root@localhost ~]# fdisk -l #可以看到新增了一块磁盘/dev/vdb 磁盘 /dev/vda:12.9 GB, 12884901888 字节,25165824 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x00002d30 设备 Boot Start End Blocks Id System /dev/vda1 * 2048 2099199 1048576 83 Linux /dev/vda2 2099200 4196351 1048576 82 Linux swap / Solaris /dev/vda3 4196352 20971519 8387584 83 Linux 磁盘 /dev/vdb:5368 MB, 5368709120 字节,10485760 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节

十三、磁盘扩容(qcow2)

qemu-img resize /kvm_data/minglinux01.img +2G
若提示qemu-img: Can't resize an image which has snapshots,需要删除快照
qemu-img info /kvm_data/minglinux01.img
virsh destroy minglinux01
virsh start minglinux01
virsh console minglinux01
fdisk -l 查看磁盘情况,并分新的分区
除了对已有磁盘扩容外,还可以额外增加磁盘
qemu-img create -f qcow2 /kvm_data/minglinux01_2.img 5G
virsh edit minglinux01 //增加,注意更改source、target、slot
virsh destroy minglinux01
virsh start minglinux01

#第一种方法是对磁盘扩容
#minglinux01.img做过快照,对其进行扩容时会报错
[root@minglinux-01 ~] qemu-img resize /kvm_data/minglinux01.img +2G
qemu-img: Can't resize an image which has snapshots
qemu-img: This image does not support resize
[root@minglinux-01 ~] virsh snapshot-delete minglinux01 1553269577
已删除域快照 1553269577

[root@minglinux-01 ~] qemu-img resize /kvm_data/minglinux01.img +2G
Image resized.

#第二种方法是增加磁盘
#其实和raw类型的一样的,就不多试了

十四、调整cpu内存和网卡

virsh dominfo minglinux01 //查看配置
virsh edit minglinux01//更改如下部分内容
1048576
624288
2
virsh shutdown minglinux01
virsh start minglinux01
virsh setmem minglinux01 800m//动态调整内存
virsh dumpxml minglinux01 > /etc/libvirt/qemu/minglinux01.xml//需要把配置写入到配置文件里
virsh setvcpus minglinux01 2 //动态调整cpu数量
virsh domiflist minglinux01//查看网卡
virsh attach-interface minglinux01 --type bridge --source virbr0//增加一块新的网卡,并设置为nat网络模式(virbr0类似vmware的vmnet8),这里如果写--source br0,则网络模式为桥接
virsh dumpxml minglinux01 > /etc/libvirt/qemu/minglinux01.xml//需要把配置写入到配置文件里

#查看虚拟机配置
[root@minglinux-01 ~] virsh dominfo minglinux01
Id:             -
名称:       minglinux01
UUID:           c3abff95-a517-40d3-9053-13e100858e8a
OS 类型:    hvm
状态:       关闭
CPU:          1
最大内存: 1048576 KiB
使用的内存: 524288 KiB
持久:       是
自动启动: 禁用
管理的保存: 否
安全性模式: none
安全性 DOI: 0

#改配置文件方式调整内存
[root@minglinux-01 ~] virsh edit minglinux01
#更改如下部分内容
···
      5   624288
      6   2
···
[root@minglinux-01 ~] virsh console minglinux01
连接到域 minglinux01
换码符为 ^]


CentOS Linux 7 (Core)
Kernel 3.10.0-862.el7.x86_64 on an x86_64

localhost login: root
密码:
Last login: Sat Mar 23 02:05:46 on ttyS0
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            577          84         380           6         112         352
Swap:          1023           0        1023

#直接在线动态调整内存
[root@minglinux-01 ~] virsh setmem minglinux01 800m

[root@minglinux-01 ~] virsh dominfo minglinux01
Id:             10
名称:       minglinux01
UUID:           c3abff95-a517-40d3-9053-13e100858e8a
OS 类型:    hvm
状态:       running
CPU:          1
CPU 时间:   62.7s
最大内存: 1048576 KiB
使用的内存: 819200 KiB
持久:       是
自动启动: 禁用
管理的保存: 否
安全性模式: none
安全性 DOI: 0
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            767          84         570           6         112         542
Swap:          1023           0        1023

#动态调整cpu数量
[root@minglinux-01 ~] virsh setvcpus minglinux01 2

[root@minglinux-01 ~] virsh dominfo minglinux01
Id:             10
名称:       minglinux01
UUID:           c3abff95-a517-40d3-9053-13e100858e8a
OS 类型:    hvm
状态:       running
CPU:          2
CPU 时间:   64.0s
最大内存: 1048576 KiB
使用的内存: 819200 KiB
持久:       是
自动启动: 禁用
管理的保存: 否
安全性模式: none
安全性 DOI: 0
[root@minglinux-01 ~] virsh setvcpus minglinux01 1 #减少不行
错误:不支持的配置:failed to find appropriate hotpluggable vcpus to reach the desired target vcpu count

#如下命令把配置写入到配置文件里让虚拟机重启还生效
[root@minglinux-01 ~] virsh dumpxml minglinux01 > /etc/libvirt/qemu/minglinux01.xml
#virsh edit minglinux01看到的内容没有改变,实际上配置文件minglinux01.xml的内容已经改变了,重启虚拟机就会加载配置文件中设定的配置

#查看网卡
[root@minglinux-01 ~] virsh domiflist minglinux01
接口     类型     源        型号      MAC
-------------------------------------------------------
vnet0      bridge     br0        virtio      52:54:00:5e:a1:45

#增加一块新的网卡,设置为nat网络模式
[root@minglinux-01 ~] virsh attach-interface minglinux01 --type bridge --source virbr0
成功附加接口

[root@minglinux-01 ~] virsh domiflist minglinux01
接口     类型     源        型号      MAC
-------------------------------------------------------
vnet0      bridge     br0        virtio      52:54:00:5e:a1:45
vnet1      bridge     virbr0     rtl8139     52:54:00:5f:83:e0

#增加一块新的网卡,设置为桥接模式
[root@minglinux-01 ~] virsh attach-interface minglinux01 --type bridge --source br0
成功附加接口

[root@minglinux-01 ~] virsh domiflist minglinux01
接口     类型     源        型号      MAC
-------------------------------------------------------
vnet0      bridge     br0        virtio      52:54:00:5e:a1:45
vnet1      bridge     virbr0     rtl8139     52:54:00:5f:83:e0
vnet2      bridge     br0        rtl8139     52:54:00:0f:bf:b2

#进入虚拟机查看网卡
[root@localhost ~]# ifconfig 
ens9: flags=4163  mtu 1500
        inet 192.168.122.105  netmask 255.255.255.0  broadcast 192.168.122.255
        inet6 fe80::6ccd:d72b:1815:8830  prefixlen 64  scopeid 0x20
        ether 52:54:00:5f:83:e0  txqueuelen 1000  (Ethernet)
        RX packets 24  bytes 2429 (2.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 67  bytes 6396 (6.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens10: flags=4163  mtu 1500
        inet 192.168.162.133  netmask 255.255.255.0  broadcast 192.168.162.255
        inet6 fe80::de66:f443:b986:538d  prefixlen 64  scopeid 0x20
        ether 52:54:00:0f:bf:b2  txqueuelen 1000  (Ethernet)
        RX packets 128  bytes 6456 (6.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 13  bytes 1454 (1.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163  mtu 1500
        ether 52:54:00:5e:a1:45  txqueuelen 1000  (Ethernet)
        RX packets 5376  bytes 262940 (256.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
#ens9是NAT模式,ens10是桥接模式

#当前的修改只保存在了内存里,如果想网卡修改永久生效还需要把配置写入到配置文件中
[root@minglinux-01 ~] virsh dumpxml minglinux01 > /etc/libvirt/qemu/minglinux01.xml

十五、迁移虚拟机

该方式要确保虚拟机是关机状态
virsh shutdown minglinux01
virsh dumpxml minglinux01 > /etc/libvirt/qemu/minglinux03.xml // 如果是远程机器,需要把该配置文件拷贝到远程机器上
virsh domblklist minglinux01 //查看虚拟机磁盘所在目录
rsync -av /kvm_data/minglinux01.img /kvm_data/minglinux03.img //如果是迁移到远程,则需要把该磁盘文件拷贝到远程机器上
vim /etc/libvirt/qemu/minglinux03.xml //因为是迁移到本机,配置文件用的是minglinux01子机的配置,不改会有冲突,所以需要修改该文件,如果是远程机器不用修改
修改domname: minglinux03
修改uuid(随便改一下数字,位数不要变)
修改磁盘路径
virsh define /etc/libvirt/qemu/minglinux03.xml //定义新虚拟机
virsh list --all //会发现新迁移的minglinux03子机

你可能感兴趣的:(虚拟化)