private:oak
This is an old revision of the document!
Table of Contents
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
See MegaRAID MegaCli
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