What is best practice to restart the controller on another physical node - AppLogic


Article ID: 48766


Updated On:





In some scenarios, controller restart need user intervention, for instance, customer would like to promote a secondary server to the primary server and restart controller on it, or controller need manual recovery by user


Applogic provide following approaches to promote a secondary server to the primary server, for instance, srvX, and restart controller on new primary server.

Approach 1: When controller is functional

ssh to controller, run "3t srv set srvX role=primary".

Approach 2: When controller is NOT-functional

ssh to one of secondary server srvX, run "server set srvX role=primary".

Before processing approach 2, it's highly recommended to perform following checks

  1. ssh into any physical node and run '3tsrv sd get", it will display server role and controller volume mirror state in the following format
         [[email protected] ~]# 3tsrv sd get     cluster         {         signature = "S20120503194810614887013849227"         }      volume boot                                --> streams of controller boot volume          {             mirrors             {             mirror v-ctl-boot: server = srv1, synced = 0                                 --> synced = 0  means boot volume              mirror on srv1 has corrupted. to restart/recover controller, another stream mirror must be in good state             mirror v-5eb2f325-7010-44f9-b72e-93964a6d17ef: server = srv2, synced = 1     --> synced = 1  means boot volume             mirror on srv2 is good, can be used for controller restart                    }                }                volume meta                                                               --> mirror of controller boot meta                 {                                  mirrors                                  {                                  mirror v-ctl-meta: server = srv1, synced = 1                                  mirror v-d752ff49-bbe0-43b9-a674-1d1547ec46ab: server = srv2, synced = 1                                  }                   }                volume impex             --> mirror of controller boot impex                   {                                  mirrors                                  {                                  mirror v-ctl-impex: server = srv1, synced = 1                                  mirror v-b024c865-bca4-4c78-9e76-1325187a5ceb: server = srv2, synced = 1                                  }                   }               server srv1: ha_role = primary                            --> srv1 is current primary               server srv2: ha_role = secondary                          --> srv2 is one of secondary server               server srv3: ha_role = secondary                          --> srv3 is the other secondary server

  2. Make sure each controller volume(boot, meta and impex) has at minimum one good mirror(with synced=1) and host node of that good mirror is functional(ssh to host node and run some command, e.g. ifconfig, to see if there is any error)


Component: APPLGC