web-dev-qa-db-ja.com

最新のデータセンターの共有ディスク(SAN、仮想化など)

私は開発者です...ここで外国の地形を踏んでいます。ナイーブはご容赦ください。

私はデータベースとファイルシステムの両方にデータを保存するアプリケーションに取り組んでいます。

コンテキスト:クラスタリングとネットワーク共有

過去にクラスター化されたアプリケーション(つまり、データの前にある複数のアプリケーションサーバー)を実行したとき、ファイルシステムは次のように処理されていました。

  • ノードA:「データディレクトリ」を共有します(sambaまたはnfs経由)
  • ノードB、C、Dなど:「ネットワーク共有」をマウントし、その「データディレクトリ」で使用します

ノードB、C、Dの「ディスク速度」の低下は最適ではありませんでしたが、大きな問題ではありませんでした。

:アプリケーションは独自のファイルロックメカニズムを使用します。同時書き込みは問題ではありません。

質問

  • では、最新のデータセンターのファイバーチャネルでサーバーをSANSに接続する場合、複数のサーバー間で「ディスクの塊」を共有するための最良の方法は何でしょうか。

  • そのような「ディスク共有」は広く使われていますか?

  • OS固有の懸念事項(「Linuxでは機能しますが、Windowsでは利用できません」)

  • 注意点はありますか?設定が難しい、信頼できないなど?

システム管理者から「それはできない」とよく耳にしましたが、最後に詳細を尋ねると、「技術的には可能ですが、ここではできません」と言われました。

前もって感謝します、

更新:回答ありがとうございます。 (それらはすべて良かった:私は1つを選ばなければならなかった。それがあなたのものでなければ申し訳ない)私が(ある程度)期待したように:あなたが単にNTFSまたはXFSまたはどんな「通常の」ファイルシステムも同じハンクに接続できることを願っている「ディスク」のはナイーブであることが証明されました。クラスタ化されたファイルシステムがチケットです。そして、派手なファイルシステムは私たちのホスティングチームの最優先事項ではありません)。

6
user50460

「まあ、技術的には可能ですが、ここでそれを行う方法ではありません」

それは私が定期的に開発者に言っていることと非常によく似ています;)

エンタープライズ運用の観点から、アプリケーションが標準の反復可能なソリューションを使用することを可能な限り望んでいます。アプリケーションが特別な処理を必要としない/保証しない場合、それを取得することはできません。非標準のソリューションには、専門的なスキル、より高価な、または単により多くの機器が必要であり、それが「最先端」の場合、障害もしばしば壊滅的です。

多くのアプリケーションにとって、(高可用性)ファイル共有は依然として非常に適切で一般的に展開されているソリューションです。

ファイル共有を使用するための一般的なHAの代替ソリューションは次のとおりです。

  • ファイルをファイルシステムに保存せず、可用性の高いデータベースを使用して、代わりにBLOBとして保存します。非常に一般的なアプローチ。多くの場合、とにかくすでにデータベースが必要です。これにより、アプリケーションサーバーはほとんどステートレスになり、ロック、レプリケーション、HA、整合性、アクセスの問題の多くをデータベースレイヤーに移行することで解決します。これらの問題の多くは古いニュースであり、よく理解されており、解決しました。ペタバイトの範囲(のかなりの部分)に達すると、維持に費用がかかる可能性があります。

  • 適切なクラスター化されたファイルシステム。ファイバーチャネルまたはiSCSIを介した共有ストレージへの同時読み取り/書き込みブロックレベルアクセスを可能にします。エンタープライズストレージアレイは かなり高価 になる傾向がありますが、これは非常にうまく拡張できます。多くの場合、クラスターファイルシステムでは、クラスターFSソフトウェアの各ノードに(高価な)ライセンスが必要です。また、特殊なアプリケーションのエンタープライズ環境でも非常に一般的です。

  • 分散オブジェクトストアを使用します。これは、ローエンドのコモディティハードウェアを備えた、よりオープンソースのソリューションであり、ソフトウェアに冗長性とスケーラビリティをもたらします。これは一般的な「クラウド」アプローチです。

4
HBruijn

複数のサーバーを共有ブロックデバイス(DASD/SAN)に接続している場合でも、ディスクのチャンクへのアクセスを手動で管理する必要があります(一部のデータベースは、rawディスクでそれを行います。LVMもオプションであり、管理されたLVアクセスを備えています)。同時アクセスを管理するクラスターファイルシステムを使用します。

ファイルごとに管理されている書き込みロックを使用している場合でも、2つのホストが同時にFSメタデータの変更を実行しようとすると、FS破損が発生する可能性があります。クラスター化されていないFSの場合、最新のものはありません。ところで、SANと同時ブロックアクセスは、80年代(70年代ではないにしても)から存在しています。

最新のOSはすべてクラスター化されたFS実装であり、すべてを自分で記述したい場合はブロックチャンクの分離も可能であるため、使用する対象に非常に固有です。

編集:あなたの「古い」ネットワーク共有アプローチはまだかなり実行可能であり、ファイルサーバーがファイルロックを処理するので、追加のロックメカニズムは必要ありません。余分なパフォーマンスを求めておらず、単純な展開が必要な場合でも、おそらくそれが最も簡単なルートです。

ここで、「モダン」について話したい場合は、オブジェクトストレージについて考え始め、アプリのアーキテクチャをスケールアウトします。

3
dyasny

共有ハードウェアだけでなく、クラスター化されたファイルシステムも必要です。

通常のファイルシステムは機能しません。2台のコンピューターがお互いの変更を上書きしてしまい、ファイルシステムが破損してしまいます。

クラスター化されたファイルシステムでは、コンピューターがすべて、行っている変更について相互に通知し、必要に応じてロックファイルを処理して、互いの足を踏まないようにします。

これらのファイルシステムの一部はアプリケーション固有です(たとえば、VMwareにはVMFSがあり、Hyper-Vにはクラスター共有ボリュームがあります)。これらは仮想マシンの格納に最適ですが、一般的なファイルストレージとしては使用されません。ファイルを保存するように設計されているものは他にもあります。それぞれにさまざまな長所と短所があるため、どちらを使用するかによって大きく異なります。それらはすべて(私が知る限り)OS固有です-この方法でWindowsとLinuxの間でファイルシステムを共有することはできません。

高可用性仮想マ​​シンのフェイルオーバーなどの場合、これが本当に必要です。 SMBまたはNFSが機能するアプリケーションの場合、これらが一般的に推奨されます。少し遅くなる可能性がありますが、問題が発生する可能性ははるかに少なく、破損した場合の回復も容易です。

2
Grant