User Tools

Site Tools


manuals:vps:vpsadminos

vpsAdminOS

Since OpenVZ Legacy is no longer supported and new distributions don't work there, we had to find a way to upgrade our kernel, which meant choosing a different virtualization technology. Linux kernel now has some support for containers, so we've decided to use it. We needed some distribution that we could use on nodes to serve as a hypervisor, as a replacement of Scientific Linux 6 with OpenVZ kernel. We've chosen NixOS, because it allows us to declaratively configure the system and its services. And since our requirements are quite specific, we're maintaining our own spin of NixOS called vpsAdminOS.

vpsAdminOS is based on NixOS and not-os. It's a live distribution serving as a hypervisor for container virtualisation. It's as capable as OpenVZ Legacy was in its time. vpsAdminOS naturally integrates with vpsAdmin, our administration interface with web interface. However, vpsAdminOS is meant to be fully usable even on its own, outside vpsFree.cz's infrastructure.

Migration from OpenVZ to vpsAdminOS

The upgrade of our infrastructure with all VPSes to vpsAdminOS is divided into several phases:

  1. Developing vpsAdminOS into something usable
  2. Integration with vpsAdmin
  3. Opening of a staging environment with vpsAdminOS
    1. Testing, fixing bugs, implementing missing features, preparing for production
  4. New production nodes are using vpsAdminOS (:!: we're here :!:)
  5. Gradual migration of all VPS from OpenVZ nodes to vpsAdminOS, one node after another
  6. End of story

What does it mean for members

We're trying to make the migration to vpsAdminOS as seamless as possible, so that one day your VPS will stop on the OpenVZ node and will start on vpsAdminOS node a while later, without you having to do anything. However, it depends on what programs you're running and what configuration changes you have made. That's why we recommend for everyone to try VPS on vpsAdminOS in the staging environment, so that we can find and solve problems before we start migration production VPS.

Changes in VPS behaviour

General

Changes regarding VPS, but independent on the distribution used:

  • /proc/stat reports only user (including system) and idle
  • Swap is not shown in /proc/meminfo

Debian/Ubuntu/Alpine

  • Network is configured using ip from iproute2, you no longer need ifconfig from net-tools
  • If there is a directory called /etc/network/interfaces.d, it is sourced before /etc/network/interfaces.tail.

Behaviour changes in vpsAdmin

  • NAS and snapshots are not accessed using vpsAdmin mounts, but NFS exports
  • IP address management is split into routed and interface addresses
  • Reinstalling VPS on vpsAdminOS no longer deletes subdatasets and does not reset its configuration to the initial state, e.g. VPS features remain as they were.
  • VPS features: bridge, iptables and NFS aren't configurable, they're always on.
  • It is possible to change the network interface name within the VPS in VPS details page.

Staging environment

In order for all members to test VPS on vpsAdminOS, we've created so called staging environment. It's similar to playground, where everyone can create a VPS. When creating a VPS, just select location Staging and deselect Keep platform. The VPS will be created on a vpsAdminOS node.

It's terms of use are similar to playground VPS, only it can be a bit rougher, like unplanned outages and reboots when we need to fix something. Everyone can use up to 8 CPUs, 4 GB RAM, 120 GB disk space, 4 public IPv4 addresses and 32 IPv6 /64 addresses. You can split these resources among 4 VPS.

You can either create a new VPS or clone an existing production VPS. All mounts are removed when cloning, because NAS isn't acessible as of yet, see user namespaces.

Features

Features can be turned on/off individually. When any change is made, the VPS restarts.

  • FUSE - “Filesystem in Userspace” Enables the kernel module to allow non-privileged users create their own file systems.
  • KVM - “Kernel-based Virtual Machine” Enables KVM for hardware support of virtualization.
  • LXC nesting - “Linux Containers” Enables nested LXC containers.
  • PPP - “Point-to-Point Protocol” Enables communications protocol used to establish a direct connection between point-to-point links.
  • TUN/TAP - “TUN routing/TAP bridging” Enables the creation of virtual interfaces that are then bridged.

More about vpsAdminOS

Reporting bugs and ideas

Choose at your own discretion:

manuals/vps/vpsadminos.txt · Last modified: 2022/04/06 10:45 by Aither