IPBrick Disk migration
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.
Contents
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.
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 atlas:~# 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.