I need some advice about which direction to go. I have at home a home server with a few services running and a btrfs raid 5 array of hard drives. This server doesn't have X11 at the moment.
I wanted to use it to run a VM with windows on it. That windows will be used as a sandbox. I don't have a screen connected to the server but I can access through the network using ssh.
What should I use to set up a VM that I could access through the network ? I looked at Xen and it seemed like it would be able to do what I want, but I would need my services and my array to still be accessible. And I'm not sure how I should do that, nor am I sure that it's the right tool for me.
Which is why I'm asking for advices. Is xen the right tool ? Do you have another suggestion you want me to check ?
I'm not afraid of it being heavy. It's virtualisation we are talking about after all. I dont think virtualbox is adapted for what I want though. It's intended for a desktop usage. I prefer use something intended for servers.
You could use phpVirtualBox, but personally I like Proxmox VE because it supports containers and KVM virtual machines, and it has a nice web interface.
phpVirtualBox works really well from my experience, albeit the server i was running it on had stupid nice hardware, dual xeon and so on. But the interface really worked well for setting up the machines, and executing them. If your running windows as the virtual machine you should just RDP into it. Else i've heard nice things of LXD, im not sure you will be able to run windows on a linux VM-host though since it kind of handles the virtualization differently. Best case if neither VirtualBox, nor LXD, can handle your usecase, you can allways fall back to Qemu, which can be a pain to do properly, but when it runs.....it runs and well, and you got loads of features and near total control of even emulated CPU architechture and what not, you're stuck running the VM by executing a shell script though through a SSH connection each time you need it though. unless you can find some nifty execute xx script through ssh program.(i know they exist, but forgot the name of it).
+for Qemu Virt manager is very nice. Once installed on server and client, you can connect (allows ssh connect) and local gui, configure the server's VMs (kvm, xen) and manage them fairly easy. A big plus: no need of VNC on server side's VM to install, because the virtual screen is very efficient and way better than any X11-Forward
I had a long rant about KVM some time ago, virt manager actually made it possible for me to use hardware passthrough into a qemu VM. And with x11 passthrough you could deffinetly run the gui on a client pc. If you're using a window$ ssh client though you'll need to install i believe it's called Xming or something like it to handle the linux gui through putty.