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

Hyper-V/Azure support (feature request) #1894

Open
forderud opened this issue Sep 13, 2018 · 6 comments
Open

Hyper-V/Azure support (feature request) #1894

forderud opened this issue Sep 13, 2018 · 6 comments

Comments

@forderud
Copy link
Contributor

forderud commented Sep 13, 2018

It would be great if IncludeOS could be extended to also support the Hyper-V hypervisor. That would enable VMs to also be deployed on the Azure cloud, as well as on Windows 10 without installing any 3rd party hypervisor.

This feature request relates to #1603 (document Hyper-V compatibility).

Some relevant resources

OSv Hyper-V support:

Microsoft documentation:

@MikeGitb
Copy link

That would be really great. Are there any plans in that direction? What would be necessary?

@alfreb
Copy link
Contributor

alfreb commented Mar 22, 2019

I just looked at the spec posted above and that looks pretty straightforward. The big question is virtual nic's for networking - does it support virtio or intel e1000e? We don't have any concrete plans for this at the moment but would be happy to help if anyone wants to give it a go.

I notice @forderud made an attempt in #1603; that graphical output is from our own legacy bootloader which relies on IDE to load the actual binary. This typically doesn't work on modern hypervisors unless you explicitly specify that the main HDD is IDE. I'd suggest starting with a grub image similar to what we boot on vmware (we use the ./etc/grubify.sh script but I think grub-mkrescue is better). The difference with grub first stage loader iirc is that it will call into the bios for loading, and the bios will then use the correct driver for loading the image from the disk.

@MikeGitb
Copy link

We don't have any concrete plans for this at the moment but would be happy to help if anyone wants to give it a go.

Unfortunately I'm neither familiar with the hyper-v "bare-metal" surface, nor x86 or include OS driver /botloader development in general. I just wanted to try out includeOS and hoped I could avoid installing a linuxVM in which then to test use include OS.

AFAIK, hyper-v doesn't support virtio and according to http://techgenix.com/hyper-v-network-adapter-differences-192/ (A brief google search didn't turn up the the official documentation), the legacy NIC you can attach to a VM emulates a DEC 21140. So I guess the NIC driver would have to be completely rewritten in order to work in Hyper-v. :(

@hklabbers
Copy link

Any OS can be installed as a Hyper-V guest in 'full virtualization'. The only pre-condition is that the Digitale Equipment Corporation 21140 NIC (a.k.a. tulip) is supported in the guest OS. I started today to implement this driver for IncludeOS.

When you want to use a so called 2nd generation VM, the Hyper-V bus must be implemented. Microsoft donated an implementation to the Open Source domain. The Linux Integration Services (LIS) is an implementation that contains the vmbus and other parts needed for paravirtualization. This implementation is in the linux kernel and is licensed under GPL. I'm not a license expert, but I think that this license is not compatible with the apache license used by IncludeOS. Can someone with knowledge on Open Source licenses shed a light on the compatibility of licenses?

@alfreb alfreb assigned alfreb and unassigned alfreb Apr 29, 2019
@alfreb
Copy link
Contributor

alfreb commented Apr 29, 2019

@hklabbers that sounds great, thanks. Make sure to do this work towards the dev branch so that it fits with the new conan workflow. Looking forward to your PR - don't hesitate shout if there's anything we can do to help.

@MikeGitb
Copy link

Any updates here?

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

No branches or pull requests

4 participants