PRIMECLUSTER Global Disk Services 説明書 4.2 (Linux版)
|
目次

|
D.2 sdxdisk − ディスクの操作
■形式
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コマンドを実行することができます。
■基本オプション
以下の基本オプションのうち、いずれかを指定します。
- -C
- 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ノードの共用クラスである必要があります。また、運用ディスクと待機ディスクの物理スコープは、以下のいずれかの条件を満たす必要があります。
- -D
- 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コマンドを使用して運用ディスクを切り替えることにより、旧運用ディスクを切断することができます。
- -M
- Make
device で指定された1つあるいは複数の物理ディスクを、クラスであるclass に登録します。class には登録先のクラス名を指定します。登録が完了した物理ディスクは、GDSによって管理されます。GDSで管理されているディスクのことをSDXディスクと呼び、以降、ユーザはdisk で指定したディスク名を使ってディスクを操作します。
class と同じ名前を持つクラスが存在しない場合は、自動的に作成されます。
ルートタイプのclass には、keepタイプのdevice を登録することができます。ただし、複数のkeepタイプのdeviceを同時に登録する場合、同時に同数以上のundefタイプのdeviceを登録する必要があります。

sdxdiskコマンドは、登録された物理ディスク(タイプ属性としてkeepが指定されたdevice を除く)の内容を初期化するので、すでにデータが格納されている物理ディスクを登録する際には、事前にデータのバックアップを採取しておく必要があります。
- -R
- Remove
disk で指定されたディスクを、class で指定されたクラスから削除します。class には、disk が登録されているクラスのクラス名を指定します。
削除が完了したディスクは、以降、GDSでは管理されません。
class に登録されている最後のディスクが削除された場合、クラスの定義も自動的に削除されます。
disk 内にボリュームが存在している場合、およびdisk がグループに接続されている場合は、削除できません。
diskを削除することによってclassが閉塞する場合、diskは削除できません。classが閉塞するのは、classが以下のいずれかの条件を満たす場合です。
ENABLE状態のディスクが2つ以下で、かつ、正常にアクセス可能なディスクが1つもない場合
ENABLE状態のディスクが3つ以上5つ以下で、かつ、正常にアクセス可能なディスクが1つ以下の場合
ENABLE状態のディスクが6つ以上で、かつ、正常にアクセス可能なディスクが2つ以下の場合
■サブオプション
以下のオプションが指定できます。
- -a attribute=value[,attribute=value] (-C指定時)
- -Cオプション指定時に新しいグループ名を-gオプションで指定した場合、自動的に新しいグループが作成されます。本オプションでは、作成されるgroup の属性としてattribute をvalue に設定します。
attribute には属性名、value には属性値を指定します。attribute とvalue の間には、必ずイコール(=)を入れます。複数の属性を設定する場合は、これらの指定子の組合せをカンマ(,)で区切って指定します。
グループが作成されない場合、既存のgroup の属性値と異なるvalue を指定するとエラーとなります。既存のgroup の属性値を変更する際は、sdxattr -Gコマンドを利用してください。
attribute とvalue には、以下の任意の組合せが指定できます。
複数の属性が指定された場合、一部の処理でエラーが発生すると一切処理を行いません。
- type=mirror,type=stripe,type=concat または type=switch(省略時はmirror)
- group のタイプ属性を設定します。class がルートクラスの場合は、stripeまたはconcatを指定するとエラーとなります。また、class が、スコープが2ノードの共用クラスでない場合、switch を指定するとエラーとなります。
- mirror
- タイプ属性を「ミラー」に設定します。
- stripe
- タイプ属性を「ストライプ」に設定します。
- concat
- タイプ属性を「コンカチネーション」に設定します。
- switch
- タイプ属性を「スイッチ」に設定します。
- width=blks (省略時は32)
- group のストライプ幅を設定します。blks には、ストライプ幅をブロック数(10進数)で指定します。1ブロックは512バイトです。blks に指定可能な値は、2のべき乗で、1以上、かつdisk,... で指定された最小のディスクの、有効サイズ以下の整数です。group がストライプグループではない場合は、エラーとなります。
- actdisk=disk
- group の運用ディスクを設定します。disk には、運用ディスクのディスク名を指定します。group で指定されたグループがすでに存在する場合、-a type=switchオプションが指定されていない場合、および、disk が-dオプションで指定されているディスクではない場合は、エラーとなります。
- -a attribute=value[,attribute=value,...] (-M指定時)
- -Mオプション指定時に新しいクラス名を-cオプションで指定した場合、自動的にクラスが作成されます。本オプションでは、作成されるclass の属性としてattribute をvalue に設定します。
attribute には属性名、value には属性値を指定します。attribute とvalue の間には、必ずイコール(=)を入れます。複数の属性を設定する場合は、これらの指定子の組合せをカンマ(,)で区切って指定します。
クラスが作成されない場合は、本オプションの指定は無視されます。既存のクラスの属性を変更する際は、sdxattr -Cコマンドを利用してください。
attribute とvalue には、以下の任意の組合せが指定できます。
複数の属性が指定された場合、一部の処理でエラーが発生すると一切処理を行いません。
- type=root,type=localまたはtype=shared (省略時はshared)
- class のタイプ属性を設定します。
- root【Itanium】
- タイプ属性を「ルート」に設定します。
ルートタイプのclass 内のオブジェクトは自ノードでのみ使用可能です。
ローカルタイプのクラスとは異なり、ルートタイプのclass にはルートファイルシステムを含むシステムディスクを登録することができます。
ルートタイプのクラスは、システム内に1つしか作成できません。すでに、ルートタイプのクラスが存在している場合、新しいルートタイプのclass が指定されるとエラーとなります。
スコープ属性には自ノードのノード識別名が自動的に設定されます。
- local【Linux2.6】
- タイプ属性を「ローカル」に設定します。
ローカルタイプのクラス内のオブジェクトは自ノードでのみ使用可能です。
スコープ属性には自ノードのノード識別名が自動的に設定されます。
- shared
- タイプ属性を「共用」に設定します。
スコープ属性とあわせて指定することにより、自ノードを含む複数のノード間でclass 内のオブジェクトを共用できます。
共用タイプのクラスには、スコープに属しているすべてのノードに接続されている物理ディスクを登録することができます。また、スコープが2ノードの場合は、スコープ内の1ノードのみに接続されているディスクを未定義ディスクとして登録することもできます。
- scope=node [:node:...] (省略時は自ノードのみ)
- 共用クラスにおいて共用できるノード群の範囲を設定します。
node にはPRIMECLUSTERが規定するノード識別名を指定します。
- hs=onまたはhs=off (省略時はon)
- ホットスペアの動作を設定します。
- on
- ホットスペアを有効に設定します。
- off
- ホットスペアを無効に設定します。動作をoffに設定した場合、スペアディスクの自動接続が抑止されます。
- hsmode=exboxまたはhsmode=bybox (省略時はexbox)
- ホットスペアで自動接続するスペアディスクの選択方式を設定します。
- exbox
- スペアディスクの選択方式を、筐体外優先方式に設定します。ディスクアレイ装置のディスクでI/Oエラーが発生した場合、そのディスクとは別のディスク筐体に属しているスペアディスクを優先して選択します。ディスクアレイ装置以外のディスクでI/Oエラーが発生した場合、そのディスクとは別のコントローラに接続されているスペアディスクを優先して選択します。条件を満たす未接続のスペアディスクが存在しない場合は、I/Oエラーが発生したディスクと同じディスク筐体に属しているスペアディスク、または同じコントローラに接続されているスペアディスクを選択します。
- bybox
- スペアディスクの選択方式を、筐体内限定方式に設定します。ディスクアレイ装置のディスクでI/Oエラーが発生した場合、そのディスクと同じディスク筐体に属しているスペアディスクを選択します。ディスクアレイ装置以外のディスクでI/Oエラーが発生した場合、そのディスクと同じコントローラに接続されているスペアディスクを選択します。条件を満たす未接続のスペアディスクが存在しない場合は、スペアディスクは自動接続されません。
- -c class
- class には、操作対象となるディスクが登録されているクラス、または登録しようとしているクラスのクラス名を指定します。
- -d device=disk[:type][,device=disk[:type ],... ] (-M指定時)
- device には物理ディスク名、disk にはディスク名、type にはディスクのタイプ属性を指定します。device の後には必ずイコール(=)が続き、type を指定する場合はdisk との間をコロン(:)で区切ります。複数のdevice を登録する場合は、上記の指定子の組合せをカンマ(,)で区切ります。
物理ディスク名は、以下のいずれかの形式で指定できます。
sdX (通常のハードディスクの場合)
emcpowerX (emcpowerディスクの場合)
- Xはデバイス識別名です。
type には以下のいずれかを指定します。省略時には、登録されたディスクは未定義ディスクになります。class がルートクラスではない場合は、keepを指定するとエラーになります。また、class のスコープに含まれている一部のノードにdevice が接続されていない場合、および、class にスイッチグループが存在する場合は、undef 以外を指定するとエラーになります。
- keep【Itanium】
- キープディスク。クラスへの登録、グループへの接続のとき、ディスクのフォーマットやデータが保存されます。
- single
- シングルディスク。シングルボリュームを作成することができます。
- spare
- スペアディスク
- undef
- 未定義ディスク
- type にspareが指定された場合、device の有効サイズが、class 内で最小のミラーグループの有効サイズよりも小さければ、ホットスペアが機能しない可能性があるという警告メッセージを標準エラー出力します。
device が一つだけ指定され、type にkeepが指定された場合、device に占有スライスが作成できるように、使用されていない物理スライス番号と十分な容量の空き領域がdevice に存在している必要があります。複数のdevice が指定された場合は、type にkeepが指定されたdevice には、使用されていない物理スライス番号と、十分な容量の空き領域または十分な容量のスワップデバイスが存在している必要があります。
type にkeepが指定されたシステムディスク(動作中の/、/usr、/var、/boot、/boot/efi、またはスワップ域が存在するディスク)の場合、すべてあるいは一部の物理スライスがオープン中でもsdxdiskコマンドは正常終了します。ただし、システムディスク以外にkeepが指定された場合は、オープン中の物理スライスが存在するとエラーとなります。たとえば、物理スライスがファイルシステムとして使用されている場合、ファイルシステムをアンマウントして、物理スライスを未使用状態にした後にsdxdiskコマンドを実行してください。
typeにsingleが指定された場合、device はシングルディスクとして登録されます。シングルディスクはグループへ接続しなくてもsdxvolumeコマンドを使ってシングルボリュームを作成することができます。
- -d disk (-D,-R指定時)
- disk には操作対象となるディスクのディスク名を指定します。
- -d disk,... (-C指定時)
- disk には操作対象となるディスクのディスク名を指定します。複数のディスクを接続する場合は、ディスク名をカンマ(,)で区切って指定します。
- -e chkps (-M指定時)
- device に占有スライスが存在していても、占有スライスに格納されているディスク識別情報(クラス名とディスク名)が、class にすでに登録されているディスクの識別情報と一致している場合は、device をclass に登録します。たとえば、class にすでに登録されているディスクの占有スライスが、ディスク装置のコピー機能によってdevice にコピーされている場合、本オプションを指定することによって、device を class に登録することができます。
class が共用クラスでない場合は、エラーとなります。
- -e delay=msec (-C指定時)
- ディスクをミラーグループに接続した場合、必要に応じてボリューム内のデータがコピーされます。このコピー処理にともなうディスクへの入出力要求の発行を、msec で指定された時間(単位はミリ秒)だけ遅延させます。
本オプションによって、ボリュームを使用しているアプリケーションへの影響を調整できます。
遅延時間の省略値は0です。
msec に指定可能な値は、0から1000までです。
group がミラーグループではない場合、本オプションの指定は無視されます。
- -g group (-C,-D指定時)
- group には、操作対象となるディスクが接続されているグループ、または接続しようとしているグループのグループ名を指定します。
- -v num=volume:jrm [,num=volume:jrm,...] (-C指定時)【Itanium】
- keepタイプのdisk を接続する場合に、作成するボリュームの属性値を指定します。keepタイプのdisk が指定されていない場合は、本オプションの指定は無視されます。
num の後には必ずイコール(=)が続き、volume とjrm との間はコロン(:)で区切ります。複数のボリュームの属性値を指定する場合は、上記の指定子の組合せをカンマ(,)で区切ります。
num にはボリュームのデータが格納されているkeepタイプのdisk の物理スライス番号(1〜15までの整数)、volume には作成するボリューム名、jrm には作成するボリュームの高速等価性回復モード(onまたはoff)を指定します。
keepタイプのdisk 中にサイズが0でない物理スライスが複数存在する場合、すべての物理スライスに対応したボリュームの属性値を指定する必要があります。
■戻り値
正常終了した場合には0を返し、そうでない場合には0以外の値を返します。
All Rights Reserved, Copyright(C) 富士通株式会社 2006