Currently, the usual way to communicate with VM instances in the cloud from outside is ssh. This is okay for most uses, but a) does not work when you mess up with the guest's ability to network and b) requires a free floating IP.

I wonder if, for qemu/kvm instances, it would be possible to use virtio-serial possibilities : from the guest, it is seen as a serial port, and from the outside, it is seen as a UNIX socket, or as something else. It is fast, as it does not go through virtualization and device drivers.

Maybe that exists already, or people are already working on it. Maybe that's what they already use for the "console" in the cloud dashboard (or do they use VNC?). I did not investigate much yet. That seems to be a complicated hackweek project, so perharps it will not get past the investigation phase.

If it succeeds, it will have an immediate appication for SLEnkins cloud backend (virtio already works for the local backend).

Looking for hackers with the skills:

virtio openstack

This project is part of:

Hack Week 12 Hack Week 14

Activity

  • almost 8 years ago: thehejik liked this project.
  • over 8 years ago: dmaiocchi joined this project.
  • over 8 years ago: cwickert liked this project.
  • over 8 years ago: dguitarbite joined this project.
  • over 8 years ago: evshmarnev liked this project.
  • over 8 years ago: e_bischoff liked this project.
  • over 8 years ago: dmaiocchi liked this project.
  • over 9 years ago: a_faerber liked this project.
  • over 9 years ago: vuntz liked this project.
  • over 9 years ago: e_bischoff added keyword "openstack" to this project.
  • over 9 years ago: e_bischoff added keyword "virtio" to this project.
  • over 9 years ago: dmuhamedagic liked this project.
  • over 9 years ago: e_bischoff started this project.
  • over 9 years ago: e_bischoff originated this project.

  • Comments

    • vuntz
      over 9 years ago by vuntz | Reply

      Have you seen http://blog.oddbit.com/2014/12/22/accessing-the-serial-console-of-your-nova-servers/ ?

    • ebischoff
      about 9 years ago by ebischoff | Reply

      No I didn't. Well, virtio-serial is not the same as the serial console. But there might be some knowledge to reuse. Thanks for the pointer.

    • dmaiocchi
      over 8 years ago by dmaiocchi | Reply

      @eric, i woul edit in the description what is our goal by this hackweek: use virtio with twopence/SLEnkins instead of ssh on Cloud, for testing-qa-automation. ! :)

      • ebischoff
        over 8 years ago by ebischoff | Reply

        please do (but just add, don't remove or change)

    • ebischoff
      over 8 years ago by ebischoff | Reply

      OK, first results. I have been able to create a virtio channel in a cloud instance. It is commanded by a new setting in the cloud flavour, hw_channel:enabled set to True or to False.

      Now a few problems remain:

      • unicity: choose the name of the UNIX domain socket outside of the VM so each instance has its own
      • housekeeping: remove the socket when instance goes down
      • communication: how to communicate with the socket, given that the socket is on the compute node and the program wanting to use it is likely to be outside of the cloud

      The third problem might be solved by using socat running in background or a handmade proxy (testbus approach). Or by not using UNIX domain sockets :-) but e.g. TCP sockets. This needs investigation and will be next step.

      I'll create a project in gitlab to save my code and document my findings.

    • ebischoff
      over 8 years ago by ebischoff | Reply

      here is the gitlab repo

    • e_bischoff
      over 8 years ago by e_bischoff | Reply

      I made it listen on a TCP port. Now I need to forward somehow this port to the outside.

    Similar Projects

    This project is one of its kind!