# 开始使用StratoVirt ## 1. 准备工作 * 主机操作系统 StratoVirt可以运行在x86_64和aarch64平台。 最重要的是StratoVirt是基于Linux内核的虚拟机(KVM)构建的,因此在运行的平台上需要保证有KVM内核模块的存在。 * 权限 需要保证对`/dev/kvm`有读写的权限。 如果没有,可以通过以下方式获取权限: ```shell $ sudo setfacl -m u:${USER}:rw /dev/kvm ``` ## 2. 获取StratoVirt StratoVirt在openEuler 20.09及之后的版本都有提供。 可以通过yum命令直接进行安装。 ```shell $ sudo yum install stratovirt ``` 安装完成后可以找到StratoVirt二进制的路径: `/usr/bin/stratovirt`. 如果需要自己构建StratoVirt二进制, 可以参考[构建指导](./build_guide.ch.md). ## 3. 运行StratoVirt 通过StratoVirt二进制(无论是通过yum安装获取或是通过源码构建获取),可以启动Linux客户机。 StratoVirt当前提供了两种虚拟机:微虚拟机和标准虚拟机(x86_64平台q35主板和aarch平台的virt主板)。 作为快速入门,以下展示启动微虚拟机。 首先,需要PE格式的Linux内核二进制和ext4文件系统镜像(作为rootfs)。 * `x86_64` 启动资源: [内核二进制](https://repo.openeuler.org/openEuler-22.03-LTS/stratovirt_img/x86_64/vmlinux.bin) and [rootfs镜像](https://repo.openeuler.org/openEuler-22.03-LTS/stratovirt_img/x86_64/openEuler-22.03-LTS-stratovirt-x86_64.img.xz). * `aarch64` 启动资源: [内核二进制](https://repo.openeuler.org/openEuler-22.03-LTS/stratovirt_img/aarch64/vmlinux.bin) and [rootfs镜像](https://repo.openeuler.org/openEuler-22.03-LTS/stratovirt_img/aarch64/openEuler-22.03-LTS-stratovirt-aarch64.img.xz). 也可以通过以下的shell脚本获取内核二进制和rootfs镜像: ```shell 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客户机: ```shell 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信息,请参考[配置指导](./config_guidebook.md).