リソースプールの作成が完了した後、テナント作成時にリソースプールを割り当てたり、リソースプール一覧の変更時に使用されていないリソースプールをテナントに割り当てたりできます。
テナント作成時のリソースプールの割り当て
テナントを作成する際、使用されていないリソースプールをテナントに割り当てることができます。SQL文の例は以下のとおりです:
obclient> CREATE TENANT IF NOT EXISTS test_tenant charset='utf8mb4', primary_zone='zone1;zone2,zone3', resource_pool_list=('pool1');
その中で:
- 各リソースプールは1つのテナントにのみバインド可能であり、1つのテナントは複数のリソースプールを持つことができます。
- テナントにZone内で割り当てられる全リソース量は、Unit仕様 × Unit数となります。
テナント作成の詳細については、テナントの作成を参照してください。
テナントのリソースプールリストを変更してリソースプールを割り当てる
ALTER TENANT コマンドを使用して、使用されていないリソースプールをテナントに割り当てることもできます。対応するSQL構文は以下のとおりです:
ALTER TENANT tenant_name RESOURCE_POOL_LIST [=](pool_name [, pool_name...]) ;
ステートメントの使用方法:
このステートメントは、
sysテナントの管理者によってのみ実行できます。RESOURCE_POOL_LISTについては、一度に追加または削除できるのは1つのリソースプールのみです。テナントにリソースプールを追加する際、追加するリソースプールと既存のリソースプールが配置されるゾーンとの間で重複があってはなりません。
テナントのリソースリストを変更してリソースプールを追加する方法は、通常、テナントのレプリカ数をアップグレードするシナリオで使用されます。
サンプル背景
クラスタに現在 z1、z2、z3 の3つのゾーンしかなく、これら3つのゾーンはすべて同一のリージョンに属しており、各ゾーンに1台のOBServerノードが配置されているとします。クラスタ内には通常のテナント tenant1 があり、現在のレプリカの配置状況は locality='F@z1,F@z2,F@z3', resource_pool_list=('pool1'); です。業務上のニーズに基づき、テナント tenant1 を3レプリカから5レプリカに変更する必要があります。つまり、テナントのローカリティを F@z1,F@z2,F@z3 から F@z1,F@z2,F@z3,F@z4,F@z5 に変更する必要があります。
サンプル操作
クラスタに現在
z1、z2、z3の3つのゾーンしかなく、クラスタにz4、z5の2つのゾーンを追加する必要があります。クラスタにゾーンを追加する具体的な操作については、ゾーンの追加を参照してください。
z4、z5の2つのゾーンにそれぞれ1台のOBServerノードを追加します。ゾーンにOBServerノードを追加する具体的な操作については、ノードの追加を参照してください。
rootユーザーでsysテナントにログインし、テナントtenant1にz4、z5にリソースを追加します。リソースを追加するには、利用可能なリソースユニットとリソースプールが必要です。
obclient>CREATE RESOURCE UNIT unit2 MAX_CPU 1, MIN_CPU 1, MEMORY_SIZE '5G', MAX_IOPS 1024, MIN_IOPS 1024, IOPS_WEIGHT 0,LOG_DISK_SIZE '2G'; obclient>CREATE RESOURCE POOL pool2 unit = 'unit2', unit_num = 1, zone_list=('z4','z5');完了後、テナントに
z4、z5にリソースを追加します。obclient>ALTER TENANT tenant1 RESOURCE_POOL_LIST =('pool1', 'pool2') ;
テナントのローカリティを変更してレプリカ数を増やします。
ローカリティの変更ルールに基づき、テナントのレプリカ数を3から5に変更する場合、ローカリティを直接
F@z1,F@z2,F@z3,F@z4,F@z5に変更できます。ローカリティの変更ルールに関する詳細は、ローカリティの変更を参照してください。obclient>ALTER TENANT tenant1 LOCALITY='F@z1,F@z2,F@z3,F@z4,F@z5';