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

第 22 章 登录到非全局区域(任务)

本章提供用于完成已安装区域的配置、从全局区域登录到某个区域以及关闭区域的过程。同时还介绍如何使用 zonename 命令来列显当前区域的名称。

有关区域登录进程的介绍,请参见第 21 章

初始区域引导与区域登录过程(任务图)

任务 

说明 

参考 

执行内部配置。 

登录到区域控制台或使用 /etc/sysidcfg 文件来执行初始区域配置。

执行初始内部区域配置

登录到区域。 

您可以使用交互模式分配伪终端或提供要在区域中运行的命令,通过控制台登录到区域。提供要运行的命令不会分配伪终端。当指向区域的连接被拒绝时,您还可以使用故障安全模式进行登录。 

登录到区域

退出非全局区域。 

从非全局区域断开。 

如何退出非全局区域

关闭区域。 

使用 shutdown 实用程序或脚本来关闭区域。

如何使用 zlogin 关闭区域

列显区域名称。 

列显当前区域的区域名称。 

列显当前区域的名称

执行初始内部区域配置

您必须使用以下方法之一来配置区域:


提示 –

执行完内部配置之后,最好复制非全局区域的配置。将来您可以使用此备份来恢复区域。以超级用户或主管理员的身份,将区域 my-zone 的配置列显到文件。以下示例使用名为 my-zone.config 的文件。


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

有关更多信息,请参见如何恢复单个非全局区域


Procedure如何登录到区域控制台以执行内部区域配置

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

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

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

  2. 使用带有 -C 选项和区域名称(在此过程中为 my-zone)的 zlogin 命令。


    global# zlogin -C my-zone
    
  3. 从其他终端窗口中引导区域。


    global# zoneadm -z my-zone boot
    

    将在 zlogin 窗口中显示以下类似信息:


    [NOTICE: Zone booting up]
  4. 首次登录到控制台时,系统会提示您回答一系列问题。将显示以下类似信息:


    SunOS Release 5.10 Version Generic 64-bit
    Copyright 1983-2006 Sun Microsystems, Inc.  All rights reserved.
    Use is subject to license terms.
    
    Hostname: my-zone
    Loading smf(5) service descriptions:
    Select a Language
    
         1. English
         2. es
         2. fr
    Please make a choice (0 - 1), or press h or ? for help:
    
    Select a Locale
    
          1. English (C - 7-bit ASCII)
          2. Canada (English) (UTF-8)
          4. U.S.A. (UTF-8)
          5. U.S.A. (en_US.ISO8859-1)
          6. U.S.A. (en_US.ISO8859-15)
          7. Go Back to Previous Screen
    Please make a choice (0 - 9), or press h or ? for help:
    
    What type of terminal are you using?
          1) ANSI Standard CRT
          2) DEC VT52
          3) DEC VT100
          4) Heathkit 19
          5) Lear Siegler ADM31
          6) PC Console
          7) Sun Command Tool
          8) Sun Workstation
          9) Televideo 910
          10) Televideo 925
          11) Wyse Model 50
          12) X Terminal Emulator (xterms)
          13) CDE Terminal Emulator (dtterm)
          14) Other
    Type the number of your choice and press Return:
    13
    .
    .
    .

    有关必须回答的问题的完整列表,请参见内部区域配置

  5. (可选)如果未按步骤 3 所述使用两个窗口,则可能已错过关于配置信息的初始提示。如果您在区域登录时看到的不是提示而是以下系统消息:


    [connected to zone zonename console]

    请按回车键再次显示提示。

    如果输入错误响应并尝试重新启动配置,则可能会在再次尝试此过程时遇到问题。这是因为 sysidtools 可以存储先前的响应。

    如果发生这种情况,请在全局区域中使用以下解决方法来重新启动配置过程。


    global# zlogin -S zonename /usr/sbin/sys-unconfig
    

    有关 sys-unconfig 命令的更多信息,请参见 sys-unconfig(1M) 手册页。

Procedure如何使用 /etc/sysidcfg 文件执行初始区域配置

Solaris 10 8/07: 添加了关键字nfs4_domain。示例文件显示此关键字。如果运行早期的发行版,下面的步骤 4 显示其他步骤。

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

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

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

  2. 在全局区域中,转到非全局区域的 /etc 目录:


    global# cd /export/home/my-zone/root/etc
    
  3. 创建 sysidcfg 文件并将其放入此目录中。

    将显示以下类似信息:

    • 对于共享 IP 区域:


      system_locale=C
      terminal=dtterm
      network_interface=primary {
      	        hostname=my-zone
      }
      security_policy=NONE
      name_service=NIS {
      	        domain_name=special.example.com
      	        name_server=bird(192.168.112.3)
      }
      nfs4_domain=domain.com
      timezone=US/Central
      root_password=m4qtoWN
    • 对于带有静态 IP 配置的专用 IP 区域:


      system_locale=C
      terminal=dtterm
      network_interface=primary {
               hostname=my-zone
               default_route=10.10.10.1
               ip_address=10.10.10.13
               netmask=255.255.255.0
      }
      nfs4_domain=domain.com
      timezone=US/Central
      root_password=m4qtoWN
    • 对于带有 DHCP 和 IPv6 选项的专用 IP 区域:


      system_locale=C
      terminal=dtterm
      network_interface=primary {
      	        dhcp protocol_ipv6=yes
      }
      security_policy=NONE
      name_service=DNS {
               domain_name=example.net
               name_server=192.168.224.11,192.168.224.33
      }
      nfs4_domain=domain.com
      timezone=US/Central
      root_password=m4qtoWN
  4. 如果运行 Solaris 10 8/07 之前的发行版,在 sysidcfg 文件中将没有关键字 nfs4_domain。缺省情况下,单独的模块将请求 nfsmapid 命令使用的 NFSv4 域参数。要完成脱离手动干预的初始区域配置,请编辑文件 default/nfs,取消对 NFSMAPID_DOMAIN 参数的注释,并将域设置为所需的 NFSv4 域:


    global# vi default/nfs
    		.
    		.
    		.
    		NFSMAPID_DOMAIN=domain
    

    在此目录中创建文件 .NFS4inst_state.domain,以表明已经设置 NFSv4 域:


    global# touch .NFS4inst_state.domain
    

    有关 NFSv4 域参数的更多信息,请参见 nfsmapid(1M) 手册页。

  5. 引导区域。

另请参见

有关更多信息,请参见 sysidcfg(4) 手册页。

登录到区域

使用 zlogin 命令,可以从全局区域登录到任何处于正在运行状态或就绪状态的区域。有关更多信息,请参见 zlogin(1) 手册页。

如以下过程中所述,您可以通过多种方法登录到区域。您还可以远程登录,如远程登录中所述。

Procedure如何登录到区域控制台

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

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

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

  2. 使用带有 -C 选项和区域名称(例如 my-zone)的 zlogin 命令。


    global# zlogin -C my-zone
    

    注 –

    如果您在发出 zoneadm boot 命令之后立即启动 zlogin 会话,则会显示区域的引导消息:


    SunOS Release 5.10 Version Generic 64-bit
    Copyright 1983-2005 Sun Microsystems, Inc. All rights reserved.
    Use is subject to license terms.
    starting rpc services: rpcbind done.
    syslog service starting.
    The system is ready.

  3. 当显示区域控制台时,以 root 身份登录,按回车键,并在提示时键入超级用户口令。


    my-zone console login: root
    Password:

Procedure如何使用交互模式访问区域

在交互模式下,会分配新的伪终端以在区域内部使用。

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

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

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

  2. 从全局区域登录到某个区域,例如 my-zone


    global# zlogin my-zone
    

    将显示以下类似信息:


    [Connected to zone 'my-zone' pts/2]
    Last login: Wed Jul  3 16:25:00 on console
    Sun Microsystems Inc. SunOS 5.10 Generic June 2004
  3. 键入 exit 关闭连接。

    将显示以下类似消息:


    [Connection to zone 'my-zone' pts/2 closed]

Procedure如何使用非交互模式访问区域

当用户提供要在区域内部运行的命令时,便会启用非交互模式。非交互模式不会分配新的伪终端。

请注意,命令或运行命令的所有文件都不能驻留在 NFS 上。

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

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

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

  2. 从全局区域登录到 my-zone 区域并提供命令名称。

    在此使用命令 zonename


    global# zlogin my-zone zonename
    

    您会看到以下输出:


    my-zone

Procedure如何退出非全局区域

  1. 要从非全局区域断开连接,请使用下列方法之一。

    • 要退出区域非虚拟控制台:


      zonename# exit
      
    • 要从区域虚拟控制台断开连接,请使用波浪号 (~) 字符和句点:


      zonename# ~.
      

      将显示以下类似信息:


      [Connection to zone 'lx-zone' pts/6 closed]
另请参见

有关 zlogin 命令选项的更多信息,请参见 zlogin(1)

Procedure如何使用故障安全模式进入区域

当指向区域的连接被拒绝时,可以使用带有 -S 选项的 zlogin 命令进入区域的最小环境。

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

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

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

  2. 在全局区域中,使用带有-S 选项的 zlogin 命令来访问区域(例如 my-zone)。


    global# zlogin -S my-zone
    

Procedure如何使用 zlogin 关闭区域


注 –

如果在全局区域中运行 init 0 干净地关闭 Solaris 系统,也会在系统上的每个非全局区域中运行 init 0。请注意,init 0 在系统关闭之前不会警告本地和远程用户注销。


使用此过程可以干净地关闭区域。有关如何在不运行关闭脚本的情况下停止区域,请参见如何停止区域

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

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

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

  2. 登录到要关闭的区域,例如 my-zone,并将 shutdown 指定为实用程序的名称,将 init 0 指定为状态。


    global# zlogin my-zone shutdown -y -g0 -i 0
    

    您的站点可能具有自己的适用于特定环境的关闭脚本。

在非交互模式下使用 shutdown

当前,不能在非交互模式下使用 shutdown 命令将区域置于单用户状态。有关更多信息,请参见 CR 6214427。

您可以使用如何使用交互模式访问区域中介绍的交互式登录。

将非全局区域切换到其他网络服务配置

此区域安装时使用了《系统管理指南:基本管理》中的第 19  章 “管理服务(任务)”中介绍的开放式网络配置。您可以将区域切换到受限的网络配置,也可以在区域中启用或禁用个别服务。

Procedure如何将区域切换到受限的网络服务配置

  1. 从全局区域登录到某个区域(例如 my-zone)。


    global# zlogin my-zone
    
  2. 运行 netservices 命令,将区域切换到受限的网络配置。


    my-zone# /usr/sbin/netservices limited
    

    将显示以下类似信息。输入 y 响应提示,以重新启动 dtlogin


    restarting syslogd
    restarting sendmail
    dtlogin needs to be restarted. Restart now? [Y] y
    restarting dtlogin

Procedure如何在区域中启用特定服务

  1. 从全局区域登录到某个区域(例如 my-zone)。


    global# zlogin my-zone
    
  2. 运行 svcadm 命令,以使用资源上限设置守护进程启用物理内存控制。


    my-zone# svcadm enable svc:/system/rcap:default
    
  3. 列出服务,以验证是否已启用 rcapd


    my-zone# svcs -a
    .
    .
    .
    online    14:04:21 svc:/system/rcap:default
    .
    .
    .
    

列显当前区域的名称

zonename(1) 手册页中所述的 zonename 命令可列显当前区域的名称。以下示例显示了在全局区域中使用 zonename 时的输出。


# zonename
global