一、安装kvm

1、系统环境:

[root@template ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@template ~]# uname -r
3.10.0-327.el7.x86_64

2、查看机器是否支持虚拟化

[root@template ~]# grep -E "svm | vmx" /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf 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 ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid xsaveopt

3、环境要求

处理器开启vt-x功能

Kvm qcow2文件转换 kvm导入qcow2_Kvm qcow2文件转换

blos 开启虚拟化

 

Kvm qcow2文件转换 kvm导入qcow2_Server_02

4、安装kvm管理软件

yum install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install -y

软件的功能介绍:
Libvirt管理kvm本身的工具
Virt-install 安装虚拟机
Virt-manager管理创建删除虚拟机的工具

5、查看模块是否被加载

[root@Centos01 ~]# lsmod |grep kvm
kvm_intel             162153  0 
kvm                   525259  1 kvm_intel

6、配置服务

#开机自启动服务
[root@Centos01 ~]# systemctl enable libvirtd.service

#启用服务
[root@Centos01 ~]# systemctl start libvirtd.service

7、查看虚拟网卡

[root@Centos01 ~]# ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.30.138  netmask 255.255.255.0  broadcast 192.168.30.255
        inet6 fe80::20c:29ff:fe86:12e5  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:86:12:e5  txqueuelen 1000  (Ethernet)
        RX packets 2784  bytes 402493 (393.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3094  bytes 646100 (630.9 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 0  (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

#虚拟网卡
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:29:0e:3c  txqueuelen 0  (Ethernet)
        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

8、查看服务是否激活

[root@Centos01 ~]# systemctl is-active libvirtd.service
active

二、添加第二块硬盘用于存放虚拟机

1、添加160G硬盘

Kvm qcow2文件转换 kvm导入qcow2_CentOS_03

添加完硬盘,重启系统(reboot), 重启的作用是发现新硬盘。

2、对硬盘进行分区

[root@template ~]# fdisk -l

#自带的第一块硬盘
磁盘 /dev/sda:171.8 GB, 171798691840 字节,335544320 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00047142

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   335544319   167259136   8e  Linux LVM

#添加的第二块硬盘
磁盘 /dev/sdb:171.8 GB, 171798691840 字节,335544320 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-root:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-home:113.4 GB, 113355259904 字节,221396992 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

#对硬盘进行分区(160G大小,分成一个分区)
[root@template ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

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

Device does not contain a recognized partition table
使用磁盘标识符 0xc5edf4d2 创建新的 DOS 磁盘标签。

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

命令(输入 m 获取帮助):w   #保存
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@template ~]# mkfs.ext3 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
10485760 inodes, 41942784 blocks
2097139 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
1280 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, 20480000, 23887872

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

#挂载sdb1
[root@template ~]# mount /dev/sdb1 /opt
#添加开机自启动
[root@template ~]# vi /etc/fstab
# /etc/fstab
    # Created by anaconda on Mon Mar 20 21:34:44 2017
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    /dev/mapper/centos-root /                       xfs     defaults        0 0
    UUID=1def7626-55d2-4d85-b2b1-2d82ae268045 /boot                   xfs     defaults        0 0
    /dev/mapper/centos-home /home                   xfs     defaults        0 0
    /dev/mapper/centos-swap swap                    swap    defaults        0 0
    /dev/cdrom              /mnt/cdrom              iso9660 defaults        0 0
    /dev/sdb1               /opt                    ext3    defaults        0 0     #增加这一行代码
#查看新挂载硬盘
[root@template ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G  1.2G   49G    3% /
devtmpfs                 2.0G     0  2.0G    0% /dev
tmpfs                    2.0G     0  2.0G    0% /dev/shm
tmpfs                    2.0G  8.5M  2.0G    1% /run
tmpfs                    2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sr0                 4.1G  4.1G     0  100% /mnt/cdrom
/dev/mapper/centos-home  106G   33M  106G    1% /home
/dev/sda1                497M  108M  390M   22% /boot
tmpfs                    394M     0  394M    0% /run/user/0
/dev/sdb1                158G   60M  150G    1% /opt

三、创建kvm虚拟机

1、qcow2格式

#从光驱中复制iso镜像文件到服务器指定目录(注意:光驱插入Centos6.6.iso文件)#从/dev/cdrom 中复制镜像文件到/opt目录中
[root@centos01 opt]# dd if=/dev/cdrom of=/opt/Centos6.6.iso
记录了9048064+0 的读入
记录了9048064+0 的写出
4632608768字节(4.6 GB)已复制,154.086 秒,30.1 MB/秒

#创建虚拟机镜像文件并指定大小(20G)
[root@centos01 opt]# qemu-img create -f qcow2 /opt/moban.qcow2 20G
Formatting '/opt/moban.qcow2', fmt=qcow2 size=21474836480 encryption=off cluster_size=65536 lazy_refcounts=off 

#命令参数说明:#安装虚拟机(指定名称,指定内存, 指定安装目录,指定安装盘的路径,设置网络为:默认,指定图形界面:连接工具(vnc),指定连接端口(默认:5900,5901,5902(多个VM端口),监听网段:0.0.0.0 ,无控制台。
[root@centos01 opt]# virt-install --name Centos6.6 --virt-type kvm --ram 1024 --cdrom=/opt/Centos6.6.iso --disk path=/opt/Centos6.6_teamplte.qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

开始安装......
创建域......                                                                                  |    0 B  00:00:01     
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。

2、raw格式

[root@template ~]# cd /opt/

#创建虚拟机镜像文件并指定大小(10G)
[root@template opt]# qemu-img create -f raw CentOS-7.2-x86_64.raw 10G 
Formatting 'CentOS-7.2-x86_64.raw', fmt=raw size=10737418240 

[root@template opt]# ll
总用量 16
-rw-r--r-- 1 root root 10737418240 3月  22 06:52 CentOS-7.2-x86_64.raw
drwx------ 2 root root       16384 3月  22 05:37 lost+found

#从光驱中复制iso镜像文件到服务器指定目录(注意:光驱插入Centos7.2.iso文件)
#从/dev/cdrom 中复制镜像文件到/opt目录中
[root@template opt]# dd if=/dev/cdrom of=/opt/CentOS-7.2.iso
记录了8456192+0 的读入
记录了8456192+0 的写出
4329570304字节(4.3 GB)已复制,155.866 秒,27.8 MB/秒


[root@template opt]# ll
总用量 4232256
-rw-r--r-- 1 root root  4329570304 3月  22 06:57 CentOS-7.2.iso
-rw-r--r-- 1 root root 10737418240 3月  22 06:52 CentOS-7.2-x86_64.raw
drwx------ 2 root root       16384 3月  22 05:37 lost+found

命令参数说明:
#安装虚拟机(指定名称,指定内存, 指定安装目录,指定安装盘的路径,设置网络为:默认,指定图形界面:连接工具(vnc),指定连接端口(默认:5900,5901,5902
(多个VM端口),监听网段:0.0.0.0 ,无控制台。
[root@template opt]# virt-install --name CentOS-7-x86-64 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.2.iso
 --disk path=/opt/CentOS-7.2-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

开始安装......
创建域......                                                                           |    0 B  00:00:00     
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。

 #直接上传镜像的安装方法

1、上传系统镜像到opt目录

[root@kvm-server ~]# cd /opt
[root@kvm-server opt]# ll
total 1971200
-rw-r--r-- 1 root root 2018508800 Dec 21 15:03 Fedora-Server-dvd-x86_64-25-1.3.iso

2、镜像改名

[root@kvm-server opt]# mv Fedora-Server-dvd-x86_64-25-1.3.iso Fedora25.iso
[root@kvm-server opt]# ll
total 1971200
-rw-r--r-- 1 root root 2018508800 Dec 21 15:03 Fedora25.iso

3、创寻镜像模板

示例:创建一个100G大小的模板

[root@kvm-server opt]# qemu-img create -f qcow2 /opt/moban.qcow2 100G
Formatting '/opt/moban.qcow2', fmt=qcow2 size=107374182400 encryption=off cluster_size=65536 lazy_refcounts=off

#查看模板

[root@kvm-server opt]# ll
total 1971396
-rw-r--r-- 1 root root 2018508800 Dec 21 15:03 Fedora25.iso
-rw-r--r-- 1 root root     198656 Dec 21 15:04 moban.qcow2

4、开始安装

virt-install --name=Fedora25 --location=/opt/Fedora25.iso  --ram 8192 --vcpus=2 --disk path=/opt/moban.qcow2,size=100,format=qcow2 --accelerate --vnc --vncport=5922 --vnclisten=0.0.0.0  --noautoconsole --network bridge=virbr0

#操作结果:

[root@kvm-server opt]# virt-install --name=Fedora25 --location=/opt/Fedora25.iso  --ram 8192 --vcpus=2 --disk path=/opt/moban.qcow2,size=100,format=qcow2 --accelerate --vnc --vncport=5922 --vnclisten=0.0.0.0  --noautoconsole --network bridge=virbr0

Starting install...
Retrieving file .treeinfo...                                                 | 1.5 kB  00:00:00     
Retrieving file vmlinuz...                                                   | 6.5 MB  00:00:00     
Retrieving file initrd.img...                                                |  49 MB  00:00:00     
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

 四、安装vnc客户端连接工具

Kvm qcow2文件转换 kvm导入qcow2_CentOS_04

 

安装时选择只安装vnc-client--->Next-完成。

Kvm qcow2文件转换 kvm导入qcow2_Server_05

 

完装完成后--->192.168.30.138:5900 --->设置属性--->其它一项选择:raw--->ok--->再点连接。(就可以开始安装系统啦!)

Kvm qcow2文件转换 kvm导入qcow2_centos_06

 

开始安装系统---按tab键: net.ifnames=0 biosdevname=0 ,按esc跳过检查内存。

其它就跟正常安装操作系统一样。

可以参考博文: (CentOS7.2系统安装)

 

安装过程中出错,解决方法:

1、不小心按了ESC键,造成VM没有安装完成就退出,再启动就报如下错误?
[root@template opt]# virt-install --name CentOS-7-x86-64 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.2.iso --disk path=/opt/CentOS-7.2-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
ERROR    虚拟机名称 'CentOS-7-x86-64' 已经在使用。

解决方法:
[root@template opt]# virsh undefine CentOS-7-x86-64
域 CentOS-7-x86-64 已经被取消定义

#重新启动安装
[root@template opt]# virt-install --name CentOS-7-x86-64 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.2.iso --disk path=/opt/CentOS-7.2-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

开始安装......
创建域......                                                                           |    0 B  00:00:00     
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。

 #设置子随母机,开机自启动

 [root@centos01 opt]# virsh autostart CentOS-7-x86-64
 域 CentOS-7-x86-64标记为自动开始

   

   #查看运行状态

 [root@centos01 ~]# virsh list --all
 Id 名称 状态
 ----------------------------------------------------
 2 CentOS-7-x86-64 running

五、KVM虚拟机相关命令讲解

Virsh命令参数

查看运行的虚拟机
virsh lish

查看所有的虚拟机(关闭和运行的虚拟机)
virsh list --all

关闭虚拟机(强制关机)
virsh destroy+域名
这种方式的关闭,是一种删除的方式,只是在virsh list中删除了该虚拟机

挂起虚拟机
virsh suspend+域名

恢复被挂起的虚拟机
virsh resume+域名


子机随宿主主机(母机)启动而启动
virsh autostart+域名

取消自动启动
virsh auotstart --disable+域名

删除创建的虚拟机
virsh undefine+域名

启动虚拟机
virsh start域名

关闭虚拟机
virsh shutdown域名

虚拟机配置文件:

虚拟机配置文件,就是xml文件所有目录是: /etc/libvirt/qemu/

  [root@centos01 opt]# ll /etc/libvirt/qemu
  总用量 8
  -rw------- 1 root root 3894 3月 22 07:46 CentOS-7-x86-64.xml
  drwx------ 3 root root 40 3月 21 22:43 networks

 


 

虚拟机基本操作

生成kvm虚拟机:            virt-install

查看再运行的虚拟机:          virsh list

查看kvm虚拟机配置文件:        virsh dumpxml name

启动kvm虚拟机:            virsh start name

正常关机:               virsh shutdown name

非正常关机:              virsh destroy name

删除:                 virsh undefine name  (彻底删除,无法找回,除非备份xml文件)

根据配置文件定义虚拟机:        virsh define file-name.xml

挂起,终止:              virsh suspend name

回复挂起状态:             virsh resumed name


先配置虚拟机网桥连接设置(再安装VM里的Centos7.2系统)

默认情况下是NAT,但是在生产环境,使用的更多的是桥接模式,更改虚拟机为网桥模式

网桥的基本原理就是创建一个桥接接口br0,在屋里网卡和虚拟网络接口之间传递数据。

#添加网桥br0
[root@linux-node1 ~]# brctl addbr br0
#桥接br0和eth0
[root@linux-node1 ~]# brctl addif br0 eth0
注:此时会断网如果是远程操作服务器不在身边,建议写成脚本来执行
#删除eth0的IP
[root@linux-node1 ~]# ip addr del dev eth0 192.168.56.11/24
#给br0设置IP
[root@linux-node1 ~]# ifconfig br0 192.168.56.11/24 up
#给br0设置网关
[root@linux-node1 ~]# route add default gw 192.168.56.2

   为了避免断网,直接写成脚本即可:

#!/bin/bash
brctl addbr br0
brctl addif br0 eth0
ip addr del dev eth0 192.168.56.11/24
ifconfig br0 192.168.56.11/24 up
route add default gw 192.168.56.2

修改虚拟机配置:

[root@kvm opt]# cd /etc/libvirt/qemu
[root@kvm qemu]# ll
total 4
-rw------- 1 root root 3846 Aug 27 22:24 CentOS-7-x86-64.xml
drwx------ 3 root root   40 Aug 27 21:51 networks
[root@kvm qemu]# virsh edit CentOS-7-x86-64
将:
<interface type='network'
   <mac address='52:54:00:0b:f8:a5'/>
   <source network='default'/>
 
修改为:
 <interface type='bridge'>
   <mac address='52:54:00:0b:f8:a5'/>
   <source bridge='br0'/>
 
#关闭虚拟机
[root@linux-node1 ~]# virsh shutdown CentOS-7-x86_64
#启动虚拟机
[root@kvm qemu]# virsh start CentOS-7-x86-64
Domain CentOS-7-x86-64 started

[root@kvm qemu]# virsh list
Id Name State
----------------------------------------------------
2 CentOS-7-x86-64 running

#查看网络

[root@kvm qemu]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.132  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:feba:47c2  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ba:47:c2  txqueuelen 0  (Ethernet)
        RX packets 79603  bytes 3472631 (3.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 20704  bytes 151220654 (144.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::20c:29ff:feba:47c2  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ba:47:c2  txqueuelen 1000  (Ethernet)
        RX packets 81656  bytes 5052558 (4.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 117123  bytes 290125076 (276.6 MiB)
        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 0  (Local Loopback)
        RX packets 1  bytes 188 (188.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1  bytes 188 (188.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:55:7d:e0  txqueuelen 0  (Ethernet)
        RX packets 14  bytes 1372 (1.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10  bytes 1132 (1.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::fc54:ff:fed6:1707  prefixlen 64  scopeid 0x20<link>
        ether fe:54:00:d6:17:07  txqueuelen 500  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 18  bytes 1238 (1.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

#查看虚拟机中的网络

#跟本地网络网络是一个网段了,这样就可以ssh远程连接了。

[root@linux-node1 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.9  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::5054:ff:fed6:1707  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:d6:17:07  txqueuelen 1000  (Ethernet)
        RX packets 9144  bytes 15893500 (15.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4231  bytes 309238 (301.9 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 0  (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

 


#kvm添加虚拟机

#生成mariadb-node1.qcow2文件
[root@kvm-server opt]# qemu-img create -f qcow2 /opt/mariadb-node1.qcow2 100G
Formatting '/opt/mariadb-node1.qcow2', fmt=qcow2 size=107374182400 encryption=off cluster_size=65536 lazy_refcounts=off 
[root@kvm-server opt]# ll
total 3574544
-rwxr-xr-x 1 root root        156 Dec 21 15:56 change_bridge.sh
-rw-r--r-- 1 qemu qemu 2018508800 Dec 21 15:03 Fedora25.iso
-rw-r--r-- 1 root root     198656 Dec 25 18:39 mariadb-node1.qcow2
-rw-r--r-- 1 qemu qemu 1641676800 Dec 25 18:39 moban.qcow2

#修改xml文件,更改为网桥模式
[root@kvm-server opt]# cd /etc/libvirt/qemu
[root@kvm-server qemu]# ll
total 8
drwxr-xr-x 2 root root   25 Dec 21 16:51 autostart
-rw------- 1 root root 4001 Dec 21 16:02 Fedora25.xml
-rw------- 1 root root 4022 Dec 25 18:42 Mariadb-node1.xml
drwx------ 3 root root   40 Dec 21 15:00 networks

[root@kvm-server qemu]# virsh edit Mariadb-node2
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:64:d4:0b'/>
      <source bridge='br0'/>  #这里修改为br0

#wq #保存退出


[root@kvm-server opt]# virt-install --name=Mariadb-node1 --location=/opt/Fedora25.iso  --ram 8192 --vcpus=2 --disk path=/opt/mariadb-node1.qcow2,size=100,format=qcow2 --accelerate --vnc --vncport=5923 --vnclisten=0.0.0.0  --noautoconsole --network bridge=virbr0

Starting install...
Retrieving file .treeinfo...                                                    | 1.5 kB  00:00:00     
Retrieving file vmlinuz...                                                      | 6.5 MB  00:00:00     
Retrieving file initrd.img...                                                   |  49 MB  00:00:00     
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

#备注:
一共要修改的三个地方
--name=Mariadb-node1 #指定模板名称
path=/opt/mariadb-node1.qcow2  #指定文件路径
--vncport=5923  #连接的端口,每次增加1

#连接方法:10.0.100.86:5923


#raw转成qcow2
[root@controller1 ~]# cd /mnt/
[root@controller1 mnt]# ll
-rw------- 1 root    root    21474836480 Mar 21 16:07 Rayosx.img
-rw-r--r-- 1 root    root     7391281152 Mar 21 16:18 Rayosx.qcow2#raw转成qcow2
[root@controller1 mnt]# qemu-img convert -c -f raw -O qcow2 Rayosx.img Rayosx.qcow2
#执行admin.rc
[root@controller1 ~]# source admin.rc
#上传镜像
openstack image create "Rayosx" \
  --file Rayosx.qcow2 \
  --disk-format qcow2 --container-format bare \
  --public