ASP.NET ファイル配信アプリ (内部ユーザーのアップロード、外部ユーザーのダウンロード) があり、アプリのファイルを 1 つだけに保存することで単一障害点が発生しないように、ファイルを配布するための最良のアプローチは何か疑問に思っています。サーバ。アプリの負荷を複数のフロント エンド Web サーバーに分散します。つまり、ファイル ストレージの場合、単純にファイルを Web サーバーにローカルに保存することはできません。
現在のセットアップでは、プライマリ データベース/ファイル サーバー上の共有をポイントしています。1 日を通して、プライマリ サーバー上の共有の内容をフェールオーバーにロボコピーします。このシナリオでは、セカンダリ マシンにかなり最新のデータが含まれていることを確認しますが、プライマリからフェールオーバーにフェールオーバーし、フロント エンド アプリでデータの損失やエラーを発生させずに再びフェールオーバーできるポイントに到達したいと考えています。現在、それはかなり手作業のプロセスです。
可能な解決策は次のとおりです。
- ロボコピー。シンプルですが、常に複数のジョブを実行しないと (データをコピーしたりコピーしたり)、フェールオーバーとフェールオーバーを簡単に行うことはできません。
- ファイルを SQL Server 2005 の BLOB に保存します。これは、特に大きなファイルの場合、パフォーマンスの問題になる可能性があると思います。
- SQL Server 2008 で FILESTREAM 型を使用します。私たちはデータベースをミラーリングしているので、これは有望に思えます。誰でもこれを経験したことがありますか?
- Microsoft の分散ファイル システム。管理するサーバーが 2 つしかないため、私が読んだ内容からはやり過ぎのように思えます。
では、通常、この問題をどのように解決し、最善の解決策は何ですか?