« みかんとマカラン | トップページ | 小ネタ:32bitOS用プログラムのコンパイル »

2011年1月 8日 (土)

scsi-target-utilsとmtxで作る仮想CDライブラリ

最近は何でも仮想化するのがはやりで、仮想テープライブラリなどというものまであります。

つまりは、保存する記憶装置はディスクなのですが、インタフェースはテープのそれで、ロボットアームがテープを入れ替える操作もエミュレートして、ディスクの塊をテープライブラリのように見せかけるという装置です。

バックアップ用としては、テープをハンドリングするソフトは世代の管理に一日の長があるので、エンタープライズ向けにはこういうのもいいのでしょう。

個人的にはテープのライブラリには興味はないですが、家に溜まる一方のCDをなんとか仮想ライブラリ装置に入れたいなぁと日ごろから思っていたのでした。

実CDをそのまま掛けかえるジュークボックスもあるにはある(あった?)のですが、全部のCDをライブラリ化するとなると結構な台数が必要にってしまうくらいCDがあるので購入に踏み切ることはありませんでした。

しかし、最近のディスクの低価格化は恐ろしいものがあります。CD1枚が750MBくらいあったとしても、たった0.75GBでしかないわけです。2TBのHDDが8000円そこそこで買えるわけですから、2600枚以上をひとつの箱につめて、そのコストは1枚あたり数円です。

ずーーっと、仮想CDライブラリのソフト、ないかなぁと思って探していたのですが、なんと、身近なところにありました。

きっかけは別件でscsi-target-utilsのメーリングリストを漁っていたときに目に付いたのですが、つまりは、scsi-target-utilsのiSCSIドライバはライブラリのエミュレーションをすることができて、構成さえすればCDライブラリになるのです。ただし、あくまでもSCSI装置の真似をするので、もともとSCSIにできないことはできないという弱点がありますが。これについては後述。

まず、必要なのはscsi-target-utilsとmtx、それにテストするにはiscsi-target-utilsもとりあえずあったほうがいいでしょう。そうです、同じホストにiSCSIのターゲットとイニシエータをセットアップするのです。

さて、詳しい内容は/usr/share/doc/scsi-target-utils*/README.mmcをご覧ください。結構長いのでここに転記するのは止めます。

一連のコマンドを入れてターゲットをセットアップして、iscsiadmでdiscoveryしてloginすると/dev/sg?と/dev/sr?ができます。sgはSCSI genericの略で、テープでもディスクでもない装置はsdなりstというデバイスは作られないので、ロボットアームのような装置はこのsgを使ってアクセスします。sgは定義したLUNの数だけできるので、READMEのとおりにLUNを定義した場合、一番最後のsgデバイスがアームです。

イニシエータがloginした結果としてsr?も作られます。ここからジュークボックスのデータを読み出します。すでにCDが1台付いているPCならsr1が増えているはずです。

さて、適当なisoファイルを持ってきて、その名前をバーコードラベルの名前に指定します。
この、バーコードの内容がそのままディレクトリのファイル名として参照されます。
そして、mtxコマンドをつかってドライブにロードさせます。このmtxというのが、ロボットアームの操作コマンドです。
が、実際ロードさせると正しく認識できません。どうやら、バーコードは8文字でないといけないようです。確かにLTOのライブラリなども8文字でバーコードつけてますね。

しかし、今回作ったライブラリは1000スロットにしたので、8文字で中身を識別するのは非常に不便です。理論上の上限は全部のデバイスで65535。つまり、読み出し装置が10台くらあって、6万枚収容のチェンジャをつくることもできます。実際には、mtxが指定するのはバーコードではなくスロット番号なので、これを呼び出すフロントエンド側で、内容を説明する長い名前と、スロットの対応付けをするしかないでしょうね。でも、使いやすそうなフロントはまだ見つかってません。見方を替えれば、こんなに便利なジュークボックス機能がほとんど知られていないのは、この辺りの使いづらさによるのでしょう。iSCSIも一般になじみのあるものだとは言えないですし。

そんなこんなで1000スロットのCDジュークボックスにCDを突っ込んで実CDは倉庫にしまう計画が始動しました。
できれば、ジュークボックスはPCじゃなくて、NASのような装置にやってもらえるととってもうれしいなぁ。なんて夢を見ている今日このごろでした。実は昔使っていて今はほとんど使われていないHDL-GSがあって、そういうのをもっと活かせたらいいなぁと思ってます。(まぁ、このHDL-GSも、いったんディスク外してsshで入れるように中を書き換えてあったりするのですが)

« みかんとマカラン | トップページ | 小ネタ:32bitOS用プログラムのコンパイル »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/60027/50530222

この記事へのトラックバック一覧です: scsi-target-utilsとmtxで作る仮想CDライブラリ:

« みかんとマカラン | トップページ | 小ネタ:32bitOS用プログラムのコンパイル »