プロが教える店舗&オフィスのセキュリティ対策術

会社でCGI/perlの会員管理システムをレンタルサーバーに設置することになりました。

使用するCGIは、会員の数だけディレクトリが作成されます。
したがって、1つのディレクトリ内に 32,000個のディレクトリしか配置できないext3ファイルシステムでは会員数は3万2千人でが上限となり非常に困ります。(「.」や「..」が含まれるので実質的には、31,998個が上限)

調べたところ、ほとんどのLinux系のレンタルサーバーは「ext3」というファイルシステムでした。
ファイルシステムの種類を公表していないところがほとんどなので調べるのに苦労します。

当社はサーバー管理者が不在で、root権限付きの専用サーバーを借りてもサーバー構築ができません。
共有サーバーのように手軽に利用できて、ファイルシステムが「ext4」または「xfs」などを採用している専用サーバーはないでしょうか?

・今分かっていること
CentOS 5.5からは、ファイルシステムとしてext4が利用できる
「ext4」は64,000個まで可能
「xfs」は2,147,483,647(21億強) 個まで可能

A 回答 (3件)

> 使用するCGIは、会員の数だけディレクトリが作成されます。



システム構築の最初のデザインで、会員管理をどうデザインするかといった、SEにとっては、一番アイデアを出す箇所です。

単純には、ディレクトリ階層を2段階方式にする。
32,000の2乗できることになります。

この方式は、
NECのbiglobe会員管理にも使われています。
nnnn@xxx.biglobe.ne.jp
といった具合です。

そのほかアイデア次第でいろんな方式があると思います。
    • good
    • 0
この回答へのお礼

>ディレクトリ階層を2段階方式にする。

すでにプログラムが出来上がっているので、この方式は考えから外していました。

このやり方なら会員が増えてからでもプログラム修正で対応できますね。

貴重なご意見ありがとうございます。

お礼日時:2011/07/28 22:17

>会社でCGI/perlの会員管理システムをレンタルサーバーに設置することになりました。


>使用するCGIは、会員の数だけディレクトリが作成されます。
>したがって、1つのディレクトリ内に 32,000個のディレクトリしか配置できないext3ファイルシステムでは会員数は3万2千人でが上限となり非常に困ります
それシステムのPerlのプログラムに欠陥があるぞ。
そういう大人数のシステムを想定するならデータベースを利用して構築するのが常識的。
    • good
    • 0
この回答へのお礼

>そういう大人数のシステムを想定するならデータベースを利用して構築するのが常識的。

私もそのことが気になり開発者に問い合わせしたことがあります。
その時の回答が「同様のプログラムが数十万アカウントで安定して動いています」でした。

新規で組むならPHP+MySQLだと思いますし、資金と時間の関係でCGIでデータベースとの共稼動もできません。

お礼日時:2011/07/28 22:41

直接の回答ではありませんが、


32000の上限が問題となるような大量の会員を扱うなら、「会員の数だけディレクトリが作成されます」というプログラムを使うのが間違っています。データベースに情報を保存するものを使いましょう。
    • good
    • 0
この回答へのお礼

貴重なご意見ありがとうございます。

お礼日時:2011/07/28 22:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!