topology

ストア・トポロジを操作するコマンドをカプセル化します。たとえば、ノードの再ディストリビューション/再均衡化、レプリケーション係数の変更などです。トポロジは、このコマンドを使用して作成および変更されます。次にplan deploy-topologyコマンドを使用してデプロイされます。詳細は、「plan deploy-topology」を参照してください。サブコマンドは次のとおりです。

topology change-repfactor

topology change-repfactor -name <name>  -pool <pool name>
    -zn <id> | -znname <name> -rf <replication factor> 

トポロジを変更して、指定されたゾーンのレプリケーション係数を新しい値に変更します。セカンダリ・ゾーンのレプリケーション係数は減らすことができますが、プライマリ・ゾーンのレプリケーション係数を減らすことは現在サポートされていません。

レプリケーション係数を増やすと、このコマンドでは、レプリケーション・ノードまたはアービタ・ノードを作成したり、指定したゾーン内のアービタ・ノードのみを削除できます。レプリケーション係数の変更に伴って、プライマリ・レプリケーション係数の合計が2に増加した場合に、ゾーンがアービタを許可するように構成されていると、そのゾーンにアービタが作成されます。レプリケーション係数の変更に伴って、プライマリ・レプリケーション係数の合計が2からそれより大きい数に増加した場合に、ゾーンにアービタが含まれていると、そのゾーンからアービタが削除されます。他のゾーンにアービタが含まれている場合に、トポロジからアービタを削除するには、トポロジのリバランスを行う必要があります。

レプリケーション係数の増加の詳細は、レプリケーション係数の増加を参照してください。

セカンダリ・ゾーンのレプリケーション係数を減らすと、このコマンドではゾーンからレプリケーション・ノードが削除されます。

セカンダリ・ゾーンを削除する場合は、そのセカンダリ・ゾーンのレプリケーション係数を減らしてゼロにする必要があります。

レプリケーション係数を減らしてゼロにしてから、次のステップを実行してセカンダリ・ゾーンを削除します。
  1. plan remove-adminコマンドを使用して、ゾーン内の管理者を削除します。
  2. plan remove-snコマンドを使用してゾーン内のストレージ・ノードを削除します。
  3. plan remove-zoneコマンドを使用してゾーンを削除します。

topology change-zone-arbiters

topology change-zone-arbiters -name <name>
    {-zn <id> | -znname <name>}  {-arbiter | -no-arbiter}

トポロジを変更して、指定したゾーンのアービタ・ノード属性を変更します。

topology change-zone-master-affinity

topology change-zone-master-affinity -name <name>
    -zn <{-no-master-affinity | -master-affinity} 

既存のゾーンを指定して、そのゾーンのトポロジを–no-master-affinityまたは–master-affinityに変更します。次に例を示します。

topology change-zone-master-affinity -name new-topo -zn zn1 -no-master-affinity

このコマンドは、最初にトポロジをデプロイ(plan deploy-zone)した後に使用します。

topology change-zone-type

topology change-zone-type -name <name>
    {-zn <id> | -znname <name>} -type {primary | secondary} 

トポロジを変更して、指定されたゾーンのタイプを新しいタイプに変更します。

1つ以上のゾーンのタイプが変更され、結果として生成されたトポロジがplan deploy-topologyコマンドを使用してデプロイされる場合、次のルールが適用されます。

  • プランは、プライマリ・ノードに変換されているセカンダリ・ノードがマスターに追い付くまで、最長5分間待機します。

  • 各シャードのセカンダリ・ノードの定数が所定の時間内に追い付けなかった場合、プランは失敗し、遅延ゾーンおよびノードの詳細を出力します。この動作は、新たに追加されたプライマリ・ノードがマスターになれず、可用性に貢献できない時間を短縮するために役立ちます。

  • このコマンドを正常に実行できるのは、定数が維持できる場合のみであるため、データが失われることはありません。

topology clone

topology clone -from <from topology> -name <to topology>

または

topology clone -current -name <to topology> 

トポロジ変更操作に使用される新規のトポロジ候補を作成するために、既存のトポロジをクローニングします。

topology contract

topology contract -name <name> -pool <pool name>

指定したトポロジを変更してストレージ・ノードを縮小します。詳細は、「トポロジの縮小」を参照してください。

topology create

topology create -name <candidate name> -pool <pool name> [-json] 
    -partitions <num>

指定されたストレージ・プールを使用して、指定されたパーティション数の新規トポロジを作成します。

トポロジ候補名ではドル記号('$')を使用しないでください。名前に予約文字が含まれるトポロジの作成またはクローニングを試行すると、CLIによって警告が表示されます。

プライマリ・レプリケーション係数が2と等しい場合、topology createコマンドでは、アービタ・ノードのホストをサポートするゾーン内のストレージ・ノードにアービタ・ノードを割り当てます。トポロジのデプロイ中に、アービタ・ノードを分散するのに十分なストレージ・ノードが存在しない場合は、エラーが発行されます。レプリケーション・グループの他のメンバーが含まれていないストレージ・ノードでアービタ・ノードをホストすることで、アービタ・ノード分散が有効になります。

最初のトポロジ候補の作成の詳細は、「トポロジ候補の作成」を参照してください。
kv-> topology create -name mytopo -pool snpool -json -partitions 20
{
	"operation" : "topology create",
	"returnCode" : 5000,
	"description" : "Operation ends successfully",
	"returnValue" : {
		"store" : "mystore",
		"numPartitions" : 20,
		"sequence" : 32,
		"zone" : [ {
		"id" : "zn1",
		"name" : "1",
		"repfactor" : 1,
		"type" : "PRIMARY"
		}, {
	"id" : "zn2",
	"name" : "2",
	"repfactor" : 1,
	"type" : "PRIMARY"
	}, {
	"id" : "zn3",
	"name" : "3",
	"repfactor" : 1,
	"type" : "PRIMARY"
	} ],
	"sns" : [ {
	"id" : "sn1",
	"zone_id" : "zn1",
	"host" : "localhost",
	"port" : 20000,
	"capacity" : 1,
	"rns" : [ "rg1-rn1" ],
	"ans" : [ ]
	}, {
	"id" : "sn2",
	"zone_id" : "zn2",
	"host" : "localhost",
	"port" : 21000,
	"capacity" : 1,
	"rns" : [ "rg1-rn2" ],
	"ans" : [ ]
	}, {
	"id" : "sn3",
	"zone_id" : "zn3",
	"host" : "localhost",
	"port" : 22000,
	"capacity" : 1,
	"rns" : [ "rg1-rn3" ],
	"ans" : [ ]
	} ],
	"shards" : [ {
		"id" : "rg1",
		"numPartitions" : 20,
		"rns" : [ "rg1-rn1", "rg1-rn2", "rg1-rn3" ],
		"ans" : [ ]
		} ],
	"name" : "mytopo"
	}
}

topology delete

topology delete -name <name> 

トポロジを削除します。

topology list

topology list 

既存のトポロジを一覧表示します。

topology preview

topology preview -name <name> [-start <from topology>]

起動トポロジから指定されたターゲット・トポロジに移行するために実行される操作について説明します。-startが指定されていない場合、現行トポロジが使用されます。このコマンドは、新規トポロジをデプロイする前に使用する必要があります。

topology rebalance

topology rebalance -name <name> -pool <pool name>
    [-zn <id> | -znname <name>]

均衡の取れたトポロジを作成するため、指定されたトポロジを変更します。オプションの-znフラグが使用されている場合、指定されたゾーンからのストレージ・ノードのみが操作に使用されます。

このコマンドでは、アービタ・ノードを追加、移動または削除することもできます。新しいトポロジではアービタ・ノードがサポートされ、古いトポロジではサポートされない場合は、アービタ・ノードが追加されます。古いトポロジではアービタ・ノードがサポートされ、新しいトポロジではサポートされない場合は、アービタ・ノードが削除されます。レプリケーション係数がゼロ以外のデータ・センターでアービタ・ノードがホストされている場合は、レプリケーション係数がゼロのデータ・センターに移動できます。

非コンプライアンス・トポロジの均衡化の詳細は、「非コンプライアンス・トポロジの均衡化」を参照してください。

topology redistribute

topology redistribute -name <name> -pool <pool name> 

使用可能なリソースのより効率的な利用のためにリソースを再配布するため、指定されたトポロジを変更します。

書込みスループットを向上させるためのリソースの再配布の詳細は、「データ配布の増加」を参照してください。

topology validate

topology validate [-name <name>] 

指定されたトポロジを検証します。トポロジが指定されていない場合、現行トポロジが検証されます。検証ではviolationsとnotesが生成されます。

violationsは問題を引き起こす可能性があり、調査が必要です。

notesは情報的で、問題になる可能性がある、または予測が可能であるという、構成上の目立つ差異を示します。

詳細は、「トポロジ候補の検証」を参照してください。

topology view

topology view -name <name> 

指定されたトポロジの詳細を表示します。また、アービタ・ノード情報が使用可能であれば、その情報を表示します。