| もどる |

Sambaファイルサーバー

ファイルサーバーの役割

生徒の実習データをどこに保存するか

生徒が自分で作成した文書や絵画のファイルをどこに保存するか。以前の普通の方法はフロッピーディスクだった。これはそれなりに優れた方法だった。アクセスランプや音で書き込んでいるのが直感的にわかるし、どの機械にもっていっても自分のデータを引き出すことができる。しかし、今となってはまず容量が小さいこと、動作も遅いことで採用するわけにはいかない。ユーザーが使用中の機械(ローカルマシン)のハードディスクに保存する方法もあるが、これではいつも使用する機械を固定する必要が生じる。

ファイルサーバーのメリット

そこで、ファイルサーバーをたてて、すべてのユーザーがサーバーのハードディスクにファイルを書き込むようにする。もちろんユーザごとに専用の場所を確保し、相互に読み書きできないようにする。

ネットワーク接続したドライブをマイドキュメントのターゲットにする。この仕組みは教師にとっても大きなメリットがある。課題の点検をするときにサーバーからファイルを集めればよい。フロッピーだと集めて出し入れをしなければならない。各機械に入っていたのでは全部電源を入れなければ読めない。

ファイルサーバーのユーザー個別の領域をネットワークドライブとして接続し、ドライブレターを当てる。たとえばU:ドライブとする。さらにマイドキュメントの位置をU:ドライブに指定すればユーザーはローカルのハードディスクに保存する感覚でファイルサーバーに直接保存することになる。

最近のWindowsソフトはマイドキュメントの位置をwindowsに問い合わせて正しく保存できる。そうでなくとも、U:ドライブとしておけば古いタイプの(ドライブレターしかわからない)ソフトでもうまく使うことができる。生徒には「マイドキュメント内に保存すること」と指導するだけでよい。ソフトによってはだまっていてもそうなる。

ユーザープロファイルのマイドキュメントは使用しない

移動ユーザープロファイルにも個別に確保した「マイドキュメント」をサーバーに保存する機能があるが、これは採用しなかった。理由は2つ。

その1.この方法ではローカルにファイルを作成し、ログオフ(≒Windowsの終了)時に一気にサーバーに書き込もうとする。このときローカルのファイルは消されないから、ローカルのハードディスクにもデータがたまっていく。その機械を10人が使えば10人分たまるのである。ユーザーが移動するとそこにも全部のコピーができてしまう。そのデータは保存している位置がわかれば誰にでも読み書きできてしまう。

その2.さらに、授業の終了時に多量のデータの書き込みがサーバーに集中することになる。生徒の作業時間には個人差があり、データを保存するタイミングは自ずとばらつくものである。しかし、授業の終了時のログオフは短時間に集中する。このときにはただでさえ混み合う。特にWindowsのプロファイルの仕組みはログオン・ログオフ時にまとめて読み書きするのでたいへんなのである。

SAMBA

sambaとは

LinuxなどのUNIX系OS上で稼働させ、 Windows NT/2000互換のファイルサーバ/プリント・サーバ機能を提供するソフトウェアである。GNU General Public Licenseのもと、改変・再配布が自由なフリーソフトウェアとして提供されている。

Windows NT/2000はソフトウェアの値段もさることながら接続するクライアント機の数によってライセンスを購入しなければならず高くつくが、こちらは無料である。最近のLinuxにはSambaが含まれているのでインストールの時に選択すればすぐに動かすことができる。

もともとはオーストラリアの Andrew Tridgell 氏らによって1992年に開発され現在も改良が進められている。日本Sambaユーザ会がファイル名に日本語を使う場合の問題点を解決したバージョンを出している。現在は2.2系から3.0系への過渡期でバージョンは samba-2.2.9-ja-1.0 または Samba 3.0.4 が最新です。(2004-07現在) Samba 3.0を使うには日本語利用パッケージ集が必要。現実的にはOSに同梱されているものをまず使ってみるのが吉。

仕組み

sambaの設定ファイルに、サーバーに提供させるディレクトリ(ウインドウズ用語ではフォルダ)を指定し、名前(共有名)をつける。サーバーの名前が sv01 で、共有名が share ならば、\\sv01\share という名前でwindowsクライアントからアクセスできる。

これはマイネットワークからたどることもできるし、スタートメニューから「ファイル名を指定して実行」を選び、\\sv01\share と書いてやってもよい。ショートカットも作れるし、ネットワークドライブとして接続することも可能だ。

もちろん、この共有はアクセスできるユーザーを指定できる。書き込みと読み込みを分けてコントロールできる。また接続可能な機械をIPアドレスで制限することも可能だ。

また接続するユーザーごとのホームディレクトリを提供するやり方があり、たった一つの指定で、bobというユーザーには \\sv01\bob , alice というユーザーには \\sv01\alice を使うようにできる。

授業では

授業では次の3つの共有をつくって利用している。ネットワークドライブとしての接続はしなくてもファイルのコピーなどはできるのだが、\\sv01... などの表現を理解できないソフトもあるので全部接続をしている。(これは起動時に自動化している)

hogeというユーザーの場合
Linux上のディレクトリ windowsから見た共有名 ドライブ 用途
/home/share \\sv01\share S: 教材配布に使用。全員読み込みのみ許可
/home/hoge \\sv01\hoge U: hogeは実際はユーザー名になる。本人のみ読み書き可
/home/public/hoge \\sv01\public - 名前は同じだが各ユーザーごとに用意される。 本人のみ書き込み可、読み込みは他人にも許可。 ウェブページ用。

この他にもあるグループのメンバーだけがアクセスできる共有をつくることもできる。グループのメンバーは後から変更可能。マイネットワークからたどっても見えないようにもできる。これは教員用のサーバーで利用している。

/home/public/hoge は \\sv01\public として使用するようになり、ドライブレターを付けていない。また、S:とU:が逆だったので訂正(2006-12-07)

課題の収集

授業中に生徒が作成したファイルは \\sv01\user に保存されている。これを収集して内容を確認するには、サーバーであるlinuxのシステム管理者の権限で収集のためのスクリプトを使っている。ファイルを教師にアクセス権のあるディレクトリにコピーしてからファイルの所有者を教師のユーザー名にする。コピー後のファイルをsambaでアクセスできるようにしておけば、教師も普通にWindows上のソフトを使って確認できる。

このスクリプトは perl で書いている。入門書を読む程度でかける程度である。むしろ unix系の OS のパーミッションやファイルの所有者の概念などを理解する方が面倒かもしれない。

 ▲ 
聖愛高等学校
http://www.seiai.ed.jp/
Last update: 2004-07-26