创建和使用 Oracle Solaris 内核区域

退出打印视图

更新时间: 2014 年 12 月
 
 

内核区域主机数据和主机 ID

内核区域的每个可引导设备都包含称为主机数据的状态信息。内核区域的主机数据用于监视内核区域状态信息,其中包括:

  • 区域使用情况

  • 区域挂起,如挂起和恢复内核区域中所述

  • 内核区域时钟与全局区域时钟之间的时间偏移

  • OpenBoot 变量(仅适用于 SPARC)

内核区域主机数据使用高级加密标准 AES-128-CCM 进行加密和验证,将相同的加密密钥用于内核区域 suspend 映像。

在配置或引导某个内核区域时,会读取主机数据以确定是否有其他系统在使用该内核区域的引导存储。如果其他系统在使用引导存储,则该内核区域将进入 unavailable(不可用)状态,且将显示一条错误消息以指出正在使用引导存储的系统。例如:

global# zoneadm -z kzone1 attach
zone 'kzone1': error: ERROR: zone kzone1 is in use by host with  hostid 848611d4
zone 'kzone1': error:       last known state: installed
zone 'kzone1': error:               hostname: global2
zone 'kzone1': error:  boot environment name: solaris-1
zone 'kzone1': error:  boot environment uuid: 69ed2e6a-e25a-6d36-e022-ed7261ed8899
zone 'kzone1': error:       last update time: Sun Apr 13 20:08:13 2014
zone 'kzone1': error: To fix, detach the zone from the other host then attach it to this host
zone 'kzone1': error: If the zone is not active on another host, attach it with
zone 'kzone1': error:    zoneadm -z kzone1 attach -x force-takeover

如果没有其他系统在使用引导存储,则可以使用 zoneadm attach -x force-takeover 命令修复该内核区域。


Caution

注意  -  强制接管或重新初始化主机数据将导致无法检查是否有其他系统在使用该区域。对引用同一个存储的某个区域运行多个实例将对该区域的文件系统带来不可修复的损坏。


如果区域的加密密钥不可访问,则将无法读取主机数据和任何挂起映像。在这种情况下,任何读取或引导区域的尝试都将导致区域进入 unavailable(不可用)状态。如果无法恢复区域的加密密钥,则可以使用 zoneadm attach -x initialize-hostdata 命令来生成新的加密密钥和主机数据。

要防止在内核区域迁移过程中丢失加密密钥,请在源系统上使用 zonecfg export 命令生成一个可在目标系统上使用的命令文件。例如:

global# zonecfg -z kzone1 export -f /net/.../kzone1.cfg
global# zonecfg -z kzone1 -f /net/.../kzone1.cfg