Go to main content

man pages section 8: System Administration Commands

Exit Print View

Updated: Thursday, June 13, 2019
 
 

zonep2vchk(8)

Name

zonep2vchk - check a global zone's configuration for physical to virtual migration into non-global zone

Synopsis

zonep2vchk -V
zonep2vchk [-T release] -c
zonep2vchk [-T release] [-P] [-b] [ -s path[,path...] ] [-S file]
     [ -r {time}(h|m|s} ] [-x] [-e execname[,execname...] ]
     [-E file]

Description

The zonep2vchk utility is used to evaluate a global zone's configuration before the process of physical-to-virtual (p2v) migration into a non-global zone.

The p2v process involves archiving a global zone (source), and then installing a non-global zone (target) using that archive. For more information, see the “install –a” documentation in the zoneadm(8) man page.

zonep2vchk serves two functions. First, it can be used to report issues on the source which might prevent a successful p2v migration. Second, it can output a template zonecfg, which can be used to assist in configuring the non-global zone target.

zonep2vchk can be executed on a Solaris 10 or later global zone. To execute on Solaris 10, copy the zonep2vchk utility to the Solaris 10 source global zone.

Security

The zonep2vchk utility must be run with an effective user ID of zero. It interrogates the configuration state of a variety of Solaris subsystems.

Options

The following options are supported:

–V

Display the command version and exit.

–T release

Specify the target release. The defaults are:

Global Zone         Default Target
Solaris 10          S10
Solaris 11          S11

Any configuration files generated by zonep2chk will be applicable to the target release. See –c below.

When run on Solaris 10, a target release of S11 can be specified, which will check for p2v into a Solaris 10 Branded zone.

When the target is S11, it is assumed that an exclusive IP stack will be used.

If a particular feature in use by the global zone requires a particular patch/update level of the target to function, this information will be printed in the zonep2vchk output.

–P

Generate machine-parseable output. See the section “Parseable Output Format” below.

–c

Display a template zone configuration on stdout in the form of zonecfg(8) export output. This configuration will contain resource limits and network configuration based on the source host's physical resources and networking configuration.

–b

Perform basic checks. This will check the global zone for issues that could prevent a successful p2v. This is the default behavior if none of –b, –c, –s, –S, –r, –x are specified.

–r{time} (h|m|s)

Perform runtime checks for the specified duration. This will analyze the currently executing processes in the global zone, and report issues that could prevent successful execution inside a non-global zone. Issues reported reflect actions made by the processes during the time in which zonep2vchk was executing.

–x

Perform runtime checks (as with –r) until SIGINT is received, such as is delivered by Ctrl-c from most shells.

–e execname[,execname...]

When performing runtime analysis (–r, –x), limit inspected programs to those matching the specified list of execnames. The execname is the name of process, as returned by ps –o comm. It is not necessary for named processes to exist when zonep2vchk is invoked. Any matching processes created while zonep2vchk is running will be inspected.

–E file

Similar to –e, but reads the list of execnames from file, one per line.

–s path[,path...]

Perform static binary analysis on the files or directories specified. This will inspect ELF binaries for system and library calls that might affect function inside a zone. Directories will be recursed, and non-ELF files will be ignored.

–S file

Similar to –s, but reads the path list from file, one per line.

Parseable Output Format

zonep2vchk will output a single line of parseable output for each issue detected. The line format is:

category:issue:field1:[field2:...]

Each field is delimited by a colon (:). Colon characters escaped with a backslash (\:) should not be treated as field delimiters.

Multiple instances of the same issue can be reported, each with fields describing the particular instance of the issue.

Below the existing categories and issues are defined. Future versions of zonep2vchk might include additional categories and issues. Existing issues might have new fields added after the existing fields for existing issues.

header Category

The header category lists information about the source, target, and zonep2vchk version. The issues in this category are:

version

The version of the zonep2vchk command.

Field1:

The version of the zonep2vchk command.

source

Information about the source system.

Field1:

The nodename of the source system.

Field2:

The /etc/release version of the source system.

Field3:

The kernel version of the source system.

Field4:

The platform of the source system.

target

Information about the specified target of the p2v check.

Field1:

The Solaris version of the target.

Field2:

The brand type that would be used on the target.

Field3:

The ip-type of the expected zone on the target.

footer Category

The footer category lists final summary information. The issues in this category are:

issues

A summary of the number of issues found.

Field1:

The number of issues detected.

incompatible Category

The incompatible category represents issues that will not function in a non-global zone. The issues in this category are:

etcsystem

An /etc/system tunable exists. These tunables do not function inside a zone. The /etc/system tunable can be transferred to the target global zone, but it will affect the entire system, including all zones and the global zone. If there is an alternate tunable that can be configured from within the zone, this tunable is described.

Field1:

The /etc/system tunable setting.

Field2:

One of:

noalternate

There is no alternate tunable from within a non-global zone.

obsolete

The tunable is obsolete on the target. It no longer serves any function.

replaced

The tunable has been replaced on the target. The replacement is configured in the global zone, and described by fields 3 and 4.

alternate

An alternate tunable exists. This tunable can be configured from within a non-global zone. The tunable is described by fields 3 and 4.

noinfo

zonep2vchk is not knowledgeable of the tunable. Tunable likely has no alternate inside a zone.

Field3:

Type of alternate/replacement tunable.

Field4:

Description of alternate/replacement tunable.

be

More than one boot environment exists. Only the active boot environment will be transferable to the non-global zone.

Field1:

The name of the non-active boot environment.

unsupported

A feature is enabled that will not function in a zone.

Field1: mobileip

The mobile IP agent, which does not function in a zone, is configured.

smb

The system is sharing a filesystem by means of in-kernel smb/cifs. Zones cannot share filesystems by means of SMB.

Field1:

Path of file system being shared.

pkg

A package delivering software known not to work in a zone is installed.

Field1:

Name of the package.

iscsi-target

The system is exporting an ISCSI target. Zones cannot export iSCSI targets.

Field1:

Name of the iSCSI target.

fcoe-target

The system has configured an FCOE target. Zones cannot configure FCOE targets.

Field1:

Ethernet device used.

Field2:

WWN of the FCOE target.

fc-target

The system has configured an Fiberchannel target. Zones cannot configure Fiberchannel targets.

Field1:

WWN of the Fiberchannel target.

npiv

The system has configured a virtual NPIV HBA. Zones cannot configure virtual HBAs.

Field1:

Physical WWN hosting the virtual HBA.

Field2:

Virtual WWN.

scsi

The system has configured an SCSI block device. Zones cannot configure scsi block devices.

Field1:

Object configured as a SCSI device.

svcnotallowed

A service is enabled that will not function in a zone.

Field1:

Name of the service.

resourcepool

A Solaris resource pool is configured. Zones cannot configure resource pools.

Field1:

Name of the pool.

pset

A processor set is configured. Zones cannot configure processor sets.

Field1:

Processor set ID.

Field2:

List of CPU IDs in the processor set.

zones

Zones are configured. A zone cannot host zones. Any zones will not exist in the target non-global zone after p2v. Zones can be migrated separately using the detach/attach features in zoneadm(8).

Field1:

Name of the zone.

Field2:

State of the zone.

syscall (generated by –s and –f)

A binary makes a system or library call that cannot be made from a zone.

Field1:

Name of the binary file.

Field2:

Name of the system or library call.

syscallargs (generated by –s and –f)

A binary makes a system or library call that cannot be made from a zone if called with certain arguments.

Field1:

Name of the system or library call.

See regular output (no –P) for details on disallowed arguments.

lib (generated by –s and –f)

A binary links with a library that cannot be used inside a zone.

Field1:

Name of the binary file.

Field2:

Name of the disallowed library.

privnotallowed (generated by –r and –x)

A privilege is used by a process that cannot be added to a zone.

Field1:

Name of the process.

Field2:

Name of the privilege.

devnotallowed (generated by –r and –x)

A device is opened by a process that cannot be added to a zone.

Field1:

Name of the process.

Field2:

Name of the device.

configuration Category

The configuration category represents issues that will require a configuration setting to allow the issue to function inside the non-global zone. This could be a zonecfg(8) configuration setting, a configuration change in the global zone, or both.

The issues in this category are:

datalink

A datalink feature is configured that cannot be configured from within a zone. The datalink feature must be configured in the global zone, and if necessary, delegated to the zone using zonecfg add anet (Solaris 11 only) or zonecfg add net.

Field1:

Name of the datalink feature. One of:

aggr

Aggregation.

ibiface

Infiniband interface.

ibpart

Infiniband partition.

vnic

Virtual NIC.

etherstub

Ethernet stub.

bridge

A bridge instance.

secobj

A wireless WPA or WEB security object.

Field2:

Datalink object name.

ntp-client

An NTP client service is enabled. This service updates the system clock. Since all zones share the same system clock, this service is disabled automatically during p2v. If it is desired that the zone update the system clock on the target host, the zone will need the privilege sys_time, and the service will need to be enabled inside the zone after p2v.

Field1:

FMRI of the client service.

driverconf

A networking device contains configuration settings in its .conf file. Zones cannot configure drivers. The driver must be configured in the global zone. Some network driver settings might be configurable using dladm(8) instead of editing a driver configuration file.

Field1:

Path of the configuration file.

iscsi-initiator

The system is accessing an iSCSI target as a client. Zones cannot access iSCSI targets. The global zone must be the iSCSI initiator. The device can then be added to the zone using zonecfg add device.

Field1:

iSCSI target being accessed.

fcoe-initiator

The system has an FCOE initiator configured. A zone cannot configure an FCOE initiator. The global zone must configure the FCOE initiator, and make the SCSI target devices available to the zone using zonecfg add fs or zonecfg add device.

Field1:

Ethernet network device.

Field2:

WWN of the initiator.

fc-initiator

The system has an HBA Fiberchannel port online. A zone cannot access a Fiberchannel target. The target must be accessed from the global zone and made available to the zone.

Field1:

Fiberchannel HBA port WWN.

linkprop

Datalink properties are configured. A zone cannot configure datalink properties. They must be configured from the global zone.

Field1:

Name of the datalink.

Field2:

Property name

Field3:

Property value.

ndd

Tunables that cannot be configured by a zone have been configured using ndd. These tunables must be configured from the global zone.

Field1:

File or script setting the tunable.

Field2:

Driver being tuned.

Field3:

Tunable parameter.

dynaddr

One or more dynamically assigned IP addresses are configured on a network interface. These addresses are not supported with shared-IP zones. These IP addresses could change as a result of MAC address changes. You may need to modify this system's address information on the DHCP server and on the DNS, LDAP, or NIS name servers.

Field1 can be one of:

dhcp

Configured DHCP address. In this case, Field2 is the name of the interface configured for DHCP.

v6autoconf

IPv6 stateless address configuration is enabled. In this case, Field2 is the name of the interface with IPv6 auto configuration.

sched

The system is configured with a default scheduling class. The default scheduling class of a non-global zone can be configured using the zonecfg set scheduler property. This will be provided in the –c output.

Field1:

The configured default scheduling class.

sharedonly

A networking feature is configured that is not supported in an exclusive-IP zone. When migrating to a shared-IP zone, the feature must be configured in the global zone to support communication.

Field1:
cgtp

A Carrier Grade Transport Protocol interface has been plumbed.

Field2:

Name of the CGTP interface.

netdevalloc

A networking feature requires its underlying device be allocated to the zone with the zonecfg add device command. This feature is not supported with shared-IP zones.

Field1:

Can be :

ppp

Point-to-Point Protocol (PPP). PPP configuration files exist under /etc/ppp. The underlying device that needs to be allocated to the zone is either a serial port or, in the case of pppoe, an Ethernet physical or VNIC interface.

svcpriv

A service is enabled that will require additional privileges be added to the zone using the zonecfg(8) limitpriv property.

Field1:

FMRI of the service.

Field2:

List of the privileges required by the service.

svm

A Solaris Volume Manager metadevice is configured. Metadevices must be configured in the global zone, and made available to the non-global zone using zonecfg(8) add device, add fs, or add dataset.

Field1:

Name of the metadevice.

ramdisk

A ramdisk device is configured. A zone cannot configure ramdisk devices.

Field1:

ramdisk device path.

vfstab

A filesystem mount is configured by means of /etc/vfstab. The filesystem must be migrated to the target global zone and made available to the non-global zone.

Field1:

Device being mounted.

Field2:

Mountpoint.

zpool

The system has additional zpools configured. These zpools must be migrated to the target global zone, and made available to the zone using zonecfg add dataset or zonecfg add fs.

Field1:

Name of the pool.

privoptional

A process used a privilege that requires additional privilege be added to the target non-global zone. See zonecfg(8) for a description of the limitpriv property.

Field1:

Name of the process.

Field2:

Privilege used.

devoptional

A process opened a device that is not available in a zone by default. See zonecfg(8) for a description of the add device resource.

Field1:

Name of the process.

Field2:

Path of the device.

syscallpriv (generated by –s and –f)

A binary makes a system or library call that might require additional privilege be added to the target non-global zone. See the zonecfg(8) man page for a description of the limitpriv property. See the non-parseable output for details concerning the system or library call.

Field1:

Path of the binary

Field2:

Name of the system call.

syscallexclip (generated by –s and –f)

A binary makes a system or library call that might require an exclusive-ip stack. See zonecfg(8) for a description of the ip-type property. See the non-parseable output for details concerning the system or library call.

Field1:

Path of the binary

Field2:

Name of the system call.

Examples

Example 1 Performing Static Binary Analysis

The following command performs static analysis on all ELF binaries in two application directory trees:

# zonep2vchk -s /opt/myapplication,/usr/local
Example 2 Generating a Template for the Target Zone

The following command will generate a template zone configuration for Solaris 11 when run on a Solaris 10 global zone.

# zonep2vchk -T S11 -c
Example 3 Analyzing Running Applications for a Period

The following command will analyze the process named myapplication for one hour and report any activity that might not function in a zone.

# zonep2vchk -s 1h -e myapplication
Example 4 Performing Basic Checks

The following command will analyze the global zone for configuration and Solaris features in use that might not function in a zone. Each discovered issue will be reported as a single line of parseable output.

# zonep2vchk  -bP

Exit Status

The following exit values are returned:

0

Successful completion, no issues detected.

1

An internal error occurred.

2

Invalid usage.

3

One or more issues were detected.

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/zones
Interface Stability
See below

Command invocation and parseable output is Committed. Human readable output (default output) is Uncommitted.

See Also

attributes(7), dladm(8), solaris(7), zoneadm(8), zonecfg(8), zones(7)

Notes

The static (–s and –f) checks make use of the elfdump(1) utility, which is delivered by the following package:

Solaris 11

developer/base-developer-utilities

The runtime (–r) checks make use of the dtrace(8) utility, which is delivered by the following package:

Solaris 11

system/dtrace