Joshua Baker-LePain wrote:
> I just got a SDX-300C (35GB native AIT-1) drive for archival dumps.  Does
> anybody have any experience with these regarding a realistic guesstimate
> of hardware compressed capacity?  Tapetype?


Here are my defs for AIT-1 with 25G and 35G tapes:

define tapetype AIT1-25 {
    comment "AIT-1 cartridge 25/50 GB"
    lbl-templ "/var/opt/amanda/etc/lbl-templ/AIT.ps"
    length 23500 mbytes      # lowest number seen so far, rounded down
    filemark 500 kbytes
    speed 3000 mbytes
}

define tapetype AIT1-35 {
    comment "AIT-1 cartridge 35/70 GB"
    lbl-templ "/var/opt/amanda/etc/lbl-templ/AIT.ps"
    length 33200 mbytes      # 33400 was lowest seen till now
    filemark 500 kbytes
    speed 3000 mbytes
}

>From my experience since one and a half year now, the drives work perfect,
fast and easy (and are cheap compared to DLT).

> 
> Also, I'm running RedHat6.2 with an updated mt-st-0.6.  Am I right in
> assuming that, despite no obvious change in the output of 'mt stat',
> 'mt compression {0|1}' is actually turing compression off/on?  There *is*
> a bit of an increase in throughput with it "on".

Mine are connected to Sun servers.  But you can indeed notice that the
throughput increases with compression on, because it is recording
on the tape that limits the throughput (it almost doubles with files
that are compressable to 50%).

In attachment, a little perlscript that you use to try things out:
        $ gendata -v > /dev/st0      # uncompressable data, 
        ...                          # feedback every 10 Mbytes
        ^C                           # you may interrupt it anytime
        $ gendata -cv > /dev/st0     # now again with compressable data
        ...

-- 
Paul Bijnens, Lant                                 Tel  +32 16 40.51.40
Interleuvenlaan 15 H, B-3001 Leuven, BELGIUM       Fax  +32 16 40.49.61
http://www.lant.com/                       email:  [EMAIL PROTECTED]
***********************************************************************
* I think I've got the hang of it now:  exit, ^D, ^C, ^\, ^Z, ^Q, F6, *
* quit,  ZZ, :q, :q!,  M-Z, ^X^C,  logoff, logout, close, bye,  /bye, *
* stop, end, F3, ~., ^]c, +++ ATH, disconnect, halt,  abort,  hangup, *
* PF4, F20, ^X^X, :D::D, KJOB, F14-f-e, F8-e,  kill -1 $$,  shutdown, *
* kill -9 1,  Alt-F4,  Ctrl-Alt-Del,  AltGr-NumLock,  Stop-A,  ...    *
* ...  "Are you sure?"  ...   YES   ...   Phew ...   I'm out          *
***********************************************************************
#!/usr/bin/perl

# (c) 1996 Paul Bijnens
# This program may be freely distributed.

# generate stream of random characters that can not be compressed
#       (compress will do about -32% on the outputstream)
# give feedback


# bug: even without opt_n it will stop after MAXINT Mbyte

do "getopts.pl" || die "Can't include getopts.pl";

do Getopts('qvcCn:b:')  ||  die <<'EOS';
Usage: gendata [-vcCq] [-b #] [-n #]
  -q    be quiet, no summary at end
  -v    verbose - give feedback every 10MB (time & bytes)
  -c    generate compresseable data (compress: about 42% compression)
  -C    generate very compresseable data (compress: about 85% compression)
  -b #u output block size (def. 5k, max 1Mbyte); unit can be empty, "k" or "M"
  -n #  stop after # Mbyte outputbytes
EOS

$lagspan = 10;

$n = int($opt_n);

if ($opt_b) {
    ($obs, $unit) = ($opt_b =~ /^([\d.]+)(.*)/);
    if ($unit eq "") {
        ; # ok
    } elsif ($unit =~ /^[kK]$/) {
        $obs *= 1024;
    } elsif ($unit =~ /^[mM]$/) {
        $obs *= 1024 * 1024;
    } else {
        die "$0: Bad unit in output block size\n";
    }
}

$obs = 5 * 1024  if ($obs <= 0);


srand();

for ($i = 0; $i < 32*1024; $i++) {
    $buf1 .= chr(rand(256));
    $buf2 .= chr(rand(256)) unless ($opt_C);
    $buf3 .= chr(rand(256)) unless ($opt_C);
    $buf4 .= chr(rand(256)) unless ($opt_C);
}

if ($opt_C) {
    $buf = unpack("b*", $buf1);
} elsif ($opt_c) {
    $buf = unpack("h*", $buf1 . $buf3 . $buf2 . $buf4);
} else {
    $buf = $buf1 . $buf3 . $buf2 . $buf4;
    $buf .= $buf;
}

undef $buf1;
undef $buf2;
undef $buf3;
undef $buf4;

$buf .= $buf;
$buf .= $buf;

$obs = length($buf)  if ($obs > length($buf));  # Max 1 Mbyte now

$buf .= substr($buf, 0, $obs);  # make sure we can write complete blocks
                                # in 1 syswrite call

$starttime = time;

unless ($opt_q) {
    $SIG{'INT'} = 'atend';
    $SIG{'PIPE'} = 'atend';
    $SIG{__DIE__} = 'atend';
}

# loop 10MB at a time

$s = 1024 * 1024;
while (1) {
    shift(@times)  if (scalar(@times) >= $lagspan);
    push(@times, time);
    &progress  if ($opt_v);
   
    for (1..10) {
        $s -= 1024 * 1024;
        do {
            syswrite(STDOUT, $buf, $obs, $s) || die("$!\n");
        } while (($s += $obs) < 1024 * 1024);
        if (--$n == 0) {
            &atend  unless($opt_q);
            exit 0;
        }
    }
}

&atend  unless $opt_q;
exit;


sub progress {
    $lag = $times[$#times] - $times[0];
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
                localtime(time);
    printf STDERR "%.2d:%.2d:%.2d %6dM  -  %6.3f MB/s\n",
                $hour,$min,$sec, ($opt_n - $n),
                ($lag == 0) ? 0 : 10 * (scalar(@times)-1) / $lag ;
}

sub atend {

    &progress  if ($opt_v);

    $elapsedtime = time - $starttime;

    printf STDERR "Total bytes output: %dMB%s\n",
        ($opt_n - $n),
        $opt_C ? " (high compressable)": ($opt_c?" (compressable)":"");
    printf STDERR "Elapsed time: %dh %dm %ds - average throughput %.3f MB/s\n",
        int($elapsedtime / 3600),
        int(($elapsedtime / 60) % 60),
        int($elapsedtime % 60),
        ($elapsedtime == 0) ? 0 : ($opt_n - $n) / $elapsedtime;
    exit;
}

Reply via email to