How We Used Drupal To Back up a Lab Full of iMac's
One of our clients in Sydney mentioned an interesting requirement that they had in their data backup obligations. They had several labs full of iMacs used for video and photo editing by groups of students.
The practical logistics of Video editing and composition mean that all the data files are stored on local disk (not on any kind of shared access media). However, the school wanted to have some sort of real backup schedule for the student data. If Barry the video maker had his files deleted from Wed, then the school wanted to get at Tuesday's backup.
Catalyst saw this as an opportunity to make the most of the situation using free and open source solutions as well as a cheap SAN storage solution using baseline hardware. We got 10TB of raid6 storage for a little under $3k including setup using a big case, 9 x 2TB drives, Ubuntu 10.04 and a wing and a prayer!
We had quite a few discussions about how we were going to automate the process of pulling the data from the iMac labs and came up with a custom solution using rsync. We essentially turned each of the iMacs into an rsync server that our file server connects to at a defined interval. We used rsnapshots as the underlying storage on the file server so that we kept a snapshot of the state of affairs from day to day.
The file server itself was running a Drupal 6 instance with some custom modules that took care o:
- provisioning new iMac nodes
- Creating rsnapshot configuration for each of the provisioned iMac nodes.
- launching the backup process
- stats collection of the process details.
So far so good. The solution was a great way to use Drupal for the simple job of showing the state of affairs of a rather non-standard task. We were not sure if Drupal was overkill at the start but straight away we realised that it made our life easier (even thought this was some of the team's first experience with drupal).
We also gained some experience in the most practical ways for Drupal to launch non-drupal-cron background processes without breaking too many best practices.
Happy to do a talk about this!