[Date Prev] [Date Index] [Date Next] [Thread Prev] [Thread Index] [Thread Next]

Using conserver with vmware

Joe Greco conserver.com@a4fa399b.biz.jgreco.net
Wed, 7 Dec 2011 02:24:56 GMT


Hi,

LOOOOONG time serial console user, been running conserver for many years.
Great package.

For most sites, conserver primarily represents OOB access to server 
consoles for beating on them in singleuser mode, etc.  With things like 
IP KVM viewers, hypervisors, etc., most sites seem to be ditching serial 
consoles.

We've been on a virtualization path for a while now, here, as well.  A
lot of our legacy gear has been powered off.  But I find KVM access to be
annoying and lacking in several ways, specifically:

1) Bandwidth intensive

2) Inability to replay "wtf just happened that rebooted my server."

So I'm playing with a trial of VMware's products, and one of the things
that seems to be available is the ability for the host system to connect 
a virtual serial port ... somewhere.  Listening is also possible.

If you set the host to listen, you can have conserver connect to a serial
console of a VM on the host (vmware doesn't support serial consoles, but
the guest OS's do).  There's just one little problem:  you have to wire in
knowledge of what VM is on which host, which makes migrations a nightmare.

You can also set the host to establish a connection ... somewhere.  

Like to the conserver box.  So my obvious first attempt was to use netcat,
using "nc -l <port>" like so:

default vmlisten { type exec; portbase 7000; portinc 1;
                        exec /usr/bin/nc -o -l P;
                        execsubst P=Pd; }

And this works... at first.  But if there's a console that's NOT up, say
because the VM is down, our system is designed to restart conserver every
night when it rotates logs, and "nc -l <port>" processes start to stack up,
because nc doesn't stop waiting for an incoming connection just because its
stdin has vanished.  Foo.

I suppose another option is to write a smarter version of netcat that does
not act stupid.  It's trivial to do, but watching nc processes stack up in
an unexpected manner just suggested to me that maybe this was the wrong way 
to go about it.

So I was left wondering if I was reinventing the wheel, here. Has anyone 
hacked conserver to itself listen for connections, rather than initiating 
them?  I find it hard to believe that no one else has found serial consoles
to virtual machines to be useful functionality.

... JG