KVM---安装--存储--网络
KVM安装
1、查看CPU是否支持虚拟化:
Linux 发行版本必须在64bit环境中才能使用KVM。
# cat /proc/cpuinfo | egrep 'vmx|svm'
如果输出的结果包含 vmx,它是 Intel处理器虚拟机技术标志;
如果包含 svm,它是AMD处理器虚拟机技术标志;。
如果你甚么都得不到,那应你的系统并没有支持虚拟化的处理,不能使用kvm。
2、需求内核(rhel6以上):
# uname -r
3.10.0-514.el7.x86_64
3、清理环境:卸载KVM
# yum remove `rpm -qa | egrep 'qemu|virt|kvm` -y
# rm -rf /var/lib/libvirt /etc/libvirt/
4、安装软件:
Centos6
# yum groupinstall "Virtualization Client" "Virtualization Platform" "Virtualization Tools" -y
Centos7
# yum install *qemu* *virt* librbd1-devel -y
qemu-KVM: 主包
libvirt:API接⼝
virt-manager:图形管理程序
Centos8
yum 组安装已经可以使⽤了
问题:在进⾏组安装的时候会出现关于rpm版本的错误问题
解决:
# yum upgrade rpm -y
组安装成功之后还是要单独安装virt-manager⼯具
[root@openstack ~]# yum install qemu-kvm qemu-img \
virt-manager libvirt libvirt-python virt-manager \
libvirt-client virt-install virt-viewer -y
qemu-kvm: KVM模块
libvirt: 虚拟管理模块
virt-manager: 图形界面管理虚拟机
virt-install: 虚拟机命令行安装工具
5、跟虚拟机相关的目录:
/etc/libvirt/qemu/ #虚拟机配置文件存放位置
/etc/libvirt/qemu/networks #虚拟网络配置文件存放位置
/var/lib/libvirt/images/ #虚拟磁盘文件存放位置(默认存储池)
6、启动服务:
# systemctl start libvirtd
7、查看KVM模块加载
[root@qfedu.com ~]# lsmod | grep KVM
KVM_intel 53484 3
KVM 316506 1 KVM_intel
8、图形管理器
# virt-manager
**GuestOS安装**
-
图形⽅式(⾮常重要 ⾮常简单)
-
完全⽂本模式(现场配置虚拟机的规格)
-
命令⾏模式(重中之重 最常⽤ 模板镜像+配置⽂件 ⽅式配置规格)
-
通过⻜机驾驶舱安装和管理虚拟机
[root@qfedu.com ~]# yum install *cockpit* -y
[root@qfedu.com ~]# systemctl start cockpit
浏览器访问:服务器地址:9090
9、命令方式安装虚拟机:
# virt-install
存储
存储池:
存储池(Storage pools)是放置虚拟机的存储位置,存储池可以建立在好几种方式的存储上,我们以基于目录为存储池来学习。
默认存储池位置: /var/lib/libvirt/images/
创建存储池(目录)[非必须]
1.图形方式:
编辑 → 连接详情 → 存储
2.命令方式:
# mkdir /kvm/disk -p
-
定义存储池
# virsh pool-define-as vmdisk --type dir --target /kvm/disk
-
查看已定义的存储池
#virsh pool-list --all
-
激活并自动启动已定义的存储池,存储池不激活无法使用。
# virsh pool-start vmdisk
# virsh pool-autostart vmdisk
这里vmdisk存储池就已经创建好了,可以直接在这个存储池中创建虚拟磁盘文件了。
存储卷:
存储卷(storage volume)指虚拟磁盘文件,可以理解为虚拟机的硬盘
在存储池中创建虚拟机存储卷
1.图形方式:
2.virsh命令:
-
创建存储卷:
# virsh vol-create-as vmdisk mini.qcow2 20G --format qcow2
-
查看存储卷:
# virsh vol-list vmdisk
名称 路径
----------------------------------------------------------------------------
mini.qcow2 /kvm/disk/mini.qcow2
3.qemu命令(不会被存储池管理)
# qemu-img create -f qcow2 /var/lib/libvirt/images/mini.qcow2 20G
注1:KVM存储池主要是体现一种管理方式,可以通过挂载存储目录,lvm逻辑卷的方式创建存储池
注2:KVM存储池也要用于虚拟机迁移任务。
----------------------------------------------------
存储池相关管理命令
-
取消激活存储池
# virsh pool-destroy vmdisk
-
取消定义存储池
# virsh pool-undefine vmdisk
网络
KVM虚拟机网络配置的两种方式:NAT[isolated(隔离网络)]、Bridge、方式。
NAT--用户网络(User Networking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机。
Bridge--虚拟网桥(Virtual Bridge):这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。
一. Bridge方式
Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机。
-
Bridge方式配置:
1、编辑修改网络设备脚本文件,增加网桥设备br0
# vim /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
NAME=br0
DEVICE=br0
ONBOOT="yes"
BOOTPROTO=static
IPADDR=10.18.44.251
GATEWAY=10.18.44.1
NETMASK=255.255.255.0
DNS1=10.18.44.100
DNS2=8.8.8.8
2、编辑修改网络设备脚本文件,修改网卡设备enp3s0
# vim /etc/sysconfig/network-scripts/ifcfg-enp3s0
TYPE=Ethernet
BRIDGE=br0
BOOTPROTO=none
DEVICE=enp3s0
ONBOOT=yes
3、重启libvirtd服务
systemctl restart livirtd
4、重启network服务
systemctl restart network
5、校验桥接接口
# ifconfig br0
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.f0795962c1cc no enp3s0
virbr0 8000.5254005a2e43 yes virbr0-nic
virbr1 8000.5254015a2e43 yes virbr1-nic
virbr2 8000.525400ca9390 yes virbr2-nic
-
删除桥接⽹卡步骤:
1.删除br0的配置⽂件
2.修改正常⽹卡的配置⽂件
3.重启系统
二. NAT方式
NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。
1、配置⽂件⽅式创建nat⽹络
[root@qfedu.com ~]# cp /etc/libvirt/qemu/networks/nat2.xml /etc/libvirt/qemu/networks/nat3.xml
[root@qfedu.com ~]# vim /etc/libvirt/qemu/networks/nat3.xml
<network>
<name>nat3</name>
<uuid>4d8b9b5c-748f-4e16-a509-848202b9c83b</uuid>
<forward mode='nat'/> //和隔离模式的区别
<bridge name='virbr4' stp='on' delay='0'/>
<mac address='52:57:00:62:0c:d4'/>
<domain name='nat3'/>
<ip address='192.168.104.1' netmask='255.255.255.0'> //虚拟网关IP及子网掩码
<dhcp>
<range start='192.168.104.128' end='192.168.104.254'/> //dhcp分配ip范围
</dhcp>
</ip>
</network>
重启服务:
[root@qfedu.com ~]# systemctl restart libvirtd
2、重启default网络
# virsh net-destroy default #关闭default网络
# virsh net-start default #启动default网络
三、配置⽂件⽅式创建isolated⽹络
隔离⽹络拓扑:
<network>
<name>isolate1</name>
<uuid>6341d3a6-7330-4e45-a8fe-164a6a68929a</uuid>
<bridge name='virbr2' stp='on' delay='0'/>
<mac address='52:54:00:6b:39:0c'/>
<domain name='isolate1'/>
<ip address='192.168.101.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.101.128' end='192.168.101.254'/>
</dhcp>
</ip>
</network>
查看所有的⽹络:
[root@qfedu.com ~]# virsh net-list
启动⽹络:
[root@qfedu.com ~]# virsh net-start isolated200
开机⾃启动:
[root@qfedu.com ~]# virsh net-autostart isolated200
可以通过查看mac地址是否⼀致来确定是不是⼀根线上的两个接⼝
[root@qfedu.com ~]# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.5254003c2ba7 yes virbr0-nic
vnet2
vnet3
从交换机上把vnet⽹卡删除:
[root@qfedu.com ~]# brctl delif virbr0 vnet0
添加vnet⽹卡到交换机上:
[root@qfedu.com ~]# brctl addif virbr0 vnet0