WebTruck Moving out
Guest

Server Upgrade

webtruck.org runs on Zope since Summer 2002.

This server needed upgrading badly, for several reasons

  • hardware is quite old, the chances of a disk failure were increesing
     
  • disk space was getting tight, as I keep more than a year of webcam shots online.
     
  • server runs on SuSE 8.0, a linux distribution with no more support,
    no patches, recent software does not run easily on this system
     
  • Zope 2.5.1 is outdated, CMF 1.3 as well. I wanted to take advantage of newer releases.
     

the new system runs on a CPU with twice the power, the hard disk is more than twice as big. This gives me room to further enhance the site.

I spend a few days with copying over the old system to the new one, upgrading to SuSE 10.0 (worked well, just had to recompile the stuff I added manually)

OpenSuse 10.0, the open source version of SuSE, did not have all the packages I installed, so I had do add some packages manually.

The system now runs on a 2.6 kernel, with Zope 2.8.4, MySQL 4.1 and Apache2.

On Nov 28th I announced the change to the members, on Nov 29th it was online.

There was an interruption of less than half an hour from 9:17 to 9:42am. This could have been shorter, but I accidentally shut down the old server when I was ready to move the new one from my office into the TruckRoom.

In this time, I copied over the latest changes (Zope Data.fs and MySQL tables) to the new server and put the new one online.

It took me until lunch time to fix some problems. The change from Zope 2.5 to 2.8 is quite a big step, skipping several versions in between. CMF also changed quite a bit from 1.3 to 1.5.5...

The biggest problem I had was that the catalog was unable to reindex due to a simple problem: On old documents, the expiration date was set to 9998-12-31. The catalog was unable to index this value. I had to find a way to set the expiration date on all documents and images with the wrong expiration date.

I did this with a Python Script. It had to be done with great care, as I did not want to destroy the work I put into the change before (of course I did a backup before I ran the script on the live site :-) )

Internet research did not bring up much to this subject. CMF versions up to 1.5 had a patch implemented, but with 1.5.5 it was removed. I did not want to work with a patch, instead I wanted to fix all the content.

Here's the script which did the job in the end: fix_expiration_date

The script goes recursively throught the whole tree and changes all expiration dates with a year > 9000 (this never made sense...) to None. The output shows the structure of the site and all the changed objects.

(I hope this will help and encourage other Zopistas to upgrade as well)