形式
sdxdisk -C -c class -g group -d disk,... [-v num=volume:jrm[,num=volume:jrm,...]] [-a attribute=value[,attribute=value]] [-e delay=msec]
sdxdisk -D -c class -g group -d disk
sdxdisk -M -c class [-a attribute=value[,attribute=value,...]]
-d device=disk[:type][,device=disk [:type],... ] [-e chkps]
sdxdisk -R -c class -d disk
機能説明
sdxdisk は、disk で指定されたディスク・オブジェクト (シャドウディスクは除く) を操作するためのコマンドです。スーパユーザ権限を持つユーザだけが sdxdisk コマンドを実行することができます。
基本オプション
以下の基本オプションのうち、いずれかを指定します。
Connect
disk,... で指定された 1 つあるいは複数のディスク (キープディスク、シングルディスクあるいは未定義ディスク) を、group で指定されたグループに接続します。
class には disk が登録されているクラスのクラス名を指定します。
スイッチグループ以外のグループに接続する disk は、class のスコープに属しているすべてのノードに接続されている必要があります。
group と同じ名前を持つグループが存在しない場合は、自動的に作成されます。
スペアディスクをグループに接続することはできません。キープディスクおよびシングルディスクは、すでに存在しているグループには接続できません。また、キープディスクとシングルディスク、複数のキープディスク、あるいは複数のシングルディスクを、1 つのグループに同時に接続することはできません。
グループに接続されたディスクのタイプ属性は、グループと同じタイプ属性 (ミラー、ストライプ、コンカチネーション、またはスイッチ) に変更されます。同じグループに接続されたディスクおよび下位グループは、タイプ属性に応じて、ミラーリング、ストライピング、コンカチネートされるか、またはスイッチ可能になります。
以下は、ディスクをミラーグループに接続する場合、ストライプグループに接続する場合、コンカチネーショングループに接続する場合、およびスイッチグループに接続する場合の 4 つの場合に分けて説明します。
同じミラーグループに接続されたディスクおよび下位グループは、互いにミラーリングされます。ディスクまたは下位グループが 1 つしか接続されていない場合、そのミラーグループに作成されるボリュームは、ミラーリングされません。n 多重のミラーリングを行う場合は、n 個のディスクまたは下位グループを接続する必要があります。最大 8 多重までのミラーリングが可能です。
group で指定されたミラーグループ内にすでにボリュームが存在する場合、group にすでに接続されているディスクまたは下位グループのスライス構成を、新たに接続された disk に対して自動的にコピーします。
また、group に起動中のボリュームが存在する場合、sdxdisk コマンドの復帰後に、スライス構成だけではなくボリューム内のデータも自動的にコピーすることにより、ミラーの多重度が増やされます。
また、シングルボリュームが存在するシングルディスクをミラーグループに接続することによって、シングルボリュームをミラーボリュームに変更することができます。
ミラーグループの有効サイズ (ボリュームとして使用可能な容量) は、ミラーグループに接続された最小のディスクまたは下位グループの有効サイズと同じになります。キープディスクが接続された場合は、そのキープディスクの有効サイズがグループの有効サイズとなります。disk を接続することによってgroup の有効サイズが減少した場合、警告メッセージを標準エラー出力します。
キープディスクが接続された場合、キープディスク中の物理スライスごとにボリュームを作成します。物理スライスがオープン中でなければ、作成したボリュームを起動して、sdxdisk コマンドの復帰後に、自動的に等価性コピー処理を行います。
スイッチグループが存在するクラスには、ミラーグループは作成できません。
disk,... で指定されたディスクは、指定された順にgroup に接続されます。同じストライプグループに接続されたディスクおよび下位グループは、各々がストライプ列の役割を果たし、接続された順にストライピングされます。ディスクまたは下位グループが 1 つしか接続されていない場合、そのストライプグループにはボリュームを作成できません。n 列のストライピングを行う場合は、n 本のディスクまたは下位グループを接続する必要があります。2 列以上、最大 64 列までのストライピングが可能です。
group で指定されたストライプグループがすでに存在している場合、group 内にすでに存在しているストライプ列の後に、disk,... で指定された順にストライプ列が追加されます。ただし、すでに存在しているストライプグループに、有効サイズがストライプ幅よりも小さいディスクを接続することはできません。また、すでにボリュームが存在するストライプグループ、および下位グループに接続されているストライプグループに対しては、ディスクを接続してストライプ列数を増やすことはできません。
ストライプグループの有効サイズ (ボリュームとして使用可能な容量) は、ストライプグループに接続された最小のディスク (または下位グループ) の有効サイズにストライプ列数を掛けて、(ストライプ幅) × (ストライプ列数) とシリンダサイズとの公倍数に切り捨てたサイズとなります。disk を接続することによって group の有効サイズが減少した場合、警告メッセージを標準エラー出力します。
シングルディスクを、ストライプグループに接続することはできません。
スイッチグループが存在するクラスには、ストライプグループは作成できません。
同じコンカチネーショングループに接続されたディスクは、disk,... で指定された順にコンカチネートされます。最大 64 個までのコンカチネーションが可能です。
コンカチネーショングループの有効サイズ (ボリュームとして使用可能な容量) は、コンカチネーショングループに接続されたディスクの有効サイズを合計したサイズとなります。
すでに存在しているコンカチネーショングループにディスクを接続することによって、グループの有効サイズを増加させることができます。group で指定されたコンカチネーショングループがすでに存在している場合、group 内で最後にコンカチネートされたディスクの後ろに、disk,... で指定された順にディスクがコンカチネートされます。ただし、group で指定されたコンカチネーショングループが、ミラーグループに接続されているストライプグループに接続されている場合は、group にディスクを接続することはできません。
シングルディスクを、コンカチネーショングループに接続することはできません。
スイッチグループが存在するクラスに、本コマンドでコンカチネーショングループを作成することはできません。また、下位スイッチグループが接続されているコンカチネーショングループには、ディスクは接続できません。
同じスイッチグループに接続された 2 つのディスクは、一方が運用ディスク、他方が待機ディスクとなり、sdxattr -G コマンドによる運用、待機の切替えが可能になります。スイッチグループには、最大 2 個のディスクが接続できます。ディスクが 1 つしか接続されていない場合は、そのディスクが運用ディスクとなり、運用ディスクの切替えはできません。
group で指定されたスイッチグループを作成する場合、-a actdisk オプションで運用ディスクを指定する必要があります。-a actdisk オプションで指定されたディスク以外は待機ディスクになります。group で指定された既存のスイッチグループに disk を接続する場合、disk は待機ディスクになります。
ミラーグループの場合と異なり、group で指定されたスイッチグループにすでにボリュームが存在する場合でも、新たに接続された disk への等価性コピーは行われません。運用ディスクに異常が発生したとき、運用ディスクを切り替えて業務を継続するには、ディスク装置のコピー機能などを使用して、運用ディスクのデータを待機ディスクにあらかじめコピーしておく必要があります。
スイッチグループの有効サイズ (ボリュームとして使用可能な容量) は、スイッチグループに接続された最小のディスクの有効サイズと同じになります。disk を接続することによって group の有効サイズが減少した場合、警告メッセージを標準エラー出力します。
以下のいずれかのオブジェクトが存在するクラスには、スイッチグループは作成できません。
未定義ディスク以外のディスク
ミラーグループ
ストライプグループ
下位スイッチグループが接続されていないコンカチネーショングループ
class は、スコープが 2 ノードの共用クラスである必要があります。また、運用ディスクと待機ディスクの物理スコープは、以下のいずれかの条件を満たす必要があります。
運用ディスクと待機ディスクは、class のスコープに含まれている両方のノードに接続されていて、かつ、class のスコープに含まれていないノードには接続されていない。
運用ディスクは class のスコープに含まれている一方のノードのみに接続されていて、かつ、待機ディスクは class のスコープに含まれている他方のノードのみに接続されている。
Disconnect
disk で指定されたディスク (スペアディスクを含む) を、group で指定されたグループから切断します。class にはdisk が登録されているクラスのクラス名、group には disk が接続されているグループのグループ名を指定します。
切断されたディスクのタイプ属性は、接続前のタイプ属性 (キープディスク、シングルディスクまたは未定義ディスク) に戻ります。
group にdisk のみが接続されている場合、disk が切断されると、group も自動的に削除されます。ただし、disk のみが接続されているgroup が上位グループに接続されている場合はエラーとなり、disk を切断することはできません。そのような disk を切断するには、まず、sdxgroup -D コマンドを使用して、group を上位グループから切断してください。
disk を切断することによって、group 内に存在する任意のボリュームの状態が変化する可能性がある場合は、disk の切断はできません。
以下に、ディスクをミラーグループから切断する場合、ストライプグループから切断する場合、コンカチネーショングループから切断する場合、および、スイッチグループから切断する場合の 4 つの場合に分けて、切断できない条件について説明します。
例えば、group で指定されたミラーグループにボリュームが存在していて、かつ group にdisk で指定されたディスクのみが接続されている場合、disk の切断はできません。
ボリュームが存在するストライプグループ、および上位グループに接続されているストライプグループから、ディスクを切断することはできません。
コンカチネーショングループから切断できるのは、最後にコンカチネートされたディスクのみです。
ボリュームの領域が存在するディスクを、コンカチネーショングループから切断することはできません。
group で指定されたコンカチネーショングループが、ミラーグループに接続されているストライプグループに接続されている場合は、group からディスクを切断することはできません。
待機ディスクは、ボリュームの有無に関係なく、切断することができます。
運用ディスクが切断できるのは、以下のすべての条件を満たす場合です。
スイッチグループが上位コンカチネーショングループに接続されていない。
スイッチグループにボリュームが存在しない
スイッチグループに待機ディスクが接続されていない。
スイッチグループにボリュームが存在する場合、運用ディスクを切断するには、ボリュームを削除する必要があります。スイッチグループに待機ディスクが接続されている場合は、sdxattr -G コマンドを使用して運用ディスクを切り替えることにより、旧運用ディスクを切断することができます。
Make
device で指定された 1 つあるいは複数の物理ディスクを、クラスであるclass に登録します。class には登録先のクラス名を指定します。登録が完了した物理ディスクは、GDS によって管理されます。GDS で管理されているディスクのことを SDX ディスクと呼び、以降、ユーザは disk で指定したディスク名を使ってディスクを操作します。
クラスタドメイン内の全ノードが起動していることを確認してから、実行してください。
class と同じ名前を持つクラスが存在しない場合は、自動的に作成されます。
ルートタイプの class には、keep タイプの device を登録することができます。ただし、複数の keep タイプの device を同時に登録する場合、同時に同数以上の undef タイプの device を登録する必要があります。
クラスタドメイン内に閉塞しているクラスが存在する場合、または、SWAP 状態のディスクが存在する場合は、実行しないでください。
注意
sdxdisk コマンドは、登録された物理ディスク (タイプ属性として keep が指定された device を除く) の内容を初期化するので、すでにデータが格納されている物理ディスクを登録する際には、事前にデータのバックアップを採取しておく必要があります。
Remove
disk で指定されたディスクを、class で指定されたクラスから削除します。class には、disk が登録されているクラスのクラス名を指定します。
クラスタドメイン内の全ノードが起動していることを確認してから、実行してください。
削除が完了したディスクは、以降、GDS では管理されません。
class に登録されている最後のディスクが削除された場合、クラスの定義も自動的に削除されます。
disk 内にボリュームが存在している場合、および disk がグループに接続されている場合は、削除できません。
disk を削除することによって class が閉塞する場合、disk は削除できません。class が閉塞するのは、class が以下のいずれかの条件を満たす場合です。
ENABLE 状態のディスクが 2 つ以下で、かつ、正常にアクセス可能なディスクが 1 つもない場合
ENABLE 状態のディスクが 3 つ以上 5 つ以下で、かつ、正常にアクセス可能なディスクが 1 つ以下の場合
ENABLE状 態のディスクが 6 つ以上で、かつ、正常にアクセス可能なディスクが 2 つ以下の場合
サブオプション
以下のオプションが指定できます。
-C オプション指定時に新しいグループ名を -g オプションで指定した場合、自動的に新しいグループが作成されます。本オプションでは、作成される group の属性として attribute を value に設定します。
attribute には属性名、value には属性値を指定します。attribute と value の間には、必ずイコール (=) を入れます。複数の属性を設定する場合は、これらの指定子の組合せをカンマ (,) で区切って指定します。
グループが作成されない場合、既存の group の属性値と異なる value を指定するとエラーとなります。既存の group の属性値を変更する際は、sdxattr -G コマンドを利用してください。
attribute と value には、以下の任意の組合せが指定できます。
複数の属性が指定された場合、一部の処理でエラーが発生すると一切処理を行いません。
group のタイプ属性を設定します。class がルートクラスの場合は、netmirror、stripe または concat を指定するとエラーとなります。また、class が、スコープが 2 ノードの共用クラスでない場合、switch を指定するとエラーとなります。
タイプ属性を「ミラー」に設定します。
タイプ属性を「ネットミラー」に設定します。
タイプ属性を「ストライプ」に設定します。
タイプ属性を「コンカチネーション」に設定します。
タイプ属性を「スイッチ」に設定します。
group のストライプ幅を設定します。blks には、ストライプ幅をブロック数 (10進数) で指定します。1 ブロックは 512 バイトです。blks に指定可能な値は、2 のべき乗で、1 以上、1,073,741,824 以下、かつ disk,... で指定された最小のディスクの、有効サイズ以下の整数です。group がストライプグループではない場合は、エラーとなります。
group の運用ディスクを設定します。disk には、運用ディスクのディスク名を指定します。group で指定されたグループがすでに存在する場合、-a type=switch オプションが指定されていない場合、および、disk が -d オプションで指定されているディスクではない場合は、エラーとなります。
-M オプション指定時に新しいクラス名を -c オプションで指定した場合、自動的にクラスが作成されます。本オプションでは、作成される class の属性として attribute を value に設定します。
attribute には属性名、value には属性値を指定します。attribute と value の間には、必ずイコール (=) を入れます。複数の属性を設定する場合は、これらの指定子の組合せをカンマ (,) で区切って指定します。
クラスが作成されない場合は、本オプションの指定は無視されます。既存のクラスの属性を変更する際は、sdxattr -C コマンドを利用してください。
attribute と value には、以下の任意の組合せが指定できます。
複数の属性が指定された場合、一部の処理でエラーが発生すると一切処理を行いません。
class のタイプ属性を設定します。
タイプ属性を「ルート」に設定します。
ルートタイプの class 内のオブジェクトは自ノードでのみ使用可能です。
ルートタイプの class には、ルートファイルシステムを含むシステムディスク、システムディスクとミラーリングするディスク、スペアディスク、およびシステムボリュームのプロキシボリュームを作成するディスクが登録できます。ルートタイプのクラスは、システム内に 1 つしか作成できません。すでに、ルートタイプのクラスが存在している場合、新しいルートタイプの class が指定されるとエラーとなります。
スコープ属性には自ノードのノード識別名が自動的に設定されます。
タイプ属性を「ローカル」に設定します。
ローカルタイプのクラス内のオブジェクトは自ノードでのみ使用可能です。
スコープ属性には自ノードのノード識別名が自動的に設定されます。
タイプ属性を「共用」に設定します。
スコープ属性とあわせて指定することにより、自ノードを含む複数のノード間で class 内のオブジェクトを共用できます。
共用タイプのクラスには、スコープに属しているすべてのノードに接続されている物理ディスクを登録することができます。また、スコープが 2 ノードの場合は、スコープ内の 1 ノードのみに接続されているディスクを未定義ディスクとして登録することもできます。
クラスのオブジェクトを使用できるノード群を設定します。
ルートクラス (-a type=root オプション指定時) またはローカルクラス (-a type=local オプション指定時) の場合、本オプションは省略可能です。自ノード以外を指定した場合、エラーになります。
共用クラス (-a type=shared オプション指定時、または -a typeオプション省略時) の場合、自ノードを含む 2 ノード以上、 4 ノード以内のノード群を指定します。
node には PRIMECLUSTER が規定するノード識別名を指定します。
ホットスペアの動作を設定します。
ホットスペアを有効に設定します。
ホットスペアを無効に設定します。動作を off に設定した場合、スペアディスクの自動接続が抑止されます。
ホットスペアで自動接続するスペアディスクの選択方式を設定します。
スペアディスクの選択方式を、筐体外優先方式に設定します。ディスクアレイ装置のディスクで I/O エラーが発生した場合、そのディスクとは別のディスク筐体に属しているスペアディスクを優先して選択します。ディスクアレイ装置以外のディスクで I/O エラーが発生した場合、そのディスクとは別のコントローラに接続されているスペアディスクを優先して選択します。条件を満たす未接続のスペアディスクが存在しない場合は、I/O エラーが発生したディスクと同じディスク筐体に属しているスペアディスク、または同じコントローラに接続されているスペアディスクを選択します。
スペアディスクの選択方式を、筐体内限定方式に設定します。ディスクアレイ装置のディスクで I/O エラーが発生した場合、そのディスクと同じディスク筐体に属しているスペアディスクを選択します。ディスクアレイ装置以外のディスクで I/O エラーが発生した場合、そのディスクと同じコントローラに接続されているスペアディスクを選択します。条件を満たす未接続のスペアディスクが存在しない場合は、スペアディスクは自動接続されません。
class には、操作対象となるディスクが登録されているクラス、または登録しようとしているクラスのクラス名を指定します。
device には物理ディスク名、disk にはディスク名、type にはディスクのタイプ属性を指定します。device の後には必ずイコール (=) が続き、type を指定する場合は disk との間をコロン (:) で区切ります。複数の device を登録する場合は、上記の指定子の組合せをカンマ (,) で区切ります。指定できる device は 400 個までです。
物理ディスク名は、以下のいずれかの形式で指定できます。
sdX (通常のハードディスクの場合) mpathX (DM-MPのmpathデバイスの場合) emcpowerX (emcpowerディスクの場合) vdX (KVMゲストの仮想ディスクの場合) 【4.3A10以降】
X はデバイス識別名です。
type には以下のいずれかを指定します。省略時には、登録されたディスクは未定義ディスクになります。class がルートクラスではない場合は、keep を指定するとエラーになります。また、class のスコープに含まれている一部のノードに device が接続されていない場合、および、class にスイッチグループが存在する場合は、undef 以外を指定するとエラーになります。
キープディスク。クラスへの登録、グループへの接続のとき、ディスクのフォーマットやデータが保存されます。
シングルディスク。シングルボリュームを作成することができます。
スペアディスク
未定義ディスク
type に spare が指定された場合、device の有効サイズが、class 内で最小のミラーグループの有効サイズよりも小さければ、ホットスペアが機能しない可能性があるという警告メッセージを標準エラー出力します。
device が 1 つだけ指定され、type に keep が指定された場合、device に占有スライスが作成できるように、使用されていない物理スライス番号と十分な容量の空き領域がdevice に存在している必要があります。複数の device が指定された場合は、type に keep が指定された device には、使用されていない物理スライス番号と、十分な容量の空き領域または十分な容量のスワップデバイスが存在している必要があります。
type に keep が指定されたシステムディスク (動作中の /、/usr、/var、/boot、/boot/efi、またはスワップ域が存在するディスク) の場合、すべてあるいは一部の物理スライスがオープン中でも sdxdisk コマンドは正常終了します。ただし、システムディスク以外に keep が指定された場合は、オープン中の物理スライスが存在するとエラーとなります。例えば、物理スライスがファイルシステムとして使用されている場合、ファイルシステムをアンマウントして、物理スライスを未使用状態にした後に sdxdisk コマンドを実行してください。
type に single が指定された場合、device はシングルディスクとして登録されます。シングルディスクはグループへ接続しなくても sdxvolume コマンドを使ってシングルボリュームを作成することができます。
disk には操作対象となるディスクのディスク名を指定します。
disk には操作対象となるディスクのディスク名を指定します。複数のディスクを接続する場合は、ディスク名をカンマ (,) で区切って指定します。
device に占有スライスが存在していても、占有スライスに格納されているディスク識別情報 (クラス名とディスク名) が、class にすでに登録されているディスクの識別情報と一致している場合は、device を class に登録します。例えば、class にすでに登録されているディスクの占有スライスが、ディスク装置のコピー機能によって device にコピーされている場合、本オプションを指定することによって、device を class に登録することができます。
class が共用クラスでない場合は、エラーとなります。
ディスクをミラーグループに接続した場合、必要に応じてボリューム内のデータがコピーされます。このコピー処理に伴うディスクへの入出力要求の発行を、msec で指定された時間 (単位はミリ秒) だけ遅延させます。
本オプションによって、ボリュームを使用しているアプリケーションへの影響を調整できます。
遅延時間の省略値は 0 です。
msec に指定可能な値は、0 から 1000 までです。
group がミラーグループではない場合、本オプションの指定は無視されます。
group には、操作対象となるディスクが接続されているグループ、または接続しようとしているグループのグループ名を指定します。
keep タイプの disk を接続する場合に、作成するボリュームの属性値を指定します。keep タイプの disk が指定されていない場合は、本オプションの指定は無視されます。
num の後には必ずイコール (=) が続き、volume と jrm との間はコロン (:) で区切ります。複数のボリュームの属性値を指定する場合は、上記の指定子の組合せをカンマ (,) で区切ります。
num にはボリュームのデータが格納されている keep タイプの disk の物理スライス番号 (1 ~ 15 までの整数)、volume には作成するボリューム名、jrm には作成するボリュームの高速等価性回復モード (on または off) を指定します。
keep タイプの disk 中にサイズが 0 でない物理スライスが複数存在する場合、すべての物理スライスに対応したボリュームの属性値を指定する必要があります。
戻り値
正常終了した場合には 0 を返し、そうでない場合には 0 以外の値を返します。