User Tools

Site Tools


private:oak

This is an old revision of the document!


Oak

Services

  • High-performance computing

Hardware

  • Model: NEC Express5800/T120a-M
  • CPU: Intel Xeon E5520 (2.26 GHz, 4-core) * 2
  • RAM: 4Gb DDR3 1066MHz * 4
  • HDD: 3.5” SAS 15k RPM 450 Gb * 4, 3.5” SATA 2 Tb * 4
  • RAID controller: MegaRAID SAS 8708EM2 w/ 256Mb RAM

RAID Utility

RAID Setup

  • /dev/sda
    • RAID 5 (2 Tb * 4)
    • Mount at /
    • System partition
  • /dev/sdb
    • RAID 0 (450 Gb * 4)
    • Mount at /scratch
    • High-performance I/O

RAID I/O Speed

$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads:   15028 MB in  2.00 seconds = 7521.59 MB/sec
 Timing buffered disk reads:  960 MB in  3.00 seconds = 319.78 MB/sec
 
$ sudo hdparm -tT /dev/sdb
/dev/sdb:
 Timing cached reads:   14352 MB in  2.00 seconds = 7182.41 MB/sec
 Timing buffered disk reads:  1660 MB in  3.00 seconds = 553.13 MB/sec

Backup Plan

Home

There is no backup plan for /home yet. Please make sure all critical files here have at least one copy elsewhere.

Scratch

The /scratch directory is on a RAID 0 disk array for high-performance I/O. As a consequence, there is a higher risk of data loss for files in this directory. To protect against disk failure, a rotating incremental backup is executed daily to backup the entire /scratch directory to /scratch_backup (on the same filesystem as /, RAID 5 array). The shell script and the crontab involved are listed below:

$ cat /scratch_backup/daily_rotate.sh 
#!/bin/bash
source=/scratch
target=/scratch_backup/daily
max=6

# remove the oldest snapshot, if it exists
if [ -e $target.$max ]; then
	rm -rf $target.$max*
fi;

# shift the other snapshot(s) back by one, if they exist
for (( i=$max;i>0;i=i-1 ))
do
    if [ -e $target.$(($i-1)) ]; then
        mv $target.$(($i-1)) $target.$i
    fi;
    if [ -e $target.$(($i-1)).log ]; then
        mv $target.$(($i-1)).log $target.$i.log
    fi;
    if [ -e $target.$(($i-1)).err ]; then
        mv $target.$(($i-1)).err $target.$i.err
    fi;
done

# make the current snapshot
rsync -av --delete \
	--link-dest=$target.1 \
	$source  $target.0 \
	1> $target.0.log \
	2> $target.0.err

# update the timestamp
touch $target.0
$ cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user	command
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
# daily backup for /scratch
45 3    * * *   root    /scratch_backup/daily_rotate.sh
private/oak.1280501558.txt.gz · Last modified: 2010/07/30 22:52 by chkuo