HP-UXのデバイス管理は他のOSと比べてかなり進化している。
例えるなら、Windowsのデバイスマネージャをコマンドプロンプトで表示させた様な感じかもしれない。


Windowsのデバイスマネージャ画面
これが、HP-UXの場合は下記のようになる。


HP-UXのioscan -f画面(画像クリックで拡大)
※ 更に下位のデバイスを表示することも可能。

詳細は他のHP-UX解説サイトにお願いするとして、
ここでは、HP-UX11i Version 3から加わった新しいデバイス管理について
説明することとします。

HP-UX11i Version 3 では、SecurePath(AutoPath)に相当する
マルチパスデバイスの管理がOSレベルで実装されているのが特徴だ。

マルチパスはサービス停止時間の限られるサーバの世界では
もはや当たり前のとも言える、対障害及び高速化機能である。

やっていることは簡単で、外部のストレージ(ディスク・テープ装置など)との
接続に1本のデータ線で接続するのではなく、複数の線で接続すれば、
たとえ1本が故障などで使えなくなったとしても、問題が発生しない。
また、複数の線で同時に通信すれば、より高速にアクセスができる・・・というものだ。

だが、これにも欠点が存在する。
それは管理が複雑化することだ。

サーバー側からすれば、同じ外部機器への接続がいくつも存在することになり
構成によっては、たった1つのストレージ領域を追加するだけで、8個の接続が
登録される・・・などという状態になってしまう事がある。

これに対し、HP-UX11i Version 3 では、
ストレージ固有の番号(WWID)で機器を識別し、そのデバイスへの複数の
接続を1つのデバイスに集約する機能を有している。

つまり、従来であれば1つ追加で8個のデバイスとして認識していた所が、
HP-UX11i Version 3 からは、1つ追加で1つのデバイスで済むのである。

ただ、上記の機能は従来とのOSとの互換性の観点から、
デフォルトではあまり有用に機能していない。
これはどういうことかと言うと、デフォルトではHP-UX11i Version 3 からの
新しいデバイスの他に、従来のデバイスも存在しているからだ。

つまり、従来であれば、1つ追加で8個のデバイスが見えていたところが、
従来の8個のデバイスに新たなデバイスが1個追加され、9個のデバイスが
作成されてしまうのである。
(※ ただし、両者は同時に表示できないため、見た目の上では問題ない)

これを解消するのは簡単だ。
デフォルトで有効になっている従来のデバイス管理を無効にしてやればいい


従来のデバイス管理
H/W Path には、実際の接続先がわかり易く表記されている。


これが、HP-UX11i Version 3 からの新しいデバイス管理
H/W Path が実際の接続先を示さず、仮想的になっています。

HP-UX11i Version 3 では、従来のデバイス管理をLegacy
新しいデバイス管理をPersistent或は、Agileと呼びます。
両者のデバイスを対比付けるには、次のコマンドを利用します。

さて、Legacyを無効にする方法ですが、
デバイスの作成/削除コマンドのinsfとrmsfが拡張されています。


これで無効になりました。
ioscan -fnkC disk などとコマンドを入力してもLegacyは表示されません。
ただし、これでは不十分です。


過去に接続されていたデバイスとして登録されています。
再度デバイスを接続した際、又はLegacyを有効にした際にこの記録より
デバイスファイルを復元してくれる便利な機能なのですが、
ここに記録されているデバイスと同じインスタンス(I)は利用できないのです。

つまり、Agileで0、1を利用しており、Legacyで2、3を使っていた場合などは、
Legacyを無効にしたとしても、新たにデバイスを追加した場合には
2、3は予約されているため、4以降を使うことになりインスタンスが崩れてしまいます。

何故インスタンスの心配をするのかというと、
Legacyのデバイスでは、Ext_busのインスタンスと外部機器のIDが
その配下のデバイス名のベースとなっていましたが、
Agileのデバイスでは、そのデバイスのインスタンス名がそのまま
デバイス名のベースとなってしまう為です。

つまり、上記の場合は
/dev/disk/disk0 /dev/disk/disk1 /dev/disk/disk4 となる。

これを解消するには、上記の登録を削除することです。


これで、Legacyの呪縛から解き放たれました。