3    hwmgr を用いたハードウェア管理

ハードウェアの管理に使用する主なコマンドは,hwmgr コマンド行インタフェース (CLI) です。SysMan タスクなどのその他インタフェースには,hwmgr 機能の部分的な機能だけを提供します。たとえば,hwmgr であれば,クラスタを構成する全メンバのすべての SCSI アダプタに接続されている同じタイプ (SCSI ディスクなど) の全コンポーネントの属性を設定できます。

ほとんどのハードウェア管理はシステムによって自動的に実行されるので,操作が必要になるのは特定の状況に限られます。たとえば,故障したコンポーネントを交換して,代わりに組み込んだ正常なコンポーネントを故障したコンポーネントと同じ ID で動くようにする場合です。この章では,次の項目について説明します。

3.1    ハードウェア管理モデル

オペレーティング・システム・カーネルの内部では,ハードウェアに関するデータは,KSM (Kernel Set Manager) が管理するハードウェア・セットとしてまとめられています。アプリケーションからのリクエストは,ライブラリ・ルーチンによってカーネル・コードまたはリモート・コードに渡されます。後者は,他のシステムとの間でやり取りされるリクエストを処理します。ハードウェア・コンポーネント・モジュール (HWC) はカーネルにあり,この中に,ハードウェア・セット内のハードウェア・コンポーネントを作成したり保守したりするための登録ルーチンがすべて含まれています。また,dsfmgr コマンドを用いて実行するデバイス特殊ファイルの管理に必要なデバイス・ノードも含まれています。

ハードウェア・セットは,システムのハードウェア・コンポーネントをすべて記述するデータ構造で構成されています。ハードウェア・コンポーネントは,そのドライバによって登録されると,ハードウェア・セットに組み込まれます。多くのコンポーネントが,機能や内容を表す属性や,操作を制御する属性をサポートしています。属性には,それぞれ値が割り当てられています。これらの属性値は,hwmgr コマンドを用いて読み取り,ときには操作することができます。

システム・ハードウェアは,hwmgr コマンドでサブシステムとして識別される 3 つの部分にまとめられています。サブシステムは,component,SCSI,および name として識別されます。サブシステムとシステム・ハードウェアの対応は,次のとおりです。

hwmgr の一般的な特性と機能は,次のとおりです。

3.2    hwmgr コマンド・オプション

hwmgr コマンドは,カーネル内のハードウェア管理モジュールを使って,ハードウェア・コンポーネントの管理を実行します。ハードウェア・コンポーネントの例としては,ディスクやテープといったストレージ・デバイスや,CPU やバスといったシステム・コンポーネントなどがあります。hwmgr コマンドを使用すれば,シングル・システムとクラスタのどちらについても,そのハードウェア・コンポーネントを管理できます。

操作コマンドは,コマンド名の後のサブシステム識別子で区別されます。サブシステムは,次のとおりです。componentnamescsi

hwmgr 操作コマンドによっては,2 つ以上のサブシステムに対して使用することができます。view および show コマンド・オプションを使って入手したパラメータ情報に従って,実行したい操作の種類に最も関連性の高いサブシステムを使用する必要があります。

コマンドによっては,サブシステム名を指定する必要があります。ただし,ハードウェア・コンポーネントの識別情報を指定した場合には,サブシステム名を指定する必要はありません。hwmgr コマンドは,コンポーネント識別子に基づいて,操作対象の正しいサブシステムを識別することができます。

コマンド・オプションは,タスク・アプリケーション別に編成されています。コマンド・オプション,操作対象のサブシステム,および操作の種類を次の表に示します。

オプション サブシステム 操作
add name データベース管理
delete componentnamescsi データベース管理
edit namescsi データベース管理
locate component ハードウェア構成
offline componentname オンラインでの追加および削除
online componentname オンラインでの追加および削除
power componentname オンラインでの追加および削除
redirect scsi ハードウェア構成
refresh componentscsi データベース管理
reload name ドライバ構成
remove name データベース管理
scan componentnamescsi ハードウェア構成
status component ハードウェア構成
unconfigure componentname ハードウェア構成
unindict component オンラインでの追加および削除
unload name ドライバ構成

3.3    hwmgr 環境の構成

hwmgr コマンドには,表示される情報量を制御するための環境設定があります。次のコマンドで,省略時の環境設定を表示できます。

# /sbin/hwmgr view env
 
  HWMGR_DATA_FILE = "/etc/hwmgr/hwmgr.dat"
  HWMGR_DEBUG = FALSE
  HWMGR_HEXINTS = FALSE
  HWMGR_NOWRAP = FALSE
  HWMGR_VERBOSE = FALSE

これらの環境変数の値は,ログイン・スクリプトやコマンド行で次の例のようにして設定できます。

# HWMGR_VERBOSE=TRUE
# export HWMGR_VERBOSE

通常,定義の必要なものは,次の HWMGR_HEXINTSHWMGR_NOWRAP,および HWMGR_VERBOSE 環境変数の値に限られます。

3.4    hwmgr を用いたハードウェア管理

この節では,hwmgr コマンドを用いて実行しなければならない作業の例を示します。例の中には,CPU に接続されているコンポーネントが少ない小規模なサーバの管理には向いていないものがあるかもしれません。しかし,ネットワークに接続された多数のシステムで構成される大規模な環境や,コンポーネントが何百個もあるようなクラスタを管理する場合には,非常に役立ちます。hwmgr コマンドを使用すれば,詳細が不明なシステムに接続し,そのコンポーネント階層の情報を入手して,管理作業を行うことができます。システムの構成を事前に調べておく必要も,システムのログやファイルを調べてコンポーネントを探す必要もありません。

3.4.1    SCSI ハードウェアの位置の特定

locate オプションは,現在一部の SCSI デバイスでしか動作しませんが,デバイスの識別に使用できます。このコマンドは,SCSI ディスクの物理的な位置を探す場合に使用できます。次のコマンドを実行すると,SCSI ディスクのランプが 1 分間点滅します。

# /sbin/hwmgr locate -id 42 -time 60

このようにして,ディスク・ベイでランプが点滅しているコンポーネントを探せば,目的のディスクの場所を知ることができます。CD-ROM リーダやアレイの一部になっているディスク (たとえば,HSV110) などの SCSI デバイスを見つけるのに,このオプションを使用することはできません。ただし,アレイの一部になっているディスクは故障した場合には検出され,Event Manager のログにイベントがポストされます。アレイ・コントローラは,読み取りランプまたは黄色のエラー表示ランプを点滅させることで故障したディスクを示します。故障したデバイスを手作業で探す必要はありません。

3.4.2    システム階層の表示

view コマンドを使用すると,システム内部のハードウェア階層を表示できます。このコマンドでは,どのアダプタがデバイスを制御しており,バス上のどこにアダプタがインストールされているかを調べることができます。次の例は,クラスタに属さない独立の小規模システムを対象にこのコマンドを実行した場合の,典型的な出力を示します。

#/sbin/hwmgr view hierarchy
HWID:   hardware hierarchy
----------------------------------------------------
   1:   platform AlphaServer 800 5/500
   2:     cpu CPU0
   6:     bus pci0
   7:       connection pci0slot5
  15:         scsi_adapter isp0
  16:           scsi_bus scsi0
  32:             disk bus-0-targ-0-lun-0 dsk0
  33:             disk bus-0-targ-4-lun-0 cdrom0
  34:             disk bus-0-targ-5-lun-0 dsk1
  35:             disk bus-0-targ-6-lun-0 dsk2
  36:             disk bus-0-targ-8-lun-0 dsk3
   9:       connection pci0slot6
  17:         graphics_controller s3trio0
以下,省略

コンポーネントの中には,階層内で複数のエントリに現れるものがあります。たとえば,2 つのアダプタの間で共用される SCSI バスにディスクがある場合,階層内に同じデバイスに対する 2 つのエントリが表示されます。SysMan Station GUI を使っても,同じようにシステム・ハードウェアの階層が表示できます。

3.4.3    コンポーネント・カテゴリの表示

同じカテゴリのすべてのコンポーネントを対象にハードウェア管理オプションを実行したり,カテゴリ内の特定のコンポーネントを選択したりする場合には,利用できるコンポーネント・カテゴリを知っている必要があります。ハードウェア・マネージャの get category コマンドを使用することにより,どのようなハードウェア・カテゴリがあるかを知ることができます。

このコマンドは get attributesset attributes オプションとともに使用すると便利です。これらのオプションは,特定のコンポーネントの属性 (またはプロパティ) を表示したり構成したりします。ハードウェア・カテゴリがわかれば,次のように,特定のタイプのハードウェアに限定して属性を照会できるようになります。

# /sbin/hwmgr get category
  Hardware Categories
  -------------------
  category = undefined
  category = platform
  category = cpu
  category = pseudo
  category = bus
  category = connection
  category = serial_port
  category = keyboard
  category = pointer
  category = scsi_adapter
  category = scsi_bus
  category = network
  category = graphics_controller
  category = disk
  category = tape

カテゴリがわかれば,次のようにカテゴリを指定し,的を絞って属性を照会できます。

# /sbin/hwmgr get attribute -category platform
  1:
   name = AlphaServer 800 5/500
   category = platform
 
 

この出力から,システム・プラットフォームに ID が 1 のハードウェアがあり,そのプラットフォーム名が AlphaServer 800 5/500 であることがわかります。get attribute コマンド・オプションと set attribute コマンド・オプションも参照してください。

3.4.4    コンポーネント属性の取得

属性はコンポーネントの特性です。コンポーネントのモデル番号のような読み取り専用属性や,動作速度のように,コンポーネントの何らかの動作を制御する値を設定できる属性があります。get attribute コマンド・オプションは,コンポーネントの属性を表示します。ハードウェア・マネージャのコマンドは,ハードウェア管理専用であり,ハードウェア・セットから属性だけを取得します。ハードウェア・コンポーネントはすべて,一意なハードウェア識別子 (ハードウェア ID または HWID ともいう) を使って識別されます。

次のコマンドは,ローカル・システムにある全ハードウェア・コンポーネントの属性をすべて取得し,ファイルに出力して,情報を検索できるようにします。

# /sbin/hwmgr get attribute > sysattr.txt

しかし,3.4.3 項 で示したように,照会するコンポーネント・カテゴリがわかっている場合は,特定のカテゴリに的を絞って照会することもできます。

ハードウェア・コンポーネントのカテゴリを指定して属性を照会すると,役に立つ情報が得られます。たとえば,何らかの理由でネットワークが正常に動作しているかどうかはっきりしない場合があったとします。また,システムにインストールされているネットワーク・アダプタの種類やその構成もわからないかもしれません。次の例のように get attribute オプションを使用すれば,ネットワーク・アダプタの状態を判断できます。

# /sbin/hwmgr get attribute -category network
  203:
   name = ln0
   category = network
   sub_category = Ethernet
   model = DE422
   hardware_rev =
   firmware_rev =
   MAC_address = 08-00-2B-3E-08-09
   MTU_size = 1500
   media_speed = 10
   media_selection = Selected by Jumpers/Switches
   media_type =
   loopback_mode = 0
   promiscuous_mode = 0
   full_duplex = 0
   multicast_address_list = CF-00-00-00-00-00 \
    01-00-5E-00-00-01
   interface_number = 1

この出力には,次のような情報が含まれています。

コンポーネント属性の値を変更して,コンポーネント情報やシステムにおける動作を変更できる場合もあります。属性の設定については,3.4.5 項 で説明しています。どの属性が設定できるかを調べるには,次の例のように get オプションを使ってすべての属性を取得し,grep コマンドで (settable) というキーワードを探します。

# /sbin/hwmgr get attribute | grep settable

   device_starvation_time = 25 (settable)
   device_starvation_time = 0 (settable)
   device_starvation_time = 25 (settable)
   device_starvation_time = 25 (settable)
   device_starvation_time = 25 (settable)
   device_starvation_time = 25 (settable)

この出力は,このシステムに設定可能な属性が 1 つあり,それが device_starvation_time であることを示しています。この名前がわかれば,次のようにして,その属性をサポートするコンポーネントのリストを取得できます。

# /sbin/hwmgr get attribute -a device_starvation_time
  23:
   device_starvation_time = 25 (settable)
  24:
   device_starvation_time = 0 (settable)
  25:
   device_starvation_time = 25 (settable)
  31:
   device_starvation_time = 25 (settable)
  34:
   device_starvation_time = 25 (settable)
  35:
   device_starvation_time = 25 (settable)

このコマンドの出力は,device_starvation_time 属性をサポートしているコンポーネントの HWID を示しています。階層の出力で HWID を読むことで,この属性が SCSI ディスクでサポートされているどうかがわかります。

ファイバ・チャネルのリンク速度を調べるには,次のようにしてリンク速度を照会できます。

# /sbin/hwmgr get attribute -a link_speed
656:
  link_speed = 1Ghz

アダプタが複数ある場合,このコマンドはすべてのアダプタの属性値を表示します。link_speed 属性は,次の値をサポートします。

set attribute オプションと get category オプションも参照してください。

3.4.5    コンポーネント属性の設定

set attribute コマンド・オプションを使用すると,設定可能な属性の値を設定 (または構成) できます。ただし,すべてのコンポーネント属性を設定できるとは限りません。get attribute コマンド・オプションを使用したとき,設定が可能な属性については,属性値の隣に (settable) というラベルが表示されます。そのような属性を見つける方法を,3.4.4 項で説明しています。

3.4.4 項で述べたように,device_starvation_time は SCSI ディスクがサポートする設定可能な属性の例です。この属性は,SCSI バスの障害 (データが転送されない) によってコンポーネントへ到達できないという判断をディスク・ドライバが下すまでの経過時間を制御します。device_starvation_time に設定されている時間が経過してもドライバがコンポーネントの存在を認識できないと,ドライバはバイナリ・エラー・ログにエラー・イベントを記録します。

次のコマンドを使用することにより,HWID が 24 であるコンポーネントの device_starvation_time 属性の値を変更するとともに,その新しい値を確認できます。

#/sbin/hwmgr set attribute -id 24 \
-a device_starvation_time=60
# /sbin/hwmgr get attribute -id 24 \
-a device_starvation_time
  24:
   device_starvation_time = 60 (settable)

ただし,この操作では,属性の saved 値は変更できません。属性にはすべて,current 値,saved 値,および default 値という 3 種類の値があります。default 値は定数値であり,変更することはできません。属性の値を設定していなければ,default (省略) 値が適用されます。saved 値を設定すると,ブートにまたがって値が維持されます。この値は,default 値を永続的に指定変更した値であると考えることができます。

current 値として設定した値は,ブートにまたがって維持されません。この値は,属性の一時的な値であると考えることができます。システムをリブートすると,属性の値は saved 値に戻ります (saved 値がある場合)。saved 値がなければ,属性の値は default 値に戻ります。属性の値を設定するたびに,属性の current 値が変更されます。次の例に,属性の saved 値を調べる方法と設定する方法を示します。

# /sbin/hwmgr get attribute  saved -id 24 \
-a device_starvation_time
  24:
   saved device_starvation_time = 0 (settable)
 
# /sbin/hwmgr get attribute saved -id 24 \
-a device_starvation_time=60 
    saved device_starvation_time = 60 (settable)
# /sbin/hwmgr get attribute saved -id 24 \
-a device_starvation_time
  24:
   saved device_starvation_time = 60 (settable)

get attribute および get category コマンド・オプションを参照してください。

3.4.6    クラスタの表示

クラスタで作業している場合,クラスタに属する特定のホストに的を絞ってハードウェア管理コマンドを実行しなければならないことがよくあります。view cluster コマンド・オプションを使えば,クラスタに属するホストの詳細情報を取得できます。次の例に,一般的なクラスタを示します。

# /sbin/hwmgr view cluster
  Member ID     State   Member HostName
  ---------     -----   ---------------
    1           UP      ernie.zok.paq.com (localhost)
    2           UP      bert.zok.paq.com
    3           DOWN    bigbird.zok.paq.com

また,このオプションを使って,hwmgr コマンドがクラスタのすべてのメンバとそれらの現在の状態を認識していることを確認できます。

上記の例は,クラスタにメンバが 3 つあり,その 1 つ (bigbird) が現在ダウンしていることを示しています。(localhost) のマークは,hwmgr が現在クラスタ・メンバ ernie で動作していることを示しています。-cluster オプションを指定して実行した hwmgr コマンドはすべて,メンバ berternie に送られますが,bigbird には,システムが使用できないため,送られません。また,-member bigbird オプションを指定して実行した hwmgr コマンドもすべて失敗します。そのホストのクラスタ・メンバ状態が DOWN になっているためです。

view cluster コマンド・オプションは,システムがクラスタのメンバである場合にのみ有効です。シングル・システムで実行すると,エラー・メッセージが表示されます。clu_get_info コマンドを参照してください。クラスタ・システムについては,TruCluster Server のマニュアルを参照してください。

3.4.7    デバイスの表示

hwmgr コマンドに view devices オプションを指定して使用すると,デバイス特殊ファイル名 (/dev/disk/dsk34 など) を持つコンポーネントをすべて表示できます。ハードウェア・マネージャは,dev_base_name 属性を持つハードウェア・コンポーネントをアクセス可能なデバイスと想定します (デバイス属性の取得方法については 3.4.4 項を参照)。

view devices オプションにより,システムのハードウェア管理に現在登録されているコンポーネントを調べることができます。また,このオプションで得た情報を基に,デバイス特殊ファイル名を通してコンポーネントにアクセスできます。たとえば,CD-ROM をリーダに挿入したとき,CD-ROM リーダを /dev/disk/cdrom0 としてマウントすべかどうかが,この出力によってわかります。登録されているデバイスの HWID を調べる場合にも,view devices オプションは便利です。デバイスの HWID がわかっていれば,他の hwmgr コマンドのオプションを用いてそのデバイスの属性を照会したり,そのデバイスに対してその他の操作を行うことができます。

このコマンドの一般的な出力を,次の例に示します。

# /sbin/hwmgr view dev
 
 

  HWID:             DSF Name Mfg      Model       Location
 
----------------------------------------------------------------------
     3:            /dev/kevm
    22:      /dev/disk/dsk0c DEC      RZ26        bus-0-targ-3-LUN-0
    23:    /dev/disk/cdrom0c DEC      RRD42       bus-0-targ-4-LUN-0
    24:      /dev/disk/dsk1c DEC      RZ26L       bus-1-targ-2-LUN-0
    25:      /dev/disk/dsk2c DEC      RZ26L       bus-1-targ-4-LUN-0
    29:     /dev/ntape/tape0 DEC      TLZ06       bus-1-targ-6-LUN-0
    35:     /dev/disk/dsk8c  COMPAQ   RZ1CF-CF    bus-2-targ-12-LUN-0

出力には,ローカル・システム上の dev_base_name 属性を持つハードウェア・コンポーネントがすべて表示されています。ハードウェア・マネージャは,dev_base_name を展開して,デバイス特殊ファイルまでのフル・パス (/dev/ntape/tape0 など) を生成しようとします。必ずパーティション c のデバイス特殊ファイルまでのパスが使用されます。パーティション c は,テープの場合を除き,デバイスの総容量を表します。デバイス特殊ファイル名とその機能については,第 1 章を参照してください。

クラスタで作業している場合は,次のように -cluster オプションを使って,クラスタ全体にわたって,ハードウェア管理に登録されているすべてのコンポーネントが表示できます。

# /sbin/hwmgr view devices -cluster

  HWID:             DSF Name    Model       Location        Hostname
 
------------------------------------------------------------------
   20:   /dev/disk/floppy0c    3.5in          fdi0-unit-0   tril7e
   34:    /dev/disk/cdrom0c    RRD46   bus-0-targ-5-LUN-0   tril7e
   35:      /dev/disk/dsk0c    HSG80   bus-4-targ-1-LUN-1   tril7d
   35:      /dev/disk/dsk0c    HSG80   bus-6-targ-1-LUN-1   tril7e
   36:      /dev/disk/dsk1c    RZ26N   bus-1-targ-0-LUN-0   tril7e
   37:      /dev/disk/dsk2c    RZ26N   bus-1-targ-1-LUN-0   tril7e
   38:      /dev/disk/dsk3c    RZ26N   bus-1-targ-2-LUN-0   tril7e
   39:      /dev/disk/dsk4c    RZ26N   bus-1-targ-3-LUN-0   tril7e
   40:      /dev/disk/dsk5c    RZ26N   bus-1-targ-4-LUN-0   tril7e
   41:      /dev/disk/dsk6c    RZ26N   bus-1-targ-5-LUN-0   tril7e
   42:      /dev/disk/dsk7c    RZ26N   bus-1-targ-6-LUN-0   tril7e
   43:      /dev/disk/dsk8c    HSZ40   bus-3-targ-2-LUN-0   tril7d
   43:      /dev/disk/dsk8c    HSZ40   bus-3-targ-2-LUN-0   tril7e
   44:      /dev/disk/dsk9c    HSZ40   bus-3-targ-2-LUN-1   tril7d
   44:      /dev/disk/dsk9c    HSZ40   bus-3-targ-2-LUN-1   tril7e
   45:     /dev/disk/dsk10c    HSZ40   bus-3-targ-2-LUN-2   tril7d
   45:     /dev/disk/dsk10c    HSZ40   bus-3-targ-2-LUN-2   tril7e

HWID が 45: であるディスクのように,複数回現れるデバイスがあります。これらは,2 つのクラスタ・メンバが共用しているバス上にあるコンポーネントです。ハードウェア・マネージャは,各クラスタ・メンバでコンポーネント・エントリを見つけるたびにそれを表示します。

次の hwmgr コマンド・オプションを参照してください。show scsishow componentsget attributes

3.4.8    トランザクションの表示

ハードウェア管理操作は,クラスタ内で同期をとる必要があるトランザクションです。view transaction コマンド・オプションは,システムをブートしてから行われたハードウェア管理トランザクションの状態をすべて表示します。このオプションを使って,失敗したハードウェア管理トランザクションを見つけることができます。

-cluster-member オプションを指定していなければ,このコマンドは,ローカル・ホスト (コマンドを入力したシステム) で処理または開始されたトランザクションの状態を表示します。view transaction コマンド・オプションは,主にクラスタ内のハードウェア管理に関する問題のデバッグに使用するものなので,このコマンドを使うようなことはあまりありません。通常,このコマンドの出力は次のようになります。

# /sbin/hwmgr view transactions
   hardware management transaction status
  -----------------------------------------------------
  there is no active transaction on this system
   the last transaction initiated from this system was:
    transaction = modify cluster database
    proposal    = 3834
    sequence    = 0
    status      = 0
   the last transaction processed by this system was:
    transaction = modify cluster database
    proposal    = 3834
    sequence    = 0
    status      = 0
 
 proposal                      last status  success  fail
 ----------------------------  -----------  -------  ----
              Modify CDB/ 3838  0            3        0
                Read CDB/ 3834  0            3        0
            No operation/ 3835  0            1        0
             Change name/ 3836  0            0        0
             Change name/ 3837  0            0        0
               Locate HW/ 3832  0            0        0
                 Scan HW/ 3801  0            0        0
   Unconfig HW - confirm/ 3933  0            0        0
    Unconfig HW - commit/ 3934  0            0        0
     Delete HW - confirm/ 3925  0            0        0
      Delete HW - commit/ 3926  0            0        0
   Redirect HW - confirm/ 3928  0            0        0
   Redirect HW - commit1/ 3929  0            0        0
   Redirect HW - commit2/ 3930  0            0        0
          Refresh - lock/ 3937  0            0        0

この出力は,最後のトランザクションがクラスタ・データベースの変更であったことを示します。

3.4.9    ユーザ定義 SCSI デバイス名の作成

ほとんどのコンポーネントには,デバイスに対して一意に定まる ID 属性があります。これは SCSI デバイスの serial_number または名前の属性として読み取ることができます。次の hwmgr コマンドは,HWID が 30 のコンポーネント (SCSI ディスク) についてこれら 2 つの属性を表示させる例です。

# /sbin/hwmgr get attribute -id 30 -a serial_number -a name
30:
  serial_number = SCSI-WWID:0c000008:0060-9487-2a12-4ed2
  name = SCSI-WWID:0c000008:0060-9487-2a12-4ed2

この文字列は,システム上の各コンポーネントに対して一意であるため,ワールドワイド識別子 (WWID) といいます。

コンポーネントには,一意の ID を持たないものがあります。オペレーティング・システムは,そのようなコンポーネントに対して ID となる番号を作成します。その際,デバイスの物理的な位置を表す有効なパス・データ bus/target/LUN を使用します。デバイスを複数のシステムで共用する場合,コンポーネントにアクセスするシステムはそれぞれが異なるパスでそのデバイスを認識するため,システムごとに異なる一意の WWID を作成します。そのような共用デバイスに対しては,入出力アクセスが並列に発生し,データが破壊される可能性があります。共用デバイスを見つけるには,次のコマンドを使います。

# /sbin/hwmgr show component -cshared
 
 HWID:  HOSTNAME   FLAGS SERVICE COMPONENT NAME
-----------------------------------------------
   40:  joey       -cd-- iomap   SCSI-WWID:04100026:"DEC \
 RZ28M    (C) DEC00S846590H7CCX"
   41:  joey       -cd-- iomap   SCSI-WWID:04100026:"DEC \
 RZ28L-AS (C) DECJEE019480P2VSN"
   42:  joey       -cd-- iomap   SCSI-WWID:0410003a:"DEC \
 RZ28     (C) DECPCB=ZG34142470  ; HDA=000034579643"
   44:  joey       rcd-- iomap   SCSI-WWID:04100026:"DEC \
 RZ28M    (C) DEC00S735340H6VSR"
.
.
.
 
 

TL895 モデルのメディア・チェンジャなど一部のデバイスは,INQUIRY ページ 0x80 または 0x83 をサポートしておらず,一意の WWID をシステムに提供することができません。パス・フェイルオーバまたは共用バス上でのクラスタへのインストールなどの機能をサポートするには,そのようなデバイスをシステムに手作業で追加する必要があります。これは,メディア・チェンジャだけを共用バスに追加するための推奨されている方法です。ディスク,CD-ROM リーダ,テープ・ドライブ,RAID コントローラなど,他の種類のデバイスはシリアル番号など一意の文字列を持っているため,システムが一意の WWID を生成できます。このようなコンポーネントは,WWID が常に同じであり,オペレーティング・システムが常に同じデバイスとして認識するため,共用バス上で使用できます。

hwmgr コマンドを使って,ユーザ定義による一意の名前を作成し,デバイスを共用する全システムが認識する WWID を作成することができます。コンポーネントに共通の WWID があるため,デバイス特殊ファイル名が何通りにもならず,入出力が同時に発生することを防止できます。

ユーザ定義名を作成する手順は次のとおりです。

注意

デバイスにアクセス可能なすべてのクラスタ・システムを更新しなければなりません。

次の例に,ユーザ定義名を割り当てる方法を示します。edit scsi コマンド・オプションは,一意の WWID を持たないデバイスの場合にだけお勧めしますが,例ではわかりやすいようにディスクを対象にしています。

#  /sbin/hwmgr show scsi
 
      SCSI           DEVICE DEVICE  DRIVER NUM  DEVICE FIRST
HWID: DEVICEID HOST  TYPE   SUBTYPE OWNER  PATH FILE   VALID
      ID       NAME                                    PATH
 ------------------------------------------------------------
  22: 0       ftwod  disk   none    0      1   dsk0   [0/3/0]
  23: 1       ftwod  cdrom  none    0      1   cdrom0 [0/4/0]
  24: 2       ftwod  disk   none    0      1   dsk1   [1/2/0]
  25: 3       ftwod  disk   none    2      1   dsk2   [2/4/0]

このコマンドは,システム上にある SCSI デバイスを表示します。この表示からはわかりませんが,このシステムには共用バスがあり,ハードウェア・コンポーネントの 24 と 25 が実際には同じデバイスであるとします。このコンポーネントの WWID は,bus/target/LUN のアドレス情報を用いて作成されています。bus/target/LUN アドレスが異なっているので,このコンポーネントは別々のデバイスとして表示されます。オペレーティング・システムが 2 つの異なるデバイス特殊ファイル (dev/disk/dsk1/dev/disk/dsk2) をこのディスクへのアクセスに使用できるため,データが破壊されるおそれがあります。

次のコマンド例に,デバイスの名前を変更する方法と,名前を変更した後どのように表示されるかを示します。

# /sbin/hwmgr edit scsi -did 2 -uwwid "this is a test"
    hwmgr:Operation completed successfully.
 
# /sbin/hwmgr show scsi -did 2 -full

        SCSI               DEVICE  DEVICE  DRIVER NUM  DEVICE FIRST
  HWID: DEVICEID HOSTNAME  TYPE    SUBTYPE OWNER  PATH FILE   VALID PATH
  ----------------------------------------------------------------------
   24:  2        ftwod     disk    none    0      1    dsk1   [1/2/0]
 
      WWID:0910003c:"DEC    (C) DECZG41400123ZG41800340:d01t00002l00000"
      WWID:ff10000e:"this is a test"
 
      BUS   TARGET  LUN   PATH STATE
      ------------------------------
      1     2       0     valid

この操作をもう一方のコンポーネント,つまりアドレス 2/4/0 のコンポーネントにも実行して,同じ名前を割り当てます。この操作を行うと,ハードウェア管理機能はユーザ定義名を用いてコンポーネントを調べ,それが同じデバイスへの代替パス名であると認識します。

# /sbin/hwmgr edit scsi -did 3 -uwwid "this is a test"
    hwmgr:Operation completed successfully.
 
# /sbin/hwmgr show scsi -did 3 -full

        SCSI               DEVICE  DEVICE  DRIVER NUM  DEVICE FIRST
  HWID: DEVICEID HOSTNAME  TYPE    SUBTYPE OWNER  PATH FILE   VALID PATH
  ----------------------------------------------------------------------
   25:  3        ftwod     disk    none    0      1    dsk1   [2/4/0]
 
      WWID:0910003c:"DEC    (C) DECZG41400123ZG41800340:d02t00004l00000"
      WWID:ff10000e:"this is a test"
 
      BUS   TARGET  LUN   PATH STATE
      ------------------------------
      2     4       0     valid

これで,両方のデバイスが同じデバイス特殊ファイル名 (/dev/disk/dsk1) を使うようになります。2 つの異なるデバイス特殊ファイルを通じて同じディスクにアクセスすることで生じるデータ破壊の危険がこれでなくなります。

3.4.10    SCSI デバイスの削除

SCSI デバイスをシステムから取り外したい場合があります。エラーが続いてログに記録されたために交換が必要になった場合などがそうです。SCSI コンポーネントをクラスタにあるすべてのハードウェア管理データベースから削除するには,delete scsi コマンド・オプションを使用します。このオプションは,カーネルから対象コンポーネントの登録を解除し,そのデバイスに対する永続データベース・エントリをすべて削除した後,該当するデバイス特殊ファイルをすべて削除します。SCSI コンポーネントを削除すると,そこにはアクセスできなくなり,対応するデバイス特殊ファイルが /dev サブディレクトリから削除されます。現在オープンされている SCSI コンポーネントは,削除できません。デバイスへの I/O 接続 (マウントなど) はすべて外す必要があります。

SCSI コンポーネントをシステムから取り外した後で,そのコンポーネントに関する情報をシステムに残したくなければ,その SCSI コンポーネントを削除する必要があります。また,ハードウェアではなくオペレーティング・システムに問題があるために,SCSI コンポーネントを削除したいことがあります。たとえば,コンポーネントが正常に動作しているのにもかかわらず,何らかの理由でデバイス特殊ファイルによるアクセスが行えないということがあります。このような場合,そのコンポーネントをいったん削除した後,scan scsi コマンド・オプションを用いてそのコンポーネントを検索して登録できます。

SCSI コンポーネントを交換する (または元のコンポーネントに戻す) には,scan scsi コマンド・オプションを用いてそのコンポーネントを再度検索します。ただし,コンポーネントを削除し,scan 操作を実行してからそのコンポーネントをオンラインに戻しても,常に同じデバイス特殊ファイルを持つわけではありません。コンポーネントを交換して,オリジナルとまったく同じ複製として組み込む場合は,3.4.12 項 で述べる操作も実行する必要があります。コンポーネントがスキャンの際にアクティブに応答しなければ,scan 操作を行ってもコンポーネントを検出できないことがあります。

このオプションは,SCSI デバイス ID の -did を受け付けます。この ID は,HWID と同じものではありません。次の例に,SCSI データベースを調べて SCSI デバイスを削除する方法を示します。

# /sbin/hwmgr show scsi

      SCSI           DEVICE DEVICE  DRIVER NUM  DEVICE FIRST
HWID: DEVICEID HOST- TYPE   SUBTYPE OWNER  PATH FILE   VALID
               NAME                                     PATH
------------------------------------------------------------
23:   0       bert   disk   none    2      1   dsk0   [0/3/0]
24:   1       bert   cdrom  none    0      1   cdrom0 [0/4/0]
25:   2       bert   disk   none    0      1   dsk1   [1/2/0]
30:   4       bert   tape   none    0      1   tape2  [1/6/0]
31:   3       bert   disk   none    0      1   dsk4   [1/4/0]
34:   5       bert   disk   none    0      1   dsk7   [2/5/0]
35:   6       bert   disk   none    0      1   dsk8

この例では,ID が 23 であるコンポーネントの DRIVER OWNER フィールドはゼロではありません。これは,デバイスがドライバによってオープンされていることを示します。DRIVER OWNER フィールドがゼロ以外の値の場合,コンポーネントがドライバによってオープンされ,使用されていることを意味します。したがって,SCSI コンポーネントの 23 は,現在使用されているので削除できません。

しかし,ID が 35 のコンポーネントはドライバによってオープンされておらず,FIRST VALID PATH フィールドに有効なパスが表示されていません。コンポーネントは現在アクセス不可能であり,安全に削除できます。デバイスを削除するとき,デバイス特殊ファイルの /dev/disk/dsk8*/dev/rdisk/dsk8* も削除できます。

SCSI デバイスを削除する場合は,delete オプションに SCSI DEVICEID という値を指定してから,次のようにして SCSI データベースを調べます。

# /sbin/hwmgr delete scsi -did 6
hwmgr: The delete operation was successful.
# /sbin/hwmgr show scsi
 
      SCSI            DEVICE  DEVICE  DRIVER NUM  DEVICE FIRST
HWID: DEVICE HOSTNAME TYPE    SUBTYPE OWNER  PATH FILE   VALID
      ID                                                  PATH
  -------------------------------------------------------------
23:   0      bert     disk    none    2      1   dsk0   [0/3/0]
24:   1      bert     cdrom   none    0      1   cdrom0 [0/4/0]
25:   2      bert     disk    none    0      1   dsk1   [1/2/0]
30:   4      bert     tape    none    0      1   tape2  [1/6/0]
31:   3      bert     disk    none    0      1   dsk4   [1/4/0]
34:   5      bert     disk    none    0      1   dsk7   [2/5/0]

コンポーネント /dev/disk/dsk8 は正常に削除されています。

3.4.11    RAID アレイのディスクの構成設定

RAID アレイを再構成するとき,新しいブロック・ゼロは,以前のブロック・ゼロと同じブロックである可能性があります。そのため,ディスクラベルがディスクの範囲を越えていても有効なラベルと見なしてしまうアプリケーションによって問題が生じることがあります。スキャンを実行すると,システムは新しいユニットを dskNN として認識します。ディスクを使い始める前に,次のコマンドを実行して不適切なラベルをゼロに初期化します。

# /sbin/disklabel -z dskNN

RAID アレイに新しいユニットを作成した場合や,RAID アレイのユニットを構成する 1 つ以上のディスクを移動してホスト・バス・アダプタに直結したときは,このコマンドを実行します。

続いて,新しい省略時のラベルを作成するか,プロト・ファイルに基づいて事前構成されたラベルを適用するには,次のように disklabel コマンドを実行します。

# /sbin/disklabel -rwn dskNN
# /sbin/disklabel -Rr dskNN PROTOFILE

3.4.12    故障した SCSI ディスクの交換

SCSI ディスクが故障した場合,そのデバイスを交換して,交換した新しいディスクに故障デバイスのハードウェア特性 (そのデバイス特殊ファイルの所有者など) を継承させることができます。redirect コマンド・オプションを使用すれば,そのような特性を割り当てることができます。たとえば,HSZ (RAID) キャビネットのディスクが故障したときは,その故障ディスクをホットスワップによって交換し,次に redirect コマンド・オプションを用いて新しいディスクを故障ディスクの代わりとしてオンラインにします。

故障したディスクを AdvFS または LSM などのアプリケーションが管理している場合は,この手順を単独では利用しないでください。管理されたディスクを交換する前に,ディスク管理アプリケーションを適切な状態にするか,管理アプリケーションからディスクを削除します。『Logical Storage Manager』および『AdvFS 管理ガイド』などの,適切なマニュアルを参照してください。

注意

redirect 操作を正常に実行させるには,交換するディスクが元のディスクと同じタイプのものでなければなりません。

次の例は,redirect オプションの使い方を示します。

#  /sbin/hwmgr show scsi
      SCSI          DEVICE DEVICE DRIVER NUM  DEVICE  FIRST
HWID: DEVICE- HOST- TYPE   SUB-   OWNER  PATH FILE    VALID
      ID      NAME         TYPE                       PATH
  ---------------------------------------------------------
 23:   0     fwod  disk   none   2      1    dsk0   [0/3/0]
 24:   1     fwod  cdrom  none   0      1    cdrom0 [0/4/0]
 25:   2     fwod  disk   none   0      1    dsk1   [1/2/0]
 30:   4     fwod  tape   none   0      1    tape2  [1/6/0]
 31:   3     fwod  disk   none   0      1    dsk4
 37:   5     fwod  disk   none   0      1    dsk10  [2/5/0]

この出力から,HWID 31 の SCSI ディスクが故障していることがわかります。このコンポーネントに有効なパスがありません。この故障ディスクを,デバイス特殊ファイル名が /dev/disk/dsk4dev_t 情報が同じである新しいディスクと交換するには,次の手順を使います。

  1. ハードウェア・マニュアルの説明に従ってコンポーネントをインストールします。

  2. 次のコマンドを用いて新しいデバイスを検索します。

    # /sbin/hwmgr scan scsi
    

    このコマンドは,SCSI サブシステムを調べて,新しく見つかったデバイスを登録します。show scsi コマンドをもう一度実行して,交換した新しいディスクの SCSI デバイス ID (did) を調べます。

  3. 次のコマンドを用いて,故障ディスクのコンポーネント特性を交換ディスクに割り当て直します。この例では,新しいディスクに割り当てられた SCSI デバイスの ID (did) が 36 であるとしています。

    # /sbin/hwmgr redirect scsi -src 3 -dest 36
    

注意

ディスクに対する redirect オプションの実行が失敗した場合には,3.4.13 項 で説明している代替手順を使います。

3.4.13    故障した SCSI テープ・ドライブ (またはハード・ディスク) の交換

SCSI テープが故障した場合,そのデバイスを交換して,交換した新しいドライブに故障デバイスのハードウェア特性 (そのデバイス特殊ファイルの所有者など) を継承させることができます。SCSI テープ・ドライブまたはディスクによっては,3.4.12 項 で説明されている redirect コマンド・オプションが正しく動作しないことがあります。次の手順に従って,操作が正しく完了するようにします。この手順では,次の前提が適用されます。

  1. 次のコマンドを用いて,故障したコンポーネントを確認します。

    #  /sbin/hwmgr show scsi
          SCSI          DEVICE DEVICE DRIVER NUM  DEVICE  FIRST
    HWID: DEVICE- HOST- TYPE   SUB-   OWNER  PATH FILE    VALID
          ID      NAME         TYPE                       PATH
      ---------------------------------------------------------
     31:  5       rocym  tape  none    2     1   tape0  [     ]
     
     
    

    この出力から,HWID 31 の SCSI テープ・ドライブが故障していることがわかります。このコンポーネントに有効なパスがありません。この故障テープ・ドライブを,デバイス特殊ファイル名が /dev/tape/tape2dev_t 情報が同じである新しいテープ・ドライブと交換するには,次の手順を使います。

  2. ハードウェア・マニュアルの説明に従ってコンポーネントをインストールします。

  3. 次のコマンドを使って,新しいデバイスをスキャンします。

    # /sbin/hwmgr scan scsi | grep tape
    

  4. 次のコマンドを使って,故障したデバイスと交換デバイスの SCSI データベース・エントリを検索します。

    # /sbin/hwmgr show scsi | grep tape
    

    次の出力例のように,交換デバイスを示す新しいエントリと,元の (故障した) デバイスを示す不完全なエントリが表示されます。

          SCSI              DEVICE DEVICE  DRIVER NUM  DEVICE FIRST
    HWID: DEVICEID HOSTNAME TYPE   SUBTYPE OWNER  PATH FILE   VALID
                                                              PATH
    ---------------------------------------------------------------
    31:   5       rocym     tape    none    2     1   tape0  [     ]
    35:   7       rocym     tape    none    0     1   tape5  [0/7/0]
     
     
    

  5. hwmgr コマンドに故障したデバイスのハードウェア識別子 (HWID) を指定して,そのデータベース・エントリを削除します。

    # /sbin/hwmgr delete component -id 31 
     
    

  6. 次のコマンドを使って,交換デバイスの名前を付け替え,故障したデバイスのデバイス特殊ファイルを移します。

    # /sbin/dsfmgr -m tape5 tape0
    tape5=>tape0  tape5_d0=>tape0_d0  tape5_d1=>tape0_d1
    tape5_d2=>tape0_d2  tape5_d3=>tape0_d3  tape5_d4=>tape0_d4
    tape5_d5=>tape0c
    

ホットスワップできないデバイスを交換する場合には,システムをシャットダウンする必要があります。その場合,この手順の最初の 2 つの手順を次のように変更します。

  1. 交換デバイスを挿入し,システムをブートします。ブート時に SCSI のスキャンが自動的に実行され,コンソールに交換デバイスが検出され登録されたことを示すメッセージが表示されます。

  2. システムがシングル・ユーザ・モードになったら,次のコマンドを実行して交換デバイスが検出されたことを確認します。

    # /sbin/hwmgr show scsi | grep device_type
    

    device_type には,disktape など,デバイスのタイプを指定します。

元の手順の手順 3 に進みます。

3.4.14    hwmgr によるクラスタ・メンバのブート・ディスクの交換

シングル・システムでは,故障したディスクを交換する手順の中で,hwmgr コマンドに redirect オプションを指定して使用できます。故障したディスクを交換するときは,redirect オプションを使って,故障したコンポーネントから新しい交換デバイスに入出力をリダイレクトします。このオプションは,デバイス特殊ファイル名,クラスタの dev_t の値,ローカルの dev_t の値,論理 ID,および HWID をリダイレクトします。

redirect オプションに指定できるのは一意のデバイス識別子 (did) だけです。クラスタの場合,デバイス識別子が一意であるとは限らず,次に示す例のように,コマンドがエラーになる可能性があります。

# /sbin/hwmgr redirect scsi -src source_did -dest target_did
# "Error (95) Cannot start operation."

リダイレクト操作を正常に行うには,クラスタ上の各メンバにハードウェア識別子の両方が存在するか,どちらも存在しない必要があります。次の手順に従って,redirect 操作が正しく行われるようにします。

  1. 交換元と交換先のコンポーネントがともに存在することを確認します。クラスの各メンバにおいて,次のコマンドを使います。

    # /sbin/hwmgr show scsi -did device_identifier
     
          SCSI           DEVICE DEVICE  DRIVER NUM  DEVICE FIRST
    HWID: DEVICEID HOST  TYPE   SUBTYPE OWNER  PATH FILE   VALID PATH
    32:   DID      rymoc disk   none     2     1    dsk1   [0/1/0]
    

  2. 交換元コンポーネントが別のクラスタ・メンバ上に存在するが,交換先がそこに存在しない場合にだけ,この手順に従います。

    交換先コンポーネントをこれらのクラスタ・メンバ上で次のように構成します。

    # /sbin/hwmgr scan scsi
    

    注意

    バスのスキャンは非同期で実行されます。システム・プロンプトにすぐに戻りますが,これはスキャンが完了したことを示すわけではありません。多数のデバイスがあるシステムでは,スキャンの完了まで数分かかることがあります。

  3. 交換先コンポーネントがシステムの別のメンバ上に存在するが,交換元コンポーネントがそこに存在しない場合にだけ,この手順を実行します。

    交換先コンポーネントをこれらのクラスタ・メンバから次のように削除します。

     # /sbin/hwmgr delete scsi did
    

  4. これで,redirect オプションを使って,入出力を交換先のドライブに向けることができます。

3.4.15    name サブシステムの永続データベースの表示

name 永続データベースには,システムのハードウェア・トポロジに関する情報が保存されています。このデータはカーネルによって維持され,コントローラやバスに関するデータが含まれます。show name コマンド・オプションを使って永続データを表示します。永続データは,他の hwmgr コマンドを用いて操作できます。

次の例は,小規模なシステムで show name コマンド・オプションを実行した場合の典型的な出力を示します。

# /sbin/hwmgr show name -member ychain
 
 HWID:  NAME    HOSTNAME   PERSIST TYPE    PERSIST AT
-----------------------------------------------------
   13:  isp0    ychain     BUS             pci0 slot 5
    4:  pci0    ychain     BUS             nexus
   14:  scsi0   ychain     CONTROLLER      isp0 slot 0
   29:  tu0     ychain     CONTROLLER      pci0 slot 11

出力には,次の情報が含まれています。

3.4.16    name 永続データベースからのコンポーネントの抹消と登録解除

name サブシステムを操作して,永続データベースからコンポーネントを削除することができます。hwmgr コマンドには,登録解除の方法が 2 通りあります。

次の例は,小規模なシステムで show name コマンド・オプションを実行した場合の典型的な出力を示します。name には,3.4.15 項 で説明した show name コマンド・オプションの出力で表示されるコンポーネント名を指定します。

# /sbin/hwmgr show name
 HWID:  NAME    HOSTNAME  PERSIST TYPE    PERSIST AT
 
------------------------------------------------------
   33:  aha0    fegin     BUS             eisa0 slot 7
   31:  ln0     fegin     CONTROLLER      eisa0 slot 5
    8:  pci0    fegin     BUS             ibus0 slot 0
   34:  scsi1   fegin     CONTROLLER      aha0 slot 0
   17:  scsi0   fegin     CONTROLLER      psiop0 slot 0
   15:  tu0     fegin     CONTROLLER      pci0 slot 0

この例の出力では,2 つの SCSI アダプタが表示されています。scsi0 を対象にして remove 操作を行っても,scsi1scsi0 になりません。アダプタの位置に関する情報は aha0s lot 0 のままで,scsi1 の名前はブートしても変わりません。

scsi0 を削除して scsi1 の名前を変更するには,次のコマンドを使います。

# /sbin/hwmgr remove name -entry scsi0
# /sbin/hwmgr edit name -entry scsi1 -parent_num 0
 
 

3.4.17    ハードウェア・データベースの最適化

無効なパスの数がシステムのブート時間に影響する場合があります。データベースの読み取りに余分の時間がかかるからではなく,SCSI サブシステムが無効かどうかにかかわらず各パスをスキャンするからです。このような無効なパスは,ストレージを別のアダプタに移動したり,アダプタを取り外したり交換するなどして,システムの構成に多数の変更を加えたときに発生します。ただし,予想外に多くの無効なパスがシステムにある場合には,構成に問題があるかもしれません。その場合には,refresh オプションを使用する前に,技術サポート担当までご相談ください。

無効なパスを削除するには,次のオプションを使用します。

# /sbin/hwmgr refresh scsi

このコマンドは SCSI デバイスへの無効なパスを削除しますが,システムがデバイスへの第 1 パスと見なす無効パスは除きます。

refresh component オプションは必ずしも使用する必要はなく,一般的にはブートに何の影響もしませんが,コマンドの出力がわかりやすくなります。ハードウェアの構成を大幅に変えたとき,特にコンポーネントを取り外したり交換したりしたときは,コマンド出力には多数の不要なエントリが表示されるようになります。これら未使用エントリは,次のコマンドを使ってコンポーネント・データベースを表示したときに目に見えます。

# /sbin/hwmgr show component

次のコマンドを使って,システムに戻されることのないコンポーネントに対応するデータベース・エントリを削除します。

# /sbin/hwmgr refresh component

3.4.18    コンポーネント名の変更

コンポーネント名は,使用されているドライバ・インタフェースと,デバイスのインスタンスに基づいています。たとえば,tu0 という名前のコンポーネントは,Tulip Ethernet インタフェースをサポートする NIC です ( tu(7)を参照)。Intel (82558/82559) PCI 10/100 Ethernet NIC は,name データベースの中で eeN という名前のコンポーネントとして登場します ( ee(7) を参照)。

コンポーネントは,この物理位置に基づいて永続タイプと永続位置を割り当てられます。この情報は,name データベースに格納されます。永続タイプとしては,ネットワーク・コントローラや,一連のスロットを提供する PCI (Peripheral Component Interconnect) バスなどがあります。コンポーネントの永続位置は,PCI バス 1 のスロット 2 や,主バス位置 (nexus) など,バス上の特定のスロットの論理アドレスがあります。

次の手順は,使用したい名前をコンポーネントに割り当てる方法を示します。これによって,複数の異なるシステムの間でコンポーネント名に一貫性を持たせて,特定のコンポーネントを指定するスクリプトの保守を簡単にできます。

注意

HP では,可能な限りシステムにコンポーネント名を動的に割り当てさせることを推奨します。環境を更新するときにシステムのカスタム設定を保存することを可能にする代替手順もあります。たとえば,システムのクローニングを行うためのサポートされている方法は,インストレーション・クローニング・ユーティリティです。使用しているオペレーティング・システムのバージョンに対応する『インストレーション・ガイド -- 上級ユーザ編』を参照してください。コンポーネント名は動的なので,ローカルのスクリプトやプログラムがコンポーネント名に依存しないように作ることを考えてください。そのために,hwmgr および dsfmgr コマンドを使ってコンポーネント名とコンポーネントを利用できるかどうかを簡単に調べることができます。静的な名前を指定しなければ,スクリプトやプログラムの信頼性や移植性ははるかに高くなります。

3.4.18.1    コンポーネントの識別

次の hwmgr コマンドを使って name データベースの内容を表示できます。

# /sbin/hwmgr show name
 HWID:  NAME    HOSTNAME    PERSIST TYPE    PERSIST AT
---------------------------------------------------------
   41:  ata1    rocym       BUS             pci0 slot 205
   39:  ata0    rocym       BUS             pci0 slot 105
   56:  ee2     rocym       CONTROLLER      pci3 slot 5
   19:  ee1     rocym       CONTROLLER      pci2 slot 5
   18:  ee0     rocym       CONTROLLER      pci2 slot 4
   54:  itpsa1  rocym       BUS             pci3 slot 4
 
 

一部が省略されているこの出力例は,システムに 3 つの NIC があり,ee0ee1,および ee2 という名前であることを示します。この出力例は,コンポーネント ee1 の物理位置が PCI バス 2,スロット 5 であることなど,ネットワーク・コンポーネントの物理位置も示します。

コンポーネントの名前を ee3ee4 および ee5 に変えるには,3.4.18.2 項 の手順に従います。

3.4.18.2    コンポーネント名の変更

コンポーネント名を変更するには次の手順に従います。

  1. 次のコマンドを使って,name データベースからハードウェア永続エントリを削除します。

    # /sbin/hwmgr remove name -entry ee0
    # /sbin/hwmgr remove name -entry ee1
    # /sbin/hwmgr remove name -entry ee2
    

    名前を変更したいすべてのコンポーネントについて,このコマンドを繰り返します。この操作は,削除する名前を使用しているハードウェア・コンポーネントには影響しません。リブートにまたがった名前の維持にだけ影響します。

    注意

    delete オプションの代わりに remove オプションを使うと,コンポーネントの属性設定がすべて維持されます。たとえば,コンポーネント ee0 について,その user_name 属性の値を指定することで,独自にユーザ名を定義できます。ユーザ定義の名前 (および他のカスタマイズされた設定) は,delete オプションを使うと維持されません。

  2. 次のコマンドを使って,システムをシャットダウンしリブートします。

    # shutdown -r now
    

    システムのリブート時に,永続名が再作成されます。新しい名前がハードウェアが検出された順番で割り当てられます。たとえば,ee0 はハードウェアのスキャン時に最初に見つかった NIC に割り当てられ,ee1 はその次に見つかったものに,そしてすべてのコンポーネントが検出されるまで以降同様となります。

  3. 次のコマンドを使って,各コンポーネントの以前の名前を name データベースから削除します。

    # /sbin/hwmgr delete name -entry ee0
    # /sbin/hwmgr delete name -entry ee1
    # /sbin/hwmgr delete name -entry ee2
    

3.4.18.3    名前変更の検証

名前の変更が正しく行われたことを次のようにして確認します。

  1. 次のコマンドを使って,どのコンポーネントが特定の PCI スロットに対応するかを確認します。ここでは,コマンドを使って ee* という条件に当てはまるコンポーネントを検索しています。

    # /sbin/hwmgr show name | grep ee
    .
    .
    .
    56:  ee5     rocym           CONTROLLER      pci3 slot 5
    19:  ee4     rocym           CONTROLLER      pci2 slot 5
    18:  ee3     rocym           CONTROLLER      pci2 slot 4
    .
    .
    .
    

  2. 次のコマンドを使って,不正な名前がすべて name データベースから恒久的に削除されたことを確認します。

    # /sbin/hwmgr show components | grep ee
    .
    .
    .
    18:  rocym      r---- none    ee3
    19:  rocym      r---- none    ee4
    56:  rocym      r---- none    ee5
    .
    .
    .
    

名前の変更が正しくできていないようであれば,次の表に示すトラブルシューティングの方法を試してみます。

問題 考えられる解決策

hwmgr コマンドを使用したときにコンポーネントが表示されない。

システムをシャットダウンし,コンソール・コマンドを使って,コンポーネントが構成の一部として表示されることを確認する。コンポーネントが表示されない場合,コンポーネントのテストと検証の手順についてハードウェアのドキュメントを参照する。

コンポーネントは表示されるが,エラーが発生しているように見える。

コンポーネントがコンソールに表示された場合には,システムをリブートし,ブート・メッセージにコンポーネント固有のエラーが表示されないことを確認する。このようなメッセージは,/var/adm ディレクトリのログ・ファイルに記録されていることもある。

システムが正常にリブートするが,ブート後にコンポーネント・エラーが発生する。

Event Viewer (EVM) を使用してバイナリ・イベント (binlogd) を表示するには,次のコマンドを使う。

# sysman event_viewer

イベント・ビューアと関連する診断ツールの詳細については,使用するオペレーティング・システムのバージョンに対応する システム管理ガイドを参照すること。

正常なリブートと名前変更が行われたにもかかわらず,1 つ以上のコンポーネントの名前が依然として正しくない。

コンポーネントがシステムに接続されており,Hardware Manager から認識できることを確認したら,名前変更の手順を再度実行する。

コンポーネントの名前を変更できない。

まれに,ハードウェア・データベースの内容が壊れることがある。そのような状態のデータベースを編集またはリフレッシュしてはならない。技術サポート担当まで連絡して支援を受けるか,完全インストールを実施してカスタマイズを再度行う。

3.4.19    コンポーネントの再配置 (移動)

Tru64 UNIX では,コンポーネント名は一意になるように作られています。一部のハードウェア・コンポーネントは,その物理位置に基づいて一意の名前が作られます。特に,ほとんどのバスとコントローラは,システム全体で一意の名前を,その物理位置に基づいて作られます。そのようなコンポーネントのシステム内での物理位置を,ある位置から別の位置に変えてシステムをリブートすると,コンポーネントが新しい名前を持つ新しいデバイスとして表示されることがあります。

特定のコンポーネント (ネットワーク・カードなど) を指定するスクリプトやプログラムは,コンポーネントの名前が変わると,それを見つけられなくなることがあります。システム内のコンポーネントを移動するときに,元のコンポーネント名を維持することができます。この節で説明する手順は,コンポーネント名を維持する方法を示します。ここでは移動コンポーネントの例として,メモリ・チャネル・カードを使います。

3.4.19.1    コンポーネント名の探索

多くのコンポーネント名は,デバイスによって使われるドライバのインタフェースと,デバイスのインスタンスに基づいています。たとえば,mchan0 という名前のコンポーネントは,インスタンス 0 のメモリ・チャネル・カードです。コンポーネントは,この物理位置に基づいて永続タイプと永続位置を割り当てられます。この情報は,name データベースに格納されます。

次の hwmgr コマンドを使って name データベースの内容を表示できます。

# /sbin/hwmgr show component
HWID:  NAME    HOSTNAME  PERSIST TYPE    PERSIST AT
  62:  ata0    host12    BUS             pci0 slot 15
  45:  emx2    host12    BUS             pci0 slot 1
 228:  mchan0  host12    CONTROLLER      pci1 slot 9
.
.
.

コンポーネントは,複数のスロットを提供する PCI (Peripheral Component Interconnect) のようなバスにインストールされている場合があります。前記の出力では,PERSIST AT フィールドは以下で構成されています。

特定のコンポーネントの下の 2 次コンポーネントのトポロジを表示するは,hwmgr view hierarchy コマンドを次のように使って,コンポーネントのハードウェア識別子を指定します。

#  /sbin/hwmgr view hierarchy -id 610
HWID:   hardware hierarchy
-------------------------------------------------------
 610:   bus pci2
 611:     connection pci2slot0
 617:       scsi_adapter itpsa0
 618:         scsi_bus scsi0
 674:           disk bus-0-targ-5-lun-0 cdrom51
 613:     connection pci2slot1
 619:       scsi_adapter itpsa1
 620:         scsi_bus scsi1
 208:           disk bus-1-targ-0-lun-0 dsk1188
 209:           disk bus-1-targ-1-lun-0 dsk1189
 210:           disk bus-1-targ-2-lun-0 dsk1190
 615:     connection pci2slot2
 621:       network tu0
 
 

3.4.19.2    コンポーネントの再配置

コンポーネントは次のようにして再配置します。

  1. 次のコマンドを使って,再配置するコンポーネントの現在のバスとスロット位置を調べます。この例では,メモリ・チャネル・カード (mchan) を指定します。

    # /sbin/hwmgr show name | mchan
    228:  mchan0  host12             CONTROLLER      pci1 slot 9
    

  2. 次のようにコンポーネントの新しい位置を指定して,ハードウェア name データベースを更新します。

    # /sbin/hwmgr edit name -entry mchan0 parent_num 5 slot 8
    

    このコマンドは,コンポーネント mchan0 を PCI バス 1 (pci1),スロット 9 の現在の位置から,PCI バス 5 (pci5),スロット 8 の新しい位置に再配置します。

    注意

    使用したい名前と位置のペアが取得できない場合には,hwmgr remove name コマンドまたは hwmgr delete entry コマンドを使って,データベース内の既存の名前を削除する必要があるかもしれません。ただし,既存の (移動しない) コンポーネントの必要なエントリを削除しないよう注意してください。

  3. 次のようにして,システムをシャットダウンします。

    # /usr/sbin/shutdown now
    

  4. コンポーネントを新しいスロットに物理的に再配置します。

  5. システムをリブートし,次のようにしてシングルユーザ・モードにします。

    >>> boot -flags s
    

  6. コンポーネントが正しい位置で検出されたことを確認します。

    # /sbin/hwmgr show name | mchan
    228:  mchan0  host12             CONTROLLER      pci5 slot 8
    

  7. 次のようにして,システムをマルチユーザ・モードにブートします。

    # [Ctrl/D]
    228:  mchan0  host12             CONTROLLER      pci5 slot 8
    

問題 考えられる解決策

hwmgr コマンドを使用したときにコンポーネントが表示されない。

ほとんどの場合,この問題は新しい位置にコンポーネントを正しくインストールできなかったときに生じる。

システムをシャットダウンし,コンソール (>>>) のコマンドを使って,コンポーネントが構成の一部として表示されることを確認する。表示されたら,再配置の手順を再度実行する。

コンポーネントが表示されない場合,コンポーネントのテストと検証の手順についてハードウェアのドキュメントを参照する。

コンポーネントは表示されるが,エラーが発生しているように見える。

コンポーネントがコンソールに表示された場合には,システムをリブートし,ブート・メッセージにコンポーネント固有のエラーが表示されないことを確認する。このようなメッセージは,/var/adm ディレクトリのログ・ファイルに記録されていることもある。

システムが正常にリブートするが,ブート後にコンポーネントエラーが発生する。

Event Viewer (EVM) を使用してバイナリ・イベント (binlogd) を表示するには,次のコマンドを使う。

# sysman event_viewer

イベント・ビューアと関連する診断ツールの詳細については,使用するオペレーティング・システムのバージョンに対応する システム管理ガイドを参照すること。

正常なリブートと再配置が行われたにもかかわらず,1 つ以上のコンポーネントの名前が依然として正しくない。

コンポーネントを新しい位置に正しく挿入したことを確認する。

コンポーネントがシステムに接続されており,Hardware Manager から認識できることを確認したら,再配置の手順を再度実行する。