STaRBUC
---------------------------------------------------------------------
Standard Tape Resource Back-Up Console
---------------------------------------------------------------------
---------------------------------------------------------------------
COPYRIGHT
THE FOLLOWING 10 LINES MAY NOT BE REMOVED, but may be
appended with additional contributor info.
STaRBUC Copyright (C) 2010, 2011
V. Spinelli for Sorrento Lactalis American Group
This program comes with ABSOLUTELY NO WARRANTY;
As this program is based on [and has dependancies]
the content of GPL, AGPL, and LGPL works, GPL is
preserved. This is open software, released under GNU
Affero GPL (AGPL) v3, and you are welcome to redistribute
it, with this tag in tact.
... http://www.sorrentolactalis.com
... http://www.spinellicreations.com
---------------------------------------------------------------------
---------------------------------------------------------------------
CONTACT
Author V. Spinelli
Email: Vince@SpinelliCreations.com
Site: http://spinellicreations.com
Handle: PoweredByDodgeV8
Copyright Holder Sorrento Lactalis American Group
Email: http://www.sorrentocheese.com/about/contact.html
Site: http://www.sorrentolactalis.com
---------------------------------------------------------------------
README...
---------------------------------------------------------------------
---------------------------------------------------------------------
SYSTEM REQUIREMENTS
-- Linux Host OS (built against RHEL 5.4, but will work with any
2.6 and above kernel)
-- Apache HTTPD web server version 2 or above.
-- pHp version 5 or above, and mod_php compiled and integrated
into Apache.
-- GNU Tar version 0.9 or above.
-- mt-stinit (typically the version rolled into your distribution
is suitable, else compile latest from source).
HARDWARE REQUIREMENTS
-- any number of locally attached magnetic tape drives addressable
via mt-stinit and accessible via tar.
INSTALLATION
-- unpack STaRBUC and extract it to /yourwebroot/starbuc
(yes, the directory does matter, it should be in a primary
subfolder of your web-root)
ex. /opt/apache_pages/starbuc
ex2. /var/www/starbuc
-- grant permission on all of your tape drives to allow degraded
web-server user (typically UNIX User 'apache') full access
to the drives.
ex. $ chmod 777 /dev/st0
ex2. $ chmod 777 /dev/st1
NOTE! You may have to add these commands to your start
up file (for example, /etc/rc.d/rc.local) so that
they are executed each time the system starts, else
STaRBUC will not have permission to access the drive(s).
-- edit file /yourwebroot/starbuc/.htaccess as follows...
AuthUserFile /[yourwebroot]/starbuc/.htpasswd
... replacing '[yourwebroot]' with the absolute path.
(you'll actually be opening 'default.htaccess' and then saving
it as '.htaccess')
-- create user accounts for each STaRBUC user as follows...
... $ cd /yourwebroot/starbuc/
$ htpasswd -c .htpasswd YOURUSERNAME
... replacing 'YOURUSERNAME' with your desired
username.
... when prompted, enter your password, which
will be hashed and encrypted auto-magically.
-- edit config file /yourwebroot/starbuc/config/globaloptions_starbuc.php
(see next section).
GLOBALOPTIONS FILE
-- what follows is the default global options file, edit to suit your
needs and your webroot path...
/* apache CONTROL */
/* ------------------------------------------------------------------ */
$apache_SERVER_NAME_OR_IP ="my.server.com";
/* -- SERVER's DNS NAME or STATIC IP ADDRESS */
/* -- DNS IS PREFERRED */
$apache_WEBROOT = "/opt/apache_pages";
/* -- WEB ROOT WITHOUT THE TRAILING SLASH */
/* -- FOR EXAMPLE... "C:/apache_pages" -OR- "/opt/apache_pages" */
$apache_STARBUC_VERSION = "starbuc";
/* -- IF YOU HAVE MULTIPLE INSTANCES OF STARBUC, THEN THEY MUST */
/* (OBVIOUSLY) RESIDE IN DIFFERENT WEBROOT SUBDIRECTORIES */
/* -- identify the subdirectory for this installation */
/* -- if you only have one, then 'starbuc' is fine */
/* BASIC DISPLAY SETTINGS */
/* ------------------------------------------------------------------ */
$starbuc_DEFAULTBANNER = "/".$apache_STARBUC_VERSION."/img/banner.png";
/* $starbuc_DEFAULTBANNER = "/starbuc/img/banner_seer_0_trimmed.png"; */
/* -- top page banner */
$starbuc_DEFAULTDIVIDER = "/".$apache_STARBUC_VERSION."/img/divider0.png";
/* -- page section divider */
$starbuc_DEFAULTSUBDIVIDER = "/".$apache_STARBUC_VERSION."/img/divider1.png";
/* -- sub page section divider */
$starbuc_DEFAULTHOMELOGO = "/".$apache_STARBUC_VERSION."/img/homelogo.png";
/* -- home page logo */
/* ENVIRONMENT DECLARATION */
/* ------------------------------------------------------------------ */
$starbuc_ENVIRONMENT_SERVER_NAME = "MY_SERVERS_NAME";
/* -- give this instance a unique name... */
$starbuc_INSTALLED_LOCATION = "My Company, USA: Super Cool Ketchup, Boise - Idaho.";
/* -- a blurb about where your server is located, such as your */
/* company name, the city and state or country */
$starbuc_USE_CUSTOM_TITLE_POOL = "YES";
/* -- use a custom title for the html header. If set to 'YES', */
/* then use title defined by $starbuc_USE_CUTOM_TITLE_DECLARATION = "something" */
/* -- if set to 'NO', then use default title */
$starbuc_USE_CUSTOM_TITLE_DECLARATION = "Super Cool Ketchup's Starbuc Terminal";
/* -- declare custom title */
$starbuc_FACILITY_ID = "Super Cool Ketchup";
/* -- what is the name of the facility where S.E.E.R. is running */
/* MAGNETIC TAPE DEVICES */
/* ------------------------------------------------------------------ */
$starbuc_TAPE_DRIVE_QUANTITY = 1;
/* -- how many tape drives do you have? */
/* (we start counting at 1, not 0 ... so enter the REAL quantity) */
$starbuc_TAPE_DRIVE_DEV_ID[1] = "/dev/st0";
/* -- linux device id of EACH ONE of your tape drives (simply increment */
/* the array number there... _ID[2], _ID[3], etc etc...) */
/* enter specifically whatever your device shows up as under /dev/xyz */
/* whether it's /dev/st[X} or /dev/rmt[X} or whatever... */
$starbuc_TAPE_DRIVE_DEV_DESCRIPTION[1] = "HP ULTRIUM LTO-4 External SAS 800GB RAW";
/* -- a useful human readable description of each tape drive (simply increment */
/* the array number, just as you did for the DEV_ID) */
/* we suggest you include the make and model, along with some other info */
/* you think may be pertinent */
/* SOURCE DATA DIRECTORIES FOR BACKUP */
/* ------------------------------------------------------------------ */
$starbuc_SOURCE_DATA_QUANTITY = 1;
/* -- quantity of absolute system path(s) that you wish to backup */
/* (we start counting at 1, not 0 ... so enter the REAL quantity) */
$starbuc_SOURCE_DATA_DIRECTORY[1] = "/mnt/backup";
/* -- absolute system path(s) that you wish to backup */
/* (simply increment the array number here... _DIRECTORY[2], */
/* _DIRECTORY[3], etc etc...) */
/* -- note - do not include the trailing slash!, so... /home instead */
/* of /home/ */
/* DESTINATION TAPE DATA CARTRIDGE SERIAL OR ID NUMBER FOR IDENTIFICATION */
/* ---------------------------------------------------------------------- */
$starbuc_TAPE_DATA_QUANTITY = 12;
/* -- quantity of tapes that are in your backup rotation */
/* (we start counting at 1, not 0 ... so enter the REAL quantity) */
$starbuc_TAPE_DATA_NUMBER[1] = "backup_tape-001";
$starbuc_TAPE_DATA_NUMBER[2] = "backup_tape-002";
$starbuc_TAPE_DATA_NUMBER[3] = "backup_tape-003";
$starbuc_TAPE_DATA_NUMBER[4] = "backup_tape-004";
$starbuc_TAPE_DATA_NUMBER[5] = "backup_tape-005";
$starbuc_TAPE_DATA_NUMBER[6] = "backup_tape-006";
$starbuc_TAPE_DATA_NUMBER[7] = "backup_tape-007";
$starbuc_TAPE_DATA_NUMBER[8] = "backup_tape-008";
$starbuc_TAPE_DATA_NUMBER[9] = "backup_tape-009";
$starbuc_TAPE_DATA_NUMBER[10] = "backup_tape-010";
$starbuc_TAPE_DATA_NUMBER[11] = "backup_tape-200-j";
$starbuc_TAPE_DATA_NUMBER[12] = "backup_tape-201-v";
/* -- serial numbers or id numbers of the data tapes, each MUST be */
/* different, there should be no two the same */
/* ACCESS WINDOW */
/* ------------------------------------------------------------------- */
$starbuc_ACCESS_START_HOUR = 11; /* 11 */
$starbuc_ACCESS_END_HOUR = 15; /* 15 */
/* -- you may wish to only allow tape drive commands to be issued */
/* or tape drive processes started during a certain period of time */
/* -- for example, when you KNOW there will not be any activity on */
/* your source data */
/* -- if this is the case, then set your START_HOUR and END_HOUR */
/* in military time, without leading zero's */
/* -- if you do not care, allow 24-hour access with START_HOUR = 0 and */
/* END_HOUR = 24 */
/* -- START_HOUR -ABSOLUTELY MUST- be less than END_HOUR */
/* SYSTEM COMMAND PATHS */
/* ------------------------------------------------------------------- */
$starbuc_ABS_PATH_tar = "/bin/tar";
/* -- absolute system path to GNU Tar */
$starbuc_ABS_PATH_mt = "/bin/mt";
/* -- absolute system path to mt (from mt-st package) */
/* MT-ST TAPE DRIVE READY TO ROCK AND ROLL STATUS IDENTIFICATION */
/* ------------------------------------------------------------------- */
$starbuc_MT_ST_TAPE_DRIVE_READY_FOR_BACKUP_STATUS_TAG = "BOT ONLINE";
/* -- literal string (case sensitive) that will identify a tape drive */
/* as having a tape inside, the tape being ready at the BOT (beginning */
/* of tape) mark, and the drive / tape as being ONLINE (ready to */
/* receive / accept commands) */
/* -- typically this is "BOT ONLINE", however you may change this to */
/* "BOT", "ONLINE", or some other mt-st status output that indicates */
/* the same. this is to allow future compatability, should mt-st's */
/* status tags change in the future or if you have an odd drive that */
/* does not report status properly - otherwise we would simply */
/* hardcode this variable as "BOT ONLINE" */
THATS IT! YOU'RE READY TO USE STaRBUC
-- here are some very basic instructions for users...
Scope and Application
This console is intended for executing day to day operations of
locally attached Magnetic Tape Drives and their Media on a Linux
Host equipped with GNU Tar and mt-stinit (standard LA[*]P, no
database required).
Multiple tape drives can be administered simultaneously, and
multiple Source-Data directories can be backed up to any locally
attached Magnetic Tape Drive (provided the drive's capacity is
sufficient for the data being written).
For system integrity, operation execution can be limited to a
specified time-access-window.
Secure multi-user login via Apache builtin htaccess and encrypted
passwords; and all operations are logged (with username and timestamp)
to the system activity logfile.
Typical Tasks
A typical operation might be to simply rewind a tape, or retension
a tape. To do so, insert the desired tape into the desired drive.
Then, navigate to the 'Operations' tab, scroll down to view the
status of your desired drive, and (assuming its status is 'ready')
then click the 'RETENSION' request button to start the operation.
Once the operation has started, the 'Operations' tab will once again
display -- be sure to observe the status of the drive you just
issued an operation request upon. As some operations are not
instantaneous, you may observe the drive to be 'busy' or listed as
'device in use', in which case you will have to wait and periodically
check the drive's status (by refreshing the 'Operations' tab) before
you may issue another request for a subsequent drive operation.
The same procedure can be applied to virtually all drive operations.
Initiating a Backup
To initiate a backup, place a tape into an empty system tape drive.
Log into STaRBUC and observe the drive's status until it reports
itself as 'ready'. If the tape does not report that is is already
rewound to 'BOT', you may issue a request for 'REWIND'.
With the drive's status indicating tape location 'BOT' and the
drive 'ready', you may issue a request to 'INITIATE BACKUP' for
whichever Source Data Directory you desire to send to that tape.
When you return to the 'Operations' tab, you'll notice the drive
report itself as 'busy' or 'device in use' -- this is an indication
that your backup request was successfully initialized (and is
running).
The next day, prior to initializing the next day's backup, you
will want to view the drive's status and (provided it is reporting
'ready') issue a 'EJECT' request to the drive. This will rewind
the tape and eject it from the drive, allowing you to start the
next day's backup.
RESTORING FROM BACKUP
-- a 'RESTORE' button was intentionally NOT added to the 'Operations' tab,
in order to prevent accidental over-writing of your mission-critical
live system data by an over-zealous user.
-- to restore a tape, place the recovery tape into a drive, and then (after
you've performed your own system checks to be sure you're ready to do
a data dump), issue the following commands as root...
$ mt -f /dev/[yourdrive] rewind
$ mt -f /dev/[yourdrive] lock
$ tar -xlpzf /dev/[yourdrive] /[where-you-want-the-data-restored-to]
$ mt -f /dev/[yourdrive] unlock
$ mt -f /dev/[yourdrive] eject
---------------------------------------------------------------------
---------------------------------------------------------------------