Comments
Description
Transcript
I/O - HP
第 14 章 I/O のアドレス指定 第 14 章 I/O のアドレス指定 2002 年 7 月 第 14 章 / 1ページ 第 14 章 I/O のアドレス指定 索引 I/O アーキテクチャ-SIO と WSIO ................................................................ アーキテクチャ- ................................................................................................ ....................................................................... ....................................... 3 デバイス特殊ファイル ................................................................ ................................................................................................ .......................................................................................... .......................................................... 4 メジャー番号とマイナー番号.................................................................................................................. 4 ファイル名........................................................................................................................................... 4 I/O 構造の管理 ................................................................ ................................................................................................ ............................................................................................... ............................................................... 6 特殊ファイルのインストール(insf) ............................................................................................................ 7 特殊ファイルの削除(rmsf) .................................................................................................................... 7 特殊ファイルの作成(mksf) .................................................................................................................... 8 ノードの作成(mknod) .......................................................................................................................... 8 I/O の設定(ioinit) ............................................................................................................................... 9 インスタンス番号の変更方法 ................................................................ ................................................................................................ ............................................................................. ............................................. 10 手順 1............................................................................................................................................. 11 手順 2............................................................................................................................................. 11 追加情報 ................................................................ ................................................................................................ ................................................................................................ ...................................................................... ...................................... 12 2002 年 7 月 第 14 章 / 2ページ 第 14 章 I/O のアドレス指定 HP-UX のアドレス指定スキームにより、デバイスには、SCSI-II 仕様に基づく固定の階層的ハード ハード ウェアパスが割り当てられます。デバイスへのアクセスは結合されているデバイス(スペシャル)ファイル デバイス(スペシャル)ファイル ウェアパス を通じて行われます。ブート時のカーネルの初期化中に、システムに接続されているハードウェアが 検出され、IO ツリーが作成されます。 ツリー I/O アーキテクチャ-SIO と WSIO アーキテクチャ- SIO とはサーバーIO を表し、HP-PB バス(HP Precision Bus)を搭載したシステムにのみ採用され バス ています。E/F/G/H/I クラス、K クラス、T5xx クラス、D クラスなどの従来型のサーバーが該当します。 WSIO はワークステーション IO を表しますが、必ずしもワークステーションのみに限定されません。 WSIO は、K クラスのように HSC(Highspeed System Connect)バス バスまたは D クラスのように EISA バス バスを使用しているすべてのシステムに採用されています。 バス N/L/A クラスサーバー、SuperDome、Keystone、Matterhorn、IA-64 システムおよび最近のワーク ステーションでは、すべて PCI (Peripheral Component Interconnect)バス バスが使用され、WSIO アー バス キテクチャが採用されています。 注: SIO および WSIO アーキテクチャは 1 つのシステム上に共存していることがあります(K クラスなど)。 SIO は NIO (Native IO)と呼ばれることもあります。 HSC は GSC (General System Connect)と呼ばれることもあります。 一般的なデバイスタイプとそのドライブを下の表に示します。 デバイスタイプ SCSI バス SE SCSI バス F/W、Ultra wide SE ディスクデバイス テープデバイス パラレルインタフェース(セントロニ クス) MO オートチェンジャー MO ディスク(面) ターゲット パススルーデバイス(ピッカー、ス キャナーなど) 2002 年 7 月 デバイスクラス SIO (HP-PB) WSIO (HSC/GSC/ PCI/EISA) ext_bus scsi1 c700 ext_bus scsi3 c720 disk disc3 sdisk tape tape2 stape ext_bus lpr2 CentIf/SCentIf autoch autox0 schgr surface ssrfc ssrfc target target tgt ctl spt sctl 第 14 章 / 3ページ 第 14 章 I/O のアドレス指定 デバイススペシャルファイル デバイスは 2 つのカテゴリ、ロー ロー(またはキャラクタ)とブロック ブロックに分類することができます。 ロー ブロック キャラクタ型スペシャルファイル 1 バイトずつ転送を行なう I/O デバイス用のスペシャルファイルです。バイトモード I/O デバイスには、 プリンター、9 トラック磁気テープドライブ、および「ロー」モードでアクセスするディスクドライブなどがあ ります。キャラクタ型スペシャルファイルには定義済みの構造はありません。 ブロック型スペシャルファイル 個別のバイトを連続してデータを転送するのではなく複数バイトのブロックでデータを転送する、ハー ドディスクドライブやテープカートリッジドライブなどの大容量記憶装置用のスペシャルファイルです。ブ ロック型スペシャルファイルはマウントすることができます。ブロック型スペシャルファイルを使用して、ハ ードウェア特性が不明のデバイスにアクセスすることができます。 注: ブロック型スペシャルファイルを使用してブロックモードでディスクにアクセスすることは、ファイルシステムバッ ファイルシステムバッ ファーキャッシュを使用することを意味します。キャラクタ型スペシャルファイルを使用してローモードでディスクに ファーキャッシュ アクセスすることは、バッファーキャッシュを使用しないことを意味します。したがって、ディスクのテストを行なう 場合は、常にキャラクタ型スペシャルファイルを使用します。 メジャー番号とマイナー番号 デバイススペシャルファイルは、メジャー番号とマイナー番号によって一意に識別されます。 brw-r----ブロック型デバイス 1 bin sys 31 0x09f000 Jul メジャー番号マイナー番号 7 15:55 c9t15d0 ファイル名 ドライバのメジャー番号は、次のように、lsdev(1M)コマンドを使用して調べることができます。 # lsdev -b 31 Character 188 Block 31 # lsdev | grep lvm 64 64 Driver sdisk Class disk lv lvm ファイル名 デバイススペシャルファイルの名前は、そのファイルを mksf(1M)、insf(1M)、または mknod(1M)コマ ンドを使用して作成したときに(通常は/dev ディレクトリ内)、デバイスに割り当てられます。デバイス 特殊ファイルの作成には、下記の標準命名規則を使用することをお勧めします。 /dev/prefix/devspec[options] | | | /dev/dsk/ c1t6d0 2002 年 7 月 (ディスク用) 第 14 章 / 4ページ 第 14 章 I/O のアドレス指定 /dev/rmt/ c0t3d0 BESTn (テープ用) dev デバイススペシャルファイルは/dev ディレクトリに格納します。 prefix デバイスクラス用のサブディレクトリを示します。 たとえば、rdsk はディスク用のローデバ イススペシャルファイル、dsk はディスク用のブロックデバイススペシャルファイル、rmt はロ ーテープデバイス用です。 devspec ハードウェアパス情報を表します。 通常は、c#t#d#の書式で表示されます。 options c# オペレーティングシステムによってインタフェースカード(ext_bus)に割り当てられてい るインスタンス番号。インスタンス番号と物理的なスロット番号との間には直接的 な関係はありません。このインスタンス番号は/etc/ioconfig に格納され、リブ ートしても変更されません。 t# リモートバスのターゲットアドレス(SCSI アドレスなど)。 d# ターゲットアドレスのデバイスのユニット番号(SCSI LUN など)。 ディスクセクション s#(下位互換用)、テープデバイスのテープ密度の選択、光磁気メデ ィアの面仕様などの限定子。 ハードウェアパス情報は、ioscan(1M)の出力から導くことができます。 ディスクデバイススペシャルファイル名の例を下記に示します。 ディスク /dev/dsk/c1t6d0 はブロックディスクアクセスを、c1t6d0 はインタフェースカードインスタンス 1(ioscan の出力-この ディスクの接続先のエントリーのインスタンス番号を参照)、ターゲットアドレス 6、ユニット 0 を示しま す。s#が存在しないのは、ディスク全体へのアクセスを表しています(詳細については disk(7)を参 照)。 dsk テープデバイススペシャルファイル名の例を下記に示します。 テープ /dev/rmt/c0t3d0BESTn はロー磁気テープを、c0 はこのデバイスがインタフェースカードインスタンス 0 に接続されているこ とを、t3 はターゲットデバイスアドレスが 3 に設定されていることを、d0 はテープ転送がユニットアドレ ス 0 に存在していることを表し、BESTn はデバイス固有の情報を示しています。BEST は高容量の 使用を、n は終了時に巻き戻しをしないことを意味します。詳細については、mt(7)を参照してくだ さい。 rmt 注: • 以前は、別の命名規則がデバイススペシャルファイルに使用されていました。ln(1)を使用 して従来の名前と新しい標準名との間のリンクを作成すると便利です。従来の命名規則を 使用しているすべてのプログラムの変換が完了するまでの一時的な方策として使用すること ができます。 2002 年 7 月 第 14 章 / 5ページ 第 14 章 I/O のアドレス指定 • ワークステーション(s700)とサーバー(s800)でのデバイスの命名法に差はありません。 • この命名規則は UNIX System Labatories (USL)の SVR4 標準に準拠しています。 SunOS 5.x などでも同じです。 ioscan の出力例 # ioscan -fn Class I H/W Path Driver S/W State H/W Type Description ============================================================================= root 0 root CLAIMED BUS_NEXUS ioa 0 0 sba CLAIMED BUS_NEXUS System Bus Adapter (803) ba 0 0/0 lba CLAIMED BUS_NEXUS Local PCI Bus Adapter (782) lan 0 0/0/0/0 btlan CLAIMED INTERFACE HP PCI 10/100BaseTX Core /dev/diag/lan0 /dev/ether0 /dev/lan0 ext_bus 0 0/0/1/0 c720 CLAIMED INTERFACE SCSI C895 Ultra2 Wide Single-Ended target 0 0/0/1/0.1 tgt CLAIMED DEVICE disk 14 0/0/1/0.1.0 sdisk CLAIMED DEVICE HP DVD-ROM 304 /dev/dsk/c0t1d0 /dev/rdsk/c0t1d0 target 1 0/0/1/0.3 tgt CLAIMED DEVICE tape 0 0/0/1/0.3.0 stape CLAIMED DEVICE HP C1537A /dev/rmt/0m /dev/rmt/0mn /dev/rmt/c0t3d0BEST /dev/rmt/c0t3d0BESTn /dev/rmt/c0t3d0DDS /dev/rmt/c0t3d0DDSn /dev/rmt/0mb /dev/rmt/0mnb /dev/rmt/c0t3d0BESTb /dev/rmt/c0t3d0BESTnb /dev/rmt/c0t3d0DDSb /dev/rmt/c0t3d0DDSnb target 2 0/0/1/0.7 tgt CLAIMED DEVICE ctl 0 0/0/1/0.7.0 sctl CLAIMED DEVICE Initiator /dev/rscsi/c0t7d0 ext_bus 1 0/0/2/0 c720 CLAIMED INTERFACE SCSI C87x Ultra Wide Single-Ended target 3 0/0/2/0.6 tgt CLAIMED DEVICE disk 0 0/0/2/0.6.0 sdisk CLAIMED DEVICE SEAGATE ST39102LC /dev/dsk/c1t6d0 /dev/rdsk/c1t6d0 target 4 0/0/2/0.7 tgt CLAIMED DEVICE ctl 1 0/0/2/0.7.0 sctl CLAIMED DEVICE Initiator /dev/rscsi/c1t7d0 ext_bus 2 0/0/2/1 c720 CLAIMED INTERFACE SCSI C87x Ultra Wide Single-Ended target 5 0/0/2/1.6 tgt CLAIMED DEVICE disk 1 0/0/2/1.6.0 sdisk CLAIMED DEVICE SEAGATE ST39102LC /dev/dsk/c2t6d0 /dev/rdsk/c2t6d0 ... ... デバイススペシャルファイルについては、intro(7)マンページも参照してください。 I/O 構造の管理 システムの IO 構造の管理には下記のコマンドを使用します。デバイスファイルの作成または削除に は、insf(1M)、mksf(1M)、rmsf(1M)、および mknod(1M)を使用します。インスタンス番号は ioinit(1M)を使用して修正することができます。 2002 年 7 月 第 14 章 / 6ページ 第 14 章 I/O のアドレス指定 スペシャルファイルのインストール(insf) スペシャルファイルのインストール スペシャルファイルをデバイスディレクトリ/dev にインストールするには、insf コマンドを使用します。 insf は、必要に応じてサブディレクトリを作成し、そのディレクトリに作成したスペシャルファイルを格 納することができます。 何もオプションを指定しなかった場合は、システム内のすべての新しいデバイスに対してそのスペシャ ルファイルが作成されます。新しいデバイスとは、まだスペシャルファイルが作成されていないデバイス のことです。-C、-d、および-H オプションを使用して新しいデバイスの一部を選択することができます。 オプションを使用して insf を実行すると、疑似ドライバと既存のデバイス用のスペシャルファイルが 再インストールされます。これは、1 つ以上のスペシャルファイルを削除してしまった場合に便利です。 再インストールされます -e によって、通常は、各ドライバ用のスペシャルファイルをインストールしたことを示すメッセージが 表示されますが、-q (quiet)オプションを使用するとインストールメッセージは表示されません。-v (verbose)オプションを指定すると、インストールメッセージと作成された各特殊ファイルの名前が表示 されます。 insf 注:単に insf -e を使用すると、命名規則に違反していない限り、すべてのデバイスファイルが再 注: 作成されます。 例: tty デバイスクラスに属しているすべての新しいデバイス用のスペシャルファイルをインストールする # insf -C tty ハードウェアパス 2/4.0.0 に追加された新しいデバイス用のスペシャルファイルをインストールする # insf -H 2/4.0.0 スペシャルファイルの削除(rmsf) スペシャルファイルの削除 何もオプションを指定しないと、rmsf は、コマンドラインで指定した特殊ファイルのみを削除します。 詳細についてはマンページを参照してください。 例: ハードウェアパス 0/0/2 以下の全てのファイルを削除する # rmsf -H 0/0/2 注: では、/etc/ioconfig ファイルに格納されている、インスタンス番号についての情報は削除さ れませんから、以前に削除したスペシャルファイルを再作成すると、元と同じインスタンス番号が使用 されます。 rmsf 2002 年 7 月 第 14 章 / 7ページ 第 14 章 I/O のアドレス指定 スペシャルファイルの作成(mksf) スペシャルファイルの作成 デバイスファイルを個別に作成するには mksf コマンドが便利です。通常は、insf コマンドを使用し ます。 コマンドは DDS ドライブ用のスペシャルファイルを BEST オプションを使用して作成します。 BEST オプションは、テープドライブがサポートする最も高い密度と圧縮率を達成するために使用しま す。テープ用のデフォルトのスペシャルファイル/dev/rmt/0m は、この BEST スペシャルファイルと同 一です。 2000DC や 4000DC などの DDS ドライブに圧縮を使用せずに書き込む場合は、別のスペシャルフ ァイルが必要です。これは、mksf の-b オプションを使用してのみ作成することができます。 insf 例: # mksf -H 40.4.0 -b DDS1 /dev/rmt/0m_DDS1 # mksf -H 40.4.0 -b DDS2 /dev/rmt/0m_DDS2 (2000DC 用) (4000DC 用) 注: ディスクドライバや MO オートチェンジャーなど、キャラクタ型デバイスファイルとブロック型デバイスファイ ルの両方をサポートするドライバ用に、デフォルトのブロック型デバイスファイルではなくキャラクタ(ロ ー)型デバイスファイルを作成するには-r オプションを使用します。 MO オートチェンジャーデバイスのアドレス指定は、ストレージライブラリの章で説明します。 ノードの作成(mknod) ノードの作成 コマンドは、SCSI パススルードライバ(spt)やボリュームグループ制御ファイルなど、標準でな いデバイスファイルを作成するためにのみ使用します。 mknod # mknod name b|c major minor name b|c major minor スペシャルファイルの名前 ブロックまたはキャラクタ メジャー番号 マイナー番号 例: # mknod /dev/vg01/group c 64 0x010000 2002 年 7 月 第 14 章 / 8ページ 第 14 章 I/O のアドレス指定 I/O の設定(ioinit) の設定 コマンドは、カーネルのデータ構造と、IO の構成が保存されている/etc/ioconfig ファイル との間の一貫性を維持します。 ioinit は、システムのブート時に、/etc/inittab の ioin エントリーに基づいて、init プロセスによっ て呼び出されます。 ioinit ioin::sysinit:/sbin/ioinitrc > /dev/console 2>&1 ioinitrc は、ioinit を-i および-r オプションを使用してを呼び出すスクリプトです。 オプションを使用すると、ioinit はカーネルの I/O データ構造(システムのブート時に NFS ディス クレスサポートからアクセスできるように、/stand/ioconfig を使用して初期化)と/etc/ioconfig から読み取った情報との一貫性をチェックします。一貫性が維持されている場合は、ioinit は insf を呼び出して、すべての新しいデバイスのスペシャルファイルをインストールします。カーネルが /etc/ioconfig と矛盾する場合は、ioinit は/etc/ioconfig を使用して/stand/ioconfig を更新し、-r オプションが指定されている場合は、システムをリブートします。 -i システムのリブート時に/etc/ioconfig が壊れていたり存在しない場合は、ioinitrc はシステム をシングルユーザーモードで起動します。ユーザーは、バックアップから/etc/ioconfig をリストアする か、-c オプションを指定して ioinit を呼び出し、カーネルから/etc/ioconfig を再作成します(イ ンスタンス番号が振りなおされ、異なるデバイスファイルが作成されることがあります)。 次のセクションで、インスタンス番号を再割り当てする方法を説明します。 2002 年 7 月 第 14 章 / 9ページ 第 14 章 I/O のアドレス指定 インスタンス番号の変更方法 一貫性のあるデバイスファイル名の使用が役立つのは、クラスタ環境だけではありません。デバイスの インスタンス番号を変更するための手順を下記に示します。インスタンス番号は、対応するデバイス ファイルの名前を決定します。 ioconfig を使用して、カーネルが使用するインスタンス番号と、I/O システムが周辺機器(ハードウェ アパス)との通信に使用する情報間のマッピングを行うことができます。コピーが 2 つ保持されます (/stand/ioconfig および/etc/ioconfig)。 ioconfig 情報は、ブート時に io_tree カーネルデータ構造に格納されます(ioinit(1M)参照)。 ioconfig の唯一の目的は、システムが実行されていないときの構成情報の維持です。システムから ハードウェアを取り外した場合でも、マッピングはすべて維持されます。これにより、このような変更を 行なっても、新しいデバイスファイル名が表示されることはありません。取り外したハードウェアを元ど おりシステムに取り付けると、ioconfig ファイルに存在する元のマッピングが使用されます。 ただし、通常は、ディスクおよび LAN デバイスのマッピングを変更する必要があります。LAN デバイ スの場合は、対応する LAN インスタンス番号を直接変更します。ディスクデバイスの場合は、 ext_bus インスタンス番号を修正する必要があります。このような「外部バス」(カードインスタンスのこ と)の番号は、ディスクデバイス名の「c」番号に使用されます。 ioscan -fn ext_bus target target disk 出力の一部を下記に示します。 3 0 1 4 2/0/1 2/0/1.3 2/0/1.5 2/0/1.5.0 c720 CLAIMED INTERFACE Built-in SCSI tgt CLAIMED DEVICE tgt CLAIMED DEVICE sdisk CLAIMED DEVICE SEAGATE ST15150N /dev/dsk/c3t5d0 /dev/rdsk/c3t5d0 ext_bus インスタンス番号(3)は「c3t5d0」の「c3」の部分に使用されます。名前の残りの部分に関係 のある target (t5)と LUN (d0)は、ソフトウェアでは変更することはできません。ハードウェアの構成で 直接変更する必要があります。 下記では、簡単/迅速な手順(手順 1)と、やや複雑な手順(手順 2)が説明されています。 通常は手順 1 で十分で、手順 2 を使用する必要はありません。手順 1 でうまくいかない場 合にのみ使用します。手順 2 は、通常はすべてのケースに適用できますが、リブートが 2 回 必要です。 注: ioinit(1M)のパッチがインストールされている必要があります。 UX 10.20 用 UX 11.00 用 2002 年 7 月 PHCO_16407 (以降) PHCO_12555 (以降) 第 14 章 / 10ページ 第 14 章 I/O のアドレス指定 パッチレベルが古い場合は必ずインストールしてください。 手順 1 デフォルトの手順です。 リブートは 1 回のみで特別なツールは不要です。 1) 現在の ioscan の出力から構成テンプレートを抽出します。 # ioscan -f | grep -e INTERFACE -e DEVICE | \ grep -v target | \ awk '{print $3, $1, $2}' > /infile 2) /infile を編集し、必要に応じて、ext_bus と LAN インスタンスを変更します。 どのクラスも、同一のインスタンスに対して複数の行は許されません。 3) システムを実行レベル 1 に落とします。 # init 1 4) ioconfig に変更した内容を適用します。 # /sbin/ioinit -f /infile -r 変更に成功した場合は、ただちにシステムがリブートします。 「Input is identical to kernel」などの警告は無視することができます。 失敗した場合は、次のようなエラーメッセージが出力されます。 “ioinit: Instance number X already exists for class XXX” これは、割り当てたインスタンス番号が既存のものと競合しているのが原因です。ioscan で表 示されないハードウェアにインスタンスがバインドされている場合は、手順 2 を実行する必要が あります。 5) 正しく変更されているかどうかを確認します。 システムがアップしたら、すべてのインスタンス番号が正しく変更されているかどうかを確認しま す。/etc/lvmtab に正しいエントリーが含まれるように、ボリュームグループの再インポートが 必要かもしれません。LAN 構成の変更が必要になる場合もあります。 手順 2 信頼できる手順です。 リブートは 2 回必要ですが特別なツールは不要です。 1) 現在の ioscan の出力から構成テンプレートを抽出します。 # ioscan -f | grep -e INTERFACE -e DEVICE | \ grep -v target | \ awk '{print $3, $1, $2}' > /infile 2002 年 7 月 第 14 章 / 11ページ 第 14 章 I/O のアドレス指定 2) /infile を編集し、必要に応じて、ext_bus と LAN インスタンスを変更します。 どのクラスも、同一のインスタンスに対して複数の行は許されません。 3) 現在の ioconfig ファイルを移動し、シャットダウン/リブートします。 # mv /stand/ioconfig /stand/ioconfig.sav # mv /etc/ioconfig /etc/ioconfig.sav # shutdown -ry 0 4) ioconfig ファイルを再作成します。 ioconfig ファイルが存在しないため、システムから ioinitrc プロンプトが表示されます。最初か ら ioconfig ファイルを再作成します。こうすることで、割り当ての競合を防ぐことができます。 (in ioinitrc)# /sbin/ioinit -c 5) 用意した infile に ioconfig の変更を適用します。 (in ioinitrc)# /sbin/ioinit -f /infile -r 変更に成功した場合は、再びシステムがリブートします。 「Input is identical to kernel」などの警告は無視することができます。 6) 正しく変更されているかどうかを確認します。 システムがアップしたら、すべてのインスタンス番号が正しく変更されているかどうかを確認しま す。/etc/lvmtab に正しいエントリーが含まれるように、ボリュームグループの再インポートが 必要かもしれません。LAN 構成の変更が必要になる場合もあります。 追加情報 HP-UX での Fibre Channel デバイスのアドレス指定についてはFibre Channel 大容量記憶装置の 章を参照してください。 HP-UX でのストレージライブラリのアドレス指定についてはストレージライブラリの章を参照してくださ い。 マニュアルページ intro(7) (デバイススペシャルファイルについてのマニュアルページ)、ioscan(1M)、ioinit(1M)、 ioconfig(4)、lsdev(1M)、lssf(1M)、insf(1M)、mksf(1M)、rmsf(1M) 2002 年 7 月 第 14 章 / 12ページ