Context

I had a problem once which caused the crash of a migrating LPAR, because of a SCSI reserve on my rootvg (rootvg’s hdisk should be ALWAYS set with the no_reserve attribute for LPM, wether they are  managed by MPIO, HDLM or Powerpath, check my post about this ).

LPM validation loophole

The trick is that LPM validation doesn’t detect the HDLM reserve… and says that you’re good to go with the migration.

Everything works fine, till the end of the migration. If your reference code on both sides is stuck to « 2005 » for serveral minutes, you’re good to force shutdown the LPAR, because you just lost your rootvg disk…

Workaround

In that case, you have many options to unlock the situation :

  • You can migrate back using inactive live partition migration (lpar stopped), and clean the mess by restarting on the right frame, then try migrating again…. boring !!!
  • Ask the SAN guys to change the zoning of your LUNs, to a server with HDLM , which will be able to remove the reserve on the disks, then ask them to re-zone the LUNs to your actual server. Not so exciting, huh?
  • Or you can have fun, by doing it yourself, without asking anything to anybody : we’ll have to create a new virtual FC adapter with forced WWNs (of my crashed LPAR), in order to see and clear the LUNS on my working HDLM server :

So, we need  to create a virtual FC adapter on the lpar #25 (my « working » LPAR), with the slot id 3, connected to the FC client adapter (slot id 4) hosted by the lpar #15, with the WWNS c0507604f3d10008 (npiv) and c0507604f3d10009 (lpm) (these WWNs belong to my crashed LPAR) :

  •  Add a client FC adapter on the other LPAR (the running one) , by specifying the WWNs we want to use :
hscroot@HMC# chhwres -r virtualio -m MyP795 -o a --id 25 \
--rsubtype fc -s 3 -a 'adapter_type=client,remote_lpar_id=15,remote_slot_num=4,\
wwpns="c0507604f3d10008,c0507604f3d10009"'
  • Let’s add via DLPAR a FC client adapter on the virtual server
  • Let’s discover the newly created adapter and perform a vfcmap on the VIOS, to « link it » to a physical port :
root@vio# cfgdev
root@vio# lsmap –all -npiv
root@vio# vfcmap -vadapter vfchost5 –fcp fcs0
  • On the LPAR, let’s check if we see the FC adapter and its attached disks, and then clear the reserve on the disks by using HDLM command dlmpr:
root@lpar# cfgmgr ( fcs3 discovered)
root@lpar# lspv
root@lpar# dlmpr –k
Self Reservation Key : [0x00000005f699234c]
hdisk0 Reservation Key : [0x0000000000000000]
hdisk1 Reservation Key : [0x0000000000000000]
hdisk2 Reservation Key : [0x00000005f699144c]*
 Regist Key : [0x00000005f699144c] , Key Count : 4
hdisk3 Reservation Key : [0x0000000000000000]

KAPL10665-I The dlmpr utility completed.
root@lpar# # /usr/DynamicLinkManager/bin/dlmpr –c hdisk2
self Reservation Key : [0x00000005f699234c]
hdisk2    Reservation Key : [0x00000005f699144c]*
Regist Key : [0x00000005f699144c] , Key Count : 4
KAPL10665-I The dlmpr utility completed.
root@lpar# rmdev –Rdl fcs3
  • Ok now we’re clean on the LPAR.
  • On theVIOS , delete the vfchost and take it back via DLPAR
root@vio# rmdev –Rdl vfchost5

Tadaaa ! Now you can successfully restart your crashed LPAR, it will boot just fine 🙂

Share Button
LPM migration failed with reference code 2005 (lpar hung up)
Taggé sur :            

2 thoughts on “LPM migration failed with reference code 2005 (lpar hung up)

  • 08/11/2013 à 11 h 36 min
    Permalink

    Bonjour,

    Je réagi à ça :
    > Add a server FC adapter on the VIOS (via DLPAR), by specifying the WWNs we want to use :
    > hscroot@HMC# chhwres -r virtualio -m MyP795 -o a –id 25 \
    –rsubtype fc -s 3 -a ‘adapter_type=client,remote_lpar_id=15,remote_slot_num=4,\
    wwpns= »c0507604f3d10008,c0507604f3d10009″‘

    Je ne suis pas sûr d’avoir tout bien compris, mais c’est pas plutôt un adaptateur de type serveur (adapter_type=server) qu’on veut créer sur le VIOS ? De plus, j’imagine qu’il faut spécifier une partition (-p MyP795-vios).

    Ce que je cherche et qui m’a fait arriver sur votre page est ceci : est-il possible d’affecter un des (64 ou 128 je ne sais plus) ports de la carte NPIV au VIOS directement (pour lui affecter des disques qu’il redistribuerait en vSCSI). Je ne suis pas arrivé à créer un VFC client sur un VIOS, mais peut-être qu’on peut le faire « directement »…

    Merci en tout cas pour votre article,
    Jérôme.

    • 08/11/2013 à 12 h 23 min
      Permalink

      Bonjour Jérôme,

      Mmmh… effectivement il y a une coquille dans l’article, je corrige , ça aurait dû être :
       » Add a client FC adapter on the other LPAR (the running one) , by specifying the WWNs we want to use : »
      –> en fait on rattache les disques zonés sur ma LPAR (à laquelle je repique les WWN) à une autre LPAR qui fonctionne, histoire de pouvoir l’utiliser pour virer les locks sur ces mêmes disques, sans avoir à faire une action SAN, tout se passe au niveau système, ce qui est bien plus réactif comme méthode (mais plus poilu 🙂 )

      Pour ce qui est de spécifier la partition, c’est fait avec l’option –id 25, c’est pour ça que je précise au-dessus que ma LPAR qui marche a l’id 25. Tu peux soit spécifier un nom, soit un id (je préfère l’id) pour les opérations de DLPAR.

      Je ne comprends pas bien ta dernière question : tu veux faire du VSCSI (mapping des LUNs sur ton VIO, et création de VTD alloués à des servers virtuels ensuite, tout se fait au niveau du VIO ) , ou du NPIV ( mapping direct sur les WWN des virtual adapters sur les serveurs virtuels, le VIO ne sert que de « passe-plat » ) ?

      pour le VFC client, il te suffit de créer un adapter de type « Fibre Channel adapter », tu spécifie la partition à laquelle tu veux le linker et l’id de l’adapter virtuel du client, et tu exécute ton cfgdev+vfcmap, et normalement c’est tout, tu dois voir tes luns (zonées sur le WWN de ton virtual adapter client).

      J’espère avoir un peu répondu à tes questions, n’hésite pas si tu en as d’autres

      Bon WE 🙂

Laisser un commentaire