Difference between revisions of "Moving SME to new Hardware"
m (→New hardware) |
|||
Line 34: | Line 34: | ||
− | |||
− | During the transition from SME8 to SME9, contrib packages will be migrated to the SME9 contrib repository. If the contrib is not yet in the SME9 Contrib repository and an entry in the Q&A suggests it will install properly then you will need to install the contrib from the SME8 repository See: http://wiki.contribs.org/SME9.0_Contribs_QA#Setup.}} | + | |
+ | {{Note box|During the transition from SME8 to SME9, contrib packages will be migrated to the SME9 contrib repository. If the contrib is not yet in the SME9 Contrib repository and an entry in the Q&A suggests it will install properly then you will need to install the contrib from the SME8 repository See: http://wiki.contribs.org/SME9.0_Contribs_QA#Setup.}} | ||
+ | |||
+ | <div style="text-align:left" class="mw-collapsible mw-collapsed" data-collapsetext="less ↑" data-expandtext="Obsolete Affa 2 instructions ↓"> | ||
+ | |||
+ | {{Note box|During the transition from SME7 to SME8, contrib packages will be migrated to the SME8 contrib repository. If the contrib is not yet in the SME8 Contrib repository and an entry in the Q&A suggests it will install properly then you will need to install the contrib from the SME7 repository See: http://wiki.contribs.org/SME8.0_Contribs_QA#Setup.}} | ||
Configure Affa<br> | Configure Affa<br> | ||
Line 44: | Line 48: | ||
db affa setprop prodserv RPMCheck yes | db affa setprop prodserv RPMCheck yes | ||
affa --make-cronjobs | affa --make-cronjobs | ||
+ | |||
+ | </div> | ||
+ | |||
+ | You have a SME production server with hostname 'prodserv‘ and IP 192.168.0.2.<br> | ||
+ | You have a second SME box as your backup server with hostname 'affabox‘ and IP 192.168.0.10. | ||
+ | |||
+ | Login to your 'affabox' as root and edit ''/etc/affa/prodserv.conf'' . Using e.g. editor ''nano'', create the following example job configuration file for jobname ''prodserv'' : | ||
+ | [prodserv] | ||
+ | remoteHostName=192.168.0.2 | ||
+ | SMEServer=yes | ||
+ | Watchdog=yes | ||
+ | RPMCheck=yes | ||
+ | ConnectionCheckTimeout=120 | ||
+ | Debug=no | ||
+ | Description=Backup of 192.168.0.2 smeserver.athome.xx | ||
+ | DiskSpaceWarn=strict | ||
+ | RootDir=/var/affa | ||
+ | TimeSchedule=0630 | ||
+ | localNice=15 | ||
+ | remoteNice=15 | ||
+ | rsync--inplace=yes | ||
+ | rsyncCompress=no | ||
+ | rsyncTimeout=900 | ||
+ | scheduledKeep=1 | ||
+ | dailyKeep=7 | ||
+ | weeklyKeep=4 | ||
+ | monthlyKeep=12 | ||
+ | yearlyKeep=1 | ||
+ | status=enabled | ||
+ | Then save your job configuration file. | ||
+ | |||
+ | Now check that your configuration is OK: | ||
+ | affa --configcheck | ||
N.B. If you have set the SSH port different from default, you must also tell Affa of the port number (represented below by xxxx ) with | N.B. If you have set the SSH port different from default, you must also tell Affa of the port number (represented below by xxxx ) with |
Revision as of 07:39, 17 May 2015
Introduction
There are many ways to move a SME Server installation to new hardware and/or version of the SME Server. This document describes a method using the Affa contrib.
Affa makes it possible to move with a minimal downtime of the production server.
In the following it is assumed that prodIP
is the IP address of your production server and newIP
is the IP address of the new server hardware. Replace both placeholders by your real IP addresses.
Preparation
Production server
Enable remote administration ssh access in the server-manager of prodIP
. This involves setting both the 'Secure shell access' for the local network, and the 'Allow administrative command line access over secure shell' setting, which must be set to 'Yes'. Also, you may have to set "Allow secure shell access using standard passwords" to 'Yes' as well.
Log into the prodIP
box and run an update
yum update
If packages were updated signalling post-upgrade and reboot events is required.
New hardware
Install SME Server from the latest CDROM/ISO. Assign an unused IP address (newIP
) and disable DHCP.
Enable remote ssh access in the server-manager on the newIP box.
Note: From now on all further steps can be done remotely via ssh login.
Log into the newIP
box and run an update
yum update
Signalling post-upgrade and reboot events is required.
Install the Affa RPM
Follow the latest instructions here: Affa
Configure Affa
db affa set AffaGlobalDisable yes db affa set prodserv job db affa setprop prodserv remoteHostName prodIP db affa setprop prodserv RPMCheck yes affa --make-cronjobs
You have a SME production server with hostname 'prodserv‘ and IP 192.168.0.2.
You have a second SME box as your backup server with hostname 'affabox‘ and IP 192.168.0.10.
Login to your 'affabox' as root and edit /etc/affa/prodserv.conf . Using e.g. editor nano, create the following example job configuration file for jobname prodserv :
[prodserv] remoteHostName=192.168.0.2 SMEServer=yes Watchdog=yes RPMCheck=yes ConnectionCheckTimeout=120 Debug=no Description=Backup of 192.168.0.2 smeserver.athome.xx DiskSpaceWarn=strict RootDir=/var/affa TimeSchedule=0630 localNice=15 remoteNice=15 rsync--inplace=yes rsyncCompress=no rsyncTimeout=900 scheduledKeep=1 dailyKeep=7 weeklyKeep=4 monthlyKeep=12 yearlyKeep=1 status=enabled
Then save your job configuration file.
Now check that your configuration is OK:
affa --configcheck
N.B. If you have set the SSH port different from default, you must also tell Affa of the port number (represented below by xxxx ) with
db affa setprop prodserv sshPort XXXX
Generate DSA keys and send the public key to the prodIP
server
affa --send-key prodserv
The answer from ProdIP server will be
Job prodserv: root@ProdIP's password:
enter the root ProdIP password. The answer will be:
Public key sent to prodIP
Copying data
Run the Affa job on the newIP
box
affa --run prodserv
Depending on the amount of data and the speed of hardware and network this first job run can take a really long time.
Now view the file /var/affa/prodserv/rpms-missing.txt
less /var/affa/prodserv/rpms-missing.txt
You will find a list of RPMs which are installed on prodIP
but not on this server (newIP
) and also RPMs installed with different versions. Install or update the listed RPMs. To verify, you can run the steps of this chapter again. Finally the rpms-missing.txt should not list any RPMs.
Final data synchronization
Ask your users to log off.
Log into the prodIP
box and stop all services that can modify data.
SVC='qpsmtpd sqpsmtpd crond imap pop3 imaps pop3s ftp httpd-e-smith atalk smb qmail' for s in $SVC; do service $s stop; done
Note: Downtime of the production server starts here
Log into the newIP
box and run the Affa job again
affa --run prodserv
This run will complete very quickly as only differences since the the last run needs to be synchronsized.
Switch over to the new hardware
Log into the prodIP
box and power it off
poweroff
Log into the newIP
box and rise this server to your production server
affa --rise --all prodserv
This action will complete very quickly as only hardlinks are used and no data is physically moved.
Now do a reboot
reboot
Note: Downtime of the production server ends here
You now have an identical copy of your old production server running on the new hardware. Your users can now log on.
Cleaning up
Remove the Affa archives
/bin/rm -rf /var/affa
Remove the Affa packages and all status and configuration data
yum remove smeserver-affa perl-Filesys-DiskFree perl-Compress-Bzip2 rm -f /etc/cron.d/affa-status /etc/cron.d/affa rm -rf /home/e-smith/db/affa /home/e-smith/db/affa-report rm -rf /var/log/affa
Note: Don't forget to clean up /var/affa. Otherwise you will waste disk space and see strange quota reports. See this forum thread for details.
Additional information
Performance
With this method you should be able to move a typical 50 Gbyte sized server to new hardware with downtime less than 20 minutes. The final sync and the rise time does not really depend on the total files size, but on the number of files and directories.