Size: 5655
Comment:
|
Size: 5836
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
'''N.B.''' These instruction are largely if not entirely supplanted by the more detailed instructions for installing and upgrading NetDRMS at http://vso.stanford.edu/netdrms/ |
|
Line 143: | Line 147: |
'''sum_group.sql''' in the JSOC software library '''src/base/sum/Postgres'''.) For example, if you have created a database named ''myJSOC'' on a server named ''myserver'' (and had |
'''sum_group.sql''' in the JSOC software library '''base/sums/scripts/postgres'''.) For example, if you have created a database named ''mydb'' on a server named ''myserver'' (and had |
Line 148: | Line 152: |
psql -h myserver myJSOC -f create_tables.sql | psql -h myserver mydb -f create_tables.sql |
N.B. These instruction are largely if not entirely supplanted by the more detailed instructions for installing and upgrading NetDRMS at http://vso.stanford.edu/netdrms/
Build Your Own DRMS
The JSOC data archive is designed to be replicable and able to function with other cooperating data archives sharing the same basic architecture. Individual archives can selectively share data in their DRMS databases with other archives and serve as either master or slave for data record information on a dataset by dataset basis. It is also possible for data archives to share cached data segments in their individual Storage Unit Management Systems (SUMS). This page provides information for developers outside the JSOC who wish to set up such cooperating archives.
There are three fundamental requiremants for setting up and operating a DRMS system:
- A reserved disk space to serve as the SUMS disk cache. (A tape library for permanent offline or near-line storage is nice, but not essential. The details of setting up a tape library are NOT discussed elsewhere.)
- A database server running Postgres version ...
- A "current" copy of the JSOC software tree, available from Stanford through ....
Setting up a SUMS
The SUMS disk area can be as simple as a directory, but it is probably better to assign at least one disk partition to the SUMS cache. Unless a tape library also exists, the SUMS partition(s) must be large enough to store all the data segments in the DRMS that are to be archived locally. For datasets for which other DRMS servers provide the permanent archive, the local SUMS will serve only as a local cache, so size is dictated by expected usage.
The directory or directories to be used for SUMS must be owned by a user named production (can be any uid) and belong to a group named SOI (can be any gid), and have a permissions mask of 8354 (drwxrwsr-x). The group SOI should include as members any users who will be writing data into the DRMS by running modules or otherwise.
Setting up the Postgres Database server
You should have Postgres Version 8.1 or higher installed; JSOC database servers are currently (Oct 2006) running on the following systems:
- a 64-bit dual-core xeon running Red Hat Enterprise Linux 4 with Postgres v. 8.1.2
- a 32-bit dual-core pentium 4 running Scientific Linux (?; equinox) with Postgres v. 8.1.4
Populating the Database
First, you must create the database tables required for SUMS. You can do so by running the following psql commands:
create table SUM_MAIN ( ONLINE_LOC VARCHAR(80) NOT NULL, ONLINE_STATUS VARCHAR(5), ARCHIVE_STATUS VARCHAR(5), OFFSITE_ACK VARCHAR(5), HISTORY_COMMENT VARCHAR(80), OWNING_SERIES VARCHAR(80), STORAGE_GROUP integer, STORAGE_SET integer, BYTES bigint, DS_INDEX bigint, CREATE_SUMID bigint NOT NULL, CREAT_DATE timestamp(0), ACCESS_DATE timestamp(0), USERNAME VARCHAR(10), ARCH_TAPE VARCHAR(20), ARCH_TAPE_POS VARCHAR(15), ARCH_TAPE_FN integer, ARCH_TAPE_DATE timestamp(0), WARNINGS VARCHAR(260), STATUS integer, SAFE_TAPE VARCHAR(20), SAFE_TAPE_POS VARCHAR(15), SAFE_TAPE_FN integer, SAFE_TAPE_DATE timestamp(0), constraint pk_summain primary key (DS_INDEX) ); create table SUM_OPEN ( SUMID bigint not null, OPEN_DATE timestamp(0), constraint pk_sumopen primary key (SUMID) ); create table SUM_PARTN_ALLOC ( wd VARCHAR(80) not null, sumid bigint not null, status integer not null, bytes bigint, effective_date VARCHAR(20), archive_substatus integer, group_id integer, ds_index bigint not null, safe_id integer ); create table SUM_PARTN_AVAIL ( partn_name VARCHAR(80) not null, total_bytes bigint not null, avail_bytes bigint not null, pds_set_num integer not null, constraint pk_sumpartnavail primary key (partn_name) ); create table SUM_TAPE ( tapeid varchar(20) not null, nxtwrtfn integer not null, spare integer not null, group_id integer not null, avail_blocks bigint not null, closed integer not null, last_write timestamp(0), constraint pk_tape primary key (tapeid) ); create sequence SUM_SEQ increment 1 start 2 no maxvalue no cycle cache 50; create sequence SUM_DS_INDEX_SEQ increment 1 start 1 no maxvalue no cycle cache 10; create table SUM_FILE ( tapeid varchar(20) not null, filenum integer not null, gtarblock integer, md5cksum varchar(36) not null, constraint pk_file primary key (tapeid, filenum) ); create table SUM_GROUP ( group_id integer not null, retain_days integer not null, effective_date VARCHAR(20), constraint pk_group primary key (group_id) );
(These are contained in the scripts create_tables.sql, sum_file.sql, and sum_group.sql in the JSOC software library base/sums/scripts/postgres.) For example, if you have created a database named mydb on a server named myserver (and had one of those scripts in your wd), you could enter the command
psql -h myserver mydb -f create_tables.sql
Or you could simply enter the commands by hand. (You should be the database administrator when you create these tables.)