[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gfarm-discuss-ja:60134] Re: メタデータサーバの冗長化について



曽田 様

お世話になっております。小笠原です。

>ありがとうございます。 これは、ログの一部 (シーケンス番号 1723247370 よ
り前にも、まだログが ある)
>と考えて良いでしょうか?

seqnum 1723134352からのログがあります。

gfmdがダウンした際のseqnumは1723247368で、

1723247361 BEGIN 24
1723247362 INODE_MTIME_MODIFY 44 ino=15357572
1723247363 INODE_MODIFY 116 ino=19774167
1723247364 DIRENTRY_ADD 67 ino=15357572
1723247365 INODE_CTIME_MODIFY 44 ino=19774167
1723247366 INODE_MTIME_MODIFY 44 ino=19774167
1723247367 INODE_SIZE_MODIFY 40 ino=19774167
1723247368 END

この部分が該当するでしょうか。

又、報告し忘れていた点があったのですが、障害発生時にJournalを削除後、
gfmdを起動し
次にgfsdがフリーズ?していたので起動スクリプトからは正常に停止できません
でしたので、
pkill等でプロセスを殺してから起動スクリプトでgfsdを起動させました。ファ
イルシステムノード4台
の内1台だけが、下記のように表示されたりされなかったりしました。
1K-blocks Used Avail Use% Host
8.4T 793G 7.6T 9% fsnode1
0 0 0 nan% fsnode2
8.4T 789G 7.6T 9% fsnode3
8.4T 794G 7.6T 9% fsnode4
----------------------------
25.2T 2.4T 22.8T 9%
この時に出力していたログが下記です。
Sep 27 14:21:50 fsnode gfsd[13100]: [1002295] (root@client) gfmd
protocol: open error on put_fd result: bad file descriptor
Sep 27 14:21:50 fsnode gfsd[13100]: [1000451] (root@client) disconnected
Sep 27 14:23:43 fsnode gfsd[17114]: [1002382] fhremove put reply: broken
pipe
Sep 27 14:23:43 fsnode gfsd[17114]: [1002382] fhremove put reply:
connection reset by peer
Sep 27 14:23:44 fsnode gfsd[17114]: [1000551] cannot set canonical
hostname of this node (fsnode), died: unexpected EOF
Sep 27 14:23:44 fsnode gfsd[17114]: [1000451] disconnected
Sep 27 14:23:44 fsnode gfsd[32463]: [1002294] (root@meta) gfmd protocol:
GFM_PROTO_REPLICA_ADDED2 error on compound_begin result: unexpected EOF
gfsdを再起動し直して正常に表示されるようになりました。

2.5.1に本日アップデートを行いましたので、slaveのgfmdを起動し様子をみてお
ります。
その際ですが、gfdump.postgresでリストア後gfmdにメモリが乗った後しばらく
下記の通り表示されました。
? slave sync c (default) slave 10601
+ master - m (default) master 10601
しばらく待っていると?から+に変更されました。ご報告までに。


(2011/09/28 10:50), SODA Noriyuki wrote:
> 小笠原様
>
>>>>>> On Tue, 27 Sep 2011 20:42:04 +0900,
>       ogasawara <ogatak1978@xxxxxxxxx> said:
>
>>> ファイルシステムノードで行なっている複製処理の数が、設定ファイルの
>>> simultaneous_replication_receivers で指定した値 (デフォルト20) を
>>> 越えたために、複製処理を諦めたことを表す警告です。
>> このsimultaneous_replication_receiversという設定項目はgfrepを実行した時
>> の複製時に働く項目でしょう か、
>> それともgfxattrで設定した方の複製時に働く項目なのでしょうか。又、ドキュ
>> メントのgfarm2.confの項目で確認
>> しましたが、特に明記されておりませんので、gfmd.confではなくgfarm2.confだ
>> けに設定すればよいでしょうか。
> simultaneous_replication_receivers は、現在のところ、拡張属性
> gfarm.ncopy で指定した数の複製を作成する場合に働きます。
> (将来的には、gfrep でも働くようにする予定ですが、その頃には、
>  simultaneous_replication_receivers の制限に到達しても、諦めるのではなく、
>  処理をキューイングするだけになると思います。)
>
>> 問題が無いのであればこの項目の設定値を上げる事により諦める複製の数を減ら
>> したいと考えていますが、
>> 上げない方が好ましいでしょうか。
> gfarm-2.4.0 の場合、この設定を大きくするといろいろ問題があったのですが、
> 2.4.1 以降であれば、若干メモリを多く消費する程度であり、問題ないと
> 思います。
>
>> 又、journalログを調べてみました。
> ありがとうございます。
> これは、ログの一部 (シーケンス番号 1723247370 より前にも、まだログが
> ある) と考えて良いでしょうか?
>
>> 1723247370 INODE_MTIME_MODIFY 44 ino=4230543
>> 1723247371 INODE_MODIFY 116 ino=19766087
>> 1723247372 DIRENTRY_ADD 86 ino=4230543
>> 1723247373 INODE_CTIME_MODIFY 44 ino=19766087
>> 1723247374 INODE_MTIME_MODIFY 44 ino=19766087
>> 1723247375 INODE_SIZE_MODIFY 40 ino=19766087
>> 1723247376 END 24
>> [1000425] direntry_add: INSERT INTO DirEntry (dirINumber,
>> entryName,entryINumber) VALUES ($1, $2, $3): ERROR: duplicate key value
>> violates uniqueconstraint "direntry_pkey"#012DETAIL: Key (dirinumber,
>> entryname)=(4230543, abc.jpg) already exists.
>>
>> [1003180] db_journal_store_thread : seqnum=1723247372 ope=DIRENTRY_ADD : already exists
>>
>> と出ていたので、この辺で重複してしまっていたのかとおもいます。
> seqnum=1723247372 が適合してますので、間違いなくここですね。
>
> PostgreSQL にジャーナルの内容を反映する際、それと同一のPostgreSQL的な
> トランザクションで、seqnum も書き込むようにしています。
> gfmd 起動時に行なうジャーナルの適用では、この seqnum より後のジャーナル
> しか反映しないようにしていますので、重複は本来は起きない筈です。
> この seqnum は、以下のようにして確認できますので、もし同様な現象が
> 起きた場合には、この値も教えていただけると、大変助かります。_o_
>
> $ psql -h ホスト名 -p ポート番号 -U gfarm gfarm
> Password for user gfarm: パスワード
>
> gfarm=> select * from seqnum;
>  name | value 
> ------+-------
>       |  7929
>
> ここで、ホスト名、ポート番号、パスワードは、gfmd.conf の
> postgresql_server_host, postgresql_server_port, postgresql_password
> に記載されている値です。