解説
ctladm ユーティリティは、CAM ターゲット層 (CTL) にアクセスして、制御する方法を提供するように設計されています。それは、CTL 層に SCSI コマンドを送信する方法を提供し、さらに、 SCSI コマンドを利用するいくつかのメタコマンドも提供しています。 (例えば、
lunlist コマンドは、 SCSI REPORT LUNS と INQUIRY コマンドを使用して実装されています。)
ctladm ユーティリティには、関数の多くがデバイスの識別子を要求する、多くの主要な関数があります。デバイス識別子は、次の形式を取ります:
-
target:lun
-
動作する (ほとんど常に 0 の) ターゲットと LUN 番号を指定します。
ctladm ユーティリティの主要な関数の多くは、次のオプションの引数を取ります:
-
-C
retries
-
万一失敗の場合にコマンドを再び試みる回数を指定します。
-
-D
device
-
オープンするデバイスを指定します。これによって、送信するコマンドのためにオープンされるデフォルトのデバイス
/dev/cam/ctl 以外のデバイスをオープンすることができます。
-
-I
id
-
使用する開始プログラム (initiator) の番号を指定します。デフォルトで、
ctladm は、開始プログラム (initiator) の番号として 7 を使用します。
主要なコマンドは、次の通りです:
-
tur
-
デバイスに SCSI TEST UNIT READY コマンドを送信し、それが準備できているかどうかを報告します。
-
inquiry
-
デバイスに SCSI INQUIRY コマンドを送信し、返された問い合わせデータのいくつかを表示します。
-
reqsense
-
デバイスに SCSI REQUEST SENSE コマンドを送信し、返されたセンス情報を表示します。
-
reportluns
-
デバイスに SCSI REPORT LUNS コマンドを送信し、サポートされている LUN を表示します。
-
read
-
デバイスに SCSI READ コマンドを送信し、ファイルまたは標準出力 (stdout) に要求されたデータを書き込みます。
-
-l
lba
-
READ のために開始する論理ブロックアドレス (Logical Block Address) を指定します。 10 進数、(0 で始まる) 8 進数、(0x で始まる) 16 進数、または
strtoull(3) によってサポートされた他の基数 (base) で、これを指定することができます。
-
-d
datalen
-
READ 要求の 512 バイトのブロック単位の長さを指定します。
-
-f
file
-
READ コマンドによって読み込まれるデータのための宛先 (destination) を指定します。ファイル名または標準出力 (stdout) のための‘-’のいずれかを指定します。
-
-c
cdbsize
-
READ 要求のために使用される最小の SCSI CDB (コマンドデータブロック) サイズを指定します。許可された値は、6、10、12 と 16 です。要求されたデータの LBA と量に依存して、より大きな CDB サイズが、要求を満足するために使用されます。 (例えば、0xffffffff を越える LBA については、READ(16) が要求を満足するために使用されなければなりません。)
-
-b
blocksize
-
基本的な SCSI デバイスのブロックサイズを指定するので、転送の長さを正確に計算することができます。 SCSI READ CAPACITY コマンドによってブロックサイズを取得することができます。
-
-N
-
読み込みを行うとき、カーネルから
ctladm にデータをコピーしません、データをコピーせずに、コマンドを単に実行します。これは、性能のテストのために使用されます。
-
write
-
ファイルまたは標準入力 (stdin) からデータを読み込み、 SCSI WRITE コマンドを使用して、デバイスにデータを書き込みます。
-
-l
lba
-
WRITE のために開始する論理ブロックアドレス (Logical Block Address) を指定します。 10 進数、(0 で始まる) 8 進数、(0x で始まる) 16 進数、または
strtoull(3) によってサポートされた他の基数 (base) で、これを指定することができます。
-
-d
atalen
-
WRITE 要求の 512 バイトのブロック単位の長さを指定します。
-
-f
file
-
WRITE コマンドによって書き込まれるデータのための送り元 (source) を指定します。ファイル名または標準入力 (stdin) のための‘-’のいずれかを指定します。
-
-c
cdbsize
-
READ 要求のために使用される最小の SCSI CDB (コマンドデータブロック) サイズを指定します。許可された値は、6、10、12 と 16 です。要求されたデータの LBA と量に依存して、より大きな CDB サイズが、要求を満足するために使用されます。 (例えば、0xffffffff を越える LBA については、READ(16) が要求を満足するために使用されなければなりません。)
-
-b
blocksize
-
基本的な SCSI デバイスのブロックサイズを指定するので、転送の長さを正確に計算することができます。 SCSI READ CAPACITY コマンドによってブロックサイズを取得することができます。
-
-N
-
書き込みを行うとき、
ctladm からデータをカーネルにコピーしません、データをコピーせずに、コマンドを単に実行します。これは、性能のテストのために使用されます。
-
bbrread
-
配列中の他のディスクから再構成される RAID セットのディスクで場合によっては強制的に不良ブロックにするために論理デバイスに SCSI READ コマンドを発行します。このコマンドは、通常の状態にある配列でのみ使用されるべきです。危機的な配列で使用され、再マップされる不良ブロックがディスクが配列でまだアクティブなディスクの 1 つの上であるなら、配列をオフラインにするかもしれません。
特に、このコマンドのためのデータは、廃棄され、ユーザに返されません。
どの LUN から読み込まれるかを決定するために、ユーザは、どの LUN のディスクが不良ブロックに属しているか最初に決定するべきです。次に、 bbrread コマンドにどの LBA を渡すかを決定するために配列のための論理ブロックアドレスに不良ディスクブロックを逆にマップするべきです。
このコマンドは、主としてテストを対照としています。実際には、不良ブロックの再マップは、一般的にカーネル内の Disk Aerobics と Disk Scrubbing コードによってトリガされます。
-
-l
lba
-
開始する論理ブロックアドレス (Logical Block Address) を指定します。
-
-d
datalen
-
LUN から読み込むためのバイト単位のデータの量を指定します。これは、LUN のブロックサイズの倍数でなければなりません。
-
readcap
-
デバイスに SCSI READ CAPACITY コマンドを送信し、デバイスサイズとデバイスブロックサイズを表示します。デフォルトで、READ CAPACITY(10) が使用されます。しかしながら、デバイスが 0xffffffff の最大の LBA を返すなら、
ctladm は、自動的に SERVICE ACTION IN(16) オペコードのサービスアクションとして実装される READ CAPACITY(16) を発行します。ユーザは、
-c 引数で最小の CDB サイズを指定することができます。
-c オプションのために有効な値は、10 と 16 です。 10 バイトの CDB が指定され、返された最大の LBA が 0xffffffff であるなら、要求は、16 バイトの CDB で自動的に再発行されます。
-
modesense
-
デバイスに SCSI MODE SENSE コマンドを送信し、要求された (複数の) モードページまたはページリストを表示します。
-
-m
page
-
表示するべきモードページを指定します。このオプションと
-l オプションは、相互に排他的です。しかしながら、2 つのうちの 1 つは、指定されなければなりません。モードページ番号は、10 進数または 16 進数で指定されます。
-
-l
-
デバイスによってサポートされたモードページのリストが返されることを要求します。このオプションと
-m オプションは、相互に排他的です。しかしながら、2 つのうちの 1 つは、指定されなければなりません。
-
-P
pc
-
モードページの制御値を指定します。指定できる値は、次の通りです:
-
0
-
現在の値。
-
1
-
変更可能な値のビットマスク。
-
2
-
デフォルト値。
-
3
-
保存された値。
-
-d
-
モードセンス要求を送信するとき、ブロック記述子を無効にします。
-
-S
subpage
-
モードセンス要求で使用されるサブページ (subpage) を指定します。
-
-c
cdbsize
-
モードセンス要求のために使用される CDB サイズを指定します。サポートされる値は、6 と 10 です。
-
start
-
設定されたスタートビット (start bit) で指定された LUN に SCSI START STOP UNIT コマンドを送信します。
-
-i
-
CDB の即時 (immediate) ビットを設定します。 CTL が即時ビットをサポートしないので、これは、CTL が適切なエラーを返すことを確かめるために主に役立つことに注意してください。
-
-o
-
CDB の Copan 所有者のオンライン/オフライン (on/offline) ビットを設定します。このフラグが使用されるとき、LUN は、再びオンラインにマークされます (
shutdown と
startup コマンドの説明を参照)。このフラグがスタート (start) コマンドで使用されるとき、LUN は、スピンアウト (spin out) されません。 LUN のディスクをスピンアウトするために
-o フラグなしのスタート (start) コマンドを使用する必要があります。
-
stop
-
クリアされたスタートビットで指定された LUN に SCSI START STOP UNIT コマンドを送信します。 LUN を停止するために順序付けられたタグを使用するので、それが停止される前にすべての保留されている I/O の実行を保証することができます。 (CTL は、とにかくこれを保証しますが、
ctladm は、完全性のために順序付けられたタグを送信します。)
-
-i
-
CDB の即時ビットを設定します。 CTL が即時ビットをサポートしないので、これは、CTL が適切なエラーを返すことを確かめるために主に役立つことに注意してください。
-
-o
-
CDB の Copan 所有者のオンライン/オフライン (on/offline) ビットを設定します。このフラグが使用されるとき、LUN は、スピンダウン (spin down) され、 ("Logical unit not ready, manual intervention required") (論理ユニットの準備ができていません、手動の介入が必要です) でオフラインとなります。
shutdown と
startup コマンドの説明を参照してください。
-
synccache
-
デバイスに SCSI SYNCHRONIZE CACHE コマンドを送信します。デフォルトで、SYNCHRONIZE CACHE(10) 使用されます。しかしながら、指定された開始する LBA が 0xffffffff より大きいか、または長さが 0xffff より大きいなら、SYNCHRONIZE CACHE(16) が使用されます。ユーザが
-c 引数で 16 バイトの CDB を指定するなら、16 バイトのコマンドも使用されます。
-
-l
lba
-
同期するためのキャッシュ領域の開始する LBA を指定します。このオプションは、CTL に対して no-op (無操作) です。利用者が SYNCHRONIZE CACHE コマンドを送信するなら、すべての LUN のためのキャッシュを sync (同期) します。
-
-b
blockcount
-
同期するためのキャッシュ領域の長さを指定します。このオプションは、CTL に対して no-op (無操作) です。利用者が SYNCHRONIZE CACHE コマンドを送信するなら、すべての LUN のためのキャッシュを sync (同期) します。
-
-r
-
開始する LBA のための相対アドレス指定します。 CTL は、リンクされたコマンドのためだけで動作するので、相対アドレス指定をサポートしません、そして CTL は、リンクされたコマンドをサポートしません。
-
-i
-
sync することを終了するためにキャッシュのために待つのでではなく、 SYHCHRONIZE CACHE コマンドを発行した直後に状態を返すようにターゲットに伝えます。 CTL は、このビットをサポートしません。
-
-c
cdbsize
-
最小の CDB サイズを指定します。有効な値は、10 と 16 バイトです。
-
shutdown
-
クリアされたスタートビットで SCSI START STOP UNIT コマンドを発行し、オンライン/オフライン (on/offline) ビットをすべてのダイレクトアクセス LUN に設定します。これは、すべてのダイレクトアクセス LUN をスピンダウン (spin down) し、それらをオフラインとマークします ("Logical unit not ready, manual intervention required") (論理ユニットの準備ができていません、手動の介入が必要です)。いったんオフラインとマークされると、設定されたスタートビットと設定されたオンライン/オフライン (on/offline) で START STOP UNIT コマンドを送信することによって、状態をクリアすることができます、
ctladm コマンドの
startup と
start は、これを達成します。オンライン/オフライン (on/offline) ビットは、 SCSI START STOP UNIT コマンドへの非標準の Copan 拡張ですので、開始プログラム (initiator) から単に通常の開始コマンドを送信することは、状態をクリアしないことに注意してください。 (これは、意図的です。)
-
startup
-
すべてのダイレクトアクセス LUN に設定されたスタートビットと設定されたオンライン/オフライン (on/offline) で SCSI START STOP UNIT コマンドを発行します。これは、再びすべてのダイレクトアクセス LUN を "online"とマークします。それによって、任意の LUN は、開始しません。設定されたオンライン/オフライン (on/offline) なしの個別の開始コマンドは、そのために必要です。
-
hardstop
-
すべてのダイレクトアクセス LUN をすべて停止し、オフラインビットを設定するためにカーネルの機能を使用します。上記の
shutdown コマンドと異なり、このコマンドによって、I/O がアクティブな状態で LUN をシャットダウンすることができます。また、LUN を停止することができるように、予約を中止するために任意の予約された LUN に LUN reset を発行します。代わりに、
shutdown コマンド。訳注: 文章の編集ミスか?
-
hardstart
-
このコマンドは、上に記述された
startup コマンドと機能的に同一です。主な違いは、LUN が列挙され、
ctladm によっての代わりにカーネル内のフロントエンドターゲットドライバ (Front End Target Driver) によって送信されたコマンドということです。
-
lunlist
-
CTL で登録されたすべての LUN をリストします。このコマンドが ioctl ポートを使用するので、FETD (Front End Target Drivers) が有効になるとき、単に動作します。このコマンドは、1 つの LUN で REPORT LUNS を行い、そしてその後、システムの各 LUN で INQUIRY を行うことと同等です。
-
delay
-
与えられた位置でコマンドを遅延します。現在、コマンドが遅延される次の 2 つの場所があります: データが転送される (“datamove”) 前とホスト (“done”) に状態を送信する直前です。 2 つのうちの 1 つは、
-l オプションに引数として供給されなければなりません。また、
-t オプションも指定されなければなりません。
-
-l
delayloc
-
指定された位置で (複数の) コマンドを遅延します。これは、データ移動ステージ (datamove) またはコマンド完了 (done) の前のいずれかを指定できます。
-
-t
delaytime
-
指定された秒数 (複数の) コマンドを遅延します。これは、指定されなければなりません。 0 に設定されるなら、この特定の位置 (datamove または done) のために以前に設定された遅延をクリアします。
-
-T
delaytype
-
遅延のタイプを指定します。デフォルトで、
delay オプションは、与えられた LUN に送信される次のコマンドを遅らせます。
-T
cont オプションで、すべてのコマンドは、指定された期間遅延されます。
-T
oneshot で、与えられた LUN に送信された次のコマンドは、遅延され、すべてのその後のコマンドは、普通に完了されます。これは、デフォルトです。
-
realsync
-
CTL の SYNCHRONIZE CACHE の振る舞いを問い合わせて、制御します。‘query’引数は、SYNCHRONIZE CACHE コマンドがバックエンドに送信されているかどうかを表示します。デフォルトは、バックエンドに SYNCHRONIZE CACHE コマンドを送信することです。‘on’引数によって、すべての LUN に送信されたすべての SYNCHRONIZE CACHE コマンドは、すべてのバックエンドに送信されます。‘off’引数によって、すべての LUN に送信されたすべての SYNCHRONIZE CACHE コマンドは、成功した状態で開始プログラム (initiator) に直ちに返されます。
-
setsync
-
与えられた lun に対して、送信されるあらゆる N 番目の SYNCHRONIZE CACHE コマンドのみ実際にサービスします。 SYNCHRONIZE キャッシュコマンドを送信するための最適な期間のデバッグのために、これを使用することができます。 0 の間隔は、キャッシュが SYNCHRONIZE CACHE コマンドが受信されるたびに、この LUN のためにフラッシュされることを意味します。
修正したいターゲットと LUN を指定しなければなりません。
-
getsync
-
上記の
setsync コマンドによって設定されるように、実際に SYNCHRONIZE CACHE コマンドをサービスする間隔を取得します。報告された数は、あらゆる N 番目の SYNCHRONIZE CACHE コマンドでキャッシュを実際にフラッシュすることを意味します。 0 の値は、毎回キャッシュをフラッシュすることを意味します。
問い合わせたいターゲットと LUN を指定しなければなりません。
-
inject
-
与えられたパターンと一致するコマンドが見つかるとき、指定された LUN のための指定されたタイプのエラーを注入します。返されたセンスデータは、LUN のための制御モードページ (ページ 0xa) の D_SENSE ビットの状態に依存する、固定または記述子形式のいずれかです。
エラーは、他の理由のために、まだ失敗していないコマンドのためだけに注入されます。デフォルトで、指定されたパターンと一致する最初のコマンドだけが、指定されたエラーで返されます。
-c フラグが指定されるなら、パターンと一致するすべてのコマンドは、エラー注入 (injection) コマンドが -d フラグで削除されるまで、指定されたエラーで返されます。
-
-i
action
-
返されるエラーを指定します:
-
aborted
-
センスキー ABORTED COMMAND (0x0b) と ASC/ASCQ 0x45,0x00 ("Select or reselect failure") (選択または再選択の失敗) で指定された LUN で、次の一致するコマンドを返します。
-
mediumerr
-
センスキー MEDIUM ERROR (0x03) と読み込みのための ASC/ASCQ 0x11,0x00 ("Unrecovered read error") (回復不可能な読み込みエラー) または、書き込みエラーのための ASC/ASCQ 0x0c,0x02 ("Write error - auto reallocation failed") (書き込みエラー - 自動再割り付けが失敗しました) で指定された LUN で、次の一致するコマンドを返します。
-
ua
-
センスキー UNIT ATTENTION (0x06) と ASC/ASCQ 0x29,0x00 ("POWER ON, RESET, OR BUS DEVICE RESET OCCURRED") (電源オン、リセットまたはバスデバイスリセットが生じました) で指定された LUN で、次の一致するコマンドを返します。
-
custom
-
供給されたセンスデータで指定された LUN で次の一致するコマンドを返します。
-s 引数が指定されなければなりません。
-
-p
pattern
-
与えられたエラーで返されなければならないコマンドを指定します。
-
read
-
エラーは、READ(6)、READ(10)、READ(12)、READ(16) などに適用されるべきです。
-
write
-
エラーは、WRITE(6)、WRITE(10)、WRITE(12)、WRITE(16)、WRITE と VERIFY(10) などに適用されるべきです。
-
rw
-
エラーは、読み込みと書き込みタイプのコマンドの両方に適用されるべきです。
-
readcap
-
エラーは、READ CAPACITY(10) と READ CAPACITY(16) コマンドに適用されるべきです。
-
tur
-
エラーは、TEST UNIT READY コマンドに適用されるべきです。
-
any
-
エラーは、あらゆるコマンドに適用されるべきです。
-
-r
lba,len
-
エラーをトリガすべき LBA の範囲の開始する lba と長さを指定します。このオプションは、読み込みおよび/または書き込みパターンが指定されたときのみ適用されます。他のコマンドタイプと共に使用されるなら、エラーは、決してトリガされません。
-
-s
len fmt [
args]
-
カスタムアクションのために返されるセンスデータを指定します。形式が‘-’であるなら、センスデータの len バイトは、標準入力から読み込まれ、センスバッファに書き込まれます。 len が 252 バイト (最大の許可される SCSI センスデータの長さ) より長いなら、その長さに切り詰められます。センスデータの形式は、
cam_cdparse(3) に説明されています。
-
-c
-
エラー注入は、一度起こる代わりに、持続されるべきです。持続エラーは、
-d 引数で削除されなければなりません。
-
-d
delete_id
-
指定されたエラー注入通し番号を削除します。シリアル番号は、エラーが注入されるとき、返されます。
-
port
-
いくつかの CTL フロントエンドポート操作のうちの 1 つを実行します。フロントエンドポートのリストを取得する (
-l)、1 つ以上のフロントエンドのオンまたはオフを切り替える (
-o
on|off)、ワールドワイドノード名 (World Wide Node Name) (
-w
wwnn) または与えられたポートのためのワールドワイドポート名 (World Wide Port Name) (
-W
wwpn) を設定するかのいずれかです。
-l,
-o または
-w のうちの 1 つ、または
-W が指定されなければなりません。 WWNN と WWPN は、両方とも同時に指定されますが、有効にする/無効にするか、またはポートをリストすることと組み合わせることはできません。
-
-l
-
すべての CTL フロントエンドポートまたは特定のポートタイプまたは数値をリストします。
-
-o
on|off
-
指定された CTL フロントエンドポートをオフまたはオンに切り替えます。ポート番号またはポートタイプが指定されないなら、すべてのポートは、オンまたはオフに切り替えられます。
-
-p
targ_port
-
フロントエンドポート番号を指定します。フロントエンドポートリストでポート番号を見つけることができます。
-
-q
-
ポートリストの出力でヘッダを省略します。
-
-t
fe_type
-
フロントエンドタイプを指定します。現在定義されているポートタイプは、“fc” (Fibre Channel, ファイバチャンネル)、“scsi” (Parallel SCSI, パラレル SCSI)、“ioctl” (CTL ioctl interface, CTL ioctl インタフェース) と“internal” (CTL CAM SIM) です。
-
-w
wwnn
-
与えられたポートのためのワールドワイドノード名を設定します。これは、単一のポートで実装するためだけ可能であるので、
-n 引数が指定されなければなりません。一般的なルールとして、WWNN は、システムのすべてのポートに渡って同じであるべきです。
-
-W
wwpn
-
与えられたポートのためのワールドワイドポート名を設定します。これが一つのポート上でインプリメントするのに単に可能であるので、-n 議論が指定されるに違いありません。これは、単一のポートで実装するためだけ可能であるので、
-n 引数が指定されなければなりません。一般的なルールとして、WWPN は、システムのあらゆるポートに対して異なっていなければなりません。
-
-x
-
XML 形式でのポートリストを出力します。
-
dumpooa
-
CTL で登録された各 LUN のための OOA (Order Of Arrival, 到着の順序) キューをダンプします。
-
dumpstructs
-
コンソールに CTL 構造をダンプします。
-
create
-
新しい LUN を作成します。バックエンドは、指定されなければなりません、そして要求されたバックエンドに依存して、他のオプションのうちのいくつかは、必要とされます。 LUN が成功して作成されるなら、LUN の設定が表示されます。 LUN の作成が失敗するなら、メッセージは、失敗についての説明が表示されます。
-
-b
backend
-
-b フラグは、必要です。これは、LUN を作成するとき、使用する指定されたバックエンドを指定します。例は、“ramdisk”と“block”です。
-
-B
blocksize
-
バイト単位でバックエンドのブロックサイズを指定します。
-
-d
device_id
-
SCSI INQUIRY VPD ページ 0x83 データで使用する、LUN に関連する文字列を指定します。
-
-l
lun_id
-
特別の LUN 番号が割り当てられることを要求します。要求された LUN 番号が利用可能でないなら、要求は、失敗します。
-
-o
name=value
-
バックエンド特有の名/値ペアを指定します。複数の
-o 引数が指定されます。使用される引数については、バックエンドの文書を参照してください。
-
-s
size_bytes
-
バイト単位で LUN のサイズを指定します。いくつかのバックエンドは、サイズ (例えば、ramdisk バックエンド) を設定することができ、他のものについては、サイズは、暗黙です (例えば、ブロックバックエンド)。
-
-S
serial_num
-
SCSI INQUIRY VPD ページ 0x80 データで使用するシリアル番号を指定します
-
-t
device_type
-
LUN を作成するときに使用する数値の SCSI デバイスタイプを指定します。例えば、ダイレクトアクセス (Direct Access) タイプは、0 です。このフラグが使用されないなら、作成された LUN のタイプは、バックエンド特有です。すべての LUN タイプがサポートされるとは限りません。現在、CTL は、ダイレクトアクセス (タイプ 0) とプロセッサ (タイプ 3) LUN のみをサポートします。要求されたバックエンドは、CTL がサポートする LUN タイプのすべてサポートするかどうか分かりません。
-
remove
-
LUN を削除します。バックエンドは、指定されなければなりません、そして LUN 番号も指定されなければなりません。また、バックエンド特有のオプションは、
-o フラグで指定されます。
-
-b
backend
-
削除される LUN を所有するバックエンドを指定します。例は、“ramdisk”と“block”です。
-
-l
lun_id
-
削除する LUN 番号を指定します。
-
-o
name=value
-
バックエンド特有の名/値ペアを指定します。複数の
-o 引数が指定されます。使用される引数については、バックエンドの文書を参照してください。
-
modify
-
LUN サイズを修正します。バックエンド (backend)、LUN 番号とサイズが指定されなければなりません。
-
-b
backend
-
削除される LUN を所有するバックエンドを指定します。例は、“ramdisk”と“block”です。
-
-l
lun_id
-
削除する LUN 番号を指定します。
-
-s
size_bytes
-
バイト単位で LUN のサイズを指定します。“block”バックエンドに関して、“auto”キーワードが代わりに渡されます。これは、CTL に裏打ちされたファイルまたはデバイスのサイズを使用するようにします。
-
devlist
-
すべての設定された LUN のリストを取得します。また、これは、LUN のサイズとブロックサイズ、シリアル番号とデバイス ID を含みます。
-
-b
backend
-
バックエンドを指定します。これは、LUN リストを指定されたバックエンドに制限します。例は、“ramdisk”と“block”です。
-
-v
-
冗長にします。また、これは、標準の LUN ごとの情報に加えてあらゆるバックエンド特有の LUN 属性を表示します。
-
-x
-
生 (raw) の XML をダンプします。カーネルからの LUN リスト情報は、XML 形式で現れ、このオプションによって、生の XML データの表示を可能にします。このオプションと
-v と
-b オプションは、相互に排他的です。
-x を指定するなら、すべての LUN データベースは、XML 形式で表示されます。
-
islist
-
現在、実行している iSCSI 接続のリストを取得します。これは、開始プログラムとターゲット名とユニークな接続 ID を含んでいます。
-
-v
-
冗長モード。
-
-x
-
生の XML をダンプします。カーネルからの接続リスト情報は、XML 形式で提供され、このオプションは、生の XML データの表示を可能にします。
-
islogout
-
基準と一致する iSCSI 接続をログアウトする開始プログラムに問い合わせます。
-
-a
-
すべての接続をログアウトします。
-
-c
-
接続 ID を指定します。
-
-i
-
開始プログラム名を指定します。
-
-p
-
開始プログラムのポータル (portal) (ホスト名または IP アドレス) を指定します。
-
isterminate
-
基準と一致する iSCSI 接続を強制的に終了します。
-
-a
-
すべての接続を終了します。
-
-c
-
接続 ID を指定します。
-
-i
-
開始プログラム名を指定します。
-
-p
-
開始プログラムのポータル (portal) (ホスト名または IP アドレス) を指定します。
-
help
-
ctladm の使用法の情報を表示します。
使用例
ctladm tur 0:1
SCSI TEST UNIT READY コマンドを LUN 1 に送信します。
ctladm modesense 0:1 -l
LUN 1 によってサポートされたモードページのリストを表示します。
ctladm modesense 0:0 -m 10 -P 3 -d -c 10
LUN 0 で制御モードページ (ページ 10 ) の保存されたバージョンを表示します。ブロックの記述子をフェッチすることを無効にし、デフォルトの 6 バイトのコマンドの代わりに 10 バイトの MODE SENSE コマンドを使用します。
ctladm read 0:2 -l 0 -d 1 -b 512 -f - > foo
LUN 2 から最初の 512 バイトのブロックを読み込み、ファイル foo にそれをダンプします。
ctladm write 0:3 -l 0xff432140 -d 20 -b 512 -f /tmp/bar
ファイル /tmp/bar から 10240 バイトを読み込み、ターゲット 0、LUN 3 に書き込みます。 LBA 0xff432140 から開始すること。
ctladm create -b ramdisk -s 10485760000000000
裏打ちされた格納 (外部記憶域装置) として“偽の” ramdisk で LUN を作成します。 LUN は、およそ 10 テラバイトのサイズを持つことを要求します。
ctladm create -b block -o file=src/usr.sbin/ctladm/ctladm.8
ブロックのバックエンドを使用して、LUN を作成し、裏打ちされた格納 (外部記憶域装置) としてファイル src/usr.sbin/ctladm/ctladm.8 を指定します。 LUN のサイズは、ファイルのサイズに由来します。
ctladm create -b block -o file=src/usr.sbin/ctladm/ctladm.8 -S MYSERIAL321 -d MYDEVID123
ブロックのバックエンドを使用して LUN を作成し、裏打ちされた格納 (外部記憶域装置) としてファイル src/usr.sbin/ctladm/ctladm.8 を指定し、 SCSI VPD ページ 0x80 と 0x83 シリアル番号 ( -S) とデバイス ID ( -d) を指定します。
ctladm remove -b block -l 12
システムからブロックのバックエンドによって取り扱われる LUN 12 を削除します。
ctladm devlist
LUN のバックエンドとシリアル番号とともにシステムの設定された LUN をリストします。これは、フロントエンドターゲットドライバ (Front End Target Drivers) が有効または無効にされるとき、動作します。
ctladm lunlist
すべての LUN の問い合わせデータとデバイスタイプとともにシステムのすべての LUN をリストします。これは、コマンドが ioctl ポートを通過するので、 FETD が有効になるときのみ動作します。
ctladm inject 0:6 -i mediumerr -p read -r 0,512 -c
LUN の最初の 512 ブロックをカバーする、すべての読み込みのための LUN 6 で中間のエラーを注入します。
ctladm inject 0:6 -i custom -p tur -s 18 "f0 0 02 s12 04 02"
次の TEST UNIT READY コマンドのみのための LUN 6 でカスタムエラーを注入します。これは、ある意味では生じるでしょう、NOT READY (0x02) と 0x04,0x02 ("Logical unit not ready, initializing command required") (論理ユニットが準備できていません、要求されるコマンドを初期化します) の ASC/ASCQ のキーの結果となります。