The article describes the procedure of converting Shared VPSs into Hardware Nodes and known issues faced while using it. Common method of usage can be found in the guide Converting Shared VPSs into Hardware Nodes
Is this mandatory that we need to apply it on our OA 5.5? If we did it then what will be the impact on our OA system?
All the shared containers in OSA environment should be converted to VPS Hardware Nodes before upgrading to OA 6.0. It is not possible to upgrade if this requirement is not fulfilled. Starting with the OA 6.0, OA stopped supporting any deployment scenarios using shared containers (VPSs). This procedure should be done for all VPSs before the upgrade, otherwise the upgrade script will stop the process with corresponding message.
If we perform the steps mentioned in given URL then will there any service interruption to our customers? i.e. to Hosted Exchange and Hyper-V services. How much time will it take to convert one VPS?
The procedure does not affect such Windows services as Hosted Exchange and Hyper-V. Generally the process of conversion includes DB updates and changing network in container from host-routed to bridged, nothing else. It must be done because OA can not manage IPs configured in Host-Routed mode, i.e. adding new IPs or removing old ones. Once the VPS is converted, OA will use the general system internal tools in VPS to manage IPs, but not from the side of VPS hardware node. This procedure taken 5-10 minutes maximum. However, the long part of the process is the backup of VPS. It is required to make a backup of VPS before the conversion, and it can take a lot of time depending on the amount of data in the container.
What exact changes are applied to VPS by the script
The following changes are applied on container while executing the script:
Changing network interface from "venet0" to "eth0"
Adding new interface:
def ve_add_ifname(hw_host, host, ifname, save): cmd = ["vzctl", "set", str(ctid), "--netif_add", ifname, "--save"]
Removing old interface:
def ve_remove_ifname(hw_host, host, ifname, save): cmd = ["vzctl", "set", str(ctid), "--netif_del", ifname, "--save"]
Assigning IP address:
def ve_assign_ip(hw_host, host, ifname, ip_address, netmask, save, use_vzctl = False): cmd = ["vzctl", "set", str(ctid), "--ipadd", "%s/%s" % (ip_address, netmask)] if save: cmd.append("--save")
Removing old IP Address:
def ve_remove_ip(hw_host, host, ifname, ip_address, netmask, save): if un_alias(ifname) == "venet0": cmd = ["vzctl", "set", str(ctid), "--ipdel", ip_address] else: cmd = ["vzctl", "set", str(ctid), "--ifname", un_alias(ifname), "--ipdel", ip_address]
Attaching VE to a network:
def ve_attach_to_network(hw_host, host, ifname, network_name): cmd = ["vzctl", "set", str(ctid), "--ifname", ifname, "--network", network_name, "--save"]
Setting default route:
def ve_set_default_route(hw_host, host, ip_address): cmd = ["vzctl", "exec", str(ctid), "ip route del default"] cmd = ["vzctl", "exec", str(ctid), "ip route add default via %s" % ip_address]
Updating the information in file "/etc/sysconfig/network" inside the container:-
cmd = ["vzctl", "exec", str(ctid), "/bin/sed -i.backup '/GATEWAY/d' /etc/sysconfig/network"] cmd = ["vzctl", "exec", str(ctid), "/bin/sed -i '\\$aGATEWAY=%s' /etc/sysconfig/network" % ip_address]
Restarting pem service in the container:
cmd = ["vzctl", "exec", str(ctid), "service pem stop"] cmd = ["vzctl", "exec", str(ctid), "service pem start"]
Known issues with
- 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