系统管理指南:Solaris 8 容器

第 7 章 关于区域登录和安装后配置

本章论述登录到区域、使用 sysidcfg 完成系统标识、对 /etc/system 进行修改以及在 solaris8 区域中使用 ssh X11 转发。

内部区域配置

请注意,当您首次登录到 sys-unconfig 区域时,需要执行内部区域配置。《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的“内部区域配置”对此进行了介绍。

当系统询问时间是否正确时,请不要修改显示的时间。如果修改该时间,系统识别将失败并返回到时间设置提示处,这是因为缺省情况下非全局区域不能修改系统时钟。对于共享 IP 区域,您还必须接受在 zonecfg 中指定的网络配置。

如果打算使用 /etc/sysidcfg 文件执行初始区域配置(如《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的“如何使用 /etc/sysidcfg 文件执行初始区域配置”所述),请在引导区域之前创建 sysidcfg 文件并将其放在该区域的 /etc 目录中。

Procedure如何登录到区域控制台以完成系统标识

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

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

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


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


    global# zoneadm -z s8-zone boot
    

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


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


    SunOS Release 5.8 Version Generic_Virtual 64-bit
    
    Copyright 1983-2000 Sun Microsystems, Inc.  All rights reserved 
    
    Use is subject to license terms.
    
    
    
    Hostname: s8-zone
    
    Select a Language
    
    
    
         0. English
    
         1. fr
    
    Please make a choice (0 - 1), or press h or ? for help:
    
    
    
    Select a Locale
    
    
    
     0. English (C - 7-bit ASCII)
    
      1. Canada-English (ISO8859-1)
    
      2. Thai
    
      3. U.S.A. (en_US.ISO8859-1)
    
      4. U.S.A. (en_US.ISO8859-15)
    
      5. Go Back to Previous Screen
    
    
    
    Please make a choice (0 - 5), 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) Other
    
    Type the number of your choice and press Return:
    
    12
    
    .
    
    .
    
    .

    有关必答问题的大致列表,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的“内部区域配置”

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


    [connected to zone zonename console]

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

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

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


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

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

在容器中应用 Solaris 8 修补程序

使用与独立系统上相同的过程,可以从容器内部将 Solaris 8 修补程序应用到 Solaris 8 环境中。获取修补程序并运行 patchadd 以安装修补程序(在 Solaris 8 区域中运行)。请注意,由于内核实际上是 Solaris 10 内核,因此用来改变任何 Solaris 8 内核位的修补程序都不会生效。在这种情况下,如果需要,可以在全局区域中应用等效的 Solaris 10 修补程序。即使用来提供内核更新的 Solaris 8 修补程序在区域内不起作用,但仍然需要它们来满足修补程序依赖性。

有关修补 Solaris 8 系统的更多信息,请参见《System Administration Guide, Volume 1》中的第 22 章,"Patch Administration (Overview)"。

调节 /etc/system 和使用资源控制

在 Solaris 8 中,可以通过修改 /etc/system 并重新引导计算机以使修改生效,来对 System V 和文件描述符限制加以调节。在 Solaris 10 中,这些限制可以通过资源控制进行动态调节。

对于 solaris8 标记区域,/etc/system 的内容用于在区域引导时设置项目和进程资源控制。如果未调节 /etc/system,则使用 Solaris 8 中的缺省文件描述符和 System V 限制。

区域内的有效限制将采用区域 /etc/system 设置或区域 zonecfg 设置中的较小者。要查看有效限制,请在区域运行 sysdef(1M) 中所述的 sysdef 命令。

要在 solaris8 标记区域内修改 /etc/system,您必须是区域管理员,并且需要重新引导区域,以使更改生效。由于可在该区域内修改 /etc/system,因此全局管理员可在全局区域中使用 zonecfg 命令来为该区域设置限制。

在全局区域中使用 prctl 命令可查看缺省的资源控制设置。以下示例显示了 init 进程的用于约束 System V 限制的缺省设置。


示例 7–1 查看 solaris8 区域内 init 进程的缺省设置


global# prctl `pgrep -x init -z s8zone`




...

process.max-msg-messages

        privileged         40       -   deny                          -

        system          4.29G     max   deny                          -

process.max-msg-qbytes

        privileged      4.00KB      -   deny                          -

        system          16.0EB    max   deny                          -

process.max-sem-ops

        privileged         10       -   deny                          -

        system          2.15G     max   deny                          -

process.max-sem-nsems

        privileged         25       -   deny                          -

        system          32.8K     max   deny                          -

process.max-file-descriptor

        basic             256       -   deny                      10485

        privileged      1.02K       -   deny                          -

        system          2.15G     max   deny                          -

...

project.max-shm-memory

        privileged       100MB      -   deny                          -

        system          16.0EB    max   deny                          -

project.max-shm-ids

        privileged        100       -   deny                          -

        system          16.8M     max   deny                          -

project.max-msg-ids

        privileged         50       -   deny                          -

        system          16.8M     max   deny                          -

project.max-sem-ids

        privileged         10       -   deny                          -

        system          16.8M     max   deny                          -

...

修改 /etc/system

对于需要进行这些调节的应用程序,区域管理员可以在 solaris8 标记区域内修改 /etc/system,然后重新引导该区域。此过程与本机 Solaris 8 系统上用于进行调节的过程完全相同。

使用 zonecfg 设置资源控制

可以从全局区域中使用 zonecfg 命令来约束区域内的 System V 限制。


示例 7–2 从全局区域中设置资源控制

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


global# zonecfg -z mys8zone set max-shm-memory=100m

如果在创建初始区域后使用 zonecfg,请重新引导区域,以使更改生效。


global# zoneadm -z mys8zone reboot

solaris8 标记区域内运行 X11 应用程序

ssh X11 转发是在 solaris8 区域内运行 Solaris 8 X11 应用程序(包括三维应用程序和图形密集型应用程序)的首选方法。三维应用程序只能在全局区域中支持三维图形的系统上运行。

Procedure如何使用 ssh X11 转发

要使用 X11 转发,必须满足以下要求:

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

  2. 如何配置 solaris8 标记区域所述,在区域中启用联网。

  3. www.openssh.orgwww.sunfreeware.com 下载 ssh,并在区域中安装它。

  4. ssh 在区域中运行时,直接登录到在全局区域控制台上运行的 X 服务器。

  5. 要启用 ssh X11 转发并远程运行 X 应用程序,请使用以下命令:


    # ssh -X zone_host_name
    
故障排除

任何实现自己的 Xserver 扩展的应用程序都无法使用 ssh -X 转发,当前在 solaris8 标记区域内也不受支持。