自動スケーリングサーバーで使用される複製されたGlusterストレージがあります。自動スケーリングとストレージの両方が、2つのアベイラビリティーゾーンに割り当てられます。
Gluster:
Number of Bricks: 4 x 2 = 8
Transport-type: tcp
Bricks:
Brick1: gluster01:/storage/1a # Zone A
Brick2: gluster02:/storage/1b # Zone B
Brick3: gluster03:/storage/2a # Zone A
Brick4: gluster04:/storage/2b # Zone B
Brick5: gluster01:/storage/3a # Zone A
Brick6: gluster02:/storage/3b # Zone B
Brick7: gluster03:/storage/4a # Zone A
Brick8: gluster04:/storage/4b # Zone B
GlusterエントリポイントにラウンドロビンDNSを使用したため、DNS名は、常に異なる順序で返されるすべてのストレージサーバーアドレスに解決されます。
# Host storage.domain.com
storage.domain.com has address xx.xx.xx.x1
storage.domain.com has address xx.xx.xx.x2
storage.domain.com has address xx.xx.xx.x3
storage.domain.com has address xx.xx.xx.x4
ストレージはネイティブGlusterクライアントでマウントされます。
# grep storage /etc/fstab
storage.domain.com:/storage /storage glusterfs defaults,log-level=WARNING,log-file=/var/log/gluster.log 0 0
Glusterは最初のサーバーIPでマウントされ、その後、残りのサーバーで構成をフェッチする可能性があると聞きました。個人的には、単一サーバーのマウントセットアップをテストしたことはなく、Glusterがこれをどのように処理するかわかりません。
EC2では、単一のアベイラビリティーゾーン間のトラフィックは無料で、異なるゾーン間のトラフィックは無料ではありません。ゾーンAのクライアントがストレージに書き込み、ゾーンBのストレージのIPが返されると、データ転送にさらに2倍のコストがかかります:クライアント(ゾーンA)->ストレージサーバー(ゾーンB)->ストレージサーバーへのレプリケーション(ゾーンA )。
質問:同じゾーンのストレージサーバーをマウントして、データ転送料金がレプリケーションにのみ適用されるようにする方がよいでしょうか(A-> A-> B)?
同じゾーン内のサーバーにマウントを実行すると、初期のglusterセッションセットアップトラフィックが有料リンクを通過するのを防ぐことができます。ただし、データトラフィックをローカルAZに強制することはできません。あなたのようなGluster分散複製ボリュームは、すべてのブリックが等しいと見なします。これは、予測できない場所にファイルを配置できることを意味します。 2つのレプリカが同じAZにある可能性は完全にあります。その時点で、他のAZからそのファイルへのすべてのアクセスが従量制リンクを通過します。両方のレプリカがもう一方のAZにあるため、Glusterがレプリケーションを処理する方法により、ネットワーク転送の2倍の料金が発生します。
Glusterがサイト認識の感覚を持っている唯一の場所は、 Geo-Replication モジュールです。これは悲しいことに非同期です。