ping

ping [-json] [-shard <shardId>]

pingコマンドとverifyコマンドは、データ・ストアのランタイム・エンティティに関する情報を返します。このコマンドは、トポロジから使用可能なコンポーネントおよび管理サービスにアクセスして、様々なコンポーネントの状態に関する情報を返します。

  • -json

    出力をJSON形式で表示します。

  • –shard <shardId>

    指定した特定のシャードIDに関するステータス情報のサブセットを表示します。

管理CLIからpingをコールする基本的な例を次に示します。

kv-> ping
Pinging components of store mystore based upon topology sequence #308
300 partitions and 3 storage nodes
Time: 2019-01-03 20:19:27 UTC   Version: 19.1.0
Shard Status: healthy:1 writable-degraded:0 read-only:0 offline:0 total:1 Admin Status: healthy
Zone [name=1 id=zn1 type=PRIMARY allowArbiters=false masterAffinity=false]
RN Status: online:3 read-only:0 offline:0 
maxDelayMillis:0 maxCatchupTimeSecs:0
Storage Node [sn1] on localhost:13230    
Zone: [name=1 id=zn1 type=PRIMARY allowArbiters=false masterAffinity=false]    
Status: RUNNING   Ver: 19.1.0 2019-01-03 08:17:52 UTC  Build id: 12641466031c Edition: Enterprise
Admin [admin1]	    Status: RUNNING,MASTER
Rep Node [rg1-rn1]	Status: RUNNING,MASTER sequenceNumber:633 haPort:13233 
available storage size:109 GB
Storage Node [sn2] on localhost:13240    
Zone: [name=1 id=zn1 type=PRIMARY allowArbiters=false masterAffinity=false]    
Status: RUNNING   Ver: 19.1.0 2019-01-03 08:17:52 UTC  Build id: 12641466031c Edition: Enterprise
Admin [admin2]		  Status: RUNNING,REPLICA
	Rep Node [rg1-rn2]     Status: RUNNING,REPLICA sequenceNumber:633 haPort:13243 available storage size:109 GB delayMillis:0 catchupTimeSecs:0
Storage Node [sn3] on localhost:13250    Zone: [name=1 id=zn1 type=PRIMARY allowArbiters=false masterAffinity=false]    Status: RUNNING   Ver: 19.1.0 2019-01-03 08:17:52 UTC  Build id: 12641466031c Edition: Enterprise
	Admin [admin3]	  Status: RUNNING,REPLICA
	Rep Node [rg1-rn3]     Status: RUNNING,REPLICA sequenceNumber:633 haPort:13253 available storage size:109 GB delayMillis:0 catchupTimeSecs:0
シャードおよび管理のステータスについて

pingコマンドを実行した後、システム・ヘルスについて最も有益なもの(または問題となるもの)を理解する必要があります。最も重要な内容はShard Statusエントリです。次のping出力の詳細は、正常な(healthy:1) 1つのシャード(total:1)を示しています。好ましくないステータス・タイプ(writable-degradedread-onlyおよびoffline)はすべてゼロ(0)であり、これらのいずれかの状態であるものがないことを示しています。すべて問題ありません。

Shard Status: healthy:1 
writable-degraded:0 
read-only:0 
offline:0 
total:1 

正常なシャードとは、正確にはどのようなものを示すのでしょうか。正常なシャードとは、そのRNのすべてが実行中であるものです。したがって、トポロジ内のすべてのシャードが正常である場合、すべてのRNが実行中であり、障害は存在しません。RNがそれほど重要なのはなぜでしょうか。それらは、データの読取りおよび書込み操作を実行するコンポーネントであるためです。

管理ノードのステータスをチェックすることも有益です。この単純な例では、1つの管理シャードのみが存在するため、Admin Status: healthyという1つの結果があります。設定される可能性がある他の状態は、writable-degradedread-onlyまたはofflineです。

RNシャードと管理のどちらについても、それぞれの結果が示すものは次のとおりです。
結果 意味
healthy すべてのノードが実行中であり、システムは完全に動作可能です。
writable-degraded 多数のノードが実行中です。すべての操作がサポートされていますが、少数のノードがオフラインであるか、書込みをサポートしていません。RF=3を使用している場合、この状態は、すべての操作をサポートできなくなる状況に一歩近づいています。たとえば、1つのノードがオフラインのときに、別のノードを失うと、定数が失われ、シャードは読取り専用になります。ほとんどのユーザーはRF=3を使用するため、writable-degradedは通常、このような状況を意味します。
read-only 少数のノードのみが実行中です。読取り操作はサポートされていますが、書込み操作はサポートされていません。
offline 実行中のノードがないため、いずれの操作もサポートされていません。

ゾーン・ステータスについて

pingからの次の情報は、ゾーンに関するものです。

Zone [name=1 id=zn1
type=PRIMARY 
allowArbiters=false 
masterAffinity=false] 
RN Status: online:3 read-only:0 offline:0 
maxDelayMillis:0 
maxCatchupTimeSecs:0

複数のゾーンがあるストアについては、この情報によって、異なる場所にあるノードのステータスが提供されます。たとえば、3つのゾーンを使用してストアがデプロイされ、各ゾーンのマシンが別個の建物にある場合、この情報によって、それぞれの建物にあるマシンに関する簡単なサマリー・ステータスが提供されます。この単純な例では、ゾーンは1つのみであるため、そのステータス情報はストア全体のものと同じです。maxDelayMillisエントリとmaxCatchupTimeSecsエントリでは、ゾーンにあるレプリカへのデータ・レプリケーションに関する情報が提供されます。この例では、どちらの値もゼロ(0)です。ただし、これらのエントリの数値が大きい場合は、ゾーン内のマシンにハードウェアの問題があるか、そのゾーンを他のゾーンに接続するネットワークに問題があることを示している可能性があります。このような情報は、より詳細なデバッグにのみ使用されます。

ストレージ・ノードについて

次に、特定のストレージ・ノードに関連付けられているノードに関する情報があります。
Storage Node [sn1] on localhost:13230 Zone: 
[name=1 id=zn1 type=PRIMARY allowArbiters=false masterAffinity=false] 
Status: RUNNING Ver: 19.1.0 2019-01-03 08:17:52 UTC Build id: 12641466031c 
Edition: Enterprise 
Admin [admin1] Status: RUNNING,MASTER 
Rep Node [rg1-rn1] Status: RUNNING,MASTER 
sequenceNumber:633 haPort:13233 available storage size:109 GB
SNのStatus:エントリは、次のような様々な値を示す可能性があります。
ステータス 説明
STARTING ストレージ・ノードは起動中です。
WAITING_FOR_DEPLOY ストレージ・ノードは実行中ですが、新しいストアへのデプロイを待機しています。
RUNNING ストレージ・ノードは実行中です。これが通常の状態です。
STOPPING ストレージ・ノードは停止の処理中ですが、まだSTOPPEDステータスではありません。
STOPPED ストレージ・ノードは停止しています。
UNREACHABLE SNサービスが停止しているか、ホスト・マシンがオフラインであるか、またはネットワーク経由でマシンにアクセスできないため、ストレージ・ノードにアクセスできません。

ストレージ・ノードのRNおよび管理について

次の各エントリでは、ストレージ・ノードで実行されているRNおよび管理プロセスに関するステータス情報が提供されます。すべてのストレージ・ノードに管理ノードがあるわけではありません。ストレージ・ノードで実行されているRNの数は、SNの容量によって異なります。
Admin [admin1] Status: RUNNING,MASTER Rep Node [rg1-rn1] 
Status: RUNNING,MASTER sequenceNumber:633 haPort:13233 available storage size:109 GB
管理ノードとRNのどちらのStatus:エントリも、次のような値を示す可能性があります。
ステータス 説明
STARTING ノードは起動中です。
RUNNING,MASTER ノードは稼働しており、マスターです。マスターはシャード内の多数のノードと通信しており、受信確認を必要とする書込みを実行できます。これは、2つの通常の状態のうちの最初のものです。
RUNNING,REPLICA ノードは稼働しており、レプリカです。これは、2つの通常の状態のうちの2つ目のものです。
RUNNING,MASTER (non-authoritative) ノードは稼働しており、マスターですが、シャード内の多数のノードと通信していません。non-authoritativeマスターは、受信確認を必要としない書込みのみを実行できます。
STOPPING ノードは停止中です。
UNREACHABLE ネットワーク経由でノードに接続できませんでした。ノードは停止しているか、障害が発生しているか、またはマシンへのネットワーク接続に問題があります。
より詳細な情報を提供するためにステータス行に追加される可能性があるその他のステータス値:  
readonly requests enabled ノードを読取り専用ユーザー操作モードに設定するためにplan enable-requestsコマンドが実行されたため、ノードは読取り専用モードで実行されています。
requests disabled ノード上のすべてのリクエストを無効にするためにplan enable-requestsコマンドが実行されたため、ノードは、すべてのユーザー操作リクエストが無効になった状態で実行されています。plan enable-requestsコマンドはシャード・ベースでリクエストを無効にするため、シャード内のすべてのデータに対して書込みまたはすべての操作を行うことができなくなります。
最初の例には示されていませんが、pingコマンドとverifyコマンドでは、RNおよびシャードについて次のいずれかの状態が表示されることがあります。次の表では、その影響と結果について説明します。
表示される状態 影響 結果
Unknown マスターが停止します。 読取り専用状態のRNおよびシャードがまだ実行中であることを表します。現在、RNについては読取り専用ステータスはサポートされていません。
Non-Authoritative Master レプリカ・ノードが停止します。 レプリカ・ノードが停止すると、残りのRNおよびシャードは読取り専用モードになります。現在、RNについては読取り専用ステータスはサポートされていません。
Out of disk space マスターとレプリカ・ノードが停止します。レプリカはRUNNING, UNKNOWN状態のままで、マスターはNon-Authoritative状態になります。 マスターとレプリカ・ノードが停止すると、残りのRNおよびシャードは読取り専用モードになります。現在、RNについては読取り専用ステータスはサポートされていません。
Write requests disabled RNおよびシャードのヘルスは、読取り専用が有効になったリクエスト状態になります。 RNおよびシャードはユーザー・リクエストを受け入れることができず、オフラインとマークされます。
pingコマンドとverifyコマンドの両方で、これらの状態が検出されます。通常の状態にあるシャード(rg2)上でのpingコマンドの出力で結果がどのように返されるかを次に示します。
kv-> ping -shard rg2
Pinging components of store mystore based upon topology sequence #2376
shard rg2 500 partitions and 3 storage nodes Time: 2018-09-28 07:06:46 UTC   Version: 18.3.2
Shard Status: healthy: Admin Status: healthy Zone [name=shardzone id=zn1 type=PRIMARY 
allowArbiters=false masterAffinity=false]
RN Status: online:3 offline:0 maxDelayMillis:0 maxCatchupTimeSecs:0
Storage Node [sn10] on nodeA:5000    Zone: [name=shardzone id=zn1 type=PRIMARY 
allowArbiters=false masterAffinity=false] Status: RUNNING   Ver: 18.3.2 2018-09-17 09:33:45 UTC  
Build id: a72484b8b33c Edition: Enterprise
        Rep Node [rg2-rn1] 
        Status: RUNNING,MASTER sequenceNumber:71,166 haPort:5010
        available storage size:8 GB Storage Node [sn11] on nodeB:5000 
        Zone: [name=shardzone id=zn1 type=PRIMARY 
        allowArbiters=false masterAffinity=false]  Status: RUNNING   Ver: 18.3.2 2018-09-17 09:33:45 UTC  
        Build id: a72484b8b33c Edition: Enterprise
        Rep Node [rg2-rn2]
        Status: RUNNING,REPLICA sequenceNumber:71,166 haPort:5011 
        available storage size:4 GB delayMillis:0 catchupTimeSecs:0
Storage Node [sn12] on nodeC:5000    Zone: [name=shardzone id=zn1 type=PRIMARY 
allowArbiters=false masterAffinity=false] Status: RUNNING   Ver: 18.3.2 2018-09-17 09:33:45 UTC  
Build id: a72484b8b33c Edition: Enterprise
        Rep Node [rg2-rn3] 
        Status: RUNNING,REPLICA sequenceNumber:71,166 haPort:5012
        available storage size:6 GB delayMillis:0 catchupTimeSecs:0
様々な状態が発生した場合に返される情報の例を次に示します。
  • シャード・ステータスはwritable-degradedになり、読取り専用です。
kv-> ping 
Pinging components of store concurrent plan store based upon topology sequence #1082
 1000 partitions and 9 storage nodes 
Time: 2018-11-06 05:12:36 UTC Version: 18.3.8 
        Shard Status: healthy:2 writable-degraded:12 read-only:4 offline:0 total:18 
Admin Status: healthy 
Zone [name=dc1 id=zn1 type=PRIMARY allowArbiters=false masterAffinity=false] 
RN Status: online:30 read-only:24 offline:0 maxDelayMillis:0 maxCatchupTimeSecs:0 
Storage Node [sn1] on slcao397:5000 
Zone: [name=dc1 id=zn1 type=PRIMARY allowArbiters=false masterAffinity=false] Status: RUNNING 
Ver: 18.3.8 2018-10-26 11:36:43 UTC Build id: 6259xxxxxxxx Edition: Enterprise 
  • RNは、ディスク制限に達したり、RNが停止しているなど、複数の理由でRUNNING,UNKNOWN状態になることがあります。
Storage Node [sn4] on slcao400:5000 Zone: [name=dc1 id=zn1 type=PRIMARY 
allowArbiters=false masterAffinity=false] Status: RUNNING Ver: 18.3.8 2018-10-26 11:36:43 UTC 
Build id: 6259xxxxxxxx Edition: Enterprise 
        Rep Node [rg7-rn1] Status: RUNNING,UNKNOWN sequenceNumber:173,717,825 haPort:5020
        available storage size:-3 GB delayMillis:? catchupTimeSecs:? 
        Rep Node [rg8-rn1] Status: RUNNING,UNKNOWN sequenceNumber:173,555,937 haPort:5021 
        available storage size:-3 GB delayMillis:? catchupTimeSecs:? 
        Rep Node [rg9-rn1] Status: RUNNING,MASTER sequenceNumber:173,697,007 haPort:5022 available storage size:-3 GB 
        Rep Node [rg10-rn1] Status: RUNNING,UNKNOWN sequenceNumber:173,293,747 haPort:5023 
        available storage size:-3 GB delayMillis:? catchupTimeSecs:? 
        Rep Node [rg11-rn1] Status: RUNNING,UNKNOWN sequenceNumber:170,561,758 haPort:5024 available storage size:-3 GB 
        delayMillis:? catchupTimeSecs:? 
        Rep Node [rg12-rn1] Status: RUNNING,MASTER sequenceNumber:170,410,483 haPort:5025 available storage size:-3 GB 
  • ディスク領域不足のエラーが発生すると、マスターはnon-authoritativeになります。
 Storage Node [sn6] on slcao402:5000 Zone: [name=dc1 id=zn1 type=PRIMARY allowArbiters=false 
masterAffinity=false] Status: RUNNING Ver: 18.3.8 2018-10-26 11:36:43 UTC Build id: 6259xxxxxxxx 
Edition: Enterprise 
Rep Node [rg7-rn3] Status: RUNNING,MASTER (non-authoritative) 
sequenceNumber:173,754,579 haPort:5020 available storage size:45 GB 
Rep Node [rg8-rn3] Status: RUNNING,REPLICA sequenceNumber:173,555,937 
haPort:5021 available storage size:46 GB 
delayMillis:0 catchupTimeSecs:0 
Rep Node [rg9-rn3] Status: RUNNING,REPLICA 
sequenceNumber:173,697,007 haPort:5022 available storage size:45 GB 
delayMillis:0 catchupTimeSecs:0 
Rep Node [rg10-rn3] Status: RUNNING,MASTER (non-authoritative) 
sequenceNumber:173,293,747 haPort:5023 available storage size:45 GB 
Rep Node [rg11-rn3] Status: RUNNING,REPLICA sequenceNumber:170,561,758 
haPort:5024 available storage size:45 GB delayMillis:0 catchupTimeSecs:0 
Rep Node [rg12-rn3] Status: RUNNING,REPLICA sequenceNumber:170,410,483 haPort:5025 
available storage size:46 GB delayMillis:0 catchupTimeSecs:0 
最後に、ping -jsonをコールする基本的な例を示します。
kv-> ping -json
{
  "operation" : "ping",
  "returnCode" : 5000,
  "description" : "No errors found",
  "returnValue" : {
    "topology" : {
      "storeName" : "OurStore",
      "sequenceNumber" : 104,
      "numPartitions" : 100,
      "numStorageNodes" : 1,
      "time" : 1546801860520,
      "version" : "18.3.4"
    },
    "adminStatus" : "healthy",
    "shardStatus" : {
      "healthy" : 1,
      "writable-degraded" : 0,
      "read-only" : 0,
      "offline" : 0,
      "total" : 1
    },
    "zoneStatus" : [ {
      "resourceId" : "zn1",
      "name" : "OurZone",
      "type" : "PRIMARY",
      "allowArbiters" : false,
      "masterAffinity" : false,
      "rnSummaryStatus" : {
        "online" : 1,
        "offline" : 0,
        "read-only" : 0,
        "hasReplicas" : false
      }
    } ],
    "snStatus" : [ {
      "resourceId" : "sn1",
      "hostname" : "OurHost",
      "registryPort" : 5000,
      "zone" : {
        "resourceId" : "zn1",
        "name" : "OurZone",
        "type" : "PRIMARY",
        "allowArbiters" : false,
        "masterAffinity" : false
      },
      "serviceStatus" : "RUNNING",
      "version" : "18.4.0 2018-12-06 09:21:03 UTC  Build id: fbfbd1541004 Edition: Enterprise",
      "adminStatus" : {
        "resourceId" : "admin1",
        "status" : "RUNNING",
        "state" : "MASTER",
        "authoritativeMaster" : true
      },
      "rnStatus" : [ {
        "resourceId" : "rg1-rn1",
        "status" : "RUNNING",
        "requestsEnabled" : "ALL",
        "state" : "MASTER",
        "authoritativeMaster" : true,
        "sequenceNumber" : 381,
        "haPort" : 5013,
        "availableStorageSize" : "97 GB"
      } ],
      "anStatus" : [ ]
    } ],
    "exitCode" : 0
  }
}
pingユーティリティには、kvtool.jarに用意されている管理ユーティリティ・ツールを使用してアクセスすることもできます。詳細は、pingを参照してください。