「フォト蔵」のように、不特定多数の人がファイルをアップロードするサイトを構築したいと考えております。しかし、巨大なディスク容量を必要とするサーバーの構築方法がわかりません。


サーバー1台では、HD容量が1TBあったとしても、多数の人がファイルをUPすれば、すぐにHDが一杯になってしまいます。よって、サーバーのHD容量を随時増やしていける構成が必要です。

サーバー自体の構成は、WEBサーバーとDBサーバーを分けておいて、DBサーバーを随時増やしていけばよいということは何となくわかるのですが、プログラムをどのように組めばよいのかが全くわかりません(プログラムはosCommerceを使用します)。

そこで質問ですが、このようなDBサーバーを随時増やしていける構成のサーバーを構築したい場合、
・どのようにプログラムを組めばよいのか
・PHPレベルで対応できるのかそれともApacheで何かするのか
・○○という技術が必要となる
・どこどこのサイトをみればよい
・どこどこの業者にいえばよい
などの情報をいただけないでしょうか?

どうぞよろしくお願いいたします。

回答の条件
  • 1人3回まで
  • 登録:2009/02/07 09:55:48
  • 終了:2009/02/14 10:00:03

回答(2件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/02/07 10:35:12

ポイント35pt

あくまで一般論ですが、ファイル名とファイル本体は別々に管理します。

アップロードされたファイルにユニークな名前(例:ユーザーIDと年月日時分秒の組み合わせ)を付し、空いているドライブに格納します。DB側には、ファイル名と格納したパス名などを登録します。

ファイル本体を格納するドライブ容量が不足したら、ドライブを追加し、格納するパス名を次々に変えていけばよいのです。これであれば、PHPで簡単に実装できます。

もちろんDBを格納する容量が不足したらアウトですが、ファイル名を格納するだけですので、DBに割り当てたパーティションが余程小さくない限り、限り容量不足に陥ることはないでしょう。


なお、アレイ装置を使って複数のHDDを仮想化することで、あたかも1つのパーティションであるかのように見せかけることができます。ホットプラグ対応のストレージであれば、システムを停止することなく、HDD増設していくことができます。

ただし、それなりの規模のシステムになりますので、ハードウェアメーカーやSI企業に委託する必要があります。

例:HP StorageWorks ディスクアレイ XPファミリ


参考サイト

id:esecua No.2

esecua回答回数510ベストアンサー獲得回数102009/02/09 07:28:26

ポイント35pt

ん〜名前を忘れてしまったのですが、米フォトサイト(flickrではないです)では1日に膨大な写真がアップされているそうなのですが、その保存先としてAmazon EC2/S3を利用しているとのことでした。

私の記憶が正しければDropBoxも同様だったはずです。

大量のデータを貯めるようなシステムを構築するのであれば、あえて自前でサーバを構えるよりもEC2のようなサービスを使用する方が安く仕上がるのではないでしょうか?

*かなり大規模なサービスのような感じなので、もちろん安定的な収益源(広告以外で)はお考えいただいていると思うのですが、どの方法(自前/外部)を利用しても必ずコストとはかかりますので、そこら辺をしっかりと念頭に置きましょう。

  • id:soilmonger
    ありがとうございました。
    やはりそれなりのハードウェアが必要だということがわかりました。
    また、Amazon EC2/S3も参考になりました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません