108 Star 473 Fork 238

GVPopenEuler / stratovirt

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
quickstart.ch.md 3.59 KB
一键复制 编辑 原始数据 按行查看 历史
yan_ace 提交于 2023-12-13 20:58 . Updated documentation tutorials.

开始使用StratoVirt

1. 准备工作

  • 主机操作系统

    StratoVirt可以运行在x86_64和aarch64平台。

    最重要的是StratoVirt是基于Linux内核的虚拟机(KVM)构建的,因此在运行的平台上需要保证有KVM内核模块的存在。

  • 权限

    需要保证对/dev/kvm有读写的权限。 如果没有,可以通过以下方式获取权限:

    $ sudo setfacl -m u:${USER}:rw /dev/kvm

2. 获取StratoVirt

StratoVirt在openEuler 20.09及之后的版本都有提供。 可以通过yum命令直接进行安装。

$ sudo yum install stratovirt

安装完成后可以找到StratoVirt二进制的路径: /usr/bin/stratovirt.

如果需要自己构建StratoVirt二进制, 可以参考构建指导.

3. 运行StratoVirt

通过StratoVirt二进制(无论是通过yum安装获取或是通过源码构建获取),可以启动Linux客户机。 StratoVirt当前提供了两种虚拟机:微虚拟机和标准虚拟机(x86_64平台q35主板和aarch平台的virt主板)。 作为快速入门,以下展示启动微虚拟机。 首先,需要PE格式的Linux内核二进制和ext4文件系统镜像(作为rootfs)。

也可以通过以下的shell脚本获取内核二进制和rootfs镜像:

arch=`uname -m`
dest_kernel="vmlinux.bin"
dest_rootfs="rootfs.ext4"
image_bucket_url="https://repo.openeuler.org/openEuler-22.03-LTS/stratovirt_img"

if [ ${arch} = "x86_64" ] || [ ${arch} = "aarch64" ]; then
    kernel="${image_bucket_url}/${arch}/vmlinux.bin"
    rootfs="${image_bucket_url}/${arch}/openEuler-22.03-LTS-stratovirt-${arch}.img.xz"
else
    echo "Cannot run StratoVirt on ${arch} architecture!"
    exit 1
fi

echo "Downloading $kernel..."
wget ${kernel} -O ${dest_kernel} --no-check-certificate

echo "Downloading $rootfs..."
wget ${rootfs} -O ${dest_rootfs}.xz --no-check-certificate
xz -d ${dest_rootfs}.xz

echo "kernel file: ${dest_kernel} and rootfs image: ${dest_rootfs} download over."

启动StratoVirt客户机:

socket_path=`pwd`"/stratovirt.sock"
kernel_path=`pwd`"/vmlinux.bin"
rootfs_path=`pwd`"/rootfs.ext4"

# 保证QMP通信socket文件路径可以被创建。
rm -f ${socket_path}

# 通过StratoVirt启动轻量化机型的Linux客户机。
/usr/bin/stratovirt \
    -machine microvm \
    -kernel ${kernel_path} \
    -smp 1 \
    -m 1024 \
    -append "console=ttyS0 pci=off reboot=k quiet panic=1 root=/dev/vda" \
    -drive file=${rootfs_path},id=rootfs,readonly=off,direct=off \
    -device virtio-blk-device,drive=rootfs,id=rootfs \
    -qmp unix:${socket_path},server,nowait \
    -serial stdio

在标准输入输出串口上提示登入客户机。 如果使用我们提供的openEuler-22.03-LTS-stratovirt.img镜像, 可以使用用户名root和密码openEuler12#$进行登入。

如果想要停止客户机,可以通过在客户机内部输入reboot命令来实际关闭StratoVirt。 这是因为StratoVirt没有在微虚拟机类型中实现电源管理。

如果需要了解更多关于运行StratoVirt信息,请参考配置指导.

1
https://gitee.com/openeuler/stratovirt.git
git@gitee.com:openeuler/stratovirt.git
openeuler
stratovirt
stratovirt
master

搜索帮助