- 博客/
Centos7 编译安装 Qemu 及安装 libvirt 管理工具
作者
Johny
熟练的 云原生搬砖师
Table of Contents
环境说明#
编译安装 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 # 重启网卡。 注意此操作为危险操作。请将配置文件检查正确无误后再谨慎操作,可导致服务器无法正常远程。
验证 安装是否正确#
这里使用 其他机器上的 模板虚拟机 进行测试。
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
方法二,测试创建虚拟机#
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
使用 vnc 远程工具 远程
默认没有
账号
和密码
,回车即可远程连接上。
相关文章
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