device is busy エラーが発生して操作ができなくなる

HP ProLiant ML 350 G4 + Ultrium 448i + NetVault 7.1.1 の環境で、NetVault GUI の Device Management 上でテープデバイスのアイコンに赤い×がついており、BLANK・UNLOAD・CHECK などの操作を実施しようとしても、device is busy とエラーが表示されて操作できないことがある。

NetVault サービスの再起動でも回復できなかったため、OS 再起動を試みようと思ったが、その前にと思って Web を検索していたところ、HP 社のサイトで以下のような技術文書を発見。

NetVaultと Insight Management Agentを同時利用した場合の device is busyについて

この技術情報は以前も見たことがあるのだが、その時の発生条件はオートローダを利用している場合だけ、だったはず。ところが、単体テープドライブでもテープを交換した際に同様の現象が起こることがあるとなっている。

対処法としては、Insight Management Agentの storage agent にある scsi agent の停止によって回避可能らしい。作業としては、scsi agent を停止させた上で scsi agent が動作しなくなるようにリネームすればよい。

# /opt/compaq/storage/etc/cmascsid stop
# mv /opt/compaq/storage/etc/cmascsid /opt/compaq/storage/etc/cmascsid.org
# shutdown -r now

最後に OS の再起動が必要なようだ。Insight Management Agent のサービス再起動で済むような気もしたが、念のため OS を再起動。それ以来、現在まで同様の症状は発生していない。

併せて、scsi agent を停止させることによる制限事項については以下の通り。

scsi agentを停止させることでの Insight Management Agentが受ける機能制限は下記になります。

  • 全ての SCSI HBAの先に接続したデバイスの監視が不可に

scsi agentを停止することで、利用している SCSI HBAの種類に限らず、SCSI HBA関連の監視が出来なくなります。但し、SmartArray関連は scsi agentではなく ida agentと云う別の agentを利用していますので、SmartArray関連の監視には影響ありません。

本件で重大な影響を受ける構成は、下記になります。

  • SCSI HBAに HDDを接続し Linuxの機能によるソフトウェア RAIDを利用している場合

例えば、ソフトウェア RAID-1を構成している場合で 1基の HDDが故障しても scsi agentが稼動していないため、HDDの障害情報の取得が行えません。

TAPEデバイスの情報については、NetVault側で確認できます。

NetVaultを利用する場合には、SCSI HBAには HDDを接続せずに、SmartArray HBAに HDDを接続する構成を採用してください。