今日天气
  1. 博客/

Centos7 编译安装 Qemu 及安装 libvirt 管理工具

·1061 字·3 分钟· ·
vm kvm centos7
Johny
作者
Johny
熟练的 云原生搬砖师
Table of Contents

 环境说明
#

  • 操作系统: CentOS 7.9.2009

  • Qumu 版本: 5.2.0

  • Libvirt 版本: 5.4.0

    Libvirt 高版本 没有尝试安装成功,如对高版本安装感兴趣的话可以参考这篇 文档

编译安装 Qemu
#

⚠️ 注意下面操作的命令多在 /data 目录下进行。

获取源码
#

如果国内用户 下载慢的话 可以使用 此链接 下载

wget https://download.qemu.org/qemu-5.2.0.tar.xz  

tar xf qemu-5.2.0.tar.xz

安装依赖
#

Yum 安装软件依赖
#

yum -y install gcc gcc-c++ automake libtool zlib-devel glib2-devel bzip2-devel libuuid-devel spice-protocol spice-server-devel usbredir-devel libaio-devel wget python3 bzip2

安装 ninja
#

Ninja 是 Google的一名程序员推出的注重速度的构建工具,一般在Unix/Linux上的程序通过 make/makefile 来构建编译,而Ninja通过将编译任务并行组织,大大提高了构建速度,而 qemu 现在采用的是基于 ninja 的构建系统,所以我们需要安装ninja。

git clone git://github.com/ninja-build/ninja.git && cd ninja

./configure.py --bootstrap

cp ninja /usr/bin/

ninja --version
1.10.2.git

创建 build 目录 及 设置编译参数
#

cd /data

mkdir qemu-build && cd qemu-build

../qemu-5.2.0/configure --enable-kvm --target-list="arm-softmmu i386-softmmu x86_64-softmmu arm-linux-user i386-linux-user x86_64-linux-user" --enable-debug  --cpu=x86_64
  • --enable-kvm 让 Qemu 支持 kvm
  • --target-list=<架构名> 准备编译哪一种CPU架构的 Qemu,‘x86_64-softmmu’ 表示目标为 x86 64位的CPU
  • --enable-debug 开启 debug 功能
  • --cpu 指定本机 cpu 架构

make 编译安装
#

make -j$(getconf _NPROCESSORS_ONLN) \
&& make install

创建软链接
#

ln -sf /usr/local/bin/qemu-system-x86_64 /usr/bin/qemu-kvm
ln -sf /usr/local/bin/qemu-system-x86_64 /usr/libexec/qemu-kvm

测试检查
#

# qemu-img --version
qemu-img version 5.2.0
Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers

# qemu-kvm --version
QEMU emulator version 5.2.0
Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers

编译安装 Qemu 管理工具 libvirt
#

Yum & pip 安装构建时 需要的依赖
#

yum -y install virt-install

yum -y install libnl-devel libxml2-devel yajl-devel device-mapper-devel libpciaccess-devel gnutls* libxslt libtirpc-devel libacl-devel libacl

pip3 install rst2html5

Meson 工具安装
#

Meson是基于python3实现,至少需要 python3.5 才能运行,默认采用 ninja 作为后端,此步骤已在上面安装 Qemu 时已有配置。

pip3 install meson

meson --version
0.57.1

下载源码
#

版本列表 地址

如果国内用户 下载慢的话 可以使用 此链接 下载

wget https://libvirt.org/sources/libvirt-5.4.0.tar.xz

编译安装
#

tar xf libvirt-5.4.0.tar.xz

cd libvirt-5.4.0/

./autogen.sh --system

make -j$(getconf _NPROCESSORS_ONLN) \
&& make install

安装管理工具包
#

yum -y install virt-manager virt-viewer bridge-utils

yum -y install libXdmcp libxkbfile xorg-x11-xkb-utils

版本检查 查看
#

virsh version
根据库编译:libvirt 5.4.0
使用库:libvirt 5.4.0
使用的 API: QEMU 5.4.0
运行管理程序: QEMU 5.2.0

启动服务 并 设置开机自启
#

service libvirtd start \
&& systemctl enable libvirtd

$ virsh list --all
 Id    名称                         状态
----------------------------------------------------

创建 br0 网卡网桥
#

示例将 ens27f0 网卡作为桥接网卡

cp  /etc/sysconfig/network-scripts/ifcfg-ens27f0{,.bak}  # 修改前最好做一次备份操作

cat > /etc/sysconfig/network-scripts/ifcfg-ens27f0 << EOF
DEVICE=ens27f0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=no
BRIDGE=br0
EOF

cat > /etc/sysconfig/network-scripts/ifcfg-br0 << EOF
DEVICE="br0"
BOOTPROTO="static"
IPADDR="192.168.1.43"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS1="192.168.1.112"
ONBOOT="yes"
TYPE="Bridge"
NM_CONTROLLED="no"
EOF

service network restart  # 重启网卡。 注意此操作为危险操作。请将配置文件检查正确无误后再谨慎操作,可导致服务器无法正常远程。

image-20210225100545161

验证 安装是否正确
#

这里使用 其他机器上的 模板虚拟机 进行测试。

mkdir -p  /data/KvmData /data/qemu-xml # 创建虚拟机文件存放目录

方法一,在另外一台机器上导出 虚拟机定义文件,并 cp 至需测试的机器上。
#

virsh dumpxml template > template.xml  # 导出 虚拟机定义文件

scp template.xml 192.168.1.43:/data/qemu-xml  # cp 虚拟机 元数据文件 至 测试机

scp /data/KvmData/template.img 192.168.1.43:/data/KvmData # cp 虚拟机磁盘文件 至 测试机

virsh define --file ./templatexml

virsh start template

image-20210225102220521

方法二,测试创建虚拟机
#

mkdir -p /data/KvmData

qemu-img create -f raw /data/KvmData/centos7_0.raw 40G


virt-install --name centos7 \
--virt-type kvm \
--vcpus 2 \
--ram 2048 \
--cdrom=/data/iso/CentOS-7-x86_64-Minimal-2009.iso \
--disk=/data/KvmData/centos7_0.raw,cache=none \
--network bridge=br0  \
--os-type linux \
--os-variant rhel7 \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole

image-20210319174036305

使用 vnc 远程工具 远程

image-20210319174617825

默认没有 账号密码,回车即可远程连接上。

相关文章

VMware ESXi Clone 复制虚拟机
·190 字·1 分钟·
vm vmware esxi
Jira & confluence 安装 并 配置 破解激活
·1146 字·3 分钟·
devops jira install confluence
使用 斐讯n1 & openWrt 搭建 k3s 集群
·3283 字·7 分钟·
k3s openwrt n1
在 Kubernetes 中部署 nfs storageClass
·1026 字·3 分钟·
devops k8s storage-class nfs
使用 Confluentinc 在 Kubernetes 集群中部署 Kafka 集群
·1133 字·3 分钟·
k8s kafka zookeeper helm
Rancher 单机部署,进行升级后,导致docker无法正常启动
·586 字·2 分钟·
k8s fix docker rancher