环境说明
-
操作系统: CentOS 7.9.2009
-
Qumu 版本: 5.2.0
-
Libvirt 版本: 5.4.0
Libvirt 高版本 没有尝试安装成功,如对高版本安装感兴趣的话可以参考这篇 文档
编译安装 Qemu
⚠️ 注意下面操作的命令多在 /data
目录下进行。
获取源码
如果国内用户 下载慢的话 可以使用 此链接 下载
1
2
3
|
wget https://download.qemu.org/qemu-5.2.0.tar.xz
tar xf qemu-5.2.0.tar.xz
|
安装依赖
Yum 安装软件依赖
1
|
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。
1
2
3
4
5
6
7
8
|
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 目录 及 设置编译参数
1
2
3
4
5
|
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 编译安装
1
2
|
make -j$(getconf _NPROCESSORS_ONLN) \
&& make install
|
创建软链接
1
2
|
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
|
测试检查
1
2
3
4
5
6
7
|
# 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 安装构建时 需要的依赖
1
2
3
4
5
|
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 时已有配置。
1
2
3
4
|
pip3 install meson
meson --version
0.57.1
|
下载源码
版本列表 地址
如果国内用户 下载慢的话 可以使用 此链接 下载
1
|
wget https://libvirt.org/sources/libvirt-5.4.0.tar.xz
|
编译安装
1
2
3
4
5
6
7
8
|
tar xf libvirt-5.4.0.tar.xz
cd libvirt-5.4.0/
./autogen.sh --system
make -j$(getconf _NPROCESSORS_ONLN) \
&& make install
|
安装管理工具包
1
2
3
|
yum -y install virt-manager virt-viewer bridge-utils
yum -y install libXdmcp libxkbfile xorg-x11-xkb-utils
|
版本检查 查看
1
2
3
4
5
|
virsh version
根据库编译:libvirt 5.4.0
使用库:libvirt 5.4.0
使用的 API: QEMU 5.4.0
运行管理程序: QEMU 5.2.0
|
启动服务 并 设置开机自启
1
2
3
4
5
6
|
service libvirtd start \
&& systemctl enable libvirtd
$ virsh list --all
Id 名称 状态
----------------------------------------------------
|
创建 br0 网卡网桥
示例将 ens27f0
网卡作为桥接网卡
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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 # 重启网卡。 注意此操作为危险操作。请将配置文件检查正确无误后再谨慎操作,可导致服务器无法正常远程。
|
验证 安装是否正确
这里使用 其他机器上的 模板虚拟机 进行测试。
1
|
mkdir -p /data/KvmData /data/qemu-xml # 创建虚拟机文件存放目录
|
方法一,在另外一台机器上导出 虚拟机定义文件,并 cp 至需测试的机器上。
1
2
3
4
5
6
7
8
9
|
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
|
方法二,测试创建虚拟机
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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 远程工具 远程
默认没有 账号
和 密码
,回车即可远程连接上。