Novell Storage Service

Novell Storage Service (NSS) はノベル が 1998 年販売を開始したNetWare 5.0 (32bit) から搭載され、現在は Novell Open Enterprise Server (OES x86,OES x86-64) に移植された Linux のファイルシステムのひとつである。従来の NWFS (NetWare File System) に取って代わられた。Open Enterprise Server 2015 より拡張され NSS64 となった。

概要 
ファイルサーバ専用ファイルシステムであるため NSS32 では次のような特色がある（括弧内はOES2015 より実装されたNSS64 の数値）,

 最大ファイルサイズ - 8Tバイト（最大 8Eb, 800京バイト）
 ボリューム上でのファイル最大保持数 - 8兆ファイル
 最大同時オープンファイル数 - 無制限
 単一サーバあたり 255 ボリュームをマウント
 最大2Tバイトのディスクドライブ(最大 8Eb, 800京バイト)
 最大2Tバイトのパーティションサイズ（最大 8Eb, 800京バイト）
 最大8Tバイトのプールサイズ（最大 8Eb, 800京バイト）
 8.3 形式から Windows Long File Name, Macintosh ファイルネームスペース、 NFS ネームスペースに対応
 最大ファイルパスサイズ - 無制限（ただしアクセスするクライアント側のファイル名制限による）
 UNICODE によるファイル名管理
 巨大なボリュームであっても1秒以内にマウントできる高速起動

NSSで作成されたボリュームには次のような付加属性がある。

 削除ファイルの復旧（Salvage機能）
 ボリュームの自動圧縮機能
 ボリューム全体の容量制限
 ディレクトリ単位の容量制限
 スナップショット機能
 ソフトウェア RAID 機能

ファイルのアクセス制限 
NWFS (NetWare 3.x/4.x) と同様に SRWCEFMA のアクセス属性でアクセス制御（Novell ではトラスティ - trustee と呼ぶ）を行う。

 S- Supervisor 権
 R- ファイル読み出し権
 W- ファイル書き込み権
 C- ファイル作成権
 E- ファイル削除権
 F- ファイル名検索権
 M- ファイル名変更権（ファイル属性も変更できる）
 A- ファイルアクセス制御権

ユーザにトラスティのないディレクトリは不可視であるため、ユーザ自身がアクセスできないディレクトリは存在すらわからない。ユーザに関係のないディレクトリが見えないため、クライアント側では不要な共有フォルダの一覧を開くためのネットワークトラフィック、キャッシュ能力が低くても必要な共有ディレクトリを開くことができる。不要なフォルダが見えないため、クライアントからは必要なファイルにアクセスしやすい。

一般に読み出し専用のディレクトリにはトラスティ RF を与える。ユーザが自由に読み書きできるディレクトリであればトラスティは RWCEFM を与える。A権（アクセス制御権）を与える場合は注意を要する。管理者レベルではなくユーザレベルで権限を他人に委譲することができるからである。S 権は本来与えるべきではない。管理者やバックアップ用のオペレータから管理不能の不可視のディレクトリを作成することができるからである。逆に言えば、管理者が信頼できない場合、ユーザ側が S 権を行使して管理者を排除することができる。

 C 権だけのフォルダは、ドロップボックスと呼ばれ、ユーザがファイルを保存することはできるが、開いて中身を開くことができない。
 R 権だけのフォルダは、ファイル名のパスが分かっていればユーザからは不可視であるが、開くことができる。

権利継承 
NWFS から継続して権利継承 (Inherited Rights) の考え方が適用されている。例えるなら先祖の権利が子孫に継承されるような仕組みである。上位のディレクトリに与えた権利は自動的に下位のディレクトリにも適用される。そのため、他のファイルシステムのように深いディレクトリや数の多いファイルの権限を書き換えるような操作は行われないため、アクセス権を与えるトラスティ操作、アクセス権を奪うリボーク(Revoke) 操作はファイルの多寡に限らず一瞬で完了する。

この権利継承をブロックする機能を IRF(Inherited Rights Filter) と言う。

プールとボリューム 
最大デバイスサイズとパーティションサイズは2TBであるが、異なるデバイス、パーティションを組み合わせて NSS プールと呼ばれるボリュームプールを作ることができる。このため、パーティションサイズの小さなデバイスを統合して巨大なボリュームを構成することができる。ボリュームサイズの縮小、拡大はオンラインで一瞬で完了できる。例えば、100Gのボリュームサイズを0バイトにオンラインで変更することもできるが、その場合はボリューム全体が容量不足で書き込み不可となる。逆に50Gバイトのボリュームを100Gバイトに変更することもできる。この作業をオンラインで実行できるため、クライアントOSから見ると一瞬でサイズが増えたように見える。

修復機能 
fsck, chkdisk, vrepair といった修復ツールで修復を行わずにボリュームを修復してマウントできる。そのため、障害後の再起動が非常に早い。

欠点 
ファイルサーバ専用ファイルシステムとしては優秀だがいくつかの欠点がある。

 NetIQ eDirectory 配下で動作するため、ライセンスが必要である。
 UNICODE でファイル名を管理するため、他の文字コード ASCII, EUC などでは共有の際に文字化けが発生することがある。
 ディレクトリパスの長さ制限が事実上ないため、他のファイルシステムで作られた長いファイル名は共有できない場合がある
 OES Linux では1 /(ルート), /boot とは異なるディスクデバイスにNSSボリュームを配置しなくてはならない（可能であるが推奨はされない）。そのため、初期のOES Linux システムでは SAN 構成が推奨され物理ディスクの配置が問題である。XEN での仮想化が可能であるため少量のブートパーティションの仮想化 iSCSI-SAN によるファイルシステムを構築できる。

外部リンク 
 http://www.novell.com/ja-jp/documentation/oes2

脚注 

OSのファイルシステム