目录
一、了解虚拟化
二、常见虚拟化软件
三、虚拟化架构
四、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
三、虚拟化架构
参考 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架构图
五、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
[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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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<UP,BROADCAST,RUNNING,MULTICAST> 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<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
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<UP,BROADCAST,RUNNING,MULTICAST> 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<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
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
<domainsnapshot>
<name>1553268958</name>
<state>shutoff</state>
<creationTime>1553268958</creationTime>
···
···
[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 <driver name='qemu' type='raw'/>
34 <source file='/kvm_data/minglinux02_3.raw'/>
#启动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 //增加<disk>…</disk>,注意更改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 配置。
#新增了一组<disk>…</disk>
32 <disk type='file' device='disk'>
33 <driver name='qemu' type='raw'/>
34 <source file='/kvm_data/minglinux02_3.raw'/>
35 <target dev='vda' bus='virtio'/>
36 <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
37 </disk>
38 <disk type='file' device='disk'>
39 <driver name='qemu' type='raw'/>
40 <source file='/kvm_data/minglinux02_2.raw'/>
41 <target dev='vdb' bus='virtio'/>
42 <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
43 </disk>
[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 //增加<disk>…</disk>,注意更改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//更改如下部分内容
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>624288</currentMemory>
<vcpu placement='static' current='1'>2</vcpu>
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 <currentMemory unit='KiB'>624288</currentMemory>
6 <vcpu placement='static' current='2'>2</vcpu>
···
[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<UP,BROADCAST,RUNNING,MULTICAST> 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<link>
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<UP,BROADCAST,RUNNING,MULTICAST> 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<link>
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<UP,BROADCAST,RUNNING,MULTICAST> 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<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
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: <name>minglinux03</name>
修改uuid(随便改一下数字,位数不要变)
修改磁盘路径
virsh define /etc/libvirt/qemu/minglinux03.xml //定义新虚拟机
virsh list --all //会发现新迁移的minglinux03子机