Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OSv on new KVM-based AWS virtual machines #924

Open
nyh opened this issue Nov 16, 2017 · 5 comments
Open

OSv on new KVM-based AWS virtual machines #924

nyh opened this issue Nov 16, 2017 · 5 comments

Comments

@nyh
Copy link
Contributor

nyh commented Nov 16, 2017

Amazon recently switched their new instances to using KVM instead of Xen - see for example
https://www.theregister.co.uk/2017/11/07/aws_writes_new_kvm_based_hypervisor_to_make_its_cloud_go_faster/

We want OSv to be able to run on these new instances. @avikivity says that these instances will not support virtio-net or virtio-blk, and OSv will need NVMe and ENA drivers to support the disk and network, respectively, on these VMs :-(

@rodlogic
Copy link

rodlogic commented Dec 1, 2017

What would it take to get these drivers in place?

@gburd
Copy link

gburd commented Dec 1, 2017 via email

@avikivity
Copy link
Member

  1. Write an NVMe driver for OSv; this should be easy, since the protocol is simple and well documented, and can be tested on QEMU's NVMe implementation
  2. Write (or port) the ena driver. This is harder since you have to test it on AWS.

@nyh
Copy link
Contributor Author

nyh commented Dec 28, 2017

If someone is curious what Amazon did in these new instance types, and why, Anthony Liguori has a very good explanation (38-minute video) here:

https://www.youtube.com/watch?time_continue=2&v=LabltEXk0VQ

He explains why they have thesse NVMe and ENA devices with a hardware backend (created by a startup they bought, Annapurna Labs) instead of software in Xen, and that they already have done this incrementally for several years as an additional option, but now they took one final step - dropping the old Xen device support (and Xen itself). They also replaced Xen with KVM, but did not use QEMU, and thus none of QEMU's virtio code is available. By not supporting the older Xen paravirtual protocols and using hardware accelerators, more CPU cores (and more CPU time per core) are available for the users. There is no real reason why they cannot provide slower virtio emulation, but also no real reason for them to do it...

@geraldo-netto
Copy link
Contributor

Dear Friends,

I don't know if it's still relevant but maybe we could consider the NVMe/ENA driver from FreeBSD:
https://github.com/amzn/amzn-drivers/tree/master/kernel/fbsd/ena
https://github.com/freebsd/freebsd/tree/master/sys/dev/nvme

Kind Regards,
Geraldo Netto

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants