Samba & Windows、機能詳細比較

2004年12月14日(火)
小田切 耕司

ファイル/プリントサーバ機能



機能
Samba 3.0
Windows Server 2003
ユーザ/グループによる容量制限

ディレクトリ単位
にも対処可能


論理ボリュームマネージャ

Linux OSに依存


ボリュームシャドーコピー(スナップショット)機能

ただし、Linux側でXFSを
搭載している必要有り


NTFS必須

ゴミ箱機能

×
マッキントッシュ連携

Netatalkをインストール
することで可能


マッキントッシュサービスをインストールすることで
可能

UNIX NFS連携

カーネルレベルによる
OPLOCK連携可能


Service for UNIXをインストールすることで可能

ユーザホーム機能

×
MS-DFS(ルートおよびサブディレクトリ)

MS-DFS Proxy

ACL機能(ユーザ/グループによるアクセス制御)

Linux OSに依存


NTFS必須

ホスト名によるアクセス制御

×
日本語ディレクトリ/ファイル名

READ権のないファイルを見えなくする

×
WRITE権のないファイルを見えなくする

×
ユーザモジュールによる共有機能の拡張・カスタマイズ

標準で監査機能、ウィルスチェックなどを搭載。
1つの共有に複数のモジュールがロード可能。


WINAPIでユーザが
作成可能

同一サーバに複数のNetBIOS名を付ける

smb.confで容易に
指定可能


レジストリ変更が必要でサポート対象外

スプールしながらの印刷
×

PDFライター機能

GhostScriptとの連携

×
プリンタドライバ配布機能

ファイル共有やプリンタ共有機能


   ファイルサーバとしての機能はWindows Server 2003とほぼ同等であるが、カスタマイズの容易性やパフォーマンス、信頼性といった面ではSambaの方がむしろ優秀だ。特に最近はウィルス対策ということでファイルサーバをSambaにするユーザが増えており、ウィルスやウォームに感染しないということで大幅なTCO削減につながるであろう。加えてREAD権やWRITE権のないファイルを見えなくしたり、ホスト(IPアドレス)でアクセス制御できるなど、セキュリティ機能の面でもSambaの方が優秀だ。


容量制限


   LinuxもWindowsも、ユーザやグループによる容量制限機能(QUOTA機能)を持っている。通常はディレクトリ単位で容量制限をかけることはできないのだが、Sambaの「force user」「force group」といった強制ユーザ切り替え機能を使うことで、ディレクトリ単位で容量制限をかけることが可能だ。


論理ボリュームマネージャ


   LVM(論理ボリュームマネージャ)を使うことで、ディスク増設時の柔軟なファイルシステムの拡張やスナップショット機能などが実現できる。Samba3.0からはWindows Server 2003でサポートされたVSS(ボリュームシャドーコピー)も使えて、大変便利になっている。


ゴミ箱機能


   Sambaがサポートするゴミ箱機能は、ユーザが誤って削除してしまったファイルを復活させる機能だ。Windowsでは有償ソフトになるのだが、Sambaでは標準でこの機能が利用できる。


マッキントッシュ/UNIX連携


   SambaでNAS的な使い方をする場合、Sambaの共有フォルダをマッキントッシュ/UNIXにも提供したいという要求は高い。WindowsでもSFU(Service for UNIX)などを導入することで簡単に実現できる。

   この場合のSambaの優位性(というよりむしろLinuixの優位性)は、UNIX/Linuxとのファイル共有機能NFSのパフォーマンスがかなり違うということだ。WindowsのNFS機能はパフォーマンス的に問題になることが多く、LinuxのNFSはカーネル標準機能のためUNIXと同等のパフォーマンスを提供する。


ユーザホーム機能


   Linux/UNIXでユーザに提供されるユーザホーム(通常は「/home/username」)を、Windowsユーザに対しても「\\サーバ名\ユーザ名」で提供する機能だ。他の人には見えない個人専用フォルダ(他人にアクセスさせることも可能)を提供する機能であり、WindowsにはないSambaの優位性のひとつだ。


MS-DFS、MS-DFS Proxy


   複数のサーバを仮想的な一台に見せる「MS-DFS(分散ファイルシステム)」は、SambaでもWindowsでも利用できる。もちろんWindowsとSambaを混在させることも可能だ。ひとつのDFSツリー(共有)に複数台のサーバを割り付け、負荷分散や障害時の代替パスとして利用することができる。また、あるサーバの共有フォルダを別なサーバの共有フォルダへリダイレクトする「MS-DFS Proxy」もSamba 3.0ではサポートしている。


ACL機能(アクセス・コントロール・リスト)


   WindowsのNTFSと同等のACL機能をSambaでは従来からサポートしているが、利用できるかどうかは、OSのファイルシステムがサポートしているかどうかに依存していた。

   SolarisやHP-UXでは以前からサポートしていたので利用できていたが、LinuxではKernel 2.6から標準採用であり、MIRACLE LINUXなどはXFSなどをサポートすることでこのACL機能を提供している。ACL機能をサポートしたXFSやEXT3を利用することで、SambaでもACL機能が利用できる。

Sambaのユーザ管理機能
図3:SambaのACL機能(windowsと同じように設定できる。)


共有のアクセス制御


   共有のアクセス制御に関してSambaはWindowsと同等のACLを使ったアクセス制御ができるが、さらにマクロやIPアドレス、ホスト名を使ったアクセス制御も行える。Windowsではホスト名やIPアドレスによるアクセス制御ができないので、こうした面ではSambaの方が高機能といえるだろう。


日本語ファイル名


   Samba2.2では日本語のコード変換機能をSamba日本語版としてSamba内部に保持していたため、どのOSの上で動かしてもちゃんと日本語が利用できた。しかしSamba3.0からは、OSが持つICONV関数を利用するようになったので、Linuxの場合glibc-2.3.3以降(もしくはCP932パッチが適用されたGLIBC)を持っていないとSambaで日本語が利用できない。

   また、たとえOSがICONV関数を持っていても、ICONVの「CP932(マイクロソフト社独自の文字コードページ)」変換機能に問題がある場合は、正しく日本語を扱えない。具体的にいうと、問題のないGLIBCを提供しているのは下記の製品となっている。(Red Hat Linux 9以前のものには問題がある。)

  • MIRACLE LINUX V3.0
  • Red Hat Enterprise Linux 3.0
  • Fedora Core
  • MIRACLE LINUX V2.1
  • Vine Linux 3.0
LIBICONVとGLIBC
   最近のLinuxはGLIBCが標準でICONV関数を持っているため、LIBICONVはインストールされていないものがほとんどだ。GLIBCが旧いディストリビューション上において、Samba3.0で日本語を使うにはGLIBCを最新化する方法もあるが、GLIBCをディストリビューションが配布しているもの以外に変更するのは大変危険なので一般の方はやらない方がいいだろう。

   この場合はCP932に対応したLIBICONVをインストールして利用しよう。しかし、LIBICONVを利用するときはSambaのコンパイルオプションに明示指定する必要があるので、注意して欲しい。

   Samba3.0では、smb.confに「dos charset = CP932」というパラメータを指定し、unix charsetパラメータで指定したコードを使って以下の日本語パラメータを記述できる。


  • 共有名
  • プリンタ名
  • 共有やプリンタの説明(コメント)
  • NetBIOS(コンピュータ)名

   もちろん日本語ファイル名(日本語ディレクトリ名)にも対応している。(ファイルの中身の漢字コード変換機能や改行コード変換機能は持っていない)

Sambaによる日本語共有の作成
図4:Sambaによる日本語共有の作成(Windowsから簡単に共有が作成できる)


マクロ機能


   Sambaには設定ファイルに記述するパラメータをマクロといわれるもので記述できる。例えばSambaにアクセスしてきたユーザ名を%u、グループ名を%g、コンピュータ名を%mというように指定できる。これを使うことでユーザ毎やグループ毎に見える共有を変えたり、Sambaの動きを変えることができる。こうした機能を使ってSambaではWindowsにはない柔軟な運用を可能にしている。


hide unreadable / hide unwriteable files


   WindowsにはなくSambaだけが持つ機能としては、ユーザが書き込み権限を持たないファイルを見せなくする「hide unwriteable files」という機能と、ユーザが読み込み権限を持たないファイルを見せなくする「hide unreadable」という機能がある。(共有配下のフォルダやファイルに対して機能する。共有自体を見せなくする機能ではない)


同一サーバに複数のNetBIOS名を付ける


   サーバを移行する場合や複数サーバを1台に統合する場合など、1台のサーバに複数の別名をつけて運用したいことがあるが、Sambaではこれが容易に実現できる。さらにマクロ機能と組み合わせることでアクセスするサーバ名で共有の見え方を変えたりとWindowsではできないことが可能である。

   ファイルサーバとして見た場合、SambaはNASアプライアンスと比較されることも多い。実際いろいろなNAS製品のベースとしてSambaが利用されている。NASアプライアンスはSamba2.2と比べると下記の点に優位性があった。

  • ACL(アクセス制御機能)をサポート
  • 1テラバイトを超える大規模ファイルシステムの性能
  • スナップショット機能(オンラインバックアップ)
  • GUIの運用管理機能

   だが、Samba 3.0とLVM(論理ボリュームマネージャ)、XFS(ACLやスナップショット機能をサポート)を利用することで、現在ではNASアプライアンスに負けない高機能ファイルサーバを低価格で構築することが可能になった。



オープンソース・ソリューション・テクノロジ株式会社

早稲田大学理工学部電気工学科卒業三菱電機計算機製作所に入社し、汎用機、UNIX、Windowsの開発を 経てミラクル・リナックス社へ2001年入社Sambaとは1996年からの付き合い。日本初のSamba解説本を執筆し、Samba日本語版を最初に開 発した。日本Sambaユーザ会の設立にも寄与し、初代代表幹事を務める。日本Webminユーザーズグループの副代表幹事などもつとめ、最近は Linuxコンソーシアムのセキュリティ部会のリーダなどもつとめている。    

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています