XenServerでiSCSI上のSRを見失い、no such deviceと言われてしまったときの対応
How to Identify If SCSI Storage Repository has Changed SCSI IDsに書いてあります。
XenServer5.6SP2, 47101pで確認。
ちょっとわかりにくいので自分用のメモもかねてまとめておくと:
現在の正しいSCSIidを取得する
# xe sr-probe type=lvmoiscsi device-config:target=<iSCSIのIPアドレス> device-config:targetIQN=<IQN> Error code: SR_BACKEND_FAILURE_107 Error parameters: , The SCSIid parameter is missing or incorrect, <?xml version="1.0" ?> <iscsi-target> <LUN> <vendor> NAS </vendor> <LUNid> 1 </LUNid> <size> 1795726245888 </size> <SCSIid> cccccccccccccccccccccccccccccccccccccccccccccccccc ←これが正しいSCSIid </SCSIid> </LUN> </iscsi-target>
使えないpbdをunplug/destroyする
# xe sr-list type=lvmoiscsi uuid ( RO) : <UUID-OF-SR> name-label ( RW): iscsi name-description ( RW): iSCSI SR [<IPADDR> (<IQN>)] host ( RO): <FQDN> type ( RO): lvmoiscsi content-type ( RO):
SRのUUIDを控えておく。
# xe pbd-list sr-uuid=<UUID-OF-SR> uuid ( RO) : <UUID-OF-PBD> host-uuid ( RO): <UUID-OF-HOST> sr-uuid ( RO): <UUID-OF-SR> device-config (MRO): target: <IPADDR>; targetIQN: <IQN>; SCSIid: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx currently-attached ( RO): false
pbdとホストのUUIDを控えておく。ここのSCSIidが先に調べたIDと異なっているはず。
# xe pbd-unplug uuid=<UUID-OF-PBD> # xe pbd-destroy uuid=<UUID-OF-PBD>
unplug, destroyを実行。
# xe pbd-list sr-uuid=<UUID-OF-SR>
destroyしたので何も出なくなる。
正しいSCSIidを指定してpbdを作成
# xe pbd-create sr-uuid=<UUID-OF-SR> host-uuid=<UUID-OF-HOST> device-config:target=<IPADDR> device-config:targetIQN=<IQN> device-config:SCSIid=ccccccccccccccccccccccccccccccccccccccccccccccccc <NEW-UUID-OF-PBD>
設定が間違っていなければ、新しく作成されたPBDのUUIDが表示される。
# xe pbd-plug uuid=<NEW-UUID-OF-PBD>
それをplugする。今度は正しくplugされ、XenCenterからも見えるようになるはず。
補足
- SR
- Storage Repositoryの略。XenServerから使うストレージのこと
- pbd
- Physical Block Deviceの略。実際の物理的なデバイスのこと