VirtualBox 有一个鲜为人知的功能,称为 WarpDrivePercentage。这允许您以更快或更慢的速度运行虚拟机(有一些注意事项)。我们有一个在 KVM 中模拟机顶盒的测试环境,这样的功能可能让我们能够执行更多测试。
答案1
硬解决方案:
我在 KVM 文档中没有看到内置选项,但您可以调整系统时间。首先,检查您的 KVM 安装使用的时钟:
$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource
很有可能kvm-clock
。如果是这样,您有几个选择。kvm-clock
实时更新时间使用以下结构:
struct pvclock_vcpu_time_info {
u32 version;
u32 pad0;
u64 tsc_timestamp;
u64 system_time;
u32 tsc_to_system_mul;
s8 tsc_shift;
u8 flags;
u8 pad[1];
} __attribute__((__packed__));
您可以在主机上编写一个包装器来拦截此操作并输出加速版本的时间。您也可以kvm-clock
自行重建,pvclock_vcpu_time_info
用自定义逻辑替换以输出带有时间增量的 UTC 时间,就像libvirt
其偏移变量 <clock offset="variable" adjustment="123456" />
更简单的解决方案:
继续使用virtualbox
。或者xen
有可比较期权您可以自行"xen.independent_wallclock = 1"
安排时间。
最简单的解决方案:
问问你为什么需要这样加速时间?我想不出机顶盒需要这个的很多理由。而且使用假时间包装器在代码中处理可能比在操作系统级别更容易。通过弄乱时间,你会弄乱 NTP、日志和大量其他东西。