メンテナンス
一般的なMogileFSのメンテナンス
実行時のファイルシステムのチェックFSCK ガイドを見てください。 ファイルのrebalanceRebalance ガイドを見てください。 トラッカー job の管理Jobs ガイドを見てください。 ホストの管理ホストの追加ホストの追加はmogadm host addを使うと簡単です。 $ mogadm host add mystorage --ip=10.0.0.1 追加するときにホストのIPアドレスを指定することは、とてもお勧め(そして、必須になるでしょう)です。mogilefsが利用するIPアドレスは、webブラウザとトラッカーがストレージノードと通信するために使われるだろうものです。 hostsファイルを使って"mystorage" を "127.0.0.1" の別名にするのは一般的で、それはmogilefsにIPアドレスを指定せずに"127.0.0.1"へのパスを発行させるでしょう。 注意 クラスタに新しいホストを追加する時は、それらがキャッシュがexpireしたとして認識されるまで1,2分かかるかも知れません。 ホストを一時的にダウンさせるホストでシャットダウンが必要なメンテナンス(RAMのアップグレード、OSのリプレイスなど)をする必要がある場合は、まずホストに"down"の印をつけることをお勧めします。MogileFSは偶発的な失敗に対して回復するように作られていますが、ホストをオフラインにする前に知らせることは間違いではありません。 $ mogadm host mark mystorage down ... do work.... $ mogadm host mark mystorage alive ホストを永続的にダウンさせるホストを'dead'として印をつけると、再び 'alive'または'down'として印をつけることはお勧めできません。You must only ever mark things as "dead" which you don't expect to ever bring back to life again. 'dead'と印をつけると、mogilefsはそのホストにファイルをre-replicateしないでしょう。個々のドライブを'dead'として印をつける べきです。 $ mogadm host mark mystorage dead デバイスの管理デバイスに番号をつける新しいデバイスは常に devidを増加する必要があります。新しいディスクを追加した場合は、新しいユニークな数字を与える必要があります。 死亡したディスクを新しいディスクと置き換える場合、常に 新しいdevidを与えてください。古いdevidの再利用を絶対にしないでください。古いデバイスの全てのファイルのre-replicateが終わる前にmogilefsのディスクを置き換えることもできます。そうでなければ、置き換えられたデバイスへのアップロードのfidが壊れることになるか、古いファイルをre-replicateしないでしょう。Bad!しないでください! デバイスを追加する$ mogadm device add mystorage 5 --status=alive ... or... $ mogadm device add mystorage 5 --status=down 上のものは、新しく追加したストレージデバイス(#5) をデフォルトを alive あるいは down のどちらでストレージホスト(mystorage)への追加を示しています。新しいデバイスのセットを"down"として追加し、それから全てが動作することをすばやくレビューし、新しいデバイスへキャッシュを引き入れるのは、良い練習です。それから、利用する準備ができたら、それら全てをaliveとして印を付けます。 可能であればストレージノードをrootで実行しないことが重要で、デバイスが格納されているディレクトリの下がrootに所有されていれmogstoredユーザで無いことが重要です。デバイスをアンマウントする場合は、MogilefSはまだ可能であれば喜んで下にあるファイルシステムに書き込むでしょう。MogileFSはディレクトリがマウントポイントであるかそうでないかを知る方法はありません。 デバイスのメンテナンスMogileFSはデバイスとホストの幾つかの自動テストを行います。それぞれのトラッカーには monitor ジョブがあり、定期的にデバイスを走査して、デバイス上の小さなファイルを書き込み、読み込み、削除できることを確認します。ファイルシステムを読み込みのみで再マウントしたり完全に見えなくなるようなひどいファイルシステムの故障の場合には、mogileはデバイスに新しいファイルを書き込むことをやめなければなりません。 ファイルシステムのアンマウントに時間がかかり、そしてOSのfsckの実行に時間が掛かるような一時的なダウンタイムの場合は、デバイスをdownとして印を付け後で再びaliveにすることができます。ファイルシステムの崩壊、IOエラーなどの場合。即座にデバイスをdeadとして印を付けるのが一番安全で、MogileFSはまだ正しく動いているデバイスから新しいコピーを作成することができます。 一時的なメンテナンス$ mogadm device mark mystorage 5 down ... later... $ mogadm device mark mystorage 5 alive デバイスあるいはホストを長い間downの印を付けたままにするのは避けてください。MogileFSはデバイスが戻ってくるのを待って、削除、リプリケーション、fsckチェックなどをキューに入れるかも知れません。デバイスが永久に居なくなる場合は、deadとして印をつける必要があります。このことは、分や時間の制限があることを意味しません。セットアップでどれだけ早く物事が変わるか、キューをどれだけ大きくしたいかに、全て依存します。 readonly と drain モードデバイス上の全てのファイルをあるがままに留めておきたい場合は、readonly モードを使いたいと思うかも知れません。これはMogileFSがデバイス上に新しいファイルを置くことを止めさせますが、ファイル削除から 削除を妨げもするでしょう。削除する代わりに、デバイスがalive または drain として印がつけら得るまでキューに入れて待つでしょう。 $ mogadm device mark mystorage 5 readonly $ mogadm device mark mystorage 5 drain drain モードは、バージョン 2.40以上で、MogileFSがデバイス上に新しいファイルを書かないようにします。しかしdrainモードでファイルは削除されるかも知れません。 つまり、新しいファイルを配置しなくないデバイスがあれば、それらを全て drainとして印をつけます。 注意 MogileFSの初期のバージョンでは、drain モードは積極的にデバイスからfidを削除するでしょう。Rebalanceによって置き換えられました。 ファイルの再リプリケートドライブが死亡すると、mogilefsはデバイスを避けようとしますが、そのデバイス上にあるファイルは自動的にはre-replicateされないでしょう。mogadmを使って手動でそれを'dead'として印をつける必要があります。そうするとすぐにmogilefsはデバイス上にあるファイルを削除しそれらをre-replicateしようとし始めるでしょう。 データベースの管理MogileFS は常に全てのトラッカーが同じデータベースを指し示す必要があります。例外はありません!トランザクションと排他ロックが個々のプロセスを調整するために使われ、複数の、master-masterリプリケートされた、データベースに対して実行しているトラッカーは散発的なエラーを起こすでしょう。 MySQLに固有の詳細な情報については、MySQL を見てください。 |
以下のcron jobは mogadmチェックの出力に適切な数の"OK"が存在するかを調べます。インストールに一致するようにその数(この例では9)を調節する必要があります。それはだらしないですが、効果的です。5分ごとに実行し、cronのユーザパスにmogadmがある必要があります。emailアドレスを変更巣rうことを忘れないでください!
これは後で探せるように /tmp/mogadm.checkファイルも残します。システムがどのようにしているか、そしてそのエラーは何が引き金になっているかを知るために、mogadmチェックを実行する必要はありません。(もし、次の事項までにチェックするのであれば)