1 Reply Latest reply on Oct 4, 2013 8:56 AM by dermute

    How to failover Solaris 11 zone to another host containing BE?

    sudhir_harikant

      I have a zone which was created on a host. it was working up and fine. I installed a software patch which created a backup BE. Now i stopped the zone and exported the zpool on another host. When i attach the zone on the other host it gives me an error that cannot identify the BE to boot into. However, if the same zone is brought online on the node where it was created it works fine.

       

      Q1: Where does the zone store information related to its BE ?

      Q2: Can we failover zones to other hosts which have BE?

      Q3: If we can failover zones with BE and the original BE is deleted from the host where the BE was created, can it failback to that host?

       

       

      [root@vcssparc04 ~]#zoneadm -z zone-shared attach

      Progress being logged to /var/log/zones/zoneadm.20130926T045727Z.zone-shared.attach

      Unable to determine which boot environment to activate.  Candidates are:

      Zone Boot Environment Active Global Zone Boot Environment

      --------------------- ------ ------------------------------------

      solaris               on     19a47b93-abcf-efd4-de75-8f6f863e6607

      solaris-1             on     f52063ba-f0ac-6171-a936-a5236b918a8d

       

      Use the following command to attach a specific zone boot environment:

      zoneadm -z zone-shared attach -z <zbe>

                          Result: Attach Failed.

      [root@vcssparc04 ~]#cat /var/log/zones/zoneadm.20130926T045727Z.zone-shared.attach

      [Thu Sep 26 10:27:27 IST 2013] ==== Starting: /usr/lib/brand/solaris/attach zone-shared /zonepool ====

      [Thu Sep 26 10:27:27 IST 2013] Progress being logged to /var/log/zones/zoneadm.20130926T045727Z.zone-shared.attach

      [Thu Sep 26 10:27:27 IST 2013] Pinning datasets under zonepool

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool/rpool

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool/rpool/ROOT

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool/rpool/ROOT/solaris

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool/rpool/ROOT/solaris@install

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool/rpool/ROOT/solaris@2013-09-25-14:30:20

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool/rpool/ROOT/solaris-1

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool/rpool/ROOT/solaris-1/var

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool/rpool/ROOT/solaris/var

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool/rpool/ROOT/solaris/var@install

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool/rpool/ROOT/solaris/var@2013-09-25-14:30:20

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool/rpool/VARSHARE

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool/rpool/export

      [Thu Sep 26 10:27:27 IST 2013] Pinning zonepool/rpool/export/home

      [Thu Sep 26 10:27:29 IST 2013] Unable to determine which boot environment to activate.  Candidates are:

      [Thu Sep 26 10:27:29 IST 2013] Zone Boot Environment Active Global Zone Boot Environment

      --------------------- ------ ------------------------------------

      [Thu Sep 26 10:27:29 IST 2013] solaris               on     19a47b93-abcf-efd4-de75-8f6f863e6607

      [Thu Sep 26 10:27:29 IST 2013] solaris-1             on     f52063ba-f0ac-6171-a936-a5236b918a8d

      [Thu Sep 26 10:27:29 IST 2013]

      [Thu Sep 26 10:27:29 IST 2013] Use the following command to attach a specific zone boot environment:

      zoneadm -z zone-shared attach -z <zbe>

      [Thu Sep 26 10:27:29 IST 2013] Unpinning datasets under zonepool

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool/rpool

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool/rpool/ROOT

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool/rpool/ROOT/solaris

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool/rpool/ROOT/solaris@install

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool/rpool/ROOT/solaris@2013-09-25-14:30:20

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool/rpool/ROOT/solaris-1

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool/rpool/ROOT/solaris-1/var

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool/rpool/ROOT/solaris/var

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool/rpool/ROOT/solaris/var@install

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool/rpool/ROOT/solaris/var@2013-09-25-14:30:20

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool/rpool/VARSHARE

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool/rpool/export

      [Thu Sep 26 10:27:30 IST 2013] Unpinning zonepool/rpool/export/home

      [Thu Sep 26 10:27:30 IST 2013]                     Result: Attach Failed.

      [Thu Sep 26 10:27:30 IST 2013] Exiting with exit code 254

      [Thu Sep 26 10:27:30 IST 2013] ==== Completed: /usr/lib/brand/solaris/attach zone-shared /zonepool  ====

       

      TIA,

      Sudhir

        • 1. Re: How to failover Solaris 11 zone to another host containing BE?
          dermute

          This is really a problem with the new 'features' in solaris 11.

          As you may know, every ZFS dataset has an UID. In Solaris 11, every BE has a reference to an parent BE. You have to set this parent BE by yourself.

          An example:

           

          Get the UID of your current BE:

          zfs get -H -o value org.opensolaris.libbe:uuid rpool/ROOT/solaris-1

           

          .. and set the printed uid as parentbe-uid of your zones zpool:

          zfs set org.opensolaris.libbe:parentbe=<your-hex-uid-from-the-command-before> zonepool/rpool/ROOT/solaris

           

           

          That should work for you.