前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KVM--虚拟化环境安装(一)

KVM--虚拟化环境安装(一)

作者头像
Kevin song
发布2022-06-07 18:14:12
1.8K0
发布2022-06-07 18:14:12
举报
文章被收录于专栏:运维监控日志分析

开始部署前了解下KVM-Qemu-Libvirt-Openstack之间的关系

Qemu

Qemu是一个模拟器,它向Guest OS模拟CPU和其他硬件,Guest OS认为自己和硬件直接打交道,其实是同Qemu模拟出来的硬件打交道,Qemu将这些指令转译给真正的硬件。

由于所有的指令都要从Qemu里面过一手,因而性能较差。

KVM

KVM是linux内核的模块,它需要CPU的支持,采用硬件辅助虚拟化技术Intel-VT,AMD-V,内存的相关如Intel的EPT和AMD的RVI技术,Guest OS的CPU指令不用再经过Qemu转译,直接运行,大大提高了速度,KVM通过/dev/kvm暴露接口,用户态程序可以通过ioctl函数来访问这个接口。

KVM内核模块本身只能提供CPU和内存的虚拟化,所以它必须结合QEMU才能构成一个完成的虚拟化技术,这就是下面要说的qemu-kvm。

qemu-kvm

Qemu将KVM整合进来,通过ioctl调用/dev/kvm接口,将有关CPU指令的部分交由内核模块来做。kvm负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备。qemu模拟IO设备(网卡,磁盘等),kvm加上qemu之后就能实现真正意义上服务器虚拟化。因为用到了上面两个东西,所以称之为qemu-kvm。

Qemu模拟其他的硬件,如Network, Disk,同样会影响这些设备的性能,于是又产生了pass through半虚拟化设备virtio_blk, virtio_net,提高设备性能。

libvirt

libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和API。Libvirtd是一个daemon进程,可以被本地的virsh调用,也可以被远程的virsh调用,Libvirtd调用qemu-kvm操作虚拟机。

Openstack

Openstack不会直接控制qemu-kvm,使用libvirt库去间接控制qemu-kvm。libvirt提供了跨VM平台的功能,它可以控制除了QEMU之外的模拟器,包括vmware, virtualbox, xen等等。

所以为了openstack的跨VM性,openstack只会用libvirt而不直接用qemu-kvm。libvirt还提供了一些高级的功能,例如pool/vol管理。

(一)检查硬件的相关

1,查看cpu型号,物理cpu颗数

代码语言:javascript
复制
[root@kvm-node1 ~]# cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq -c
      1  Intel(R) Core(TM) i5-6260U CPU @ 1.80GHz
[root@kvm-node1 ~]# cat /proc/cpuinfo | grep physical | sort -n | uniq -c
      1 address sizes   : 43 bits physical, 48 bits virtual
      1 physical id     : 0              ###说明有一颗cpu,颗数是从0开始的

2,查看内存

代码语言:javascript
复制
[root@kvm-node1 ~]# dmidecode|grep -A5 "Memory Device"|grep Size | cut -d: -f2 | sort -n | uniq -c
    127  No Module Installed
     63  1 kB
      1  8 GB
      1  8192 MB                          ###接了一根内存,每根内存的大小为8G

(二)安装kvm

1,查看服务器是否支持虚拟化

代码语言:javascript
复制
[root@kvm-node1 ~]# grep -E -o 'vmx|svm' /proc/cpuinfo
vmx

确保BIOS里开启虚拟化功能,查看是否加载KVM模块

代码语言:javascript
复制
[root@kvm-node1 kvm]# lsmod |grep kvm
kvm_intel             188740  0 
kvm                   637289  1 kvm_intel
irqbypass              13503  1 kvm

如果没有加载,运行以下命令

代码语言:javascript
复制
[root@kvm-node1 kvm]# modprobe kvm
[root@kvm-node1 kvm]# modprobe kvm-intel

内核模块导出了一个名为/dev/kvm的设备,将虚拟机的的地址空间独立于内核或者任何应用程序的地址空间。

代码语言:javascript
复制
[root@kvm-node1 kvm]# ll /dev/kvm
crw-rw-rw- 1 root kvm 10, 232 May 16 00:11 /dev/kvm

2,安装kvm软件包

yum install -y qemu-kvm qemu-img qemu-kvm-tools virt-manager libvirt virt-install virt-viewer virt-v2v bridge-utils

kvm相关安装包及其作用

  • qemu-kvm #kvm模块
  • qemu-img #qemu组件,使用qemu命令来创建磁盘,启动虚拟机等
  • qemu-kvm-tools #kvm调试工具
  • libvirt #虚拟机管理工具,可以使用virsh命令行来管理虚拟机
  • virt-manager #图形界面的管理虚拟机的工具
  • virt-install #虚拟客户机的安装命令行工具
  • virt-viewer #GUI连接程序,连接到已配置好的虚拟机
  • virt-top #用于展示虚拟化客户机运行状态和资源使用率的工具
  • bridge-utils #网络桥接支持工具

3,安装kvm虚拟化管理工具包

代码语言:javascript
复制
[root@kvm-node1 ~]# yum install  libguestfs-tools -y

libguestfs是用于访问和修改虚拟机的磁盘镜像的一组工具集合。libguestfs提供了访问和编辑客户机中的文件、脚本化修改客户机中的信息、监控磁盘使用和空闲的统计信息、P2V、V2V、创建客户机、克隆客户机、备份磁盘内容、格式化磁盘、调整磁盘大小等非常丰富的功能。

libguestfs-tools提供了很多工具,可以分别对应不同的功能和使用场景,如:

  • virt-ls用于列出虚拟机中的文件
  • virt-copy-in用于往虚拟机中复制文件或目录
  • virt-copy-out用于从虚拟机往外复制文件或目录
  • virt-resize用于调整磁盘大小
  • virt-cat用于显示虚拟机中的一个文件的内容
  • virt-edit用于编辑虚拟机中的文件
  • virt-df用于查看虚拟机中文件系统空间使用情况

4,查看虚拟机的相关环境

代码语言:javascript
复制
[root@kvm-node1 ~]systemctl  restart libvirtd
[root@kvm-node1 ~]# virsh -c qemu:///system list
 Id    Name                           State
----------------------------------------------------

查看virsh的版本

代码语言:javascript
复制
[root@kvm-node1 ~]# virsh --version 
4.5.0

查看 virt-install工具的版本

代码语言:javascript
复制
[root@kvm-node1 ~]# virt-install --version   
1.5.0

查看qemu-kvm版本

代码语言:javascript
复制
[root@kvm-node1 ~]# ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
[root@kvm-node1 ~]# qemu-kvm -version
QEMU emulator version 1.5.3 (qemu-kvm-1.5.3-175.el7_9.5), Copyright (c) 2003-2008 Fabrice Bellard

5,手动创建虚拟网桥

a,停用NetworkManager服务

代码语言:javascript
复制
#查看状态
systemctl   status   NetworkManager
#停止NetworkManager
systemctl   stop   NetworkManager
#关闭开机启动
systemctl   disable   NetworkManager

b,创建br0网桥

代码语言:javascript
复制
cat   /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0
IPADDR=192.168.10.225
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=114.114.114.114
代码语言:javascript
复制
cat   /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.225
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=114.114.114.114

c,重启网络

代码语言:javascript
复制
systemctl   restart  network

d,查看网桥br0

代码语言:javascript
复制
ip add show

e,查看网桥

代码语言:javascript
复制
[root@kvm-node1 ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.000c293ae6c4       no              ens33
virbr0          8000.525400eb3239       yes             virbr0-nic

KVM可视化管理工具

virt-manager

Virtual Machine Manager (virt-manager) 是一个轻量级应用程序套件,形式为一个管理虚拟机的命令行或图形用户界面 (GUI)。除了提供对虚拟机的管理功能外,virt-manager 还通过一个嵌入式虚拟网络计算 (VNC) 客户端查看器为 Guest 虚拟机提供一个完整图形控制台。

virt-manager可以通过命令行和图形化两种形式。

如宿主机未安装图形化,可使用以下命令来安装图形化:

代码语言:javascript
复制
yum -y groupinstall "GNOME Desktop"

安装X Window System

代码语言:javascript
复制
yum groupinstall "X Window System" -y

默认系统启动默认还是命令行,使系统启动即为图形化窗口,需要执行下面的命令

代码语言:javascript
复制
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

命令行模式

代码语言:javascript
复制
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

图形界面模式

代码语言:javascript
复制
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

重启系统,当系统再次启动,默认进入图形界面

CentOS7的命令行模式与图形界面相互切换

systemctl get-default //获取当前系统启动模式

更改模式命令

systemctl set-default graphical.target //由命令行模式更改为图形界面模式

systemctl set-default multi-user.target //由图形界面模式更改为命令行模式

重启验证是否正确

代码语言:javascript
复制
systemctl  reboot
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源搬运工宋师傅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档