Converting Shared VPSes into Hardware Nodes
Original Publishing Date:
2022-04-13
This KB article contains the detailed instructions of how to convert Shared VPSes into Hardware Nodes on OA, in addition to the ones available in OA guide .
Please note that Virtuozzo version must be at least 4.7
Important(!) - Do not perform a conversion on earlier VZ versions
Preparations part
Passwordless (key-based) access must be configured from OA Management Node to all VZ nodes where shared containers are located.
The following resource may be useful - SSH login without password
-
Configure Front Net and the Back Net virtual networks on VZ node:
a) check networks - # vznetcfg net list
b) create new networks if needed - # vznetcfg net new BackNet , # vznetcfg net new FrontNet
c) check IP addresses and how they are bound to networks - # ip a l or # ifconfig -a
d) associate new network with one of them according to the following example: # vznetcfg net addif BackNet eth1
Finally virtual networks configuration on VZ node will be similar to the following example:
[root@VZnode ~]# vznetcfg net list
Network ID Status Master Interface Slave Interfaces
BackNet active eth1
FrontNet active eth0
-
Check the values of the following parametres:
a) --host-id - VPSes ID in OA , may be found in OA CP at: Services > Cloud Infrastructure > VPSs
b) --hw-host-id - ID of the VPS Hardware Node (VZ node), may be found at: Services > Cloud Infrastructure > VPS Hardware Nodes
c) --gateway - Gateway IP address, may be checked on VZ node by running the following command: # netstat -nr
Example:
# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
...
...
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 10.39.1.1 0.0.0.0 UG 0 0 0 eth0
See the last line in the output - in this example, Gateway IP is 10.39.1.1
*Note that for VPSes that have Internal IP only assigned, Gateway value may be checked by running # netstat -nr inside of the container. Often in such cases Gateway IP is 169.254.0.0
d) --backnet - name of the virtual Back Net configured for the container.
e) --frontnet - name of the virtual Back Net configured for the container.
-
Create a backup copy of the containers' configs:
# cp -p /etc/sysconfig/vz-scripts/<CTID>.conf /etc/sysconfig/vz-scripts/<CTID>.conf.bak
If the conversion fails for some reason, it is possible to restore container's network settings by replacing it's config with backup and CT restart.
Alternatively, you may create a full container's backup (clone) using the following command and set --onboot no parameter for the clone (so the cloned CT will not be started automatically after VZ node reboot):
# vzmlocal -C <source_CTID>:<copy_CTID>
# vzctl set <copy_CTID> --save --onboot no
The copy_CTID must be free, i.e. not assigned to any other container.
Note that cloning of large containers may take a significant amount of time.
Conversion
Once password-less access from MN to VZ node and and virtual networks are configued and host-id, hw-host-id and gateway values are clarified for a specific VPS, conversion script may be launched on MN according to the following example:
For VPS with both External and Internal IPs assigned:
/usr/local/pem/bin/convert_vps_to_host.py --host-id 32 --hw-host-id 2 --gateway 10.39.1.1 --backnet BackNet --frontnet FrontNet --verbose
For VPS with Internal IP only:
/usr/local/pem/bin/convert_vps_to_host.py --host-id 32 --hw-host-id 2 --gateway 169.254.0.0 --backnet BackNet --verbose
Note that the 'host id' values and IP addresses in the above commands are examples only and must be replaced with the real values
Known issues:
-
128008 Communication failure with remote server
-
128612 missing networks on venet0
-
128010 network interfaces are missing on Shared VPS
-
126740 ValueError: invalid literal for int(): auto
-
124085 There is no networks on host`
-
128151 convert_vps_to_host.py uses ServiceCT IP while SSHing to VPS HW node
-
128153 RTNETLINK answers: No such process
-
127179 Shared VPS located on hardware host %d but passed %s'
-
128609 Host pemhost123 is not a Shared VPS
-
128096 There is no password, pubkey ssh access to host
-
127178 Network is missing on host
-
128608 Failed to find %s backnet IP
-
128613 ERROR poaupdater.uUtil.ExecFailed
-
128611 There is no YUM tool installed on host
Other questions about the convert_vps_to_host.py script:
-
128464 A Hub article that describes conversion mechanism
-
128009 Is it necessary to configure yum repositories on shared VPS registered in OA before converting it to hardware node with convert_vps_to_host.py?
-
127177 Is it possible to convert VPS that already has bridged networks configured?
-
128610 How to add manually created VPS as a Hardware Node?
Internal content
How to restore OA DB records and container's configuration in case of failed VPS conversion to HW node