• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

UnixArena

  • Home
  • kubernetes
  • DevOps
    • Terraform
    • Jenkins
    • Docker
    • Openshift
      • OKD
    • Ansible engine
    • Ansible Tower
      • AWX
    • Puppet
  • Cloud
    • Azure
    • AWS
    • Openstack
    • Docker
  • VMware
    • vCloud Director
    • VMware-Guests
    • Vcenter Appliance 5.5
    • vC OPS
    • VMware SDDC
    • VMware vSphere 5.x
      • vSphere Network
      • vSphere DS
      • vShield Suite
    • VMware vSphere 6.0
    • VSAN
    • VMware Free Tools
  • Backup
    • Vembu BDR
    • Veeam
    • Nakivo
    • Azure Backup
    • Altaro VMBackup
    • Spinbackup
  • Tutorials
    • Openstack Tutorial
    • Openstack Beginner’s Guide
    • VXVM-Training
    • ZFS-Tutorials
    • NetApp cDot
    • LVM
    • Cisco UCS
    • LDOM
    • Oracle VM for x86
  • Linux
    • How to Articles
    • Q&A
    • Networking
    • RHEL7
  • DevOps Instructor-led Training
  • Contact

How to configure and install kernel zone on Solaris 11.2

August 7, 2014 By Cloud_Devops 4 Comments

In Oracle Solaris 11.2,we have new type of zone called kernel zone. This zone is almost similar to SPARC VM (LDOM) guests which can run on its own patch level and completely isolated from global zone. These kernel branded zones are support on both SPARC & X86 hardwares. But  processors should support virtulization  technology(VT) .In X86 hardwares, you have to enable this option in system BIOS,if your hardware is upported for VT.Let’s see how we can configure and install kernel zones on Solaris 11.2 .

1. Login to  Solaris 11.2 global zone and check whether the system is supporting kernel zones or not.

UA_GLOBAL# zoneadm list -cv
  ID NAME             STATUS      PATH                         BRAND      IP
   0 global           running     /                            solaris    shared
UA_GLOBAL#uname -a
SunOS SAN 5.11 11.2 i86pc i386 i86pc
UA_GLOBAL#virtinfo
NAME            CLASS
vmware          current
non-global-zone supported
kernel-zone     supported

As per the above command output,this hardware will support kernel-zone.

2.System should have atleast 8GB physical memory and 2 virtual  processor(2 cores) & 16GB free space for virtual disk.

UA_GLOBAL#prtconf -v |head -4
System Configuration:  Oracle Corporation  i86pc
Memory size: 8780 Megabytes
System Peripherals (Software Nodes):

UA_GLOBAL#psrinfo |wc -l
2
UA_GLOBAL#

3.Create a new kernel zone and check the zones configuration.

UA_GLOBAL#zonecfg -z UAKLZ1 create -t SYSsolaris-kz
UA_GLOBAL#zoneadm list -cv
  ID NAME             STATUS      PATH                         BRAND      IP
   0 global           running     /                            solaris    shared
   - UAKLZ1           configured  -                            solaris-kz excl
UA_GLOBAL#zonecfg -z UAKLZ1 info
zonename: UAKLZ1
brand: solaris-kz
autoboot: false
autoshutdown: shutdown
bootargs:
pool:
scheduling-class:
hostid: 0x28c3c78d
tenant:
anet:
        lower-link: auto
        allowed-address not specified
        configure-allowed-address: true
        defrouter not specified
        allowed-dhcp-cids not specified
        link-protection: mac-nospoof
        mac-address: auto
        mac-prefix not specified
        mac-slot not specified
        vlan-id not specified
        priority not specified
        rxrings not specified
        txrings not specified
        mtu not specified
        maxbw not specified
        rxfanout not specified
        vsi-typeid not specified
        vsi-vers not specified
        vsi-mgrid not specified
        etsbw-lcl not specified
        cos not specified
        evs not specified
        vport not specified
        id: 0
device:
        match not specified
        storage: dev:/dev/zvol/dsk/rpool/VARSHARE/zones/UAKLZ1/disk0
        id: 0
        bootpri: 0
capped-memory:
        physical: 2G
UA_GLOBAL#

4.Here is the available zpool on  my system. As per previous command output,kernel zone is going to create virtual disk under rpool.

UA_GLOBAL#zpool list
NAME     SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
cloudS  23.8G    0G   23.8G   0%  1.00x  ONLINE  -
rpool   15.6G  11.6G  4.06G  74%  1.00x  ONLINE  -
UA_GLOBAL#

In rpool, we do not have 16GB free space. So let me modify the zone’s configuration to point cloudS zpool.

5.Invoke zonecfg command to modify the virtual disk.

UA_GLOBAL#zonecfg -z UAKLZ1
zonecfg:UAKLZ1> select device id=0
zonecfg:UAKLZ1:device> info
device:
        match not specified
        storage.template: dev:/dev/zvol/dsk/%{global-rootzpool}/VARSHARE/zones/%{zonename}/disk%{id}
        storage: dev:/dev/zvol/dsk/rpool/VARSHARE/zones/UAKLZ1/disk0
        id: 0
        bootpri: 0
zonecfg:UAKLZ1:device> set storage=dev:/dev/zvol/dsk/cloudS/zones/UAKLZ1/disk0
zonecfg:UAKLZ1:device> info
device:
        match not specified
        storage: dev:/dev/zvol/dsk/cloudS/zones/UAKLZ1/disk0
        id: 0
        bootpri: 0
zonecfg:UAKLZ1:device> end
zonecfg:UAKLZ1> commit
zonecfg:UAKLZ1> exit
UA_GLOBAL#

6.You need IPS repository to install the kernel zone. If you do not have a local repository, just set to oracle IPS repo.

UA_GLOBAL# pkg publisher
PUBLISHER                   TYPE     STATUS P LOCATION
solaris                     origin   online F http://pkg.oracle.com/solaris/release/
UA_GLOBAL#

You can set the above repository using ,

UA_GLOBAL#pkg set-publisher -O http://pkg.oracle.com/solaris/release solaris

7.Install the kernel zone using below command.

UA_GLOBAL#zoneadm -z UAKLZ1 install
Progress being logged to /var/log/zones/zoneadm.20140806T194800Z.UAKLZ1.install
pkg cache: Using /var/pkg/publisher.
 Install Log: /system/volatile/install.8393/install_log
 AI Manifest: /tmp/zoneadm7814.pza40p/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://pkg.oracle.com/solaris/release/
        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                            483/483   64276/64276  543.7/543.7  126k/s

PHASE                                          ITEMS
Installing new actions                   87530/87530
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 1355.389 seconds.

UA_GLOBAL#zoneadm list -cv
  ID NAME             STATUS      PATH                         BRAND      IP
   0 global           running     /                            solaris    shared
   - UAKLZ1           installed   -                            solaris-kz excl
UA_GLOBAL#

8.There may be chance that zone may failed to boot due to insufficient resources.

UA_GLOBAL#zoneadm -z UAKLZ1 boot
zone 'UAKLZ1': error: boot failed
zone 'UAKLZ1': error: Failed to create VM: Not enough space
zone 'UAKLZ1': error: allocation of guest RAM failed
zoneadm: zone UAKLZ1: call to zoneadmd(1M) failed: zoneadmd(1M) returned an error 1 (unspecified error)
UA_GLOBAL#

In this case, i just added one more CPU core and booted it.

9.Boot the kernel zone and login to zone’s console for initial setup .

root@UA-GLOBAL:~# zoneadm -z UAKLZ1 boot
root@UA-GLOBAL:~# zlogin -C UAKLZ1
[Connected to zone 'UAKLZ1' console]
SC profile successfully generated as:
/etc/svc/profile/sysconfig/sysconfig-20140806-203628/sc_profile.xml

Exiting System Configuration Tool. Log is available at:
/system/volatile/sysconfig/sysconfig.log.300
Hostname: UAKLZ1
UAKLZ1 console login: root
Password:
Aug  7 02:15:40 UAKLZ1 login: ROOT LOGIN /dev/console
Oracle Corporation      SunOS 5.11      11.2    June 2014
root@UAKLZ1:~#

10.Here is the interesting output of kernel zones.

root@UAKLZ1:~# zonename
global
root@UAKLZ1:~# zoneadm list -cv
  ID NAME             STATUS      PATH                         BRAND      IP
   0 global           running     /                            solaris    shared
root@UAKLZ1:~# virtinfo
NAME            CLASS
kernel-zone     current
non-global-zone supported
root@UAKLZ1:~#

Kernel zone will be showing as global if you type “zonename”and you can install non-global zone under the kernel zones.

11. You can login to the using zlogin from global without providing the username /password like other non-global zones.

root@SAN:~# zlogin UAKLZ1
[Connected to zone 'UAKLZ1' pts/2]
Oracle Corporation      SunOS 5.11      11.2    June 2014
root@UAKLZ1:~# df -h
Filesystem             Size   Used  Available Capacity  Mounted on
rpool/ROOT/solaris      15G   2.1G        11G    16%    /
/devices                 0K     0K         0K     0%    /devices
/dev                     0K     0K         0K     0%    /dev
ctfs                     0K     0K         0K     0%    /system/contract
proc                     0K     0K         0K     0%    /proc
mnttab                   0K     0K         0K     0%    /etc/mnttab
swap                   1.7G   1.5M       1.7G     1%    /system/volatile
objfs                    0K     0K         0K     0%    /system/object
sharefs                  0K     0K         0K     0%    /etc/dfs/sharetab
/dev/kz/sdir/shared@0
                       6.9G   1.7M       6.9G     1%    /system/shared
/usr/lib/libc/libc_hwcap1.so.1
                        13G   2.1G        11G    16%    /lib/libc.so.1
fd                       0K     0K         0K     0%    /dev/fd
rpool/ROOT/solaris/var
                        15G   122M        11G     2%    /var
swap                   1.7G     0K       1.7G     0%    /tmp
rpool/VARSHARE          15G   2.4M        11G     1%    /var/share
rpool/VARSHARE/zones    15G    31K        11G     1%    /system/zones
rpool/export            15G    32K        11G     1%    /export
rpool/export/home       15G    31K        11G     1%    /export/home
rpool                   15G    32K        11G     1%    /rpool
rpool/VARSHARE/pkg      15G    32K        11G     1%    /var/share/pkg
rpool/VARSHARE/pkg/repositories
                        15G    31K        11G     1%    /var/share/pkg/repositories
root@UAKLZ1:~#

12.You mange the network using ipadm in kernel zone itself.

root@UAKLZ1:~# ipadm
NAME              CLASS/TYPE STATE        UNDER      ADDR
lo0               loopback   ok           --         --
   lo0/v4         static     ok           --         127.0.0.1/8
   lo0/v6         static     ok           --         ::1/128
net0              ip         ok           --         --
   net0/v4        static     ok           --         192.168.2.59/24
   net0/v6        addrconf   ok           --         fe80::8:20ff:fe24:543/10

13.You need to configure package repository for kernel zone like global  for any additional package installation and non-global zone installation.

root@UAKLZ1:~# pkg publisher
PUBLISHER                   TYPE     STATUS P LOCATION
solaris                     origin   online F http://pkg.oracle.com/solaris/release/
root@UAKLZ1:~#

14.In Solaris 11.2 , you can suspend the zone and resume it when you needed. This is similar to VMware ‘s VM suspend and resume functionality. You need to set the suspend file path .

root@SAN:~# zonecfg -z UAKLZ1
zonecfg:UAKLZ1> select suspend
zonecfg:UAKLZ1:suspend> set path=/cloudS/UAKLZ1_suspend
zonecfg:UAKLZ1:suspend> end
zonecfg:UAKLZ1> commit
zonecfg:UAKLZ1> exit
root@UA-GLOBAL:~# zonecfg -z UAKLZ1 info suspend
suspend:
        path: /cloudS/UAKLZ1_suspend
        storage not specified
root@UA-GLOBAL:~# zoneadm -z UAKLZ1 suspend
root@UA-GLOBAL:~# zoneadm list -cv
  ID NAME             STATUS      PATH                         BRAND      IP
   0 global           running     /                            solaris    shared
   - UAKLZ1           installed   -                            solaris-kz excl
root@SAN:~#

15.You can resume the zone using boot command .Once the zone ‘s resumed , the suspend file will be removed.You can also migrate the suspended zone from one global zone to another global zone.

root@UA-GLOBAL:~# cd /cloudS/
root@SAN:/cloudS# ls -lrt
total 507776
drwxr-xr-x   2 root     root           2 Aug  7 02:25 other
-rw-------   1 root     root     260046848 Aug  7 16:43 UAKLZ1_suspend
root@UA-GLOBAL:/cloudS# du -sh UAKLZ1_suspend
 248M   UAKLZ1_suspend
root@UA-GLOBAL:/cloudS# zoneadm -z UAKLZ1 boot
root@UA-GLOBAL:/cloudS# ls -lrt
total 3
drwxr-xr-x   2 root     root           2 Aug  7 02:25 other
root@UA-GLOBAL:/cloudS#
root@UA-GLOBAL:/cloudS# zoneadm list -cv
  ID NAME             STATUS      PATH                         BRAND      IP
   0 global           running     /                            solaris    shared
   3 UAKLZ1           running     -                            solaris-kz excl
root@UA-GLOBAL:/cloudS# zlogin UAKLZ1 uptime
  4:49pm  up 14:21,  0 users,  load average: 0.71, 0.82, 0.39
root@UA-GLOBAL:/cloudS#

Hope now you got some idea about kernel zone’s configuration, installation and other features.

Share it ! Comment it !! Be Sociable !!!

Filed Under: Solaris 11.2, Zones Tagged With: kernel-zones

Reader Interactions

Comments

  1. virender says

    May 7, 2019 at 7:54 pm

    I’ve my local repo which is http based, still its failing ..any ideas
    15:40:16 73% Transferring contents
    15:40:22 77% Transferring contents
    15:40:31 84% Transferring contents
    15:40:41 86% Transferring contents
    15:40:43 87% Transferring contents
    15:40:45 88% Transferring contents
    15:40:47 Completed transfer of stream: ‘e375780b-a9e7-4220-8602-d7ec7a864133-0.zfs’ from file:///system/shared/uafs/OVA
    15:40:49 Archive transfer completed
    15:41:28 89% generated-transfer-954-1 completed.
    15:41:28 89% Beginning IPS transfer
    15:41:28 Setting post-install publishers to:
    15:41:28 solaris
    15:41:28 origin: http://x.x.x.x::8080/
    15:41:28 89% generated-transfer-954-2 completed.
    15:41:29 Changing target pkg variant. This operation may take a while
    15:41:34 Error occurred during execution of ‘apply-pkg-variant’ checkpoint.
    15:41:34 100% None
    15:41:35 Failed Checkpoints:
    15:41:35 apply-pkg-variant
    15:41:35 Checkpoint execution error:
    15:41:35 Command ‘[‘/usr/bin/pkg’, ‘-R’, ‘/a’, ‘change-variant’, ‘-I’, ‘–accept’, ‘variant.opensolaris.zone=global’]’ returned unexpected exit status 1
    15:41:35 pkg: 0/1 catalogs successfully updated:
    15:41:35 Unable to contact valid package repository
    15:41:35 Encountered the following error(s):
    15:41:35 Unable to contact any configured publishers.
    15:41:35 This is likely a network configuration problem.
    15:41:35 Framework error: code: 7
    15:41:35 URL: ‘http://172.17.81.201:8080’ (happened 4 times)
    15:41:35 Automated Installation Failed. See install log at /system/volatile/install_log
    Automated Installation failed
    Please refer to the /system/volatile/install_log file for details
    [ Apr 1 15:41:36 Method “start” exited with status 95. ]
    [ Apr 1 15:44:19 Leaving maintenance because clear requested. ]
    [ Apr 1 15:44:20 Enabled. ]
    [ Apr 1 15:44:20 Executing start method (“/lib/svc/method/auto-installer”). ]

    Reply
    • Lingeswaran R says

      May 8, 2019 at 3:28 pm

      The issue with publishers. Please fix it. You could also unconfigure the publishers and reconfigure it.

      Regards
      Lingesh

      Reply
  2. Vijendra Padwal says

    December 12, 2016 at 8:48 am

    Thank you very much for explaining it in very detailed & easiest way.

    Wishing You A Happy-Healthy-Wealthy-Prosperous Peaceful Life & Very Bright Career Ahead..

    Take Care

    Reply
  3. Parameswara Rao says

    November 11, 2016 at 9:56 am

    Thank you very much to explained easily to understand.

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Follow UnixArena

  • Facebook
  • LinkedIn
  • Twitter

Copyright © 2025 · UnixArena ·

Go to mobile version