最近、Apache Mesosのようなものを発見しました。
デモや例では、すべてが驚くほどに見えます。ステートレスジョブを実行する方法を簡単に想像できました。これは、全体のアイデアに自然に適合します。
ボットは、ステートフルな長時間実行ジョブをどのように処理するのですか?
たとえば、N台のマシンで構成されるクラスターがある(そして、マラソン経由でスケジュールされている)とします。そこで、postgresqlサーバーを実行したいと思います。
それだけです-最初は高可用性にしたくありませんが、postgresqlサーバーをホストする単一のジョブ(実際にはDockerized)だけです。
1-どのように整理しますか?サーバーを特定のクラスターノードに制限しますか?分散FSを使用しますか?
2- DRBD、MooseFS、GlusterFS、NFS、CephFS、それらのうちどれがMesosやpostgresなどのサービスでうまく機能しますか? (私はここでMesos /マラソンがダウンした場合にサービスを再配置する可能性について考えています)
3-哲学の観点から私のアプローチが間違っているかどうか教えてください(データサーバーのDFS、およびMesosの上のpostgresなどのサーバーのある種のスイッチオーバー)
Apache Mesosの永続ストレージ からの質問の大部分は、 zerkmsProgrammers Stack Exchange によって尋ねられました。
すばらしい質問です。ここでは、ステートフルサービスのサポートを改善するためのMesosのいくつかの今後の機能と、対応する現在の回避策を示します。
--resources
フラグを使用して、スレーブの起動時にフレームワークのリソースを静的に予約します。特定のユースケースと質問に関しては:
1a)それをどのように編成しますか?これをMarathonで行うことができます。おそらく、ステートフルサービス用に別のMarathonインスタンスを作成して、静的なステートフルなマラソンのみがこれらのリソースを保証されるように、「ステートフル」の役割の予約。
1b)サーバーを特定のクラスターノードに制限しますか?これをMarathonで簡単に行うことができ、アプリケーションを特定のホスト名、または特定の属性値(NFS_Access = trueなど)。 Marathon Constraints を参照してください。特定のノードセットでのみタスクを実行したい場合は、それらのノードで静的予約を作成するだけで済みます。そして、それらのノードの検出可能性が必要な場合は、 Mesos-DNS および MarathonのHAProxy統合 を確認する必要があります。
1c)分散FSを使用しますか?多くの分散ファイルシステムによって提供されるデータレプリケーションは、データが単一のノードの障害に耐えられることを保証します。また、DFSを維持すると、ネットワークとローカルディスク間の遅延の違いを犠牲にしても、タスクをスケジュールできる場所の柔軟性が高まります。 Mesosには、HDFS URIからバイナリをフェッチするための組み込みサポートがあり、多くのお客様は、HDFSを使用して、タスクを実行するスレーブにエグゼキューターバイナリ、構成ファイル、および入力データを渡します。
2)DRBD、MooseFS、GlusterFS、NFS、CephFS?MesosでCephFS、HDFS、MapRFSを使用しているお客様のことを聞きました。 NFSも簡単に適合します。タスクが配置されているノードからアクセスする方法をタスクが知っている限り、Mesosは何を使用してもかまいません。
お役に立てば幸いです。