手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

zonep2vchk(1M)

名称

zonep2vchk - 针对到非全局区域的物理到虚拟迁移检查全局区域的配置

用法概要

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]

描述

zonep2vchk 实用程序用于在通过物理到虚拟 (physical-to-virtual, p2v) 方式迁移到非全局区域之前对全局区域配置进行评估。

该 p2v 过程包括对全局区域(源)进行归档,然后使用该归档文件安装非全局区域(目标)。请参见 solaris(5)solaris10(5) 手册页中的 install –a 说明。

zonep2vchk 有两个功能。首先,可以用来报告源中可能阻碍 p2v 迁移成功的问题。其次,可以输出一个模板 zonecfg,该模板可用来帮助配置非全局区域目标。

zonep2vchk 可以在 Solaris 10 或更高版本的全局区域上执行。要在 Solaris 10 上执行,请将 zonep2vchk 实用程序复制到 Solaris 10 源全局区域。

安全

zonep2vchk 实用程序必须以有效的用户 ID(即 0)来运行。它可查询各个 Solaris 子系统的配置状态。

选项

支持以下选项:

–V

显示命令版本并退出。

–T release

指定目标发行版。缺省值为:

Global Zone         Default Target
Solaris 10          S10
Solaris 11          S11

zonep2chk 生成的所有配置文件都适用于该目标发行版。请参见下文中的 –c

在 Solaris 10 上运行时,可以指定 S11 作为目标发行版,这将对到 Solaris 10 标记区域的 p2v 迁移进行检查。

目标为 S10 时,假定使用共享栈。将报告任何需要独占 IP 栈的问题。

目标为 S11 时,假定使用独占 IP 栈。

如果全局区域在使用的某个特定功能要求目标具有特定的修补程序/更新级别才能运行,则 zonep2vchk 输出中将包括该信息。

–P

生成计算机可解析的输出。请参见下文中的“可解析的输出格式”部分。

–c

zonecfg(1M) export 输出格式在 stdout 上显示模板区域配置。该配置包含了基于源主机的物理资源和网络配置的资源限制和网络配置。

–b

执行基本检查。这将检查全局区域中是否存在可能阻碍 p2v 迁移成功的问题。这是 –b–c–s–S–r–x 都未指定时的缺省行为。

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

在指定的持续时间内执行运行时检查。这将分析全局区域中当前正在执行的进程,并报告可能阻碍在非全局区域内成功执行的问题。报告的问题针对在执行 zonep2vchk 期间这些进程所执行的操作。

–x

执行运行时检查(与使用 –r 一样),直至收到 SIGINT(如大多数 shell 中的 Ctrl-c 所提供的功能)。

–e execname[,execname...]

执行运行时分析(–r–x)时,将检查的程序限定为与指定的 execname 列表匹配的程序。execnameps –o comm 返回的进程名称。在调用 zonep2vchk 时,指定的进程不一定要存在。将检查在运行 zonep2vchk 时创建的所有匹配进程。

–E file

–e 相似,但是它从 file 读取 execname 列表,一行一个。

–s path[,path...]

对指定的文件或目录执行静态二进制文件分析。这将检查 ELF 二进制文件中可能影响在区域内正常工作的系统和库调用。将以递归方式分析目录,并忽略非 ELF 文件。

–S file

–s 相似,但是它从 file 读取路径列表,一行一个。

可解析的输出格式

可解析的输出格式

对于检测到的每个问题,zonep2vchk 将输出一行可解析的输出。行的格式为:

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

各个字段以冒号 (:) 分隔。以反斜杠 (\:) 转义的冒号字符不应被视为字段分隔符。

对于多次出现的同一问题,每次出现时都会报告,并通过字段来描述问题的此次具体情况。

下面阐述了现有的类别和问题。zonep2vchk 的将来版本可能会包括更多类别和问题。对于现有问题,可能会在其现有字段后添加新的字段。

header 类别

header 类别列出关于源、目标和 zonep2vchk 版本的信息。此类别中的问题包括:

version

zonep2vchk 命令的版本。

Field1:

zonep2vchk 命令的版本。

source

关于源系统的信息。

Field1:

源系统的节点名称。

Field2:

源系统的 /etc/release 版本。

Field3:

源系统的内核版本。

Field4:

源系统的平台。

target

关于 p2v 检查的指定目标的信息。

Field1:

目标的 Solaris 版本。

Field2:

将在目标上使用的标记类型。

Field3:

目标上的预期区域的 IP 类型。

footer 类别

footer 类别列出最终的摘要信息。此类别中的问题包括:

issues

概述发现的问题数。

Field1:

检测到的问题数。

incompatible 类别

incompatible 类别代表无法在非全局区域中正常工作的问题。此类别中的问题包括:

etcsystem

存在 /etc/system 可调参数。这类可调参数在区域内无法正常工作。/etc/system 可调参数可以转移到目标全局区域,但它将影响整个系统,包括所有区域和全局区域。如果有可在区域内配置的替代可调参数,将描述该可调参数。

Field1:

/etc/system 可调参数设置。

Field2:

为以下项之一:

noalternate

非全局区域内没有替代可调参数。

obsolete

该可调参数在目标上已过时。它不再提供任何功能。

replaced

该可调参数在目标上已被替换。该替换是在全局区域中配置的,由字段 3 和 4 描述。

alternate

存在一个替代可调参数。可在非全局区域内配置该可调参数。该可调参数由字段 3 和 4 描述。

noinfo

zonep2vchk 不了解该可调参数。该可调参数在区域内可能没有替代参数。

Field3:

替代可调参数的类型。

Field4:

关于替代可调参数的描述。

be

存在多个引导环境。只有活动的引导环境才会迁移到非全局区域。

Field1:

非活动引导环境的名称。

unsupported

启用了在区域内无法正常工作的某项功能。

Field1: mobileip

配置了移动 IP 代理,而移动 IP 代理无法在区域中正常工作。

nfs(仅限 S10 源)

系统在通过 NFS 方式共享文件系统。Solaris 10 上的本机区域和 Solaris 11 上的 Solaris 10 区域不能通过 NFS 方式进行共享。

Field1:

共享文件系统的路径。

smb

系统正在通过内核中 smb/cifs 共享一个文件系统。区域不能通过 SMB 方式共享文件系统。

Field1:

共享文件系统的路径。

pkg

安装的某个软件包提供了已知不能在区域中正常工作的软件。

Field1:

软件包的名称。

iscsi-target

系统在导出 ISCSI 目标。区域不能导出 iSCSI 目标。

Field1:

iSCSI 目标的名称。

fcoe-target

系统配置了一个 FCOE 目标。区域无法配置 FCOE 目标。

Field1:

使用的以太网设备。

Field2:

FCOE 目标的 WWN。

fc-target

系统配置了一个光纤通道目标。区域无法配置光纤通道目标。

Field1:

光纤通道目标的 WWN。

npiv

系统配置了一个虚拟 NPIV HBA。区域无法配置虚拟 HBA。

Field1:

承载着虚拟 HBA 的物理 WWN。

Field2:

虚拟 WWN。

scsi

系统配置了一个 SCSI 块设备。区域无法配置 SCSI 块设备。

Field1:

配置为 SCSI 设备的对象。

svcnotallowed

启用了在区域内无法正常工作的某个服务。

Field1:

服务的名称。

resourcepool

配置了一个 Solaris 资源池。区域无法配置资源池。

Field1:

池的名称。

pset

配置了一个处理器集。区域无法配置处理器集。

Field1:

处理器集 ID。

Field2:

该处理器集中的 CPU ID 的列表。

zones

配置了区域。区域无法承载区域。执行 p2v 后,目标非全局区域中将不存在任何区域。可以使用 zoneadm(1M) 中的 detach/attach 功能单独迁移各个区域。

Field1:

区域的名称。

Field2:

区域的状态。

lofi(仅限目标为 Solaris 10)

配置了 lofi 设备。区域无法配置 lofi 设备。

Field1:

lofi 设备的名称。

Field2:

设备所基于的文件的路径。

syscall(由 –s–f 生成)

某个二进制文件中含有无法从区域调用的系统或库调用。

Field1:

二进制文件的名称。

Field2:

系统或库调用的名称。

syscallargs(由 –s–f 生成)

某个二进制文件中的系统或库调用如果使用特定参数进行调用,则无法从区域内调用。

Field1:

系统或库调用的名称。

有关不允许使用的参数的详细信息,请参见常规输出(不带 –P)。

lib(由 –s–f 生成)

某个二进制文件链接了无法在区域内使用的库。

Field1:

二进制文件的名称。

Field2:

不允许使用的库的名称。

privnotallowed(由 –r–x 生成)

某个进程使用了无法添加到区域中的特权。

Field1:

进程的名称。

Field2:

特权的名称。

devnotallowed(由 –r–x 生成)

某个进程打开了无法添加到区域中的设备。

Field1:

进程的名称。

Field2:

设备的名称。

configuration 类别

configuration 类别代表需要进行配置设置才能在非全局区域内正常工作的问题。这可能是 zonecfg(1M) 配置设置、全局区域中的配置更改,或者是这二者。

此类别中的问题包括:

datalink

配置了无法在区域内配置的数据链路功能。数据链路功能必须在全局区域中配置,如果需要,必须使用 zonecfg add anet(仅限 Solaris 11)或 zonecfg add net 委托给区域。

Field1:

数据链路功能的名称。为以下项之一:

aggr

聚合。

ibiface

Infiniband 接口。

ibpart

Infiniband 分区。

vnic

虚拟 NIC。

etherstub

以太网存根。

bridge

网桥实例。

secobj

无线 WPA 或 WEB 安全对象。

Field2:

数据链路对象名称。

dhcp-server(仅限目标为 Solaris 10)

主机是一个 DHCP 服务器。要提供 DHCP 服务,区域必须设置 ip-type=exclusive 或具有特权 net_rawaccess 和设备 /dev/ip。请注意,这将允许共享栈区域读写网络上的原始 IP 数据包,与独占栈区域或全局区域类似。

Field1:

DHCP 服务器服务的 FMRI。

ntp-client

启用了一个 NTP 客户机服务。该服务更新系统时钟。由于所有区域共享同一系统时钟,因此在 p2v 期间会自动禁用该服务。如果需要区域更新目标主机上的系统时钟,区域将需要特权 sys_time,且需要在执行 p2v 后在区域内启用该服务。

Field1:

客户机服务的 FMRI。

driverconf

某个网络设备在其 .conf 文件中包含配置设置。区域无法配置驱动程序。驱动程序必须在全局区域中配置。某些网络驱动程序设置可以使用 dladm(1M) 进行配置,而不必编辑驱动程序配置文件。

Field1:

配置文件的路径。

ifname(仅限目标为 Solaris 10)

变更网络设备名称会影响某个现有配置文件。例如,如果为目标非全局区域指定的网络设备不是 bge0/etc/hostname.bge0 文件将会受影响。

Field1:

受影响的文件的路径。

iscsi-initiator

系统正在作为客户机访问 iSCSI 目标。区域无法访问 iSCSI 目标。全局区域必须是 iSCSI 启动器。然后,可以使用 zonecfg add device 将设备添加到区域。

Field1:

正在访问的 iSCSI 目标。

fcoe-initiator

系统配置了一个 FCOE 启动器。区域无法配置 FCOE 启动器。全局区域必须配置 FCOE 启动器,并使用 zonecfg add fszonecfg add device 使 SCSI 目标设备可供区域使用。

Field1:

以太网网络设备。

Field2:

启动器的 WWN。

fc-initiator

系统具有一个联机的 HBA 光纤通道端口。区域无法访问光纤通道目标。必须从全局区域访问该目标并使其可供区域使用。

Field1:

光纤通道 HBA 端口 WWN。

linkprop

配置了数据链路属性。区域无法配置数据链路属性。必须从全局区域对其进行配置。

Field1:

数据链路的名称。

Field2:

属性名称

Field3:

属性值。

ndd

使用 ndd 配置了无法由区域配置的可调参数。这类可调参数必须从全局区域进行配置。

Field1:

设置了这类可调参数的文件或脚本。

Field2:

要调整的驱动程序。

Field3:

可调参数。

dynaddr

在某个网络接口上配置了一个或多个动态分配的 IP 地址。共享 IP 区域不支持这类地址。这类 IP 地址可能会因 MAC 地址更改而更改。您可能需要在 DHCP 服务器上以及 DNS、LDAP 或 NIS 名称服务器上修改该系统的地址信息。

Field1 可以为下项之一:

dhcp

所配置的 DHCP 地址。在此情况下,Field2 是为 DHCP 配置的接口的名称。

v6autoconf

启用了 IPv6 无状态地址配置。在此情况下,Field2 是采用 IPv6 自动配置的接口的名称。

rarp(仅限源为 Solaris 10)

启用了反向 ARP 分配的地址。在此情况下,Field2 是启用了反向 ARP 的接口的名称。

patch(仅限源为 Solaris 10 且目标为 Solaris 11 及更高版本)

在以 p2v 方式迁移到非全局区域前需要安装某个修补程序。

Field1:

所需的修补程序。

physif(仅限目标为 Solaris 10)

如果迁移到独占 IP 区域,源系统上的某个物理接口将被替换为目标系统上的某个专用物理或 VLAN 接口。

Field1:

源系统上的接口的名称。

sched

系统配置了一个缺省调度类。可以使用 zonecfg set scheduler 属性配置非全局区域的缺省调度类。将在 –c 输出中提供此项。

Field1:

配置的缺省调度类。

sharedip(仅限目标为 Solaris 10)

如果迁移到共享 IP 区域,将需要由全局区域代替区域配置以下网络功能。

Field1 可以为下项之一:

ipmpgroup

配置了一个 IPMP 组。如果需要 IPMP,必须从全局区域对其进行配置。在此情况下,Field2 是 IPMP 组名称。

vni

配置了一个虚拟网络接口。这类接口必须从全局区域进行配置。在此情况下,Field2 是 VNI 接口名称。

v4forwarding
v6forwarding

某个接口上配置了 IP 转发(v4 或 v6)。在此情况下,Field2 是配置了 IP 转发的接口。

staticroute

配置了静态路由。这类静态路由必须从全局区域进行配置。

exclusiveonly(仅限目标为 Solaris 10)

配置了不支持在共享 IP 区域中使用的网络功能。该功能在独占 IP 区域中可正常工作,不需要修改。

Field1:
iptun

已激活了某个 IPv4、IPv6 或 6to4 隧道接口。

Field2:

隧道接口的名称。

sharedonly

配置了独占 IP 区域中不支持的网络功能。迁移到共享 IP 区域时,必须在全局区域中配置该功能才能支持通信。

Field1:
cgtp

已激活了某个电信级传输协议接口。

Field2:

CGTP 接口的名称。

netdevalloc

某个网络功能要求使用 zonecfg(1M) add device 命令将其底层设备分配给区域。共享 IP 区域不支持此功能。

Field1:

可以是:

ppp

点对点协议 (Point-to-Point Protocol, PPP)。/etc/ppp 下存在 PPP 配置文件。需要分配给区域的底层设备是一个串行端口,或以太网物理或 VNIC 接口(对于 pppoe)。

svcexlip(仅限目标为 Solaris 10)

启用了一个需要独占 IP 区域的服务。

Field1:

服务 FMRI 的名称。

svcpriv

启用了一个需要使用 zonecfg(1M) limitpriv 属性向区域中添加其他特权的服务。

Field1:

服务的 FMRI。

Field2:

该服务需要的特权的列表。

svm

配置了一个 Solaris Volume Manager 元设备。元设备必须在全局区域中配置,并使用 zonecfg(1M) add deviceadd fsadd dataset 使其可供非全局区域使用。

Field1:

元设备的名称。

ramdisk

配置了一个 ramdisk 设备。区域无法配置 ramdisk 设备。

Field1:

Ramdisk 设备路径。

vfstab

通过 /etc/vfstab 配置了一个文件系统挂载。必须将该文件系统迁移到目标全局区域并使其可供非全局区域使用。

Field1:

挂载的设备。

Field2:

挂载点。

zpool

系统配置了附加的 zpool。必须将这些 zpool 迁移到目标全局区域,并使用 zonecfg add datasetzonecfg add fs 使其可供区域使用。

Field1:

池的名称。

privexclip(仅限目标为 Solaris 10)

某个进程使用了需要独占 IP 栈的特权。有关 ip-type 属性的描述,请参见 zonecfg(1M)

Field1:

进程的名称。

Field2:

使用的特权。

devexclip(仅限目标为 Solaris 10)

某个进程打开了需要独占 IP 栈的设备。有关 ip-type 属性的描述,请参见 zonecfg(1M)

Field1:

进程的名称。

Field2:

设备的名称。

privoptional

某个进程使用的特权要求向目标非全局区域中添加其他特权。有关 limitpriv 属性的描述,请参见 zonecfg(1M)

Field1:

进程的名称。

Field2:

使用的特权。

devoptional

某个进程打开了缺省情况下在区域中不可用的设备。有关 add device 资源的描述,请参见 zonecfg(1M)

Field1:

进程的名称。

Field2:

设备的路径。

syscallpriv(由 –s–f 生成)

某个二进制文件含有可能要求向目标非全局区域添加其他特权的系统或库调用。有关 limitpriv 属性的描述,请参见 zonecfg(1M)。有关系统或库调用的详细信息,请参见不可解析的输出。

Field1:

二进制文件的路径。

Field2:

系统调用的名称。

syscallexclip(由 –s–f 生成)

某个二进制文件含有可能需要独占 IP 栈的系统或库调用。有关 ip-type 属性的描述,请参见 zonecfg(1M)。有关系统或库调用的详细信息,请参见不可解析的输出。

Field1:

二进制文件的路径。

Field2:

系统调用的名称。

示例

示例 1 执行静态二进制文件分析

以下命令对两个应用程序目录树中的所有 ELF 二进制文件执行静态分析:

# zonep2vchk -s /opt/myapplication,/usr/local
示例 2 为目标区域生成模板

在 Solaris 10 全局区域上运行以下命令时,将为 Solaris 11 生成一个模板区域配置。

# zonep2vchk T S11 -c
示例 3 在某个时段内分析正在运行的应用程序

以下命令将分析名为 myapplication 的进程在一小时内的运行情况,并报告在区域内可能无法正常工作的任何活动。

# zonep2vchk -s 1h -e myapplication
示例 4 执行基本检查

以下命令将分析全局区域,找出哪些正在使用的配置和 Solaris 功能在区域内可能无法正常工作。对于发现的每个问题时,将显示一行可解析的输出。

# zonep2vchk  -bP

退出状态

将返回以下退出值:

0

成功完成,未检测到任何问题。

1

发生内部错误。

2

用法无效。

3

检测到一个或多个问题。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/zones
接口稳定性
请参见下文

命令调用和可解析的输出是 "Committed"(已确定)。用户可读的输出(缺省输出)是 "Uncommitted"(未确定)。

另请参见

dladm(1M)zoneadm(1M)zonecfg(1M)attributes(5)solaris(5)solaris10(5)zones(5)

附注

静态(–s–f)检查使用 elfdump(1) 实用程序,该程序由以下软件包提供:

Solaris 11

developer/base-developer-utilities

Solaris 10

SUNWbtool

运行时(–r)检查使用 dtrace(1M) 实用程序,该程序由以下软件包提供:

Solaris 11

system/dtrace

Solaris 10

SUNWdtrc