2006年9月28日木曜日

Sun StorEdge L280 (DLT7000テープライブラリ)をパソコンで使う

■ 古い計算機はさっさと捨てよう



某所にて、古くなって処理能力不足なコンピュータを捨てようと、いろいろ格闘中です。ワークステーション本体は捨てたいんだけど、バックアップ装置はまだ捨てないほうがいいかな、と思い、先週、いろいろ試行錯誤していました。



ワークステーション本体は、SunEnterprise 450という、10年くらい前の製品です。



http://jp.sun.com/products/guide/1997/JTF450DE.pdf



memconfというコマンド見ると、こんなスペック・・・



banner:   Sun Enterprise 450 (4 X UltraSPARC-II 296MHz)
model:    Ultra-4
Sun development name: Tazmo (Tazmax/Tazmin)
Japanese Solaris 2.6 なんたら SPARC, SunOS 5.6
4 UltraSPARC-II 296MHz cpus, system freq: 99MHz
CPU Units:
========================= CPUs =========================
                    Run   Ecache   CPU    CPU
Brd  CPU   Module   MHz     MB    Impl.   Mask
---  ---  -------  -----  ------  ------  ----
SYS     0     0      296     2.0   US-II    2.0
SYS     1     1      296     2.0   US-II    2.0
SYS     2     2      296     2.0   US-II    2.0
SYS     3     3      296     2.0   US-II    2.0
Memory Units:
       Interlv.  Socket   Size
Bank    Group     Name    (MB)  Status
----    -----    ------   ----  ------
  0      none      1901   128      OK
  0      none      1902   128      OK
  0      none      1903   128      OK
  0      none      1904   128      OK
  2      none      1701   128      OK
  2      none      1702   128      OK
  2      none      1703   128      OK
  2      none      1704   128      OK
empty sockets: U1801 U1802 U1803 U1804 U1601 U1602 U1603 U1604
total memory = 1024MB (1GB)



なんだか、いかにも、もういらねーよね、という代物です(笑)。



これに接続されていたバックアップ装置というのが、



Sun StorEdge L280
http://docs.sun.com/app/docs/doc/805-3958-10?l=ja



というもので、DLT7000というテープを、最大8本収納できる(でも、1本は、クリーニングテープを入れておくべき)ものです。



実は、テープ1本あたり、35GBの容量で、圧縮機能を使えば、だいたい70GBくらい記録できるので、えーと・・・70*7=490GB?!
しかも、データ転送レートが、5MB/sec・・・遅すぎ・・・



なんかコイツも、もういらねー!といいたくなる気もするのですが、まだ新品のテープも残っていますし、貧乏性なので、捨てるのもしのびないということで、このテープライブラリだけは残すことにしました。





■ バックアップソフトが重要



こいつ、Sun StorEdge L280を、どのマシンに接続しようか?と少し考えてみました。ワークステーションにするか、PCワークステーションや、パソコンには接続できないか?



さて、ところで、バックアップというのは、ハードウェアだけではなく、ソフトも重要なんです。バックアップ装置と、できのいいバックアップソフト、2つそろって、はじめて、役に立つんですね。Unixのdumpコマンドとrestoreコマンドでも、なんとかやろうと思えばできなくはないんですが、バックアップからデータを復旧するのは、かなり手間がかかるんですよね。



これまで商用のバックアップソフトを使ってきたのですが、バックアップソフトのバージョンが古いままで、最新のOSに対応できそうもないし(今、Solaris 2.6なんです・・・笑)。



・・・で、いいフリーソフトないかなぁ~と探していたら、ありました!



Bacula
http://www.bacula.org/



ネットワーク経由でバックアップ、テープのチェンジャーに対応、などなど、必要な機能はすべてそろっています。・・・てゆーか、今使っている、某Networkerうんたらというバックアップソフトと、けっこう似てるんですね・・・



FreeBSDではportsになっているので、インストールは簡単です。



よっしゃ、じゃ、あとはこのDLT7000 テープライブラリが、パソコンにつながって、FreeBSDで使えればOKじゃん、ということになりました。



■ SCSIで大いにはまる



StorEdge L280は、SCSIなんで、SCSIカードを調達してきて、パソコンにつなげばOKじゃん・・・最初、そう簡単に考えていました。それが大間違い。

私は、バイトして稼いだお金で最初に買ったパソコンがMacintosh IIciだったので、SCSIには愛着があり、割と長い間、SCSI信者だったんです。SCSIなMOドライブとか、スキャナとかいろいろ持ってます。しかし、ある時期から、コストパフォーマンス的にもうATAでいいじゃん、と宗旨替えしてしまっていました。それからしばらくして、SCSIのほうは、次々に新規格が登場していき・・・というわけで、もはや、SCSIっていってもその中身は、いろんな規格が多すぎで、わけわかんないことになっていました。

L280側は、68ピンのWide SCSIなコネクタ。Sun Enterprise 450側も、68ピンのコネクタだったんですが、ドライブ側とはちょっと違って、ピンではなくて、ぺったんこにつぶしたような、密集したコネクタ。



パソコンのSCSIカードは、たまたまAdaptecなカードが手元にあったり、ちょっとした別件で新たにUltra320なカードを購入してましたし、幸い、いろんなタイプのケーブルもあったので、どれかの組み合わせでつながるだろう、と思っていました。



・・・ところが! どうやっても、SCSIデバイスとしてStorEdge L280が認識されません。エラーとかでちゃうんですね。



で、最終的にわかったこと。



  • StorEdge L280のインターフェイスは、ディファレンシャルSCSI(differential SCSI)というもの


  • パソコン側のSCSIホストバスアダプタは、Ultra160とか、Ultra320とかに対応した、やつで、LVD(Low Voltage Differential)というやつが使える


  • 同じDiffrentialなんだけど、L280のほうは、LVDじゃない、ただのDifferentialだった。HVD(High Voltage Differential)とか呼ぶらしい。


  • Differentialは、原則として、Differentialじゃないやつ(シングルエンド、Single End、SEとかいう)とは互換性がない。L280が、コレにひっかかった。L280は、Differentialのみが使える


  • だけど、互換性がないのって厄介じゃん、と思ったのか思わないのか知りませんが、その後、LVDという規格が作られたときに、LVDとSEの両方に対応した、LVD/SEというものが、広く普及するようになったらしい。


  • いまどき売られているUltraSCSIカードは、みんな、LVD/SEってやつ。


  • いまでは、昔のただのDifferential(LVDと区別するために、あえてHVDと呼ばれるらしい)なんてものは、過去のものとして忘れられているらしい。


  • LVD/SEは、HVDとは互換性がない。だから、L280をパソコンに接続しても、エラーになって認識できなかった、というわけ。


  • ちなみに、Differentialだと、電気的ノイズに強いので、ケーブルを長くできるらしいです。テープライブラリとワークステーション本体を、近くに置けない場合があるかもしれないので、それを考慮しているのでしょうか。


う~ん、どうしよう?と悩んで、バクチにでました。

「そうだ、Sun Enterprize 450からSCSIカードを引っこ抜いて、パソコンにつけちゃえ!」



電気的なインターフェイスは、どうせPCIで同じなんだし、そこは問題なく使えそう。あとはBIOSとか、デバイスドライバとかが問題になるかもしれないけど、もしかすると、FreeBSDでは対応してるデバイスドライバがあるかもしれない!

そう考えました。



その結果・・・



まったく問題なく使えちゃいました。しかも、BIOSレベルでの設定ユーティリティまで、パソコン上で使えます。デバイスドライバも問題なくて、FreeBSD 6.xで認識できるばかりか、Windows 2000でも使えちゃいました。



なんだ、パソコンでも使えるSCSIカードが、Sun SPARCなワークステーションで使われていたんですね。



● FreeBSDで認識しているところ



ところで、気がつけば、FreeBSD 6.2-PRERELEASEになっていたりします。



Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD 6.2-PRERELEASE #10: Wed Sep 20 13:19:36 JST 2006
    root@nhh:/usr/obj/usr/src/sys/GENERIC
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel Pentium III (864.46-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x683  Stepping = 3
Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
real memory  = 536608768 (511 MB)
avail memory = 510930944 (487 MB)



(略)



sym0: <875> port 0xd000-0xd0ff mem 0xff9ff400-0xff9ff4ff,0xff9fb000-0xff9fbfff i
rq 11 at device 10.0 on pci2
sym0: Symbios NVRAM, ID 7, Fast-20, SE, parity checking
sym0: open drain IRQ line driver, using on-chip SRAM
sym0: using LOAD/STORE-based firmware.
sym0: [GIANT-LOCKED]
sym1: <875> port 0xd800-0xd8ff mem 0xff9ffc00-0xff9ffcff,0xff9fe000-0xff9fefff i
rq 11 at device 10.1 on pci2
sym1: Symbios NVRAM, ID 7, Fast-20, SE, parity checking
sym1: open drain IRQ line driver, using on-chip SRAM
sym1: using LOAD/STORE-based firmware.
sym1: [GIANT-LOCKED]



(略)



sa0 at sym0 bus 0 target 0 lun 0
sa0: <QUANTUM DLT7000 2560> Removable Sequential Access SCSI-2 device
sa0: 20.000MB/s transfers (10.000MHz, offset 15, 16bit)
Trying to mount root from ufs:/dev/ad0s2a
ch0 at sym0 bus 0 target 1 lun 0
ch0: <HP C6280-7000 2.07> Removable Changer SCSI-2 device
ch0: 3.300MB/s transfers
ch0: 8 slots, 1 drive, 1 picker, 0 portals





Sun Enterprize 450にささっていたそのSCSIカードは、「SYM22802」という型番がついていて、UltraWide、コントローラが2系統のっていて、外部コネクタがDifferential SCSIというもの。



このSCSIカードって、いまや、入手困難かと思いきや、ジャンク屋で、かなりお手ごろな値段で入手できるようです。オークションなんかでも、出品されているようです。



また、Sun StorEdge L280も、かなりお手ごろな値段で入手できるみたいです。おひとつ、どうですか?
でも、今から買うなら、やっぱりスペック的にかなり見劣りしますね。
ちなみに、この前買ったLTO Ultrium3なテープライブラリが、とってもイイです!ただ、Ultrium 3なテープがまだ高いので、Ultrium2なテープを使ってたりします(容量が倍違うけど、値段は倍以上違う)。





■ テープドライブとチェンジャー機能はFreeBSDで使えるの?



SCSI的にはデバイスが認識されましたが、デバイスドライバが対応しているか、それが問題です。で、その結果。まったく問題なし。使えました!



テープドライブのデバイスは、FreeBSDでsa0として認識され、チェンジャー部分は、ch0として認識されています。



# camcontrol devlist
<QUANTUM DLT7000 2560>             at scbus0 target 0 lun 0 (sa0,pass0)
<HP C6280-7000 2.07>               at scbus0 target 1 lun 0 (pass1,ch0)



chioというコマンドで、テープをとっかえひっかえできます。



ステータス表示。スロット全部にテープが入ってる
# chio status -s
picker 0:  sense: <0x00/0x00>
slot 0: <ACCESS,FULL> sense: <0x00/0x20>
slot 1: <ACCESS,FULL> sense: <0x00/0x21>
slot 2: <ACCESS,FULL> sense: <0x00/0x22>
slot 3: <ACCESS,FULL> sense: <0x00/0x23>
slot 4: <ACCESS,FULL> sense: <0x00/0x24>
slot 5: <ACCESS,FULL> sense: <0x00/0x25>
slot 6: <ACCESS,FULL> sense: <0x00/0x26>
slot 7: <ACCESS,FULL> sense: <0x00/0x00>
drive 0: <ACCESS> sense: <0x00/0x00>



スロット0に入ってるテープを、ドライブにロードする
# chio move slot 0 drive 0



ステータス表示。スロット0が空いて、ドライブにテープがセットされている
# chio status -s
picker 0:  sense: <0x00/0x00>
slot 0: <ACCESS> sense: <0x00/0x20>
slot 1: <ACCESS,FULL> sense: <0x00/0x21>
slot 2: <ACCESS,FULL> sense: <0x00/0x22>
slot 3: <ACCESS,FULL> sense: <0x00/0x23>
slot 4: <ACCESS,FULL> sense: <0x00/0x24>
slot 5: <ACCESS,FULL> sense: <0x00/0x25>
slot 6: <ACCESS,FULL> sense: <0x00/0x26>
slot 7: <ACCESS,FULL> sense: <0x00/0x00>
drive 0: <ACCESS,FULL> sense: <0x00/0x00>



なにかとお世話になるmtコマンド。



# mt status
Mode      Density              Blocksize      bpi      Compression
Current:  0x1b:DLTapeIV(35GB)    variable       85937    IDRC
---------available modes---------
0:        0x1b:DLTapeIV(35GB)    variable       85937    IDRC
1:        0x1b:DLTapeIV(35GB)    variable       85937    IDRC
2:        0x1b:DLTapeIV(35GB)    variable       85937    IDRC
3:        0x1b:DLTapeIV(35GB)    variable       85937    IDRC
---------------------------------
Current Driver State: at rest.
---------------------------------
File Number: 0  Record Number: 0        Residual Count 0





baculaでは、mtxというツールを使うよう推奨されていますが、その結果。baculaもmtxも、FreeBSDでは、portsで簡単にインストールできます。



# mtx -f /dev/pass0 inquiry
Product Type: Tape Drive
Vendor ID: 'QUANTUM '
Product ID: 'DLT7000         '
Revision: '2560'
Attached Changer: No



# mtx -f /dev/pass1 inquiry
Product Type: Medium Changer
Vendor ID: 'HP      '
Product ID: 'C6280-7000      '
Revision: '2.07'
Attached Changer: No



mtxコマンドでは、passデバイスを使います。デバイスの対応関係は、上の実行結果にあるように、camcontrolコマンドで確認できます。



# mtx -f /dev/pass1 status
  Storage Changer /dev/pass1:1 Drives, 8 Slots ( 0 Import/Export )
Data Transfer Element 0:Full (Storage Element 1 Loaded)
      Storage Element 1:Empty
      Storage Element 2:Full
      Storage Element 3:Full
      Storage Element 4:Full
      Storage Element 5:Full
      Storage Element 6:Full
      Storage Element 7:Full
      Storage Element 8:Full



tapeinfoというコマンドもあった。



# tapeinfo -f /dev/pass0
Product Type: Tape Drive
Vendor ID: 'QUANTUM '
Product ID: 'DLT7000         '
Revision: '2560'
Attached Changer: No
SerialNumber: 'ほげほげ~'
MinBlock:2
MaxBlock:16777214
Ready: yes
BufferedMode: yes
Medium Type: 0x85
Density Code: 0x1b
BlockSize: 0
DataCompEnabled: yes
DataCompCapable: yes
DataDeCompEnabled: yes
CompType: 0x10
DeCompType: 0x10
BOP: yes
Block Position: 0







■ Bacula、すげーイイ!



いま、暇を見つけては、Baculaの試験運用を少しずつしているのですが、これ、いいですね。バックアップ先は、テープドライブだけでなく、ハードディスクも選べます。バックアップサーバ(ジョブの管理などをするサーバ)と、ストレージサーバ(テープやディスクなどデータ保存領域を提供するサーバ)、バックアップ・クライアント(バックアップしたデータを持っているマシン)が、概念として分けられていて、クライアント数に応じて、ストレージサーバをどんどん増やせます。また、Windows版のクライアントや、Mac OS X版のクライアントもあるらしいです。



商用のバックアップソフトって、値段を1桁間違えてない?ってくらい高いのですよね。Baculaがまともに使えるんだったら、もう言うことなし。



いまわかっているところでは、使い勝手の面では、Baculaは、商用バックアップソフトにくらべると、まだ不十分かな、って感じがしました。インストール、セットアップなど、わりと高度な知識が必要されます。ま、このへんは、フリーなツールを使うか、有償ツールを使うかで、よくある話かと思いますが。



いずれノウハウがたまってきたころに、Baculaの紹介ができたらな、と思っています。



0 件のコメント:

コメントを投稿