/ (ルート)、/usr、あるいは /var といったファイルシステムが動作しているシステムディスクに関するトラブルへの対処方法について説明します。
以下に該当する場合は、それぞれに記載されている対処を行ってください。
(1) ルートファイルシステムなどのバックアップを採取する。
説明
システムディスクをミラーリングすることによって、一方の物理ディスクが故障したとしてもデータは保護されます。しかし、多重故障などによる致命的な障害や操作ミスによって破損されたデータを復元するためには、あらかじめバックアップを採取しておく必要があります。
対処
「6.1.1 バックアップ手順」を参照してください。
(2) システムはブートできるが、システムディスクのデータが不当である。
説明
何らかのトラブルによって、システムディスクのデータが不当となり、あらかじめ採取されたバックアップデータをリストアすることによって、復旧しなければならない場合があります。
対処
「6.1.2 リストア手順 (システムがブートできる場合)」を参照してください。
(3) システムがブートできない (主ブートディスク装置の故障)。
説明
システムディスクがミラーリングされていても、ブートに失敗する場合がありえます。例えば、ブートディスク装置内にあるブート中にアクセスされるファイルの一部が物理的に破壊されている場合、あるいは不当な手順によるディスク交換が行われた場合などが該当します。
失敗したブート中のコンソールメッセージなどを調査して、本現象と推測される場合には、ミラーリングしているもう一方のブートディスク、すなわち、副ブートディスク装置からのブートを試みてください。
対処
1) 副ブートディスク装置の名前を確認します。OpenBoot の ok プロンプトから、次の方法で確認できます。
ok printenv boot-device |
この例では、左端の /pci@1f,4000/scsi@3/disk@0,0:a が主ブートディスク装置名で、2 番目の /pci@1f,4000/scsi@3/disk@1,0:a が副ブートディスク装置名です。
3 多重以上のミラー構成の場合、副ブートディスク装置は複数存在します。
2) 副ブートディスク装置からブートします。
ok boot /pci@1f,4000/scsi@3/disk@1,0:a |
3) 正常にブートできた場合は、主ブートディスク装置の故障原因を調査して、ディスク交換などによる復旧を行ってください。
参照
ディスク交換の手順については、「D.8 sdxswap - ディスクの交換」または「5.3.4 ディスク交換」を参照してください。
上記の手順で復旧できない場合は、主ブートディスク装置のデータ異常以外に原因があるか、あるいは副ブートディスク装置のデータも異常であることが考えられます。
副ブートディスク装置のデータも異常と思われる場合は、「(4) システムがブートできない (ブートディスクのデータ破壊)。」を参照してください。
(4) システムがブートできない (ブートディスクのデータ破壊)。
説明
何らかのトラブルによって、システムディスクのデータが不当となり、あらかじめ採取されたバックアップデータからの復旧が必要となる場合があります。
副ブートディスク装置からの復旧に失敗した場合は、以下の手順で復旧してください。
対処
「6.1.3 リストア手順 (システムがブートできない場合)」を参照してください。
(5) システムがブートできない (ブートディスク装置名の誤り)。
説明
システムディスクをミラーリングすると、システムのブートディスク装置名 (boot-device パラメタ) が自動的に設定および更新されます。しかし、一部のシステムでは、GDS が正しい装置名を認識することができないため、誤った装置名が設定されることがあります。
その場合、以下のコンソールメッセージが出力され、システムのブートに失敗します。
ok boot
Rebooting with command: boot
Boot device: /ssm@0,0/pci@18,700000/pci@1/scsi@2/sd@0,0:a File and args:
Evaluating: boot
Can't open boot device |
この例ではブートディスク装置名として、/ssm@0,0/pci@18,700000/pci@1/scsi@2/sd@0,0:a が使用されていますが、正しい装置名は、/ssm@0,0/pci@18,700000/pci@1/scsi@2/disk@0,0:a であるため、ブートに失敗します。
対処
bootdevtab ファイル (ブートディスク装置名ファイル) を作成し、正しい装置名が設定されるようにします。
1) 正しいブートディスク装置名を指定して、システムをブートします。
ok boot /ssm@0,0/pci@18,700000/pci@1/scsi@2/disk@0,0:a |
正しいブートディスク装置名は、以下の方法で確認できます。
1-1) システムに接続されているディスク装置名を表示します。
後の手順で使用するために、結果を記録しておいてください。
ok show-disks |
1-2) 表示結果の a) より、/ssm@0,0/pci@18,700000/pci@1/scsi@2/sd@0,0:a の正しいブートディスク装置名は、/ssm@0,0/pci@18,700000/pci@1/scsi@2/disk@0,0:a になります。
2) bootdevtab ファイルを作成します。
2-1) 雛型を作成します。
# sdxinfo -x BootDev > /tmp/bootdevtab |
2-2) 雛型を編集します。
# vi /tmp/bootdevtab 編集前: c0t0d0 /ssm@0,0/pci@18,700000/pci@1/scsi@2/sd@0,0 c1t0d0 /ssm@0,0/pci@1c,700000/pci@1/scsi@2/sd@0,0 編集後: c0t0d0 /ssm@0,0/pci@18,700000/pci@1/scsi@2/disk@0,0 c1t0d0 /ssm@0,0/pci@1c,700000/pci@1/scsi@2/disk@0,0 |
1 つ目のフィールドには、物理ディスク名を指定します。
2 つ目のフィールドには、対応するブートディスク装置名を指定します。いずれのフィールドも、パーティションの指定 (s0 や :a など) は不要です。
雛型には、GDS が推定したブートディスク装置名が出力されます。出力されたブートディスク装置名が誤っている場合は、正しい装置名に変更してください。正しい装置名は、1-1)、1-2) の手順で確認できます。また、ブートディスク装置名は 2 つ出力される場合があります。その場合は、どちらか一方を削除し、正しい装置名に変更してください。
注意
各フィールドはスペースまたはタブで区切ります。1 カラム目が # で始まる行はコメントとして扱われます。
雛型には、ルートクラスに登録されている、すべてのディスクが出力されます。
ブートディスクとして使用される可能性があるディスクを、bootdevtab ファイルで指定してください。以下のディスクが該当します。
主ブートディスク
副ブートディスク
ブートディスクのグループに接続されるスペアディスク
代替ブート環境のブートディスクとスペアディスク
(PRIMECLUSTER GDS Snapshot のシステムボリュームのスナップショット機能を使用する場合)
また、以下のディスクは、bootdevtab ファイルで指定する必要はありません。bootdevtab ファイルから削除するかコメントにしてください。そのまま残しておいても影響はありません。
ブートディスクとして使用されないディスク
bootdevtab ファイルで指定しなくても、GDS が正しいブートディスク装置名を推定できたディスク
FC-AL 接続された内蔵ディスクは、ディスク交換するとブートディスク装置名が変わります。
ディスク交換しても bootdevtab ファイルを再作成しなくてよいよう、以下のように指定してください。最後の @ の後に * を指定します。* の箇所は GDS が自動的に補完します。
編集前: c0t0d0 /ssm@0,0/pci@1d,700000/SUNW,qlc@1/fp@0,0/ssd@w50020f230000798c,0 編集後: c0t0d0 /ssm@0,0/pci@1d,700000/SUNW,qlc@1/fp@0,0/disk@* |
MPLB ディスクの場合、各パスのブートディスク装置名を指定してください。
編集前: # mplb0 c12t16d0 /pci@1f,4000/fibre-channel@4/disk@10,0 c13t16d0 /pci@1f,4000/fibre-channel@5/disk@10,0 # mplb1 c12t17d0 /pci@1f,4000/fibre-channel@4/disk@11,0 c13t17d0 /pci@1f,4000/fibre-channel@5/dsik@11,0 編集後: # mplb0 c12t16d0 /pci@1f,4000/fibre-channel@4/sd@10,0 c13t16d0 /pci@1f,4000/fibre-channel@5/sd@10,0 # mplb1 c12t17d0 /pci@1f,4000/fibre-channel@4/sd@11,0 c13t17d0 /pci@1f,4000/fibre-channel@5/sd@11,0 |
2-3) 雛型を /etc/opt/FJSVsdx/lib ディレクトリに配置します。
# cd /etc/opt/FJSVsdx/lib # mv bootdevtab bootdevtab.old (すでに bootdevtab ファイルが存在する場合) # cp /tmp/bootdevtab bootdevtab # chmod 600 bootdevtab |
2-4) bootdevtab ファイルが正しく作成されたことを確認します。
# sdxinfo -x BootDev |
ブートディスク装置名が、正しく出力されることを確認します。
3) システムのブートディスク装置名 (boot-device パラメタ) が正しく設定されることを確認します。
3-1) システムを停止し、正しいブートディスク装置名を指定してブートします。
# init 0 ~ ok boot /ssm@0,0/pci@18,700000/pci@1/scsi@2/disk@0,0:a |
3-2) boot-device パラメタの設定を確認します。
# eeprom boot-device |
boot-device パラメタには、等価性コピーが完了したブートデバイスの装置名が設定されます。等価性コピーが完了していない場合は、完了してから確認してください。
ルートクラスにディスクを追加し、そのディスクを bootdevtab ファイルで指定する必要がある場合は、ディスクをグループに接続する前に、2) の手順で bootdevtab ファイルを再作成してください。
そのディスクがグループに接続され等価性コピーが完了した時点で、boot-device パラメタに追加されます。
等価性コピーが完了するまでに bootdevtab ファイルを再作成しなかった場合は、等価性コピーが完了した時点で、GDS が推定したブートディスク装置名が boot-device パラメタに追加されます。その場合は、bootdevtab ファイルを再作成した後、以下の手順で、正しいブートディスク装置名を設定してください。または、システムをリブートすると、正しいブートディスク装置名が設定されます。
# eeprom boot-device # eeprom boot-device="...
/ssm@0,0/pci@18,700000/pci@1/scsi@2/disk@1,0:a"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
↑正しいブートディスク装置名 |
(6) システムがブートできない (ufs ロギングのエラー)。
説明
「6.1.1 バックアップ手順」の「a) CD-ROM 装置 (またはネットワーク) からブートしてバックアップを行う場合」の方法でシステムディスク上の ufs ファイルシステムをバックアップする際に、手順 a1) のディスク切断操作を実行しなかった場合、OS 起動時に以下のようなエラーメッセージが出力され、OS が起動できないことがあります。
WARNING: Error processing ufs log data during scan WARNING: ufs log for /var changed state to Error WARNING: Please umount(1M) /var and run fsck(1M) WARNING: Error accessing ufs log for /var; Please run fsck(1M) mount: 入出力エラー mount: /dev/sfdsk/RootClass/dsk/varVolume をマウントできません。 mount: mount-point /var/run does not exist. |
対処
バックアップしたファイルシステムをリストアしてください。
リストア方法については、「6.1.2 リストア手順 (システムがブートできる場合)」または「6.1.3 リストア手順 (システムがブートできない場合)」を参照してください。
[説明] の操作を行っても、異常な現象がすぐには発生しないことがあります。
また、[説明] に示した OS のメッセージに従って fsck(1M) コマンドを実行すると、OS が起動できて一見復旧できたように見えることがあります。しかし、これらの場合も、ファイルシステムの内容やミラーの等価性は保証されません。
[説明] の操作を行った場合は、必ずファイルシステムをリストアしてください。