サーバー1台では、HD容量が1TBあったとしても、多数の人がファイルをUPすれば、すぐにHDが一杯になってしまいます。よって、サーバーのHD容量を随時増やしていける構成が必要です。
サーバー自体の構成は、WEBサーバーとDBサーバーを分けておいて、DBサーバーを随時増やしていけばよいということは何となくわかるのですが、プログラムをどのように組めばよいのかが全くわかりません(プログラムはosCommerceを使用します)。
そこで質問ですが、このようなDBサーバーを随時増やしていける構成のサーバーを構築したい場合、
・どのようにプログラムを組めばよいのか
・PHPレベルで対応できるのかそれともApacheで何かするのか
・○○という技術が必要となる
・どこどこのサイトをみればよい
・どこどこの業者にいえばよい
などの情報をいただけないでしょうか?
どうぞよろしくお願いいたします。
あくまで一般論ですが、ファイル名とファイル本体は別々に管理します。
アップロードされたファイルにユニークな名前(例:ユーザーIDと年月日時分秒の組み合わせ)を付し、空いているドライブに格納します。DB側には、ファイル名と格納したパス名などを登録します。
ファイル本体を格納するドライブ容量が不足したら、ドライブを追加し、格納するパス名を次々に変えていけばよいのです。これであれば、PHPで簡単に実装できます。
もちろんDBを格納する容量が不足したらアウトですが、ファイル名を格納するだけですので、DBに割り当てたパーティションが余程小さくない限り、限り容量不足に陥ることはないでしょう。
なお、アレイ装置を使って複数のHDDを仮想化することで、あたかも1つのパーティションであるかのように見せかけることができます。ホットプラグ対応のストレージであれば、システムを停止することなく、HDD増設していくことができます。
ただし、それなりの規模のシステムになりますので、ハードウェアメーカーやSI企業に委託する必要があります。
例:HP StorageWorks ディスクアレイ XPファミリ
やはりそれなりのハードウェアが必要だということがわかりました。
また、Amazon EC2/S3も参考になりました。