1 个不稳定版本

0.1.0 2023年7月24日

#1022硬件支持

Apache-2.0 OR BSD-3-Clause

34KB
594

vhost-device-rng - RNG 模拟后端守护进程

描述

此程序是一个 vhost-user 后端,用于模拟 VirtIO 随机数生成器 (RNG)。它使用宿主的随机数生成器池,默认为 /dev/urandom,但可以任意配置,以满足虚拟机的请求。

守护进程旨在通过使用 --max-bytes 和 --period 选项来尊重可能的随机生成器硬件的限制。例如,每秒5千字节将转换为"--max-bytes 5000 --period 1000"。如果一个应用程序请求超过允许的限度的字节,则线程将阻塞到新周期开始。当请求多个线程时,守护进程将自动在虚拟机之间平均分配可用的带宽。

与 QEMU 开发和测试,实现基于 vhost-user 协议,因此应与其他虚拟机管理程序兼容。请参阅下面的示例。

概要

vhost-device-rng [选项]

选项

.. 程序:: vhost-device-rng

.. 选项:: -h, --help

打印帮助。

.. 选项:: -s, --socket-path=PATH

vhost-user Unix 域套接字的位置,此路径将附加 0,1,2..socket_count-1。

.. 选项:: -f, --filename 随机数生成器源文件,默认为 /dev/urandom。

.. 选项:: -c, --socket-count=INT

附加到虚拟机的数量(套接字),默认设置为 1。

.. 选项:: -p, --period

以毫秒为单位的 RNG 硬件生成随机数据速率。与 --max-bytes 选项一起使用。

.. 选项:: -m, --max-bytes

与--period参数结合使用,提供RNG设备每毫秒可以生成的最大字节数。

示例

应首先启动守护进程

::

host# vhost-device-rng --socket-path=/some/path/rng.sock -c 1 -m 512 -p 1000

注意,从上述命令中可以看出,将创建套接字路径"/some/path/rng.sock0"。这需要将其作为chardev套接字与QEMU进行通信,以便后端RNG设备能够与vhost RNG守护进程通信

::

host# qemu-system -M virt
-object memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on
-chardev socket,path=/some/path/rng.sock0,id=rng0
-device vhost-user-rng-pci,chardev=rng0
-numa node,memdev=mem
...

许可证

本项目许可采用以下其中之一

依赖项

~8–19MB
~253K SLoC