系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones

第 28 章 Solaris Zones 管理(任务)

本章介绍一般管理任务并提供用法示例。

本章新增内容

本节列出新增产品功能以及本指南中的新增内容。

有关 Solaris 10 新增功能的完整列表以及 Solaris 发行版的说明,请参见《Oracle Solaris 10 9/10 新增功能》

本章中针对 Solaris 10 1/06 的新增内容

添加了一种访问介质的新过程。请参见如何在非全局区域中添加对 CD 或 DVD 介质的访问权限

添加了一种在区域中备份和恢复文件的新过程。请参见备份安装了区域的 Solaris 系统恢复非全局区域

本章中针对 Solaris 10 6/06 的新增内容

添加了一些新过程。请参见如何将文件系统从全局区域挂载到非全局区域如何在非全局区域中的 /usr 下添加可写目录

本章中针对 Solaris 10 8/07 的新增内容

添加了一些新过程。请参见如何使用 DTraceSolaris 10 8/07:在专用 IP 非全局区域中管理数据链路检查非全局区域中的 SMF 服务的状态

使用 ppriv 实用程序

使用 ppriv 实用程序可以显示区域的权限。

Procedure如何列出全局区域中的 Solaris 权限

可使用 ppriv 实用程序的 -l 选项列出该系统中可用的权限。

  1. 在提示符下,键入 ppriv -l zone 报告区域中的一组可用权限。


    global# ppriv -l zone
    

    将显示以下类似信息:


    contract_event
    contract_observer
    cpc_cpu
    .
    .
    .

Procedure如何列出非全局区域的权限集

可以使用带有 -l 选项和表达式 zoneppriv 实用程序列出区域的权限。

  1. 登录到非全局区域。此示例使用名为 my-zone 的区域。

  2. 在提示符下,键入 ppriv -l zone 报告区域中的一组可用权限。


    my-zone# ppriv -l zone
    

    将显示以下类似信息:


    contract_event
    contract_observer
    file_chown
    
    .
    .
    .

Procedure如何列出带有详细输出的非全局区域的权限集

可以使用带有 -l 选项、表达式 zone,以及 -v 选项的 ppriv 实用程序列出区域的权限。

  1. 登录到非全局区域。此示例使用名为 my-zone 的区域。

  2. 在提示符下,键入 ppriv -l -v zone 报告区域中的一组可用权限,同时给出每个权限的说明。


    my-zone# ppriv -l -v zone
    

    将显示以下类似信息:


    contract_event
            Allows a process to request critical events without limitation.
            Allows a process to request reliable delivery of all events on
            any event queue.
    contract_observer
            Allows a process to observe contract events generated by
            contracts created and owned by users other than the process's
            effective user ID.
            Allows a process to open contract event endpoints belonging to
            contracts created and owned by users other than the process's
            effective user ID.
    file_chown
            Allows a process to change a file's owner user ID.
            Allows a process to change a file's group ID to one other than
            the process' effective group ID or one of the process'
            supplemental group IDs.
    .
    .
    .

在非全局区域中使用 DTrace

执行以下步骤,以使用在非全局区域中运行 DTrace中所述的 DTrace 功能。

Procedure如何使用 DTrace

  1. 使用 zonecfg limitpriv 属性添加 dtrace_procdtrace_user 权限。


    global# zonecfg -z my-zone
    zonecfg:my-zone> set limitpriv="default,dtrace_proc,dtrace_user"
    zonecfg:my-zone> exit
    

    注 –

    可以根据需要添加其中一个权限或同时添加这两个权限。


  2. 引导区域。


    global# zoneadm -z my-zone boot
    
  3. 登录到区域。


    global# zlogin my-zone
    
  4. 运行 DTrace 程序。


    my-zone# dtrace -l
    

检查非全局区域中的 SMF 服务的状态

要检查本地非全局区域中的 SMF 服务的状态,请使用 zlogin 命令。

Procedure如何从命令行检查 SMF 服务的状态

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 在命令行中键入以下内容,以显示所有服务,包括禁用的服务。


    global# zlogin my-zone svcs -a
    
另请参见

有关更多信息,请参见第 22 章svcs(1)

Procedure如何从区域内检查 SMF 服务的状态

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 登录到区域。


    global# zlogin my-zone
    
  3. 运行带有 -a 选项的 svcs 命令,以显示所有服务,包括禁用的服务。


    my-zone# svcs -a
    
另请参见

有关更多信息,请参见第 22 章svcs(1)

在正在运行的非全局区域中挂载文件系统

可以在正在运行的非全局区域中挂载文件系统。包括以下过程。

Procedure如何使用 zonecfg 导入原始设备和块设备

此过程使用 lofi 文件驱动程序,此驱动程序可以将文件导出为块设备。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 转到 /usr/tmp 目录。


    global# cd /usr/tmp
    
  3. 创建一个新的 UFS 文件系统。


    global# mkfile 10m fsfile
    
  4. 将文件作为块设备进行连接。

    如果没有创建其他 lofi 设备,则会使用第一个可用插槽 /dev/lofi/1


    global# lofiadm -a `pwd`/fsfile
    

    您也将获得所需的字符设备。

  5. 将设备导入区域 my-zone


    global# zonecfg -z my-zone
    zonecfg:my-zone> add device
    zonecfg:my-zone:device> set match=/dev/rlofi/1
    zonecfg:my-zone:device> end
    zonecfg:my-zone> add device
    zonecfg:my-zone:device> set match=/dev/lofi/1
    zonecfg:my-zone:device> end
    
  6. 重新引导区域。


    global# zoneadm -z my-zone boot
    
  7. 登录到区域并检验设备是否成功导入。


    my-zone# ls  -l /dev/*lofi/*
    

    将显示以下类似信息:


    brw-------   1 root     sys      147,  1 Jan  7 11:26 /dev/lofi/1
    crw-------   1 root     sys      147,  1 Jan  7 11:26 /dev/rlofi/1
另请参见

有关更多信息,请参见 lofiadm(1M)lofi(7D) 手册页。

Procedure如何手动挂载文件系统

要执行此过程,您必须是区域管理员并且拥有区域管理配置文件。此过程使用在 newfs(1M) 手册页中介绍的 newfs 命令。

  1. 成为超级用户,或者在您的配置文件列表中具有区域管理权限配置文件。

  2. 在区域 my-zone 中,在磁盘上创建一个新的文件系统。


    my-zone# newfs /dev/lofi/1
    
  3. 出现提示时回答是。


    newfs: construct a new file system /dev/rlofi/1: (y/n)? y
    

    将显示以下类似信息:


    /dev/rlofi/1:   20468 sectors in 34 cylinders of 1 tracks, 602 sectors
            10.0MB in 3 cyl groups (16 c/g, 4.70MB/g, 2240 i/g)
    super-block backups (for fsck -F ufs -o b=#) at:
     32, 9664, 19296,
  4. 检查文件系统是否有错误。


    my-zone# fsck -F ufs /dev/rlofi/1
    

    将显示以下类似信息:


    ** /dev/rlofi/1
    ** Last Mounted on 
    ** Phase 1 - Check Blocks and Sizes
    ** Phase 2 - Check Pathnames
    ** Phase 3 - Check Connectivity
    ** Phase 4 - Check Reference Counts
    ** Phase 5 - Check Cyl groups
    2 files, 9 used, 9320 free (16 frags, 1163 blocks, 0.2% fragmentation)
  5. 挂载文件系统。


    my-zone# mount -F ufs /dev/lofi/1 /mnt
    
  6. 检验挂载。


    my-zone# grep /mnt /etc/mnttab
    

    将显示以下类似信息:


    /dev/lofi/1     /mnt    ufs
    rw,suid,intr,largefiles,xattr,onerror=panic,zone=foo,dev=24c0001
    1073503869

Procedure如何将文件系统放入 /etc/vfstab 以在引导区域时挂载

此过程用于在文件系统路径 /mnt 上挂载块设备 /dev/lofi/1。块设备包含一个 UFS 文件系统。将使用以下选项:

  1. 成为超级用户,或者在您的配置文件列表中具有区域管理权限配置文件。

  2. 在区域 my-zone中,向 /etc/vfstab 添加以下行:


    /dev/lofi/1 /dev/rlofi/1  /mnt   ufs  2  yes logging

Procedure如何将文件系统从全局区域挂载到非全局区域

假设区域中有 zonepath /export/home/my-zone。您需要将磁盘 /dev/lofi/1 从全局区域挂载到非全局区域中的 /mnt

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 要将磁盘挂载到非全局区域中的 /mnt,请在全局区域中键入以下内容:


    global# mount -F ufs /dev/lofi/1 /export/home/my-zone/root/mnt
    
另请参见

有关 lofi 的信息,请参见 lofiadm(1M) 和 lofi(7D) 手册页。

在全局区域中添加非全局区域对特定文件系统的访问权限

Procedure如何在非全局区域中添加对 CD 或 DVD 介质的访问权限

借助此过程,您可以在非全局区域中添加对 CD 或 DVD 介质的只读访问权限。在全局区域中,使用 Volume Management 文件系统来挂载介质。然后可以使用 CD 或 DVD 在非全局区域中安装产品。此过程使用名为 jes_05q4_dvd 的 DVD。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 确定 Volume Management 文件系统是否正在全局区域中运行。


    global# svcs volfs
    STATE          STIME    FMRI
    online         Sep_29   svc:/system/filesystem/volfs:default
  3. (可选)如果 Volume Management 文件系统没有在全局区域中运行,则启动它。


    global# svcadm volfs enable
    
  4. 插入介质。

  5. 检查驱动器中的介质。


    global# volcheck
    
  6. 测试 DVD 是否自动挂载。


    global# ls /cdrom
    

    将显示以下类似信息:


    cdrom   cdrom1   jes_05q4_dvd
  7. 在非全局区域中使用选项 ro,nodevices(只读并且无设备)来回送挂载文件系统。


    global# zonecfg -z my-zone
    zonecfg:my-zone> add fs
    zonecfg:my-zone:fs> set dir=/cdrom
    zonecfg:my-zone:fs> set special=/cdrom
    zonecfg:my-zone:fs> set type=lofs
    zonecfg:my-zone:fs> add options [ro,nodevices]
    zonecfg:my-zone:fs> end
    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
    
  8. 重新引导非全局区域。


    global# zoneadm -z my-zone reboot
    
  9. 使用带有 -v 选项的 zoneadm list 命令来检验状态。


    global# zoneadm list -v
    

    将显示以下类似信息:


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     1  my-zone  running      /export/home/my-zone           native     shared
  10. 登录到非全局区域。


    global# zlogin my-zone
    
  11. 检验 DVD-ROM 挂载。


    my-zone# ls /cdrom
    

    将显示以下类似信息:


    cdrom   cdrom1   jes_05q4_dvd
  12. 按照产品安装指南中的介绍安装产品。

  13. 退出非全局区域。


    my-zone# exit
    

    提示 –

    您可能需要在非全局区域中保留 /cdrom 文件系统。挂载始终反映 CD-ROM 驱动器的当前内容,如果驱动器为空,则反映为一个空目录。


  14. (可选)如果想要从非全局区域中删除 /cdrom 文件系统,请使用以下过程。


    global# zonecfg -z my-zone
    zonecfg:my-zone> remove fs dir=/cdrom
    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
    

Procedure如何在非全局区域中的 /usr 下添加可写目录

在稀疏根区域中,/usr 从全局区域挂载为只读状态。可以使用此过程添加一个可写目录,如区域中 /usr 下的 /usr/local

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 在全局区域中创建目录 /usr/local


    global# mkdir -p /usr/local
    
  3. 在全局区域中指定一个目录作为该区域中 /usr/local 目录的后备存储。


    global# mkdir -p /storage/local/my-zone
    
  4. 编辑区域 my-zone 的配置。


    global# zonecfg -z my-zone
    
  5. 添加回送挂载的文件系统。


    zonecfg:my-zone> add fs
    zonecfg:my-zone:fs> set dir=/usr/local
            zonecfg:my-zone:fs> set special=/storage/local/my-zone
            zonecfg:my-zone:fs> set type=lofs
            zonecfg:my-zone:fs> end
            zonecfg:my-zone> commit
            zonecfg:my-zone> exit
    
  6. 引导区域。

Procedure如何将全局区域中的起始目录导出到非全局区域

此过程用于将起始目录或其他文件系统从全局区域导出到同一系统上的非全局区域。

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 添加回送挂载的文件系统。


    global# zonecfg -z my-zone
    zonecfg:my-zone> add fs
    zonecfg:my-zone:fs> set dir=/export/home
    zonecfg:my-zone:fs> set special=/export/home
    zonecfg:my-zone:fs> set type=lofs
    zonecfg:my-zone:fs> set options=nodevices
    zonecfg:my-zone:fs> end
    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
    
  3. 向区域的 /etc/auto_home 文件添加以下行:


    $HOST:/export/home/&

在安装了区域的 Solaris 系统上使用 IP 网络多路径

ProcedureSolaris 10 8/07:如何在专用 IP 非全局区域中使用 IP 网络多路径

可以按在全局区域中的配置方式在专用 IP 区域中配置 IP 网络多路径 (IP Network Multipathing, IPMP)。

您可以将一个或多个物理接口配置到一个 IP 多路径组或 IPMP 组中。配置 IPMP 后,系统将自动监视 IPMP 组中的接口是否出现故障。如果该组中的接口出现故障或被删除以进行维护,则 IPMP 会自动迁移或故障转移故障接口的 IP 地址。这些地址的接收者是故障接口的 IPMP 组中的工作接口。IPMP 的故障转移功能可以保持连接并防止断开任何现有连接。此外,通过自动在 IPMP 组中的一组接口中分配网络通信流量,IPMP 提高了总体网络性能。此过程称作负荷分配。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 按照《系统管理指南:IP 服务》中的“配置 IPMP 组”中的说明配置 IPMP 组。

Procedure如何将 IP 网络多路径功能扩展到共享 IP 非全局区域

使用此过程可以在全局区域中配置 IPMP,并将 IPMP 功能扩展到非全局区域。

当您配置区域时,每个地址或逻辑接口都应当与非全局区域相关联。有关说明,请参见使用 zonecfg 命令如何配置区域

此过程将实现以下内容:

在正在运行的区域中,可以使用 ifconfig 命令来建立关联。请参见共享 IP 网络接口ifconfig(1M) 手册页。

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 在全局区域中,按照《系统管理指南:IP 服务》中的“配置 IPMP 组”中的说明配置 IPMP 组。

  3. 使用 zonecfg 命令配置区域。当您配置 net 资源时,请将地址 192.168.0.1、物理接口 bge0 和缺省路由器设置添加到区域 my-zone


    zonecfg:my-zone> add net
    zonecfg:my-zone:net> set address=192.168.0.1
    zonecfg:my-zone:net> set physical=bge0
    zonecfg:my-zone:net> set defrouter=10.0.0.1
    zonecfg:my-zone:net> end
    

    在非全局区域 my-zone 中只有 bge0 可见。

如果 bge0 随后出现故障

如果 bge0 随后出现故障,并且 bge0 数据地址故障转移到全局区域中的 hme0,则 my-zone 地址也会迁移。

如果地址 192.168.0.1 移至 hme0,此时在非全局区域 my-zone 中只有 hme0 可见。该卡将与地址 192.168.0.1 相关联,并且 bge0 将不再可见。

Solaris 10 8/07:在专用 IP 非全局区域中管理数据链路

在全局区域中可使用 dladm 命令管理数据链路。

Procedure如何使用 dladm show-linkprop

可以将 dladm 命令与 show-linkprop 子命令一起使用,以显示正在运行的专用 IP 区域的数据链路分配。

要管理数据链路,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 显示系统中数据链路的分配。


    global# dladm show-linkprop
    

示例 28–1 将 dladmshow-linkprop 子命令一起使用

  1. 在第一个屏幕中,没有引导分配了 bge0 的区域 49bge


    global# dladm show-linkprop
    LINK         PROPERTY        VALUE          DEFAULT        POSSIBLE
    bge0         zone            --             --             --
    ath0         channel         6              --             --
    ath0         powermode       ?              off            off,fast,max
    ath0         radio           ?              on             on,off
    ath0         speed           11             -- 
    1,2,5.5,6,9,11,12,18,24,36,48,54
    ath0         zone            --             --             --
  2. 引导区域 49bge


    global# zoneadm -z 49bge boot
    
  3. 再次运行 dladm show-linkprop 命令。请注意,bge0 链路现在分配给了 49bge


    global# dladm show-linkprop
    LINK         PROPERTY        VALUE          DEFAULT        POSSIBLE
    bge0         zone            49bge          --             --
    ath0         channel         6              --             --
    ath0         powermode       ?              off            off,fast,max
    ath0         radio           ?              on             on,off
    ath0         speed           11             -- 
    1,2,5.5,6,9,11,12,18,24,36,48,54
    ath0         zone            --             --             --

Procedure如何使用 dladm set-linkprop

可以将 dladm 命令与 set-linkprop 子命令一起使用,以临时向正在运行的专用 IP 区域分配数据链路。必须使用 zonecfg 命令进行持久性分配。

要管理数据链路,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 使用带有 -tdladm set-linkpropbge0 添加到正在运行的名为 excl 的区域。


    global# dladm set-linkprop -t -p zone=excl bge0
    LINK         PROPERTY        VALUE          DEFAULT        POSSIBLE
    bge0         zone            excl           --             --

    提示 –

    -p 选项会生成一个显示内容,其格式为稳定的机器可解析格式。


Procedure如何使用 dladm reset-linkprop

可以将 dladm 命令与 reset-linkprop 子命令一起使用,以将 bge0 链路值重置为未分配状态。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 使用带有 -tdladm reset-linkprop 撤消 bge0 设备的区域分配。


    global# dladm reset-linkprop -t -p zone=excl bge0
    LINK         PROPERTY        VALUE          DEFAULT        POSSIBLE
    bge0         zone            excl           --             --

    提示 –

    -p 选项会生成一个显示内容,其格式为稳定的机器可解析格式。


故障排除

如果正在运行的区域在使用该设备,则重新分配将失败,并显示一条错误消息。请参见专用 IP 区域正在使用设备,因此 dladm reset-linkprop 失败

在安装了区域的 Solaris 系统上使用公平份额调度器

通过 prctl 命令指定的限制不是持久的。在重新引导系统后,此限制将失效。要在区域中设置永久性份额,请参见如何配置区域如何在全局区域中设置 zone.cpu-shares

Procedure如何使用 prctl 命令在全局区域中设置 FSS 份额

缺省情况下,为全局区域提供一个份额。可以使用此过程来更改缺省分配。请注意,只要重新引导系统,就必须重置通过 prctl 命令分配的份额。

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 使用 prctl 实用程序为全局区域分配两个份额:


    # prctl -n zone.cpu-shares -v 2 -r -i zone global
    
  3. (可选)要检验为全局区域分配的份额数,请键入:


    # prctl -n zone.cpu-shares -i zone global
    
另请参见

有关 prctl 实用程序的更多信息,请参见 prctl(1) 手册页。

Procedure如何在区域中动态更改 zone.cpu-shares 的值

此过程可用于任何区域,而不仅仅是全局区域。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建角色并将角色指定给用户的信息,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 使用 prctl 命令为 cpu-shares 指定一个新值。


    # prctl -n zone.cpu-shares -r -v value -i zone zonename
    

    idtypezonenamezoneidvalue 为新值。

在区域管理中使用权限配置文件

本节包含与在非全局区域中使用权限配置文件关联的任务。

Procedure如何分配区域管理配置文件

区域管理配置文件授予用户管理系统上所有非全局区域的权力。

要执行此过程,您必须是全局区域中的全局管理员。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 创建一个包括区域管理权限配置文件的角色并将其指定给用户。

示例-结合使用配置文件 Shell 和区域命令

可以使用 pfexec 程序在配置文件中执行区域命令。该程序使用 exec_attr 数据库中的用户配置文件指定的属性执行命令。该程序由配置文件 shell pfkshpfcshpfsh 进行调用。

使用 pfexec 程序可以登录到区域(例如 my-zone)。


machine$ pfexec zlogin my-zone

备份安装了区域的 Solaris 系统

以下过程可以用于在区域中备份文件。同时,请记住还要备份区域的配置文件。

Procedure如何使用 ufsdump 命令执行备份

可以使用 ufsdump 命令执行完整备份或增量备份。此过程将区域 /export/my-zone 备份到 /backup/my-zone.ufsdump,其中 my-zone 将被替换为您的系统上的区域的名称。您可能需要一个单独的文件系统(例如,在 /backup 上挂载的文件系统),来保存备份。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. (可选)关闭区域以使其处于停顿状态,从而避免创建共享文件系统的备份。


    global# zlogin -S my-zone init 0
    
  3. 查看区域状态。


    global# zoneadm list -cv
    

    将显示以下类似信息:


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     -  my-zone  installed    /export/home/my-zone           native     shared
  4. 执行备份。


    global# ufsdump 0f /backup/my-zone.ufsdump /export/my-zone
    

    将显示以下类似信息:


    DUMP: Date of this level 0 dump: Wed Aug 10 16:13:52 2005
    DUMP: Date of last level 0 dump: the epoch
    DUMP: Dumping /dev/rdsk/c0t0d0s0 (bird:/) to /backup/my-zone.ufsdump. 
    DUMP: Mapping (Pass I) [regular files]
    DUMP: Mapping (Pass II) [directories]
    DUMP: Writing 63 Kilobyte records
    DUMP: Estimated 363468 blocks (174.47MB).
    DUMP: Dumping (Pass III) [directories]
    DUMP: Dumping (Pass IV) [regular files]
    DUMP: 369934 blocks (180.63MB) on 1 volume at 432 KB/sec
    DUMP: DUMP IS DONE
  5. 引导区域。


    global# zoneadm -z my-zone boot
    

Procedure如何使用 fssnap 创建 UFS 快照

此方法使用 fssnap 命令,此命令会创建用于备份操作的文件系统的临时映像。

此方法只能用于提供一个全新、一致的区域文件备份,并且可以在区域运行时执行。但是,最好在创建快照时暂停或检查正在更新文件的活动应用程序。在创建快照时更新文件的应用程序可能会使这些文件内部不一致、被截断或不可用。

在下面的示例过程中,请注意以下内容:

开始之前

目标备份为 /backup/my-zone.ufsdump。您必须在 / 下创建目录 backup

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 创建快照。


    global# fssnap -o bs=/export /export/home
    

    将显示以下类似信息:


    dev/fssnap/0
  3. 挂载快照。


    global# mount -o ro /dev/fssnap/0 /mnt
    
  4. 通过快照备份 my-zone


    global# ufsdump 0f /backup/my-zone.ufsdump /mnt/my-zone
    

    将显示以下类似信息:


    DUMP: Date of this level 0 dump: Thu Oct 06 15:13:07 2005
       DUMP: Date of last level 0 dump: the epoch
       DUMP: Dumping /dev/rfssnap/0 (pc2:/mnt) to /backup/my-zone.ufsdump.
       DUMP: Mapping (Pass I) [regular files]
       DUMP: Mapping (Pass II) [directories]
       DUMP: Writing 32 Kilobyte records
       DUMP: Estimated 176028 blocks (85.95MB).
       DUMP: Dumping (Pass III) [directories]
       DUMP: Dumping (Pass IV) [regular files]
       DUMP: 175614 blocks (85.75MB) on 1 volume at 2731 KB/sec
       DUMP: DUMP IS DONE
  5. 卸载快照。


    global# umount /mnt
    
  6. 删除快照。


    global# fssnap -d /dev/fssnap/0
    

    请注意,快照也会在重新引导系统时从系统中删除。

Procedure如何使用 findcpio 执行备份

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 转到根目录。


    global# cd /
    
  3. 备份没有回送挂载到 /backup/my-zone.cpiomy-zone 文件。


    global# find export/my-zone -fstype lofs -prune -o -local
     | cpio -oc -O /backup/my-zone.cpio type as one line
    
  4. 检验结果。


    global# ls -l backup/my-zone.cpio
    

    将显示以下类似信息:


    -rwxr-xr-x   1 root     root     99680256 Aug 10 16:13 backup/my-zone.cpio

Procedure如何列显区域配置的副本

您应当创建非全局区域配置的备份文件。如有必要,将来可以使用备份来重新创建区域。在您首次登录到区域,并回答了 sysidtool 的问题之后,创建区域配置的副本。此过程使用名为 my-zone 的区域和名为 my-zone.config 的备份文件来显示过程。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 将区域 my-zone 的配置列显到名为 my-zone.config 的文件。


    global# zonecfg -z my-zone export > my-zone.config
    

恢复非全局区域

Procedure如何恢复单个非全局区域

如有必要,可以使用非全局区域配置的备份文件来恢复非全局区域。此过程使用名为 my-zone 的区域和名为 my-zone.config 的备份文件来说明恢复区域的过程。

  1. 成为超级用户或承担主管理员角色。

    有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的“使用 RBAC 和 Solaris 管理工具(任务图)”

  2. 指定 my-zone.config 作为 zonecfg 命令文件来重新创建区域 my-zone


    global# zonecfg -z my-zone -f my-zone.config
    
  3. 安装区域。


    global# zoneadm -z my-zone install
    
  4. 为了防止系统显示在初始登录区域时出现的 sysidtool 问题,请删除文件 zonepath/root/etc/.UNCONFIGURED,例如:


    global# rm /export/home/my-zone/root/etc/.UNCONFIGURED
    
  5. 如果您需要恢复任何区域特定的文件(例如应用程序数据),请将这些文件从备份手动恢复(并可能手动合并)到新创建的区域根文件系统。