安装配置并且使用KVM
1 查看cpu是否支持虚拟化
Flags部分输出vmx或者svm表明支持cpu虚拟化
2 查看是否加载kvm模块
3 关闭selinux
vim /etc/selinux/config
修改完成之后重启系
4 安装KVM相关软件包
yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python virt-manager libvirt-client virt-install virt-viewer -y
这个是已经安装过的效果,首次执行系统会安装所需要的软件包以及插件,执行完成之后注意返回信息,一定要注意有没有安装成功!!!
5 启动libvirt并设置开机自启动
systemctl start libvirtd
systemctl enable libvirtd
6 创建两个新的目录,一个存放系统镜像,一个存放虚拟机的硬盘
mkdir /home/iso
mkdir /home/images
笔者的电脑上面已经创建过了,所以会提示已经创建
7 创建物理桥接设备 先查看网卡信息,找到自己虚拟机的网卡名称
不出意外的话一般都是ens33,但也有可能叫其他的名字,根据虚拟机的实际情况来操作
8 关闭NetworkManager
Centos6的话就用
Centos7关闭NetworkManager命令(禁用和关闭)
systemctl disable NetworkManager
systemctl stop NetworkManager
systemctl status NetworkManager
9 桥接设备关联网卡
virsh iface-bridge eno1 br0
PS:有可能会提示桥接失败,不要慌,再执行brctl show,看到interfaces下面有ens33就可以了,就像这样,这个过程就像再VMware创建虚拟机的时候选择网路连接模式一样。
不行就再执行一遍咯!!!
创建虚拟机
1 进入图形化管理界面
virt-manager
2 新建虚拟机
3 将镜像上传至虚拟机的/home/iso目录下
4选择安装镜像的介质
5 选择系统镜像的路径
6 选择镜像的位置
7 选择镜像文件
8 找到镜像后点击下一步
9 配置新建虚拟机的内存与CPU
10 配置虚拟机的可用存储空间大小
11 选择虚拟机的存储目录,即虚拟机的存放位置
12 定义存储池的名称
13 选择存储池的路径,默认是/var/lib/libvirt,更换为之前创建的/home/images目录
14 添加存储卷
存储卷这个概念和windows有点不一样,在windows系统上面安装虚拟机,选择虚拟机存放位置的时候只要是个文件夹就行,但在Linux系统里面我们还需要给这个文件定义一个特定空间,然后再把虚拟机存在里面。
15 选择创建好的存储卷
16 点击“前进”
17 定义虚拟机名称
18 启动虚拟机,开始正常的安装CentOS的步骤即可,这就实现了在虚拟机里面安装虚拟机的壮举了!!!
配置网络
- NAT
- 桥接
1、NAT网络
NAT网络是虚拟机默认的网络,安装好KVM后就会有一个网卡
nat网卡.png
默认使用的地址是:192.168.122.0网段,该virbr0 ip地址 也是使用nat网络虚拟机的网关.
虚拟机上网是通过防火墙配置nat转换规则实现的。
NAT拓展知识:
代码语言:javascript
NAT(Network Address Translation,网络地址转换)
代码语言:javascript
私网
A: 10.0.0.0 10.255.255.255
B: 172.16.0.0 172.31.255.255
C: 192.168.0.0 192.168.255.255
#发包
SIP 192.168.1.4 DIP 114.113.112.111
SPORT 6543 DPORT 80
SIP 202.106.1.3 DIP 114.113.112.111
SPORT 6543 DPORT 80
#回包
SIP 114.113.112.111 DIP 202.106.1.3
SPORT 80 DPORT 6543
SIP 114.113.112.111 DIP 192.168.1.4
SPORT 80 DPORT 6543
2、桥接网卡
- 启用一个物理网卡网络
- 创建一个桥接网卡
- 将物理网卡和桥接网卡绑定
代码语言:javascript
#1、给物理网卡设置IP信息
[root@zutuanxue ~]# nmcli connection add con-name eno1 ifname eno1 ipv4.addresses 192.168.1.200/24 ipv4.method manual ipv4.gateway 192.168.1.1 ipv4.dns 202.106.0.20 type 802-3-ethernet
#2、创建一个桥接网卡
[root@zutuanxue ~]# nmcli connection add con-name br0 ifname br0 type bridge ipv4.method manual ipv4.addresses 192.168.1.200/24 ipv4.gateway 192.168.1.1 ipv4.dns 202.106.0.20 autoconnect yes
#3、绑定物理网卡
[root@zutuanxue ~]# nmcli connection add type bridge-slave ifname eno1 master br0
#4、重启生效
[root@zutuanxue ~]# nmcli connection down eno1
[root@zutuanxue ~]# nmcli connection down br0
[root@zutuanxue ~]# nmcli connection up br0
Centos7卸载KVM虚拟化服务
1、先查看是否有服务正在运行,将他们都停掉
#查看是否有服务正在运行;
virsh list --all
我们可以看到是有的,需要将服务关闭:
virsh shutdown centos7.0
然后在删除,不想删除也可以,依据自己;
virsh undefine centos7.0
删除完成之后就开始卸载服务;
2、启动 network 服务(重要)
#设置开机自启
chkconfig NetworkManager on
#启动NetworkManager服务
service NetworkManager restart
#查看启动状态
service NetworkManager status
3、卸载 virbr0 网卡及解除 br0 网络桥接
卸载 virbr0 网卡
先查看网卡
#先查看网卡
ifconfig
显示桥接(bridge)列表
brctl show
列出当前连接的虚拟网络
virsh net-list
停止/删除默认的虚拟网络
virsh net-destroy default
取消定义默认的虚拟网络
virsh net-undefine default
重新启动libvirtd守护进程
service libvirtd restart
再次列出当前连接的虚拟网络
virsh net-list
这时可以看到已经没有了;
再次查看桥接(bridge)列表
brctl show
发现virtbr0已经没有了;
解除并删除br0桥接网卡
解除网卡会导致远程连接连接不上,需要使用显示屏直连服务器或者在vmwar虚拟机中操作,在里面使用命令行模式操作,init 3转为完整的字符界面多用户操作;
#解除绑定ens33网卡
brctl delif br0 ens33
执行这一步就会断连,所以需要使用显示屏直连服务器或者在vmwar虚拟机中操作接下来的步骤;
我的是用的虚拟机测试,所以,在vmware中执行接下来的命令;
#关闭br0,不关闭删不掉
ifconfig br0 down
#删除br0
brctl delbr br0
#删除完在查看一下桥接(bridge)列表
brctl show
会发现桥接(bridge)列表中的 br0 桥接 ens33 已经没了,然后ip a查看ip时,ens33没有设置IP,所以,需要设置一下ip,然后重启服务,就可以连接上了;
#进入网络配置目录
cd /etc/sysconfig/network-scripts/
#删除br0的配置
rm -rf ifcfg-br0
#将最开始部署时备份的覆盖一下ens33网卡(要用到的网卡),如果最开始没有备份的话那么就重新配置一下,还和原来的一样,记住ip就可以
cp -ar ens33-bak ifcfg-ens33
#选择覆盖即可
#覆盖完可以校验查看一下
cat /etc/ifcfg-ens33
确认完成,就需要重启一下网络服务,使其生效
#确认完成,就需要重启一下网络服务,使其生效
/etc/init.d/network restart
查看IP
ip a
这样就修改完成了,我们就可以继续远程连接服务器了;
4、卸载服务
#卸载刚刚安装时的所有服务及相关依赖包
yum -y remove qemu-kvm\* python-virtinst\* libvirt\* libvirt-python\* virt-manager\* libguestfs-tools\* bridge-utils\* virt-install\*
#卸载完成之后,如果不确定可以在使用rpm查看一下是否还有这些包。
5、删除相关目录
#删除libvirt相关的目录,安装libvirt这个命令时就会产生,这几个存放位置是系统默认的,如果怕卸载不干净,可以使用find 查找
rm -rf /var/lib/libvirt /etc/libvirt /var/log/swtpm/libvirt /var/cache/libvirt /usr/lib64/libvirt
#kvm的iso镜像和存储路径(自定义的)
rm -rf /home/kvm
这样就卸载完成了!!!
提示:卸载完成之后,有的细心的人为了彻底让他卸载干净,也会去查询kvm等相关的目录,如果是查询kvm相关的目录的话,可能会有几个,因为你开了虚拟化,这是系统生产的,我也没有删除,我用的是虚拟机,只要把虚拟化关了,那几个目录就没了;至于删了是什么后果,可能会导致服务器远程连接不上…等等…未知问题,所以,kvm虚拟化相关的目录就不用删了,避免出现不必要的麻烦。