User Tools

Site Tools


computers:oak

This is an old revision of the document!


Oak

Services

  • High-performance computation

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 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
prefix=/scratch_backup/daily
max=6
 
# remove the oldest snapshot, if it exists
if [ -e $prefix.$max ]; then
	rm -rf $prefix.$max*
fi;
 
# shift the other snapshot(s) back by one, if they exist
for (( i=$max;i>0;i=i-1 ))
do
    source_dir=$prefix.$(($i-1))
    source_log=$prefix.$(($i-1)).log
    target_dir=$prefix.$i
    target_log=$prefix.$i.log
    if [ -e $source_dir ]; then
        mv $source_dir $target_dir
    fi;
    if [ -e $source_log ]; then
        mv $source_log $target_log
    fi;
done
 
# make the current snapshot
rsync -av --delete \
	--link-dest=$prefix.1 \
	/scratch  $prefix.0 > $prefix.0.log 2>&1
 
# update the timestamp
touch $prefix.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

Software

computers/oak.1277972606.txt.gz · Last modified: 2010/07/01 16:23 by chkuo