GMULTIPATH(8) |
FreeBSD System Manager's Manual |
GMULTIPATH(8) |
名称
gmultipath —
ディスクマルチパス制御ユーティリティ
書式
gmultipath |
create [ -ARv] name prov ... |
gmultipath |
label [ -ARv] name prov ... |
gmultipath |
configure [ -APRv] name |
gmultipath |
add [ -v] name prov |
gmultipath |
remove [ -v] name prov |
gmultipath |
fail [ -v] name prov |
gmultipath |
restore [ -v] name prov |
gmultipath |
rotate [ -v] name |
gmultipath |
prefer [ -v] name prov |
gmultipath |
getactive [ -v] name |
gmultipath |
destroy [ -v] name |
gmultipath |
stop [ -v] name |
gmultipath |
clear [ -v] prov ... |
解説
gmultipath ユーティリティは、デバイスのマルチパス (multipath) 設定のために使用されます。
次の 2 つの異なるメソッドを使用して、マルチパスのデバイスを設定することができます: “manual” (手動) または“automatic” (自動) です。“manual”メソッドを使用するとき、メタデータは、デバイスに格納されないので、マルチパスのデバイスは、それが必要とされるたびに、手動によって設定されなければなりません。また、追加のデバイスのパスも、自動的に検出されないでしょう。“automatic”メソッドは、デバイスとすべてのそのパスを検出するために、ディスク上のメタデータを使用します。メタデータは、基本的なディスクデバイスの最後のセクタを使用し、デバイス名と UUID を含んでいます。 UUID は、共用記憶域環境でユニークであることを保証しますが、一般的に、使用するためにはあまりにも扱いにくいです。名前は、デバイスインタフェースを通してエクスポートされたものです。
gmultipath への最初の引数は、実行される動作を示します:
-
create
-
あらゆるディスク上のメタデータを書き込まずに、“manual”メソッドでマルチパスのデバイスを作成します。どのように適切にデバイスパスを識別かは、管理者の責任です。カーネルは、すべての与えられたプロバイダに同じメディアとセクタサイズがあることを単にチェックします。
-A オプションは、アクティブ/アクティブモードを有効にし、 -R オプションは、アクティブ/読み込みモードをを有効にし、そうでなければ、アクティブ/パッシブモードがデフォルトで使用されます。
-
label
-
“automatic”メソッドでマルチパスのデバイスを作成します。指定された
name を使用して、ディスク上のメタデータで最初に与えられたプロバイダをラベル付けします。与えられたプロバイダの残りは、これらのメタデータを検出するために再テストされます。関係のないプロバイダの指定に対して確実に保護します。検出されたメタデータに一致しないプロバイダは、デバイスに追加されません。
-A オプションは、アクティブ/アクティブモードを有効にし、 -R オプションは、アクティブ/読み込みモードをを有効にし、そうでなければ、アクティブ/パッシブモードがデフォルトで使用されます。
-
configure
-
与えられたマルチパスデバイスを設定します。
-A オプションは、アクティブ/アクティブモードを有効にし、 -P オプションは、アクティブ/パッシブモードを有効にし、 -R オプションは、アクティブ/読み込み点検モードを有効にします。
-
add
-
与えられたマルチパスのデバイスへのパスとして与えられたプロバイダを追加します。 (別のデバイスパスであることを確実と思うが、正常な“automatic”の方法でそのメタデータが可能ではないと試食する (tasting)) 利用者が何を行っているか知らないなら、通常、“manual”メソッドで作成されたデバイスに対してのみ使用されるべきです。訳注: tasting の意味不明。
-
remove
-
与えられたマルチパスのデバイスのパスとして与えられたプロバイダを削除します。最後のパスが削除されたなら、マルチパスのデバイスは、破壊されます。
-
fail
-
指定されたマルチパスのデバイスのパスとして指定されたプロバイダを失敗としてマークします。他のパスが存在するなら、新しい要求は、そこに転送されます。
-
restore
-
指定されたマルチパスのデバイスのパスとして指定されたプロバイダを要求を扱うことを可能にして、使用できるとしてマークします。
-
rotate
-
アクティブ/パッシブモードでアクティブなプロバイダ/パスを次の利用可能なプロバイダに変更します。
-
prefer
-
アクティブ/パッシブモードでアクティブなプロバイダ/パスを指定されたプロバイダに変更します。
-
getactive
-
現在のアクティブな(複数の)プロバイダ/(複数の)パスを取得します。
-
destroy
-
メタデータをクリアして与えられたマルチパスのデバイスを破壊します。
-
stop
-
メタデータをクリアせずに与えられたマルチパスのデバイスを停止します。
-
clear
-
与えられたデバイスでメタデータをクリアします。
-
list
-
geom(8) を参照してください。
-
status
-
geom(8) を参照してください。
-
load
-
geom(8) を参照してください。
-
unload
-
geom(8) を参照してください。
SYSCTL 変数
MULTIPATH GEOM クラスの振る舞いを制御するために、次の
sysctl(8) 変数を使用することができます。
-
kern.geom.multipath.debug: 0
-
MULTIPATH GEOM クラスのデバッグレベル。これは、0 (デフォルト) または無効にする 1 に設定できます、またはおしゃべり (chattiness) の様々な形式を有効にすることができます。
-
kern.geom.multipath.exclusive: 1
-
個別のパスのアクセスを防いで、基本的なプロバイダを排他的にオープンします。
終了ステータス
終了ステータスは、成功すれば 0、コマンドが失敗するなら 1 です。
マルチパスアーキテクチャ
これは、デバイスの知識のないか、または組み込みに一致するサイズ以外の仮定の複数のパスのアーキテクチャです。したがって、ユーザは、同じ基本的なディスクデバイスへの複数のパスを実際に表す、プロバイダを選択で何らかの注意を払わなければなりません。この理由は、識別を
示す ことができる、複数の基本的な転送タイプにわたっていくつかの基準があることですが、あらゆる点で、そのような識別は、めったに
最も確実 であると見なすことができません。
例えば、ファイバチャネルディスクオブジェクトの World Word Port Name を使用するなら、利用者は、異なったパス (または、バラバラにされた織物でも) で同じ WWPN を持っている 2 つのディスクが同じディスクであると見なされるかもしれないと信じるかもしれません。ほとんど常にこれは、安全な仮定です、利用者が、WWPN がイーサネット MAC アドレスのような、ソフトプログラマブル実体であると気が付くませ、設定ミスされたディレクタクラススイッチは、同じデバイスに複数のパスを見つけたと間違って信じているように利用者を導くかもしれません。これは極端で理論的な場合ですが、同じデバイスを参照する複数のパス名のどれが決定するためのポリシが、正しい設定の選択を行うそれら自体の記憶域サブシステムのツールと知識を使用するシステムオペレータに残されるかもしれないことを示すことは十分可能です。
サポートされたアクティブ/パッシブ、アクティブ/読み込みとアクティブ/アクティブ操作モードがあります。アクティブ/パッシブモードにおいて、1 つのパスだけには、いずれかの時点で進歩した I/O があります。この I/O は、I/O が、一般的な I/O エラーまたは "存在しないデバイス"エラーで返るまで続きます。これが起こるとき、そのパスは、FAIL とマークされ、リスト中の次のパスは、アクティブとして選択され、失敗した I/O は、再発行されました。アクティブ/アクティブモードで、FAIL とマークされないすべてのパスは、同時に I/O を操作します。要求は、負荷を均一にするためにパスの間で配信されます。能力があるデバイスについては、すべてのパスの帯域幅を利用することができます。アクティブ/読み込みモードでは、FAIL とマークされないすべてのパスは、同時に読み込みを扱うかもしれませんが、アクティブ/アクティブと異なり、 1 つのパスだけが、いずれかの時点で書き込み要求を扱います。 (依存する書き込みを送る前に、必要な書き込みの完了を待たない) 上記の層がデータの一貫性のためにそれを必要とするなら、次のオリジナルの書き込み要求の順序をクローザに許可します。
新しいデバイスをシステムに追加するとき、 MULTIPATH GEOM クラスは、これらの新しいデバイスを経験する機会が与えられます。新しいデバイスに MULTIPATH ディスク上のメタデータのラベルがあるなら、デバイスは、新しい MULTIPATH GEOM を作成するか、または既存の MULTIPATH GEOM のためのパスのリストを追加されるかのいずれかのために使用されます。
それは、ファイバチャネルディスクデバイスをベースとする isp(4) と mpt(4) で合理的に動作するメカニズムです。これらのデバイスに関しては、デバイスが見えなくなるとき (例えば、ケーブルの引き抜き、またはスイッチの電源障害のため)、デバイスは、積極的に死んだとマークされ、それへの I/O は失敗します。これによって、単に記述された MULTIPATH 失敗イベントが生じます。
ファイバチャネルイベントが、新しいデバイスに到達したことを (例えば、Fabric Domain Controller からの RSCN イベントの到着) isp(4) または mpt(4) ホストバスアダプタのいずれかに通知するとき、再スキャンが起こり、任意の (現在) 新しいデバイスのアタッチメントと設定が起こり、上で説明された好みのイベントを引き起こすかもしれません。
これは、このマルチパスのアーキテクチャが 1 回限りのパスのフェイルオーバ (障害迂回) ではありませんが、失敗したパスが (自動的に、またはその他で) 修理される限りは、安定した状態であると見なすことができることを意味します。
自動再スキャンは、、必要条件ではありません。ファイバチャネルもそうではありません。同じフェイルオーバ (障害迂回) メカニズムは、伝統的な "パラレル" SCSI に対して同様に良く動作しますが、修理されたデバイスリンクの再アタッチメントを引き起こすために camcontrol(8) で手動の介入を必要とします。
使用例
次の例は、利用できる複数のパスデバイスを見つけて、それらのために
MULTIPATH GEOM クラスを作成するためにどのように
camcontrol(8) を使用するかを示しています。
mysys# camcontrol devlist
<ECNCTX @WESTVILLE > at scbus0 target 0 lun 0 (da0,pass0)
<ECNCTX @WESTVILLE > at scbus0 target 0 lun 1 (da1,pass1)
<ECNCTX @WESTVILLE > at scbus1 target 0 lun 0 (da2,pass2)
<ECNCTX @WESTVILLE > at scbus1 target 0 lun 1 (da3,pass3)
mysys# camcontrol inquiry da0 -S
ECNTX0LUN000000SER10ac0d01
mysys# camcontrol inquiry da2 -S
ECNTX0LUN000000SER10ac0d01
利用者が 2 つのディスクパスを比較するためにシリアル番号を使用したからには、これらが同じデバイスへの複数のパスであると結論を出すためには完全に無理ではありません。しかしながら、それらの記憶域に詳しいユーザだけがこの判断をするための資格があります。
そして、利用者は、指定された FRED という MULTIPATH GEOM クラスをラベル付けして、作成するために gmultipath コマンドを使用することができます。
gmultipath label -v FRED /dev/da0 /dev/da2
disklabel -Brw /dev/multipath/FRED auto
newfs /dev/multipath/FREDa
mount /dev/multipath/FREDa /mnt....
結果のコンソール出力は、次のようになります:
GEOM_MULTIPATH: da0 added to FRED
GEOM_MULTIPATH: da0 is now active path in FRED
GEOM_MULTIPATH: da2 added to FRED
作者
Matthew Jacob <mjacob@FreeBSD.org>
Alexander Motin <mav@FreeBSD.org>