複数のネットの設定
複数のネットワークのためにMogileFSを設定
注意: このガイドはバージョン2.35以上を参照します。またこれを書いている時点では、必要なモジュールがCPANに無いかもしれません。 MogileFS と 複数の ネットワーク/データセンターMogileFS は複数の利用可能なネットワークという点から、複数のデータセンターを理解します。これの意味すること:
現在のところ、データベースまたはトラッカーを複数の場所で実行するためのどのようなnativeな取り組みもありません。トラッカーはネットワークの両方で実行され、ZoneLocalプラグインを使ってクライアントにローカルのコピーを提供しようとし、ローカルコピーを使ってリプリケートするでしょう。しかしながら、全てのトラッカーはそれでもデータを取り出すために同じデータベースを指す必要があります。 インストールの前提条件CPANから 'MogileFS::Network' をトラッカーのサーバにインストールします。これにより、トラッカーのためのZoneLocalプラグインがもたらしたように、MultipleNetworks と HostsPerNetworkのリプリケーションポリシーがもたらされます。 設定リプリケーション ポリシーの決定複数のネットワークこのリプリケーションポリシーは明確な設定を要求しません。ネットワークゾーンを定義し、単純にクラスポリシーを"MultipleNetworks()" に設定します。リプリケーションはそれからできるだけ多くのネットワークにコピーが存在するようにしようとするでしょう。理想的には3以上のmindevcountでこれを使うべきです。 HostsPerNetworkMultipleNetworksのもっと強力なバージョンで、それぞれのゾーンに正確にいくつのコピーが存在するかを指定することができます。例えば。ゾーン "near" と "far" がある場合。near に二つのコピーを、farに一つのコピーを持ちたいとすると、"HostsPerNetwork(near=2,far=1)" のように設定する必要があります。 設定ゾーン
... 以上です。 ZoneLocal プラグインの設定ゾーンを設定し、全てのトラッカーにMogileFS::Networkをインストールすると、ZoneLocalと呼ばれるトラッカーのプラグインを有効にする選択肢ができます。これはトラッカーにどのゾーンにいるかを明確にするように伝え、リモートクライアントがどのゾーンにいるかを見つけようとするでしょう。パスデータを返す時、あるいはファイルの新しいコピーをリプリケートする時に、"local"ネットワークで利用可能なパスを使おうとするでしょう。 これを有効にするには、単純に新しい行をmogilefsd.confに追加します local_network = 10.5.0.0/16 plugins = ZoneLocal local_network はクライアントとノードがこのトラッカーが来ていると考えているネットワークでなければなりません。もっと簡単に言うと、それは単にトラッカーがいるネットワークです。そのIPアドレスが10.5.0.50の場合、 ローカルネットワークは 10.5.0.0/16 でしょう。 これが最初の設定であれば、一つのトラッカーをフォアグラウンドで実行(デーモン化しない)するか、うまく行っているかを確認するために!watchを使って注意深く監視したほうがよいでしょう。 クラス リプリケーション ポリシーの設定最後は、クラスポリシーの設定です。MogileFSはクラスを使ってファイル単位で複数のネットワークポリシーを決定することができます。 mogadm class list domain class mindevcount replpolicy -------------------- -------------------- ------------- ------------ toast byhost 2 MultipleHosts() toast default 2 MultipleHosts() toast four 4 MultipleHosts() toast fourbynamenet 1 HostsPerNetwork(near=2,far=1) mogadm class add toast twoontwonets --replpolicy "HostsPerNetwork(near=2,far=2)" mogadm class modify toast twoontwonets --replpolicy "HostsPerNetwork(near=3,far=3)" 設定例ネットワーク 10.10.0.0/16 (10.10.*.* アドレス)があるとします。 全てのマシーンはネットマスク 10.10.0.0/16 を持つように設定されます。 10.10.5.0/24 から取り出したマシーンのIPアドレスが、例えば次のものであった場合: web1: 10.10.5.1 (netmask 255.255.0.0 or /16) web2: 10.10.5.2 tracker1: 10.10.5.3 tracker2: 10.10.5.4 storage node 1: 10.10.5.5 storage node 2: 10.10.5.6 バックアップノード: storage node 3: 10.10.8.1 (netmask 255.255.0.0 or /16) つまり、メインサーバは 10.10.5.0/24 に、バックアップサーバは 10.10.8.0/24 に収まります。 MogileFSゾーンでは、以下のように設定します: near=10.10.5.0/24 far=10.10.8.0/24 これで、"web1"が"tracker1"にAPIリクエストをした場合は、tracker1はweb1が10.10.5.0/24の"near"ゾーンにいるように見えます。なぜなら、"web1"は 10.10.5.1のIPアドレスを持っているからです。 "tracker1"はこれで"near"にいるストレージノードを見ます。"node1"と"node2"のIPアドレスが10.10.5.5と10.10.5.6で、共に10.10.5.0/24の中にいるのでこれにマッチします。またこれらは 10.10.5.0/24 の中にもいます。 "node3"は10.10.8.1で、10.10.8.0/24のゾーン"far"にマッチするため、読み込みの対象になりません。 replpolicy を次のように設定した場合: class toast: HostsPerNetwork(near=2,far=1) "tracker1" と "tracker2" は常にクラス"toast"のファイルのコピーを"near"ゾーンに二つ、"far"ゾーンに1つ配置するでしょう。この例では、"node1"に一つのコピー、"node2"に一つのコピー、"node3"に一つのコピーと解釈されます。 結論セットアップが完了し、設定し、クラスを修正したとしても、自動的にはファイルが再リプリケートされないことに注意してください。リプリケーションポリシーを変更していて既存のファイルがあるのであれば、新しいポリシーで幸せになるには何が必要かをmogilefsが知るためにFSCKを実行したいでしょう。詳しくはFSCKガイドを見てください。 |
just wondering; is the below possible?
mogadm settings set zone_datacenter2 10.6.0.0/16 10.7.0.0/16 10.8.0.0/16
if the datacenter has multiple ip ranges in use.
zendith: Yes, it should work with a comma or space separated list of netmasks.