Flying Kernel Zone
From pressy's brainbackup
Solaris Kernel Zone @ Solaris Cluster @ LDOM
First of all prepair your LDOMs to allow more vNICs
root@t5ldlzc03:~# prtdiag | head -1 System Configuration: Oracle Corporation sun4v SPARC T5-8 root@t5ldvsvc01:~# ldm stop t5ldlzc03 Remote graceful shutdown or reboot capability is not available on t5ldlzc03 LDom t5ldlzc03 stopped root@t5ldvsvc01:~# ldm set-vnet alt-mac-addrs=auto,auto,auto,auto,auto,auto,auto,auto net0 t5ldlzc03 root@t5ldvsvc01:~# ldm set-vnet alt-mac-addrs=auto,auto,auto,auto,auto,auto,auto,auto net1 t5ldlzc03 root@t5ldvsvc01:~# ldm start t5ldlzc03 LDom t5ldlzc03 started
I will create a ZFS volume on a shared SAN LUN as a base/boot device for my kernel zone.
root@t5ldlzc03:~# uname -a SunOS t5ldlzc03 5.11 11.3 sun4v sparc sun4v root@t5ldlzc03:~# clnode show-rev 4.3_2.3.0 root@t5ldlzc03:~# pkg list entire NAME (PUBLISHER) VERSION IFO entire 0.5.11-0.175.3.6.0.5.0 i-- root@t5ldlzc03:~# zfs set compression=lz4 t5ldzmg03 root@t5ldlzc03:~# zfs create -V 20g t5ldzmg03/t5ldzmg03 root@t5ldlzc03:~# zfs get compression t5ldzmg03/t5ldzmg03 NAME PROPERTY VALUE SOURCE t5ldzmg03/t5ldzmg03 compression lz4 inherited from t5ldzmg03 root@t5ldlzc03:~# root@t5ldlzc03:~# zfs create -V 20g t5ldzmg03/t5ldzmg03-suspend root@t5ldlzc03:~# root@t5ldlzc03:~# virtinfo NAME CLASS logical-domain current non-global-zone supported kernel-zone supported root@t5ldlzc03:~# root@t5ldlzc03:~# suriadm lookup-uri /dev/zvol/dsk/t5ldzmg03/t5ldzmg03 dev:zvol/dsk/t5ldzmg03/t5ldzmg03 root@t5ldlzc03:~# suriadm lookup-uri /dev/zvol/dsk/t5ldzmg03/t5ldzmg03-suspend dev:zvol/dsk/t5ldzmg03/t5ldzmg03-suspend root@t5ldlzc03:~# root@t5ldlzc03:~# zonecfg -z t5ldzmg03 Use 'create' to begin configuring a new zone. zonecfg:t5ldzmg03> create -b zonecfg:t5ldzmg03> set brand=solaris-kz zonecfg:t5ldzmg03> add capped-memory zonecfg:t5ldzmg03:capped-memory> set physical=16g zonecfg:t5ldzmg03:capped-memory> end zonecfg:t5ldzmg03> add device zonecfg:t5ldzmg03:device> set storage=dev:zvol/dsk/t5ldzmg03/t5ldzmg03 zonecfg:t5ldzmg03:device> set bootpri=1 zonecfg:t5ldzmg03:device> end zonecfg:t5ldzmg03> add suspend zonecfg:t5ldzmg03:suspend> set storage=dev:zvol/dsk/t5ldzmg03/t5ldzmg03-suspend zonecfg:t5ldzmg03:suspend> end zonecfg:t5ldzmg03> add anet zonecfg:t5ldzmg03:anet> set lower-link=net0 zonecfg:t5ldzmg03:anet> end zonecfg:t5ldzmg03> add anet zonecfg:t5ldzmg03:anet> set lower-link=net1 zonecfg:t5ldzmg03:anet> end zonecfg:t5ldzmg03> set autoboot=false zonecfg:t5ldzmg03> add attr zonecfg:t5ldzmg03:attr> set name=osc-ha-zone zonecfg:t5ldzmg03:attr> set type=boolean zonecfg:t5ldzmg03:attr> set value=true zonecfg:t5ldzmg03:attr> end zonecfg:t5ldzmg03> commit zonecfg:t5ldzmg03> exit root@t5ldlzc03:~# root@t5ldlzc03:~# zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - t5ldzmg03 configured - solaris-kz excl root@t5ldlzc03:~#
Ok, configuration is done; let's install it and try to boot it on the second cluster node. I will also need the configuration on that node. To test that I will switch the ZPOOL which is configured in a cluster group.
root@t5ldlzc03:~# root@t5ldlzc03:~# zoneadm -z t5ldzmg03 install Progress being logged to /var/log/zones/zoneadm.20160412T093941Z.t5ldzmg03.install pkg cache: Using /var/pkg/publisher. Install Log: /system/volatile/install.11071/install_log AI Manifest: /tmp/zoneadm10552.76aG8u/devel-ai-manifest.xml SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml Installation: Starting ... Creating IPS image Installing packages from: solaris origin: http://t4repo02.testlan.at/solaris_11_3/ ha-cluster origin: http://t4repo02.testlan.at/ha-cluster/ solarisstudio origin: http://t4repo02.testlan.at/solarisstudio/ The following licenses have been accepted and not displayed. Please review the licenses for the following packages post-install: consolidation/osnet/osnet-incorporation Package licenses may be viewed using the command: pkg info --license <pkg_fmri> DOWNLOAD PKGS FILES XFER (MB) SPEED Completed 470/470 65349/65349 636.8/636.8 4.7M/s PHASE ITEMS Installing new actions 89538/89538 Updating package state database Done Updating package cache 0/0 Updating image state Done Creating fast lookup database Done Installation: Succeeded Done: Installation completed in 356.049 seconds. root@t5ldlzc03:~# zoneadm -z t5ldzmg03 boot root@t5ldlzc03:~# zlogin -C t5ldzmg03 [...] root@t5ldlzc03:~# zoneadm -z t5ldzmg03 shutdown zone 't5ldzmg03': updating /platform/sun4v/boot_archive root@t5ldlzc03:~# zoneadm -z t5ldzmg03 detach -F root@t5ldlzc03:~# root@t5ldlzc03:~# root@t5ldlzc03:~# zonecfg -z t5ldzmg03 export -f /tmp/t5ldzmg03.export root@t5ldlzc03:~# scp /tmp/t5ldzmg03.export root@t5ldlzc04:/tmp/. root@t5ldlzc03:~# root@t5ldlzc03:~# clrg create t5ldzmg03-rg root@t5ldlzc03:~# clrt register SUNW.HAStoragePlus root@t5ldlzc03:~# clrs create -t SUNW.HAStoragePlus -g t5ldzmg03-rg -p Zpools=t5ldzmg03 t5ldzmg03-stor-res root@t5ldlzc03:~# clrg online -emM -n t5ldlzc03 t5ldzmg03-rg root@t5ldlzc03:~# clrg switch -n t5ldlzc04 t5ldzmg03-rg root@t5ldlzc04:~# zoneadm -z t5ldzmg03 attach -x force-takeover root@t5ldlzc04:~# zoneadm -z t5ldzmg03 boot root@t5ldlzc04:~# zlogin -C t5ldzmg03 [Connected to zone 't5ldzmg03' console] Hostname: t5ldzmg03 t5ldzmg03 console login: root Password: Last login: Tue Apr 12 13:52:41 2016 on console Apr 12 14:00:56 t5ldzmg03 login: ROOT LOGIN /dev/console Oracle Corporation SunOS 5.11 11.3 February 2016 root@t5ldzmg03:~# svcs -xv [...] root@t5ldlzc04:~# zoneadm -z t5ldzmg03 shutdown root@t5ldlzc04:~# zoneadm -z t5ldzmg03 detach -F root@t5ldlzc04:~# clrg switch -n t5ldlzc03 t5ldzmg03-rg
Now I will register the zone as a cluster resource and make the zone high avaiable. There is an own agent from Oracle for that which I will use.
root@t5ldlzc03:~# pkg list ha-cluster/data-service/ha-zones NAME (PUBLISHER) VERSION IFO ha-cluster/data-service/ha-zones (ha-cluster) 4.3-0.24.0 i-- root@t5ldlzc03:~# root@t5ldlzc03:~# clrt register SUNW.gds root@t5ldlzc03:~# cd /opt/SUNWsczone/sczbt/util root@t5ldlzc03:/opt/SUNWsczone/sczbt/util# ls ha-solaris-zone-boot-env-id sczbt_config sczbt_register root@t5ldlzc03:/opt/SUNWsczone/sczbt/util# vi [..] root@t5ldlzc03:/opt/SUNWsczone/sczbt/util# cat t5ldzmg03.sczbt.config RS=t5ldzmg03-zone-res RG=t5ldzmg03-rg PARAMETERDIR= SC_NETWORK=false SC_LH= FAILOVER=true HAS_RS=t5ldzmg03-stor-res Zonename="t5ldzmg03" Zonebrand="solaris-kz" Zonebootopt="" Milestone="svc:/milestone/multi-user-server" LXrunlevel="3" SLrunlevel="3" Mounts="" Migrationtype="warm" root@t5ldlzc03:/opt/SUNWsczone/sczbt/util# root@t5ldlzc03:/opt/SUNWsczone/sczbt/util# ./sczbt_register -f ./t5ldzmg03.sczbt.config sourcing ./t5ldzmg03.sczbt.config Registration of resource type ORCL.ha-zone_sczbt succeeded. Registration of resource t5ldzmg03-zone-res succeeded. root@t5ldlzc03:/opt/SUNWsczone/sczbt/util# clrs enable t5ldzmg03-zone-res root@t5ldlzc03:/opt/SUNWsczone/sczbt/util# clrs status === Cluster Resources === Resource Name Node Name State Status Message ------------- --------- ----- -------------- t5ldzmg03-zone-res t5ldlzc03 Online Online - Service is online. t5ldlzc04 Offline Offline t5ldzmg03-stor-res t5ldlzc03 Online Online t5ldlzc04 Offline Offline root@t5ldlzc03:/opt/SUNWsczone/sczbt/util# root@t5ldlzc03:/opt/SUNWsczone/sczbt/util# clrs status === Cluster Resources === Resource Name Node Name State Status Message ------------- --------- ----- -------------- t5ldzmg03-zone-res t5ldlzc03 Offline Offline t5ldlzc04 Online Online - Service is online. t5ldzmg03-stor-res t5ldlzc03 Offline Offline t5ldlzc04 Online Online root@t5ldlzc03:/opt/SUNWsczone/sczbt/util#
That's it... we have now a HA kernel zone :-)