10

ASP.NET ファイル配信アプリ (内部ユーザーのアップロード、外部ユーザーのダウンロード) があり、アプリのファイルを 1 つだけに保存​​することで単一障害点が発生しないように、ファイルを配布するための最良のアプローチは何か疑問に思っています。サーバ。アプリの負荷を複数のフロント エンド Web サーバーに分散します。つまり、ファイル ストレージの場合、単純にファイルを Web サーバーにローカルに保存することはできません。

現在のセットアップでは、プライマリ データベース/ファイル サーバー上の共有をポイントしています。1 日を通して、プライマリ サーバー上の共有の内容をフェールオーバーにロボコピーします。このシナリオでは、セカンダリ マシンにかなり最新のデータが含まれていることを確認しますが、プライマリからフェールオーバーにフェールオーバーし、フロント エンド アプリでデータの損失やエラーを発生させずに再びフェールオーバーできるポイントに到達したいと考えています。現在、それはかなり手作業のプロセスです。

可能な解決策は次のとおりです。

  • ロボコピー。シンプルですが、常に複数のジョブを実行しないと (データをコピーしたりコピーしたり)、フェールオーバーとフェールオーバーを簡単に行うことはできません。
  • ファイルを SQL Server 2005 の BLOB に保存します。これは、特に大きなファイルの場合、パフォーマンスの問題になる可能性があると思います。
  • SQL Server 2008 で FILESTREAM 型を使用します。私たちはデータベースをミラーリングしているので、これは有望に思えます。誰でもこれを経験したことがありますか?
  • Microsoft の分散ファイル システム。管理するサーバーが 2 つしかないため、私が読んだ内容からはやり過ぎのように思えます。

では、通常、この問題をどのように解決し、最善の解決策は何ですか?

4

6 に答える 6

2

AWS S3のようなクラウド ソリューションを検討してください。従量課金制で、スケーラブルで高可用性を備えています。

于 2009-01-21T05:51:46.273 に答える
1

さまざまな種類のアプリケーションが中央データベースのメディアを介して情報を共有している場合、ファイルの内容をデータベースに直接格納することは、一般的には良い考えです。しかし、システム設計には 1 つのタイプ (Web アプリケーション) しかないようです。ファイルにアクセスする必要があるのが Web サーバーだけであり、データベースとやり取りする他のアプリケーションがない場合は、データベースではなくファイル システムに格納する方が一般的に優れたアプローチです。もちろん、システムの複雑な要件によって異なります。

DFS を実行可能なアプローチと見なさない場合は、ファイル サーバー層のフェールオーバー クラスタリングを検討することをお勧めします。これにより、ファイルは外部共有ストレージに保存されます (高価な SAN ではありません。アクティブ ファイル サーバーとパッシブ ファイル サーバーの間で接続されています。アクティブ ファイル サーバーがダウンした場合、パッシブ ファイル サーバーが引き継ぎ、共有ストレージへの読み取り/書き込みを続行できます。Windows 2008 クラスタリング ディスク ドライバーは、このシナリオ (記事による) で Windows 2003 よりも改善されており、SCSI-3 (PR) コマンドをサポートするストレージ ソリューションの要件を示しています。

于 2009-01-21T02:17:26.690 に答える
1

RAID を備えた SAN が必要です。彼らは稼働時間のためにこれらのマシンを構築します。

これは本当にITの質問です...

于 2009-01-21T02:12:58.740 に答える
0

表示されるダウンロード量の種類によって異なると思います。私は、SQL Server 2005 の Image 列にファイルを保存しています。これらのファイルに対する需要はそれほど多くないため、パフォーマンスは、この特定の状況ではそれほど大きな問題ではありません。

ファイルをデータベースに保存する利点の 1 つは、災害復旧が容易になることです。また、データベースで管理できるため、ファイルのアクセス許可の管理がはるかに簡単になります。

Windows Server には、お勧めしないファイル レプリケーション サービスがあります。私たちはそれをしばらく使用してきましたが、多くの頭痛の原因となっています.

于 2009-01-21T02:02:42.710 に答える
0

DFS はおそらくセットアップが最も簡単なソリューションですが、ネットワークの信頼性によっては、リンクを切断して再同期する必要がある場合に同期が取れなくなることがありますが、これは正直言って非常に苦痛です。

上記を考えると、システムの複雑さを増すのではなく軽減するため、SQL Server ストレージ ソリューションを使用する傾向があります。

最初にパフォーマンスが問題になるかどうかを確認するためにいくつかのテストを行います。

于 2009-01-21T15:48:30.343 に答える