IPBrick Disk migration

From wiki.IPBRICK.COM
Revision as of 17:54, 12 May 2016 by Amachado (Talk | contribs)

Jump to: navigation, search

This guide is to assist the IT IPBRICK administrator in the process of migrating a running IPBRICK installation from:

  • scenario 1 : one server machine - one disk to another disk on the same server machine
  • scenario 2 : two server machine - one disk to another disk on a different server machine


ATTENTION: This is an advanced procedure. The tasks described bellow are to be performed by an IT technician familiar with IPBRICK.IC operating system architecture and linux command line interface. This guide refers to the IPBRICK installation manual and the disaster recovery procedure. Before starting please make sure that you have an up to date backup of all data files, databases and configurations. Proceed at your own risk.

On the original server machine

On the original installation, apply configurations and download/save a backup copy configurations file to your Desktop. (Advanced Configurations -> Disaster Recovery -> Download : select the last one with the current timestamp).

Just stop the the services you use.

/etc/init.d/systemmonitor stop
/etc/init.d/asterisk stop
/etc/init.d/apache2 stop
/etc/init.d/ejabberd stop
/etc/init.d/qmail stop
...


Execute this command to backup all the databases.

  • IPBRICK.OS version 6.x or above
php5 /opt/system/backupSYS/backup_DBs.php 
  • IPBRICK.IC versions: 5.3, 5.4 or 5.5
php5 /opt/ipbox/backupSYS/backup_DBs.php 

IPortalDoc

If you have IPortalDoc installed, you must backup this database separatelly.

  • IPBRICK.OS version 6.x or above - use ipbrickdb_ipb6
ipbrick2:~# mkdir /home2/_backup_db_dbdoc
ipbrick2:~# cd /home2/_backup_db_dbdoc
ipbrick2:/home2/_backup_db_dbdoc# wget http://downloads3.ipbrick.com/wiki/ipbrickdb_ipb6
ipbrick2:/home2/_backup_db_dbdoc# php5 ipbrickdb_ipb6 --dump --dbname dbdoc --file dbdoc_20160512_1700.sql

STARTING DUMP OF DATABASE dbdoc TO FILE dbdoc_20160512_1717.sql

ipbrick2:/home2/_backup_db_dbdoc# ls -al dbdoc_20160512_1700.sql
-rw-r--r--  1 root root 570695550 May 12 17:20 dbdoc_20160512_1700.sql
ipbrick2:/home2/_backup_db_dbdoc#
  • IPBRICK.IC version 5.x - use ipbrickdb_ipb5
ipbrick2:~# mkdir /home2/_backup_db_dbdoc
ipbrick2:~# cd /home2/_backup_db_dbdoc
ipbrick2:/home2/_backup_db_dbdoc# wget http://downloads3.ipbrick.com/wiki/ipbrickdb_ipb5
ipbrick2:/home2/_backup_db_dbdoc# php5 ipbrickdb_ipb5 --dump --dbname dbdoc --file dbdoc_20160512_1700.sql

STARTING DUMP OF DATABASE dbdoc TO FILE dbdoc_20160512_1717.sql

ipbrick2:/home2/_backup_db_dbdoc# ls -al dbdoc_20160512_1700.sql
-rw-r--r--  1 root root 570695550 May 12 17:20 dbdoc_20160512_1700.sql
ipbrick2:/home2/_backup_db_dbdoc#

Scenario 1 - only one server machine

Procedure:

  • shutdown the server machine
  • remove/detach the original (old) disk from the server
  • install/attach the replacement (new) disk
  • install the IPBRICK.IC operating system (please refer to IPBRICK.IC installation manual)
    • perform the first boot, proceed with initial setup (FQDN, IP)
    • after finishing installation and initial configuration proceed to the next step
  • with the server power on, connect the old (original) disk using a USB connector
    • now at the command line you can check for the disks
fdisk -l
  • confirm that you have 2 (two) disks: sda (new internal disk) and sdb (old disk connected via usb)
    • you shoudl be able to identify the partition tables
  • create two temporary folders to map/mount the work areas from the old disk
mkdir /old_home1
mkdir /old_home2
ls /old_home* -al
  • Then we need to mount the partitions we need to copy.
mount /dev/sdb7 /old_home1
mount /dev/sdb8 /old_home2
  • Now lets start the rsync
rsync -aAuv /old_home1/ /home1/ > /tmp/rsync_home1.log 2> /tmp/rsync_home1.err &
rsync -aAuv /old_home2/ /home2/ > /tmp/rsync_home2.log 2> /tmp/rsync_home2.err &
  • You can see the logs in these files (log is normal output, err is for status warning)
tail /tmp/rsync_home1.log
tail /tmp/rsync_home1.err
tail /tmp/rsync_home2.log
tail /tmp/rsync_home2.err
  • When the rsync process finishes, you can unmap/unmount the old disk
umount /old_home1
umount /old_home2
  • after successfull unmount you can disconnect the old disk (usb)
    • NOTE: we recommend you to keep the old disk safe until this procedure is completly finished (backup procedure)
  • Now please access to web interface, insert and replace the configurations file that you have previously saved on your desktop
    • Please refer to the installation manual and/or disaster recover procedure in order to perform settings replacement
    • The server machine performs a reboot
  • After the server boot up, go to IPBRICK web interface, Advanced configurations -> Disaster Recovery -> Aplications -> Databases : for each database, click on the database name, then you get a listing of all the available backups, click on the last timestamp (click on the timestamp, not on the download link), and click on Restore to proceed to restore.
  • When this Finnish test the services you have on IPBrick
  • For the last step you need to re-activate your license - Advanced configurations -> IPBrick -> Web Access : License activation (please refer to the installation manual, license activation)

Scenario 2 - two server machine

Second server installation

Install the IPBrick on the new machine (refer to IPBRICK.IC installation manual)

    • NOTE: you must install exactly the same software version, this means that you must use the same IPBRICK.OS version and the exact same list of IPBRICK packages and/or updates

NOTE - Licence Activation - during this procedure you will need to reactivate your product, please send file.dat to email address support@ipbrick.com requesting licence activation - to (re)activate a licence you are required to have a valid maintenance/software assurance contract.

Procedure

EX: IPBrick1 New (192.168.69.199) and IPBrick2 OLD (192.168.69.200)

On machine IPBrick1 generate ssh key:

ipbrick1:~# cd /root
ipbrick1:~# ssh-keygen -t rsa
#assume default location /root/.ssh/id_rsa
#enter empty passphrase
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
3d:90:bf:f3:95:b3:96:6f:9d:90:95:98:69:fd:fb:0b root@ipbrick1
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|         .       |
|        o     = .|
|         +   = + |
|        S + . o .|
|           o o ..|
|          o  E=.+|
|           o .+=o|
|            ...+=|
+-----------------+
ipbrick1:~# 

Copy contents of public key from IPBrick1 to IPBrick2.

ipbrick1:~# cat /root/ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRRerZEo0cyzCP3JxTabRAG8uPe4DVnAuduIUUayn+r64mrpy1RFcu1qQLGiKFyOgxCg3m+pC
tg79yxvWfrx/XR/SIXh1uuLSmG/SOnFmn5WQJLXSCNBYGp/2BOQ1e4p6J2GFzmJF5/QnUXWCbLyIG/j7+klidLhktv/8+gHJClehMm6H31KynRe
aiuSyNiPFoG9+q5EmF+7Ibjqk5ZG6XeGodgINpfnNNFNLTmG+RyCK0vttGwVyKbnz2s3ypAbHpjQcNm7vG9iq73KjPaH1Y2r/09XoV3Bw15/0ZP
VkkvlNHSwBpnsHrCAL8KT3m7qgDy2WT3cuArXRpm/PGTMXH root@ipbrick1
ipbrick1:~# 

Select and copy the output/contents of file id_rsa.pub from IPBrick1 as example above, install it on IPBrick2. Example:

ipbrick2:~# mkdir -p /home1/_ssh/root/.ssh
ipbrick2:~# echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRRerZEo0cyzCP3JxTabRAG8uPe4DVnAuduIUUayn+r64mrpy1RFcu1qQLGiKFyOgxCg3m+pC
tg79yxvWfrx/XR/SIXh1uuLSmG/SOnFmn5WQJLXSCNBYGp/2BOQ1e4p6J2GFzmJF5/QnUXWCbLyIG/j7+klidLhktv/8+gHJClehMm6H31KynRe
aiuSyNiPFoG9+q5EmF+7Ibjqk5ZG6XeGodgINpfnNNFNLTmG+RyCK0vttGwVyKbnz2s3ypAbHpjQcNm7vG9iq73KjPaH1Y2r/09XoV3Bw15/0ZP
VkkvlNHSwBpnsHrCAL8KT3m7qgDy2WT3cuArXRpm/PGTMXH root@ipbrick1" >> /home1/_ssh/root/.ssh/authorized_keys
ipbrick2:~# 

Now for the first root ssh access from ipbrick1 to ipbrick2 using the ssh key.

ipbrick1:~# ssh -i /root/.ssh/id_rsa root@192.168.69.200
The authenticity of host '192' can't be established.
RSA key fingerprint is 2d:b9:97:b6:c0:e9:1e:b7:c4:51:01:ab:e9:21:12:51.
Are you sure you want to continue connecting (yes/no)? ^C
ipbrick1:~# ssh -i /root/.ssh/id_rsa root@localhost
The authenticity of host '192.168.69.200 (192.168.69.200)' can't be established.
RSA key fingerprint is 2d:b9:97:b6:c0:e9:1e:b7:c4:51:01:ab:e9:21:12:51.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.69.200' (RSA) to the list of known hosts.
 

++++++++++++++++++++++++++++++: System Info :+++++++++++++++++++++++++++++++++
+         FQDN =  ipbrick2.domain.com
+   IP address =  192.168.69.200
+       Kernel =  3.2.0-4-amd64
+       Uptime =  10:05:02 up 458 days, 32 min, 10 users,  load average: 3.04, 2.51, 2.20
+   Total CPUs =  4 x Architecture x86_64 @ 2399.734 Hz 
+ Total Memory =  16470664 kB
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



ipbrick2:~# logout
Connection to 192.168.69.200 closed.
ipbrick1:~#

Now you can access as root from ipbrick1 (NEW, 192.168.69.199) to ipbrick2 (OLD, 192.168.69.200).

Now lets start the rsync on IPBrick1.

ipbrick1:~# rsync -avu --delete --rsh="ssh -l root -i /root/.ssh/id_rsa " 192.168.69.200:/home1/ /home1/ > rh1.log 2> rh1.err
ipbrick1:~# rsync -avu --delete --rsh="ssh -l root -i /root/.ssh/id_rsa " 192.168.69.200:/home2/ /home2/ > rh2.log 2> rh2.err

You can see the logs in this file -> rsync_home1.log Or the errors in this file -> rsync_home1.err

Wen the rsync is finish access to web interface and then insert and replace the configuration that you save on your desktop.

After replacing, go to Advanced configuration -> disaster recovery -> aplication -> databases -> and replace the last one.

IPortalDoc

If you have IPortalDoc installed, you must now restore the database backup separatelly. This procedure is now executed in the new server (NOTE that after replacing configurations this server is now called ipbrick2, just like the original server.)

  • IPBRICK.OS version 6.x or above - use ipbrickdb_ipb6
ipbrick2:~# cd /home2/_backup_db_dbdoc
ipbrick2:/home2/_backup_db_dbdoc# php5 ipbrickdb_ipb6 --restore --dbname dbdoc --file /home2/_backup_db_dbdoc/dbdoc_20160512_1700.sql
ipbrick2:/home2/_backup_db_dbdoc#
  • IPBRICK.IC version 5.3, 5.4 or 5.5 - use ipbrickdb_ipb5
ipbrick2:~# cd /home2/_backup_db_dbdoc
ipbrick2:/home2/_backup_db_dbdoc# php5 ipbrickdb_ipb5 --restore --dbname dbdoc --file /home2/_backup_db_dbdoc/dbdoc_20160512_1700.sql
ipbrick2:/home2/_backup_db_dbdoc#

Go to IPortalDoc Web interface, login with an administrator account,

  • rebuild iPortalDoc workflow accounts:
    • a) Definitions Menu -> Configuration Interface
    • b) Poplist on the right (Menu) -> Workflows
    • c) Click on the Rebuild button
  • rebuild share "Access" and the account of Associated Emails to Documents, of iPortalDoc:
    • a) Access Share: Definitions -> Configuration Interface-> Build Global FS
    • b) Emails associated to documents: Definitions -> Configuration Interface -> Build Global mailFS
      • (This task is scheduled to be executed at midnight);

Go to IPContacts application, login with an administrator account

  • rebuild entities and contacts
    • a) Administration -> Rebuild Contacts

Finish

Now it is time to test and check all services.