Oracle ZFS Storage Appliance の概要
Oracle ZFS Storage Appliance の主な機能
Oracle ZFS Storage Appliance データサービス
Oracle ZFS Storage Appliance の構成
Oracle ZFS Storage Appliance の構成
CLI における中心的な原則は、コマンドが実行されているコンテキストです。このコンテキストによって、システムのどの要素を管理できるか、およびどのコマンドを使用できるかが規定されます。コンテキストには、各コンテキスト自体に入れ子のコンテキストが含まれている可能性のあるツリー構造があり、一般には、この構造によって BUI 内のビューの構造がミラー化されています。
ログイン時の初期コンテキストはルートコンテキストであり、すべてのコンテキストの親または上位コンポーネントとして機能します。コンテキストに移動するには、そのコンテキストの名前をコマンドとして実行します。たとえば、ブラウザ内の「構成」ビューで使用可能な機能は、CLI の configuration コンテキストで使用できます。次のように、ルートコンテキストから直接入力してこのコンテキストにアクセスできます。
dory:> configuration dory:configuration>
プロンプト内のコロンと大なり記号の間にコンテキストが表示されており、プロンプトがコンテキストを反映して変更されます。
show コマンドは子コンテキストを表示します。たとえば、configuration コンテキストから実行すると、次のようになります。
dory:configuration> show
Children:
net => Configure networking
services => Configure services
version => Display system version
users => Configure administrative users
roles => Configure administrative roles
preferences => Configure user preferences
alerts => Configure alerts
storage => Configure Storage
これらの子コンテキストは、「ネットワーク」、「サービス」、「ユーザー」、「設定」などの、ブラウザ内の「構成」ビューの下で使用可能なビューに対応しています。これらの子コンテキストのいずれかを選択するには、その名前を入力します。
dory:configuration> preferences dory:configuration preferences>
中間のコンテキストを空白で区切って指定することによって、上位コンテキストから直接下位コンテキストに移動できます。たとえば、ルートコンテキストから直接 configuration preferences に移動するには、単に次のように入力します。
dory:> configuration preferences dory:configuration preferences>
一部の子コンテキストは、ブラウザ内の固定されたビューにではなく、ユーザーまたはシステムのどちらかによって作成された動的なエンティティーに対応しているという点で動的です。これらのコンテキストに移動するには、select コマンドを使用し、そのあとに動的コンテキストの名前を指定します。特定のコンテキスト内に含まれている動的コンテキストの名前は、list コマンドを使用して表示されます。たとえば、users コンテキストは静的コンテキストですが、各ユーザーは独自の動的コンテキストです。
dory:> configuration users dory:configuration users> list NAME USERNAME UID TYPE John Doe bmc 12345 Dir Super-User root 0 Loc
bmc という名前のユーザーを選択するには、コマンド select bmc を発行します。
dory:configuration users> select bmc dory:configuration users bmc>
一部のコンテキストでは select と destroy を交互に使用すると、プロパティーに基づいてエンティティーを選択できます。たとえば、次のコマンドを発行することによって、maintenance logs system コンテキストで reboot モジュールによって発行されたログエントリを選択できます。
dory:maintenance logs system> select module=reboot
dory:maintenance logs system entry-034> show
Properties:
timestamp = 2010-8-14 06:24:41
module = reboot
priority = crit
text = initiated by root on /dev/console syslogd: going down on signal 15
ほかのコマンドと同様に、select をコンテキスト変更コマンドに追加することもできます。たとえば、ルートコンテキストから bmc という名前のユーザーを選択するには、次のコマンドを実行します。
dory:> configuration users select bmc dory:configuration users bmc>
last コマンドを使用すると、前に選択または作成したコンテキストに移動できます。次の例ではレプリケーションアクションを作成し、last および get id コマンドを使用してレプリケーションアクション ID を取得します。そのあと別のアクションを選択し、last および get id コマンドを使用して、最後に実行したレプリケーションアクションの ID を取得します。
last を使用すると最後に使用したノードに戻ることができます。
dory:configuration net interfaces> select igb4 dory:configuration net interfaces igb4> done dory:configuration net interfaces> last net:configuration net interfaces igb4>
last コマンドは、動的ノードの作成中にアプライアンスによって自動的に設定された値を取得する場合にも便利です。たとえば、各レプリケーションアクションはその作成時にアプライアンスによって ID が割り当てられます。last コマンドを get id コマンドとともに使用すると、レプリケーションアクションの名前を使用せずに ID を取得できます。
dory:shares p1/share replication> create
dory:shares p1/share action (uncommitted)> set target=dory
target = dory (uncommitted)
dory:shares p1/share action (uncommitted)> set pool=p0
pool = p0 (uncommitted)
dory:shares p1/share action (uncommitted)> commit
dory:shares p1/share replication> last get id
id = 7034367a-d4d8-e26f-fa93-c3b454e3b595
dory:shares p1/share replication>
last コマンドが別のコマンドと組み合わされると (この場合 get id)、このコマンドは最後に使用したノードのコンテキストで実行されますが、現在のノードは変更されないままとなります。
last コマンドでは、最後に使用したノードおよびその値を、ノードの名前を指定せずに取得できるため、このコマンドは特にスクリプトで役立ちます。
script
project = 'myproj';
target = 'mytarget';
target_pool = 'notmypool';
run('cd /');
run('shares select ' + project);
run('replication');
run('create');
set('target', target);
set('pool', target_pool);
run('commit');
run('last');
id = get('id');
printf("Sending update for replication action id %s ...", id);
run('sendupdate');
while (get('state') != 'idle') {
printf(".");
run('sleep 1');
}
printf("done\n");
.
以前のコンテキストに戻るには、done コマンドを使用します。
dory:configuration> done dory:>
次に示すように、これによって戻る以前のコンテキストは、必ずしも親コンテキストではありません。
dory:> configuration users select bmc dory:configuration users bmc> done dory:>
done コマンドを複数回使用すると、以前のコンテキストに 1 つずつ戻ることができます。
dory:> configuration dory:configuration> users dory:configuration users> select bmc dory:configuration users bmc> done dory:configuration users> done dory:configuration> done dory:>
親コンテキストに移動するには、cd コマンドを使用します。従来の UNIX コマンドと同様に、親コンテキストへの移動を示すには、cd に「..」の引数を指定します。
dory:> configuration users select bmc dory:configuration users bmc> cd .. dory:configuration users>
また、UNIX コマンドと同様に、「cd /」を指定するとルートコンテキストに移動します。
dory:> configuration dory:configuration> users dory:configuration users> select bmc dory:configuration users bmc> cd / dory:>
さらに、UNIX コマンドと同様に、「cd ../..」を使用すると親の親のコンテキストに移動できます。
dory:> configuration dory:configuration> users dory:configuration users> select bmc dory:configuration users bmc> cd ../.. dory:configuration>
コンテキスト名は、静的コンテキスト (通常のコマンド補完を介して) か動的コンテキスト (select コマンドのコマンド補完を介して) かにかかわらずタブ補完されます。次に示すのは、ルートコンテキストから bmc という名前のユーザーを、タブ補完を使用しない場合に必要になる 31 回ではなく、わずか 15 回のキーストロークで選択する例です。
dory:> configtab dory:> configuration utab dory:> configuration users setab dory:> configuration users select tab bmc root dory:> configuration users select btab dory:> configuration users select bmcenter dory:configuration users bmc>
コンテキスト内では、コンテキスト固有のコマンドを実行します。たとえば、現在のユーザーの設定を取得するには、configuration preferences コンテキストから get コマンドを実行します。
dory:configuration preferences> get
locale = C
login_screen = status/dashboard
session_timeout = 15
session_annotation =
advanced_analytics = false
コンテキストを変更するコマンドのあとに入力が存在する場合は、ターゲットのコンテキストでそのコマンドが実行されますが、制御は呼び出し側のコンテキストに戻ります。たとえば、コンテキストを変更せずにルートコンテキストから設定を取得するには、コンテキストナビゲーションコマンドに get コマンドを追加します。
dory:> configuration preferences get
locale = C
login_screen = status/dashboard
session_timeout = 15
session_annotation =
advanced_analytics = false
システム内で新しいエンティティーを作成した場合は通常、新しいエンティティーに関連付けられたコンテキストが、コミットされていない状態で作成されます。たとえば、configuration alerts threshold コンテキストから create コマンドを実行することによってしきい値警告を作成します。
dory:> configuration alerts thresholds create dory:configuration alerts threshold (uncommitted)>
プロンプト内の (uncommitted) は、これがコミットされていないコンテキストであることを示します。コミットされていないエンティティーは、commit コマンドを使用してコミットされます。コミットされていないコンテキストから移動しようとすると、確認を求めるプロンプトが表示されます。
dory:configuration alerts threshold (uncommitted)> cd / Leaving will abort creation of "threshold". Are you sure? (Y/N)
コミットされていないエンティティーをコミットするときは、新しいエンティティーに関連付けられたプロパティーが検証され、エンティティーを作成できない場合はエラーが生成されます。たとえば、新しいしきい値警告の作成には統計名の指定が必要であり、この名前を設定できない場合はエラーが生成されます。
dory:configuration alerts threshold (uncommitted)> commit error: missing value for property "statname"
この問題を解決するには、エラーに対処してコミットを再試行します。
dory:configuration alerts threshold (uncommitted)> set statname=cpu.utilization
statname = cpu.utilization (uncommitted)
dory:configuration alerts threshold (uncommitted)> commit
error: missing value for property "limit"
dory:configuration alerts threshold (uncommitted)> set limit=90
limit = 90 (uncommitted)
dory:configuration alerts threshold (uncommitted)> commit
dory:configuration alerts thresholds> list
THRESHOLD LIMIT TYPE STATNAME
threshold-000 90 normal cpu.utilization
関連項目: