medamaの日記

技術的な事をメインにしてみる。

GlusterFSを検証してみる。 (3)

少々趣を変えて便利なコマンドを紹介してみよう。

 

今現在、volumeの状態表示させるコマンドを表示するには、

 

# gluster volume info all

Volume Name: test-volume
Type: Replicate
Volume ID: 76d2f5aa-b713-4d55-880e-2965d6b24398
Status: Started
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: gluster-sv1:/exp1
Brick2: gluster-sv2:/exp2
Brick3: gluster-sv3:/exp3

 

次にGlusterFSをテストしていて気が付いたことなどを。

GlusterFSを構成しているサーバが1台でも落ちるとお互いにチェックが走るようでその間、サービスが停止する。(おっつ

その時間はnetwork.ping-timeoutパラメータによって設定されているようで、デフォルトの時間は42秒。

正直長すぎる気がする。

なので、この値を10秒に変更してみよう。

 

# gluster volume set test-volume network.ping-timeout 10
Set volume successful

 

変更されたのかどうか上記infoコマンドで確認する。

 

# gluster volume info all

Volume Name: test-volume
Type: Replicate
Volume ID: 76d2f5aa-b713-4d55-880e-2965d6b24398
Status: Started
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: gluster-sv1:/exp1
Brick2: gluster-sv2:/exp2
Brick3: gluster-sv3:/exp3
Options Reconfigured:
network.ping-timeout: 10

 

なお、設定したパラメータを全て初期化するには以下のコマンドを投入する。

 

# gluster volume reset test-volume
reset volume successful

 

確認

# gluster volume info all

Volume Name: test-volume
Type: Replicate
Volume ID: 76d2f5aa-b713-4d55-880e-2965d6b24398
Status: Started
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: gluster-sv1:/exp1
Brick2: gluster-sv2:/exp2
Brick3: gluster-sv3:/exp3

 

次にglusterFSの利用情報を見てみよう。

まず、profileをtest-volumeに対して有効にする。

 

[root@gluster-sv1 ~]# gluster volume profile test-volume start

 

次に統計情報を表示する。

 

[root@gluster-sv1 ~]# gluster volume profile test-volume info
Brick: gluster-sv1:/exp1
------------------------
Cumulative Stats:
   Block Size:                  1b+                   4b+                   8b+
 No. of Reads:                    0                     0                     0
No. of Writes:                    1                     3                     1

   Block Size:                 16b+                  32b+                  64b+
 No. of Reads:                    0                     0                     0
No. of Writes:                    7                   193                    44

   Block Size:                128b+                 256b+                 512b+
 No. of Reads:                    0                     0                     0
No. of Writes:                  101                   265                   642

   Block Size:               1024b+                2048b+                4096b+
 No. of Reads:                    0                     0                     0
No. of Writes:                 1185                   896                   757

   Block Size:               8192b+               16384b+               32768b+
 No. of Reads:                    0                     0                     0
No. of Writes:                  657                 51291                  1550

   Block Size:              65536b+              131072b+
 No. of Reads:                    0                     0
No. of Writes:                  607                   851
 %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls         Fop
 ---------   -----------   -----------   -----------   ------------        ----
      0.00       0.00 us       0.00 us       0.00 us           5900     RELEASE
      0.00       0.00 us       0.00 us       0.00 us           3366  RELEASEDIR
      0.00      50.50 us      49.00 us      52.00 us              2        OPEN
      0.00      31.25 us      28.00 us      34.00 us              4       FLUSH
      0.08      56.49 us      48.00 us      74.00 us             81     OPENDIR
      0.24     152.11 us      94.00 us     200.00 us             88      LOOKUP
      4.94  139429.50 us  119540.00 us  159319.00 us              2   FTRUNCATE
     17.23      34.40 us      23.00 us     660.00 us          28260    FINODELK
     21.87      87.37 us      63.00 us   32298.00 us          14122       WRITE
     55.63     111.12 us      70.00 us   13274.00 us          28238    FXATTROP

    Duration: 425 seconds
   Data Read: 0 bytes
Data Written: 1087619911 bytes

Interval 3 Stats:
   Block Size:               8192b+               16384b+               32768b+
 No. of Reads:                    0                     0                     0
No. of Writes:                    2                 12771                    65

   Block Size:              65536b+              131072b+
 No. of Reads:                    0                     0
No. of Writes:                    8                     3
 %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls         Fop
 ---------   -----------   -----------   -----------   ------------        ----
      0.00       0.00 us       0.00 us       0.00 us              2     RELEASE
      0.00       0.00 us       0.00 us       0.00 us             75  RELEASEDIR
      0.00      50.50 us      49.00 us      52.00 us              2        OPEN
      0.00      31.25 us      28.00 us      34.00 us              4       FLUSH
      0.08      56.68 us      48.00 us      74.00 us             75     OPENDIR
      0.23     154.10 us     108.00 us     200.00 us             79      LOOKUP
      5.38  139429.50 us  119540.00 us  159319.00 us              2   FTRUNCATE
     17.13      34.56 us      23.00 us     660.00 us          25714    FINODELK
     21.78      87.94 us      63.00 us   32298.00 us          12849       WRITE
     55.39     111.80 us      71.00 us   13274.00 us          25702    FXATTROP

    Duration: 77 seconds
   Data Read: 0 bytes
Data Written: 212725488 bytes

Brick: gluster-sv2:/exp2
------------------------
Cumulative Stats:
   Block Size:                  1b+                   4b+                   8b+
 No. of Reads:                    1                     3                     2
No. of Writes:                    0                     0                     0

   Block Size:                 16b+                  32b+                  64b+
 No. of Reads:                    8                   193                    92
No. of Writes:                    0                     0                     0

   Block Size:                128b+                 256b+                 512b+
 No. of Reads:                  220                   304                   750
No. of Writes:                    0                     0                     6

   Block Size:               1024b+                2048b+                4096b+
 No. of Reads:                 1390                  1167                   809
No. of Writes:                    0                     3                     0

   Block Size:               8192b+               16384b+               32768b+
 No. of Reads:                  863                   485                   451
No. of Writes:                    8                 51739                  1229

   Block Size:              65536b+              131072b+
 No. of Reads:                  267                   405
No. of Writes:                  409                   517
 %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls         Fop
 ---------   -----------   -----------   -----------   ------------        ----
      0.00       0.00 us       0.00 us       0.00 us           7030     RELEASE
      0.00       0.00 us       0.00 us       0.00 us           3908  RELEASEDIR
      0.00      46.00 us      44.00 us      48.00 us              2        OPEN
      0.00      29.75 us      25.00 us      35.00 us              4       FLUSH
      0.07      46.04 us      41.00 us      66.00 us             80     OPENDIR
      0.22     139.55 us      90.00 us     219.00 us             87      LOOKUP
      4.24  115173.50 us   67616.00 us  162731.00 us              2   FTRUNCATE
     17.17      33.41 us      23.00 us     601.00 us          27888    FINODELK
     26.62     103.66 us      65.00 us   35807.00 us          13936       WRITE
     51.67     100.59 us      66.00 us    5264.00 us          27876    FXATTROP

    Duration: 493 seconds
   Data Read: 129385124 bytes
Data Written: 997411827 bytes

Interval 3 Stats:
   Block Size:               8192b+               16384b+               32768b+
 No. of Reads:                    0                     0                     0
No. of Writes:                    2                 12771                    65

   Block Size:              65536b+              131072b+
 No. of Reads:                    0                     0
No. of Writes:                    8                     3
 %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls         Fop
 ---------   -----------   -----------   -----------   ------------        ----
      0.00       0.00 us       0.00 us       0.00 us              2     RELEASE
      0.00       0.00 us       0.00 us       0.00 us             75  RELEASEDIR
      0.00      46.00 us      44.00 us      48.00 us              2        OPEN
      0.00      29.75 us      25.00 us      35.00 us              4       FLUSH
      0.07      46.08 us      41.00 us      66.00 us             75     OPENDIR
      0.22     139.86 us     107.00 us     219.00 us             79      LOOKUP
      4.60  115173.50 us   67616.00 us  162731.00 us              2   FTRUNCATE
     16.99      33.09 us      23.00 us     601.00 us          25714    FINODELK
     26.53     103.43 us      65.00 us   35807.00 us          12849       WRITE
     51.59     100.53 us      70.00 us    5264.00 us          25702    FXATTROP

    Duration: 76 seconds
   Data Read: 0 bytes
Data Written: 212725488 bytes

Brick: gluster-sv3:/exp3
------------------------
Cumulative Stats:
   Block Size:                  1b+                   4b+                   8b+
 No. of Reads:                    0                     0                     0
No. of Writes:                    2                     8                     4

   Block Size:                 16b+                  32b+                  64b+
 No. of Reads:                    0                     0                     1
No. of Writes:                   20                   411                   294

   Block Size:                128b+                 256b+                 512b+
 No. of Reads:                   76                    19                   201
No. of Writes:                  675                   795                  1953

   Block Size:               1024b+                2048b+                4096b+
 No. of Reads:                   97                   190                     6
No. of Writes:                 3487                  3443                  2697

   Block Size:               8192b+               16384b+               32768b+
 No. of Reads:                    9                     0                     0
No. of Writes:                 3170                102900                  3361

   Block Size:              65536b+              131072b+
 No. of Reads:                    0                     1
No. of Writes:                 1459                  5709
 %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls         Fop
 ---------   -----------   -----------   -----------   ------------        ----
      0.00       0.00 us       0.00 us       0.00 us           1966      FORGET
      0.00       0.00 us       0.00 us       0.00 us          22457     RELEASE
      0.00       0.00 us       0.00 us       0.00 us          29963  RELEASEDIR
      0.00      55.50 us      55.00 us      56.00 us              2        OPEN
      0.00      34.25 us      33.00 us      36.00 us              4       FLUSH
      0.08      58.00 us      43.00 us     166.00 us             80     OPENDIR
      0.28     187.41 us     123.00 us     480.00 us             87      LOOKUP
      0.86     312.49 us      66.00 us     654.00 us            160    READDIRP
      5.04  146476.00 us  126964.00 us  165988.00 us              2   FTRUNCATE
     16.95      35.30 us      23.00 us     863.00 us          27886    FINODELK
     21.16      88.19 us      64.00 us   19225.00 us          13935       WRITE
     55.62     115.94 us      72.00 us    2072.00 us          27864    FXATTROP

    Duration: 98451 seconds
   Data Read: 1064544 bytes
Data Written: 2786375345 bytes

Interval 3 Stats:
   Block Size:               8192b+               16384b+               32768b+
 No. of Reads:                    0                     0                     0
No. of Writes:                    2                 12771                    65

   Block Size:              65536b+              131072b+
 No. of Reads:                    0                     0
No. of Writes:                    8                     3
 %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls         Fop
 ---------   -----------   -----------   -----------   ------------        ----
      0.00       0.00 us       0.00 us       0.00 us              2     RELEASE
      0.00       0.00 us       0.00 us       0.00 us             75  RELEASEDIR
      0.00      55.50 us      55.00 us      56.00 us              2        OPEN
      0.00      34.25 us      33.00 us      36.00 us              4       FLUSH
      0.08      57.67 us      43.00 us     166.00 us             75     OPENDIR
      0.28     188.09 us     124.00 us     480.00 us             79      LOOKUP
      0.87     310.07 us      66.00 us     654.00 us            150    READDIRP
      5.46  146476.00 us  126964.00 us  165988.00 us              2   FTRUNCATE
     16.86      35.17 us      23.00 us     863.00 us          25714    FINODELK
     21.11      88.09 us      64.00 us   19225.00 us          12849       WRITE
     55.34     115.46 us      72.00 us    2072.00 us          25702    FXATTROP

    Duration: 76 seconds
   Data Read: 0 bytes
Data Written: 212725488 bytes

 

という感じで各brickも含め統計情報が取得できる。

恐らくオーバーヘッドがあるからprofileは無効になっているのだろう。

見終わったらprofileは無効にしておこう。

 

[root@gluster-sv1 ~]# gluster volume profile test-volume stop
Stopping volume profile on test-volume has been successful

 

次にもしStorage Poolを形成しているサーバが全てダウンした場合(もしくはglusterdがダウンした場合)、クライアントはどのようなメッセージを受け取るのだろうか。

 

[root@gluster-sv2 gluster-test]# tar czf usr.tar.gz /usr/
tar: Removing leading `/' from member names
tar (child): usr.tar.gz: Cannot open: Transport endpoint is not connected
tar (child): Error is not recoverable: exiting now

 

[root@gluster-sv2 gluster-test]# ls -al
ls: cannot open directory .: Transport endpoint is not connected

 

ファイルを開くことが出来ない。伝送の終端に接続できない。

エラーは修復不能である。 処理を直ちに終了します。

 

というエラーが出て書き込みは即座にエラーで中断させられる。

lsもできない。

ここがポイントで決してI/O waitにはならないようだ。

NFSでいうところのmount option hardではない、という事。

こけたら自前で再処理を実装しなければならない、という事になる。

個人的にはI/O waitさせられてにっちもさっちもいかなくなるぐらいであれば、処理を中断させてくれる方が助かる。

が、きちんとエラーを監視しておかないとエラーに気が付かずに処理が止まりっぱなしとなる。

I/O waitの場合、CPU Loadが跳ね上がっていくという特徴があるので比較的まだ気が付きやすい。

 

なお、復帰は今回のケースであればGlusterFSサーバは3台あり、replication数も3なのでどれか一台でも復帰すれば、クライアントの処理は復帰して必要なファイルに読み書きができた。

つまり、必要なファイルが保存されているサーバが復帰すれば必要なファイルにアクセスできるようだ。