Hardware (UNIX server product)
1822078 メンバー
3735 オンライン
109640 解決策
新規ポスト

インスタンス番号重複について

 
N.Hanyu
貴重なコントリビューター

インスタンス番号重複について

DAT装置のインスタンス番号が、"1"になっていたため、

ioinitを用いて、"0"に変更しようとしたところ、

下記、ERRが出力されました。

ioinit:Instance number 0 already exists for class tape

そこで、質問ですが、ioscanで見る限り、

tapeのクラスには、インスタンス番号"1"

のものしかありません。

一応、stmでremapなどをしてみましたが、

結果は変わらずでした。

インスタンス番号"0"は、いったい何で使われて

いるか?もしくは、このような状況で、

インスタンス番号を上書きするなどの

やり方を教えてください。
12件の返信12
テレコム担当者
尊敬されているコントリビューター

インスタンス番号重複について

OS のバージョンはいくつですか?

古いバージョン(HP-UX10.X)などでバグがあったように記憶してます。

そのときは強制的にインスタンスを変更するためのプログラムが提供されました。

パッチが出来たかは知りません。
N.Hanyu
貴重なコントリビューター

インスタンス番号重複について

すいません。

かんじんなこと書いてないですね。

OSは、11.11です。

Ku_O
レギュラーアドバイザー

インスタンス番号重複について

おそらく以前他のインターフェースにつなげていたか、異なる SCSI ID にしていたテープドライブにインスタンス番号"0" が使われています。

そのあたりの情報は /etc/ioconfig と /stand/ioconfig ファイルに書かれていますが、バイナリファイルなので簡単には編集することはできません。

一度つなげたドライブを外す前に rmsf コマンドでそのあたりの情報を消しておくと、次に違うパスにドライブをつなげてもインスタンス番号"0"になるんですけどね。外してしまっているのであれば、rmsf -a <デバイスファイル名> でやってみるという手もありますが、うまく消えてくれるか自信がないです。

ではどうするかというと、ioinit というコマンドを使います。デバイスのリストを infile とかの名前でテキストファイルとして作っておき、2つの ioconfig ファイルを移動させた(消した)後にマシンを single user mode で起動します。起動したら、

# cd /stand

# /sbin/ioinit -c

# /sbin/ioinit -f /stand/infile

で、リブートします。ただ infile の作り方を間違えると正しく ioconfig ファイルが作れませんし、作り方もマシンと構成によっていろいろあるので、大変です。

もし OS インストール後ハードウェアの増設を一切やってないのであれば、ioconfig ファイルを移動後にリブートするだけで OK です。増設してるとその構成によってはディスクなど他のデバイスのインスタンス番号も変わってしまうことがあり、最悪立ち上がらなくなるかもしれません。

どれをやるにしても OS のバックアップを取ることを忘れずにしてください。
rawsq
貴重なコントリビューター

インスタンス番号重複について

インスタンス番号はデバイスを認識した順に相対的に割り当てられます。

つまり絶対的な場所を示すH/Wパスとクラス内で相対的な値であるインスタンスを紐付けしてそれを保持しています。

その後、デバイスを本体からはずしてもこの情報は保存されたままとなります。

今回ioscanで見えたデバイスは2台目のtapeであり、1台目が過去に接続されていたと考えられます。

使われてはいないのですが、「使われるかもしれない」ので割り当てられている状態です。
N.Hanyu
貴重なコントリビューター

インスタンス番号重複について

kuniさん

以下の作業を実行してみましたが、結果は駄目でした

# rm /stand/ioconfig /etc/ioconfig

# shutdown 0

# ioinit -c

# ioinit -f infile

結局、同じERRが出ます。

ちなみにinfileは、

デバイスパス tape 0

の構成で、0じゃないインスタンス番号には出来ます。

でのすで、infileの記述にも問題はないかと・・・。

むぅ困りました。。。
rawsq
貴重なコントリビューター

インスタンス番号重複について

以前使っていたtapeのH/Wパスがわかれば

# rmsf -H H/Wパス -k

# ioinit -f infile -r

infile

H/Wパス tape インスタンス番号

でいけると思います。
N.Hanyu
貴重なコントリビューター

インスタンス番号重複について

 rawsqさん

># rmsf -H H/Wパス -k

># ioinit -f infile -r

やってみましたが、同様のERRが出力されました。

rmsf自体は、何のERRもなくプロンプトが戻ってきたので、

期待したのですが・・・。

 

rawsq
貴重なコントリビューター

インスタンス番号重複について

>やってみましたが、同様のERRが出力されました。

rmsfで利用するH/Wパスは「以前の」H/Wパスとなります。

「現在」ioscanで見えているものではありません。

「以前の」パスを利用しても×だったのでしょうか?
N.Hanyu
貴重なコントリビューター

インスタンス番号重複について

rawsqさん

以前のH/Wパスを使用しましたが、駄目でした。

rawsq
貴重なコントリビューター

インスタンス番号重複について

>以前のH/Wパスを使用しましたが、駄目でした。

似たようなことをディスクで行ったときはうまくいったのですが...

ちなみに差し支えなければ

# lssf /dev/rmt/0m

# ioscan -fnkC ctl

今回rmsfで使用したH/Wパス

を教えていただけるとサポートできるかも。
N.Hanyu
貴重なコントリビューター

インスタンス番号重複について

解決にも何にもなっていないのですが、

力技で、インスタンス番号"0"を付与してしまいました。

古いH/Wパスについているインスタンス番号を"0"→"2"

現在のDAT装置を"1"→"0"

これでとりあえずの問題は回避できました。

このサーバは、H/Wパスが違う状況で、別サーバIgnite

のリストアを行っているので、そこらへんのからみで

おかしくなってしまったのかなぁと踏みました。

でもちゃんとした説明が出来ないところが、寂しいです・・・。情けない。

ありがとうございました。
rawsq
貴重なコントリビューター

インスタンス番号重複について

rmsfでは×でioinitで変更するとOK。

OSが認識しているIOTree内にインスタンス番号0に関するごみがあったようですね。

問題解決できてよかったです。

おまけですが。

11.11であればQ4デバッガが充実しているのでこれを利用すればOSが認識しているIOTreeが表示できそうです。

Q4はOSを標準インストールしていれば多分組み込まれています。

詳細は米ITRCで"Q4"を使って検索かけると色々出てきますのでそちらを参照願います。

以下、ご参考まで。

# cp /usr/contrib/lib/Q4/sample.q4rc.pl ~/.q4rc.pl

# /usr/contrib/bin/q4pxdb /stand/vmunix

.

Procedures: 11

Files: 4

# q4 -p /stand/vmunix /dev/mem

@(#) q4 $Revision: A.11.11b $ $Thu Aug 17 18:05:11 PDT 2000 0

see help topic q4live regarding use of /dev/mem

Reading kernel symbols ...

q4: (warning) using nm(1) to get symbols from /stand/vmunix ..

Reading kernel data types ...

Initialized PA-RISC 1.1 (no buddies) address translator ...

Initializing stack tracer ...

q4: (warning) can't find executable perl - /usr/contrib/Q4/bin/perl

q4: (warning) /usr/contrib/Q4/bin/perl is not executable

q4: (warning) trying perl

script //.q4rc.pl

executable perl

version 5.00502

SCRIPT_LIBRARY = /usr/contrib/lib/Q4

perl will try to access scripts from directory

/usr/contrib/lib/Q4

--------------------loaded--------------------

Get the latest Q4 news by typing "news | more".

q4> include gio.pl

loading /usr/contrib/lib/Q4/gio.pl ...

Functions available in gio.pl:

IoTree Print I/O Tree structures

EirrSwitch Print EIRR switch table

Handle2Node Converts a handle to an io_node_t pointer

q4> run IoTree > iotree.txt

processing ...

................................................................................

(略)

.............................................................. done!

q4> exit

# vi iotree.txt

(略)

+----------------------------------------------------------------------

| NODE stape

+----------------------------------------------------------------------

addrof 0x20b9c00

parent 0x20b9b80 sibling 0 child 0

state CLAIMED type DEVICE flags F_SAVE_CONF

hw_addr 0 instance 0 class 0x20b8980

drv_info 0x7cc5f0 properties 0x2257680 cdio_priv 0x22576c0

init_func wsio_config

properties:

name flags size data

------------------------- ---------- ----- ----------

description 0x4 25 0x22576a0

name 0x4 10 0x2257660

id 0x4 16 0x2257620

drv_info:

name stape class tape

flags 0x31

b_major -1 c_major 205

cdio 0x7cb640 cdio_name wsio

gio_priv 0x20b8980 cdio_priv 0x21e9160

cdio_private drv_info for (wsio)

drv_data 0x7cc5d0 card_class 0x20b88c0

decode io_path probe 0

num_layers 2

cdio_private (node)

mkminor io_tape_minor build_mod 50

isc ptr 0x2254200

(略)

#