|
日本 Samba ユーザ会 (Samba Users Group Japan)
Sambaを利用したCD-ROMサーバの構築Sambaを利用したCD-ROMサーバの構築 2000/12/19 1.はじめに私は普段、4台のPCを使ってWindows向けのソフトを開発しており、Microsoft の技術情報であるMSDN LibraryのCD-ROM(3枚組み)を頻繁に利用しています。 ところが、それらのPCのうちのいくつかのPCはCD-ROMドライブが外付けであったり、ハードディスク残量が少なかったりで、MSDN LibraryのCD-ROM 3枚を抜き差しするのは不便極まりなく、ストレスを感じずにはいられません。 本ドキュメントはその過程をまとめたものです。 2.ハードウェアの準備世の中には、ネットワークに直結できるCD-ROMサーバという製品も販売されているようです。もし資金が充分にあるのであれば、それらを購入するのがもっとも簡単な解決方法でしょう。 しかし、私に入手できたのは資金ではなく、廃棄寸前のPC4台でした。幸いにも、すべてのPCには埃まみれのIDEのCD-ROMドライブが装着されており、さらにそのうちの1台は5インチベイを3台備えていました。 一般的なPCで使用されているIDEのI/Fではデバイスを最大4台まで接続することができます。そこで、内蔵HDDにLinuxをインストールし、それらの埃まみれのCD-ROMドライブを3台装備することにしました。 今回はたまたま入手できたIDEのCD-ROMドライブを使用したので、CD-ROMサーバといってもたかだか3台ですが、SCSIのCD-ROMドライブを用意できれば、コスト/需要に応じて台数を増やすことも可能です。 3.Linuxの準備LinuxでCD-ROMドライブ3台を利用できるように、/etc/fstab に以下のような記述を追加します。
ここで、/data/cdrom? は、CD-ROM1..3のマウントポイントです。 4.Sambaの設定Samba では上記CD-ROMのマウントポイントをサービスとして公開するような設定となります。
実際には、CD-ROM2,3についても同じような設定を記述します。 ここでポイントとなるのは、preexecおよびpostexecパラメータです。 そこで、これらにCD-ROMをマウント/アンマウントするコマンドを指定すれば、よいことになります。 ところが、単純に mount/umount を指定しただけでは複数ユーザから同時接続があった場合に、最初のユーザがサービスを切断すると、CD-ROMがアンマウントされてしまい、2人目以降はCD-ROMが参照できなくなってしまいます。 そこで、クライアントからの接続時にすでにCD-ROMがマウントされていれば何もしない、クライアントからの切断時に他のユーザがCD-ROMを使用中であれば切断しない、というスクリプトを実行するようにしました(具体的なコードは後述)。 また、見慣れないパラメータとしてfake oploksが指定されています。マニュアルによれば、このパラメータを真に設定することによりクライアントの性能向上が見込まれるとのことです。 5.マウント用スクリプト前述したように、サービスへの接続/切断にあわせて単純にmount/umountを実行したのでは、複数ユーザからのアクセス時に問題が生じます。
実際の環境に合わせて8行目から13行目までを変更してください。 6.まとめ
単に3枚程度のCD-ROMを共有したいだけならば、暇そうにしているWindowsを何台か見つけて、それらのCD-ROMドライブを共有するほうが簡単かもしれません。 残念なのは、有意義な内容かつネットワーク上での共有を許可している、という共有の対象となるCD-ROMが滅多にないことです。
|