CentOS7 KVM虚拟化技术
# CentOS7 KVM虚拟化技术
# 虚拟化介绍
虚拟化:是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互相不影响,从而显著提高计算机的工作效率。
虚拟化层层种类:完全虚拟化、准虚拟化、系统虚拟化、桌面虚拟化
# KVM介绍
kVM 全称是 Kernel-Based Virtual Machine。也就是说 KVM 是基于 Linux 内核实现的。 KVM有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存。
那 IO 的虚拟化,比如存储和网络设备则是由 Linux 内核与Qemu来实现。 作为一个 Hypervisor,KVM 本身只关注虚拟机调度和内存管理这两个方面。IO 外设的任务交给 Linux 内核和 Qemu。
KVM,是一个开源的系统虚拟化模块,自 Linux 2.6.20 之后集成在Linux的各个主要发行版本中。 它使用 Linux自身的调度器进行管理,所以相对亍Xen,其核心源码很少。KVM 目前已成为学术界的主 流 VMM(虚拟机监控器)之一。KVM的虚拟化需要硬件支持(如 Intel VT技术戒者 AMD V技术)。是基于硬件的完全虚拟化。而 Xen 早期则是基于软件模拟的 Para-Virtualization。
# KVM实际操作
提示
新建虚拟机,内存40G
- 查看 CPU 是否支持硬件虚拟化技术
Intel: cat /proc/cpuinfo | grep --color vmx (指的是酷睿处理器)
AMD: cat /proc/cpuinfo | grep --color svm (指的是锐龙处理器)
2
出现红色的
vmx
就可以继续
- 本地yum源
vim m.repo
把下面内容粘进去,:wq
保存退出
[m]
name=m
baseurl=file:///mnt
enabled=1
gpgcheck=0
2
3
4
5
- 安装KVM模块、管理工具和 libvirt,命令行安装
yum -y install qemu-kvm libvirt libguestfs-tools virt-install virt-manager libvirt-python
解释:
qemu-kvm : kvm 主程序, KVM虚拟化模块
virt-manager: KVM图形化管理工具
libvirt: 虚拟化服务
libguestfs-tools : 虚拟机的系统管理工具
virt-install : 安装虚拟机的实用工具 。比如 virt-clone克隆工具就是这个包安装的
libvirt-python : python 调用libvirt 虚拟化服务的 api 接口库文件
- 开启并查看安装KVM后的服务
- 开启虚拟化服务
systemctl start libvirtd
- 设置 libvirtd服务开机启动
systemctl enable libvirtd
- 查看正在加载kvm模块
[root@frx01 ~]# lsmod | grep kvm
kvm_intel 188740 0
kvm 637515 1 kvm_intel
irqbypass 13503 1 kvm
2
3
4
lsmod——显示已载入系统的模块
lsmod
- 将kvm管理工具从英文界面,切换成中文界面
[root@frx01 ~]# echo $LANG
zh_CN.UTF-8 #中文哈
2
LANG='zh_CN.UTF-8' #如果是英文,把英文改为中文
# KVM配置网络
网桥介绍: 我们经常所说的 Bridge设备其实就是网桥设备,也就相当于现在的二层交换机,用于连接 同一网段内的所有机器,所以我们的目的就是将网络设备 eth0添加到 br0,此时 br0 就成为了所谓的交 换机设备,我们物理机的 eth0也是连接在上面的。
添加桥接设备 br0: 相当于一个二层交换机
- 安装桥设备工具
yum -y install net-tools bridge-utils
- 编辑网卡桥接文件cloudbr
[root@frx01 ~]# cd /etc/sysconfig/network-scripts/
[root@frx01 network-scripts]# ls
ifcfg-ens33 ifdown-post ifup-eth ifup-sit
ifcfg-ens33.bak ifdown-ppp ifup-ib ifup-Team
ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort
ifdown ifdown-sit ifup-ipv6 ifup-tunnel
ifdown-bnep ifdown-Team ifup-isdn ifup-wireless
ifdown-eth ifdown-TeamPort ifup-plip init.ipv6-global
ifdown-ib ifdown-tunnel ifup-plusb network-functions
ifdown-ippp ifup ifup-post network-functions-ipv6
ifdown-ipv6 ifup-aliases ifup-ppp
ifdown-isdn ifup-bnep ifup-routes
[root@frx01 network-scripts]# vim ifcfg-cloudbr0 #是零
2
3
4
5
6
7
8
9
10
11
12
13
添加一下内容
警告
网段使用你自己的网段,我的是192.168.197.1,查看自己的网段步骤
TYPE="Bridge"
BOOTPROTO="none"
DEVICE="cloudbr0"
ONBOOT="yes"
IPADDR="192.168.197.188" #需要修改
NETMASK="255.255.255.0"
GATEWAY="192.168.197.2" #需要修改
DNS1="192.168.197.2" #需要修改
STP="yes"
2
3
4
5
6
7
8
9
保存退出
- 设置网卡文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
把我们原来的静态IP配置删除,添加一行BRIDGE=cloudbr0
保存退出
- 重启网络服务
systemctl restart network
- 测试是否可以上网
[root@frx01 network-scripts]# ping www.baidu.com
PING www.a.shifen.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=128 time=35.8 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=2 ttl=128 time=30.9 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=3 ttl=128 time=34.3 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=4 ttl=128 time=35.8 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=5 ttl=128 time=35.8 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=6 ttl=128 time=30.0 ms
^C
--- www.a.shifen.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5007ms
rtt min/avg/max/mdev = 30.035/33.825/35.888/2.432 ms
2
3
4
5
6
7
8
9
10
11
12
- 查询网桥信息
[root@frx01 network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
cloudbr0 8000.000c29dad62a no ens33
virbr0 8000.525400b1a5d4 yes virbr0-nic
2
3
4
# 图形操作
- 使用XFTP把最小化镜像传输到Linux系统
mkdir /opt/minmal-linux
cd /opt/minmal-linux
2
右键传输一下就OK
- 打开创建虚拟机使用命令:
virt-manager
前进
前进,前进,前进
完成
继续,最小安装,取消启用KDUMP,主机名想改改,分区点击那个硬盘,完成
- 开始安装
设置root密码
普通用户想创建创建
安装完成,重启
# 结果
# 参考资料
- https://blog.csdn.net/m0_50019871/article/details/109581648?spm=1001.2014.3001.5502