My Oracle Support Banner

Troubleshooting Solaris Kernel Zone Issues (Doc ID 2193740.1)

Last updated on DECEMBER 19, 2023

Applies to:

Solaris x64/x86 Operating System - Version 11.2 and later
Solaris Operating System - Version 11.2 and later
Oracle Solaris on SPARC (64-bit)
Oracle Solaris on x86-64 (64-bit)

Purpose

This document explains Solaris Kernel Zones shows ways to troubleshoot issues

Troubleshooting Steps

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Purpose
Troubleshooting Steps
 Description of Kernel Zones
 How to Verify Kernel Zone Support on a Host
 How to verify whether I'm logged into a Kernel Zone ?
 Some general hints how to troubleshooting kernel zones
 Check KZ console. The output of KZ console is saved into /var/log/zones/<zonename>.console file
 Check KZ log file. That is located at /var/log/zones/<zonename>.messages
 If you can reproduce, turn on verbose debugging by setting the zone's bootargs to kz=d (dd, D, DD)     (via zonecfg or commandline)
 Check the zone's private aux states with zoneadm list -ap
 For live migration, check the RAD service logs in /var/svc/log/. Turning on RAD's config/debug=true can help to debug LiveMigration
 Check your firmware version (SPARC) is up to date. Many problems are related to firmware bugs
 Does ssh into the guest still work? Does zlogin into the guest still work? Does zlogin -C ?
 Collect pstack output of kzhost and zoneadmd
 Check for any core dumps. Is coreadm configured correctly ?
 Make sure that kzhost process is running. You can find the right kzhost process by running ptree -z <zonename>
 Run truss(1) on kzhost and verify that the kzhost process is running. It should be at least doing bunch of ZVMM_IOC_VCPU_ENTER ioctls.
 If the zone is not responding, try to collect crash dump using zoneadm -z <zonename> savecore. That can be later investigated using mdb or Solaris Core Analysis Tool
 If the zone is not responding, try to inject NMI into it using /usr/lib/kzlom /system/volatile/zones/<zonename>/zonepath/root/system/kz_door
 For dedicated-cpu guest, find out what physical CPUs the virtual CPUs are running on
 Add option '-x no-auto-shutdown' to zoneadm install command to allow debugging in case of install failure
 Early attaching mdb to zoneadmd or kzhost
 Run mdb on kzhost and try to investigate what it's doing. Check stacks of all kzhost threads
 Run mdb -k and see what kzhost and zoneadmd are doing in the kernel
 On sun4v check ::httrace output. Each guest hypercall will be in there, and with some skill you can dig out most of its arguments
 Share some data between global zone and kernel zone
 zoneadm attach  fails with "Encryption key not available"
 zoneadm install fails with: "ERROR: One or more bootable disks is in use by an existing zpool"
 Failure to boot with not enough RAM
 Boot alternate BE on KZ
 Install a Kernel Zone from an ISO file
 Export an ISO file from global zone to a running kernel zone
 With new firmware on T7 / M7 / S7 systems, Kernel Zone load might drop
 Boot from alternate device e.g. ISO file exported by GZ
 Info about live zone reconfiguration (LZR)
References

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.