Solaris zone的配置

第 17 章 非全局区域配置(概述)

本章介绍非全局区域配置。

本章包含以下主题:

了解区域配置之后,请转至第 18 章,规划和配置非全局区域(任务)以配置要在系统上安装的非全局区域。

本章中 Solaris 10 6/06 的新增功能

已添加了对非全局区域中 Zettabyte 文件系统 (Zettabyte File System, ZFS) 的支持。有关更多信息,请参见资源类型属性

有关 Solaris 10 新增功能的完整列表以及 Solaris 发行版的描述,请参见《Solaris 10 新增功能》

预安装配置过程

在系统上安装和使用非全局区域之前,必须配置此区域。

zonecfg 命令用于创建配置,并确定指定的资源和属性是否在虚拟系统上有效。zonecfg 对给定配置执行的检查将检验以下内容:

  • 确保已指定区域路径

  • 确保已为每个资源指定所有必需的属性

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

区域组件

本节介绍可以配置的区域资源和属性。

区域名称和路径

必须为区域选择名称和路径。

区域接口

每个需要网络连接的区域都必须具有一个或多个专用 IP 地址。这些地址与逻辑网络接口关联。引导区域时,将在其中自动检测并放置通过 zonecfg 命令配置的区域接口。

可以从全局区域中使用 ifconfig 命令来在运行的区域中添加或删除逻辑接口。有关更多信息,请参见网络接口

在区域中挂载的文件系统

通常,在区域中挂载的文件系统包括:

  • 初始化虚拟平台时挂载的文件系统集合

  • 在应用程序环境本身中挂载的文件系统集合

例如,这可以包括以下文件系统:

  • 在区域的 /etc/vfstab 文件中指定的文件系统

  • AutoFS 挂载和 AutoFS 触发的挂载

  • 区域管理员明确执行的挂载

将对在应用程序环境中执行的挂载设定特定限制。这些限制可防止区域管理员拒绝为系统的其余部分提供服务,或者对其他区域产生不良影响。

在区域中挂载特定的文件系统时存在安全限制。其他文件系统在区域中挂载时会显示出特殊行为。有关更多信息,请参见文件系统和非全局区域

区域中的已配置设备

zonecfg 命令使用与规则匹配的系统来指定应在特定区域中出现的设备。与其中一个规则匹配的设备包括在区域的 /dev 文件系统中。有关更多信息,请参见如何配置区域

区域范围的资源控制

全局管理员可以为区域设置区域范围的特权资源控制。区域范围的资源控制可限制区域内所有进程实体总的资源使用情况,而不考虑项目。这些限制在 zonecfg 配置中指定。有关更多信息,请参见如何配置区域

包含区域注释

您可以使用 attr 资源类型为区域添加注释。有关更多信息,请参见如何配置区域

使用 zonecfg 命令

zonecfg(1M) 手册页中所述的 zonecfg 命令用于配置区域。zonecfg 命令可以在交互模式、命令行模式或命令文件模式下使用。可以使用此命令执行以下操作:

  • 创建或删除(销毁)区域配置

  • 将资源添加到特定配置

  • 为添加到配置的资源设置属性

  • 从特定配置中删除资源

  • 查询或检验配置

  • 提交到配置

  • 恢复到先前配置

  • zonecfg 会话中退出

zonecfg 提示符的格式如下:


zonecfg:zonename>

当您配置特定的资源类型(例如文件系统)时,此资源类型也包含在提示符中:


zonecfg:zonename:fs>

有关更多信息,包括显示如何使用本章中所述的各种 zonecfg 组件的过程,请参见第 18 章,规划和配置非全局区域(任务)

zonecfg 模式

范围的概念用于用户界面。范围可以为全局资源特定。缺省范围为全局。

在全局范围中,add 子命令和 select 子命令用于选择特定的资源。然后范围更改为此资源类型。

  • 对于 add 子命令,endcancel 子命令用于完成资源指定。

  • 对于 select 子命令,endcancel 子命令用于完成资源修改。

然后范围恢复为全局。

某些子命令(例如 addremoveset)在每个范围中都有不同的语义。

zonecfg 交互模式

交互模式支持以下子命令。有关与子命令一起使用的语义和选项的详细信息,请参见选项的 zonecfg(1M) 手册页。对于可能会导致破坏性操作或作业丢失的子命令,系统要求用户在继续之前进行确认。您可以使用 -F(强制)选项,跳过此项确认操作。

help

列显一般帮助,或者显示有关给定资源的帮助。


zonecfg:my-zone:inherit-pkg-dir> help 
create

开始为指定的新区域配置内存中的配置,以实现以下用途之一:

  • 将 Sun 缺省设置应用于新的配置。此方法为缺省方法。

  • -t template 选项一起使用时,用于创建与指定模板相同的配置。区域名称从模板名称更改为新区域名称。

  • -F 选项一起使用时,用于覆写现有配置。

  • -b 选项一起使用时,用于创建其中未设置任何内容的空配置。

export

采用可以在命令文件中使用的格式,在标准输出或指定输出文件中列显配置。

add

在全局范围中,将指定的资源类型添加到配置。

在资源范围中,添加具有给定名称和给定值的属性。

有关更多信息,请参见如何配置区域和 zonecfg(1M) 手册页。

set

将给定属性名称设置为给定属性值。请注意,某些属性(例如 zonepath)为全局属性,而其他属性则为资源特定的属性。因此,此命令适用于全局范围和资源范围。

select

仅适用于全局范围。选择与给定属性名称-属性值对的修改条件相匹配的给定类型资源。将范围更改为此资源类型。您必须为要唯一标识的资源指定足够数量的属性名称-值对。

remove

在全局范围中,删除指定的资源类型。您必须为要唯一标识的资源类型指定足够数量的属性名称-值对。

在资源范围中,从当前资源中删除指定的属性名称-属性值。

end

仅适用于资源范围。结束资源指定。

然后,zonecfg 命令将检验是否完全指定当前资源。

  • 如果资源完全指定,则可以将其添加到内存中的配置,并且范围将恢复为全局。

  • 如果未完全指定,则系统将显示一条描述需要执行何种操作的错误消息。

cancel

仅适用于资源范围。结束资源指定并将范围重置为全局。系统不会保留任何未完全指定的资源。

delete

销毁指定的配置。从内存和稳定存储器中删除配置。您必须将 -F(强制)选项与 delete 一起使用。


注意 – 注意 –

此操作为即时操作。不需要提交,并且无法恢复已删除的区域。


info

显示有关当前配置或全局资源属性 zonepathautobootpool 的信息。如果指定了资源类型,则仅显示有关此类型资源的信息。在资源范围中,此子命令仅应用于要添加或修改的资源。

verify

检验当前配置是否正确。确保所有资源都指定了所有必需的属性。

commit

将当前配置从内存提交到稳定存储器。在提交内存中的配置之前,可以使用 revert 子命令删除更改。必须提交配置以供 zoneadm 使用。完成 zonecfg 会话时,便会自动尝试此操作。由于仅可提交正确的配置,因此,提交操作将自动进行检验。

revert

将配置恢复到上次提交时的状态。

exit

退出 zonecfg 会话。 您可以将 -F(强制)选项与 exit 一起使用。

如果需要,会自动尝试 commit。请注意,也可以使用 EOF 字符退出会话。

zonecfg 命令文件模式

在命令文件模式中,输入来自文件。可以使用zonecfg 交互模式中所述的 export 子命令生成此文件。可以在标准输出中列显配置,也可以使用 -f 选项指定输出文件。

区域配置数据

区域配置数据由两种实体类型组成:资源和属性。每个资源都有一种类型,并且每个资源还可以有一个包含一个或多个属性的集合。属性具有名称和值。属性集取决于资源类型。

资源和属性类型

资源和属性类型描述如下:

区域名称

区域名称用于标识配置实用程序的区域。以下规则适用于区域名称:

  • 每个区域必须具有唯一的名称。

  • 区域名称区分大小写。

  • 区域名称必须以字母数字字符开头。

    名称可以包含字母数字字符、下划线 (_)、连字符 (-) 和句点 (.)。

  • 名称不能超过 64 个字符。

  • 名称 global 和所有以 SUNW 开头的名称均保留,不能使用。

zonepath

zonepath 属性是区域根目录的路径。每个区域都具有一个与全局区域根目录相对的根目录路径。安装时,需要全局区域目录以提供限定的可见性。它必须由 root 拥有,并且模式为 700

非全局区域的根路径低一个级别。区域的根目录与全局区域中的根目录 (/) 具有相同的拥有权和权限。区域目录必须由 root 拥有,并且模式为 755。这些目录是使用正确的权限自动创建的,并且不需要区域管理员进行检验。此分层结构可防止全局区域中的非特权用户遍历非全局区域的文件系统。

路径 

说明 

/home/export/my-zone

zonecfg zonepath

/home/export/my-zone/root

区域的根目录 

/home/export/my-zone/dev

为区域创建的设备目录 

有关此问题的进一步讨论,请参见遍历文件系统


注 –

有关此发行版的 ZFS 限制,请参见Solaris 10 6/06:不要在 ZFS 上放置非全局区域的根文件系统


autoboot

如果此属性设置为 true,则引导全局区域时会自动引导区域。请注意,如果禁用区域服务 svc:/system/zones:default,则无论如何设置此属性,区域都不会自动引导。您可以使用 svcadm(1M) 手册页中所述的 svcadm 命令来启用区域服务:


global# svcadm enable zones 
pool

此属性用于将区域与系统上的资源池关联。多个区域可以共享一个池的资源。

fs

当区域从已安装状态转换为就绪状态时,每个区域都可以拥有已挂载的各种文件系统。文件系统资源指定文件系统挂载点的路径。有关在区域中使用文件系统的更多信息,请参见文件系统和非全局区域

dataset

通过添加 ZFS 文件系统数据集资源,可以将存储管理委派给非全局区域。区域管理员可以在此数据集中创建和销毁文件系统,并可修改此数据集的属性。区域管理员无法影响尚未 添加到区域的数据集,也无法超过对指定给区域的数据集设置的任何顶层配额。请参见《Solaris ZFS 管理指南 》中的第 8 章“ZFS 高级主题”和文件系统和非全局区域

有关数据集问题的信息,另请参见第 28 章,解答各种 Solaris Zones 疑难问题

inherit-pkg-dir

不应在完全根区域中配置此资源。

在稀疏根区域中,inherit-pkg-dir 资源用于表示包含非全局区域与全局区域共享的软件包的目录。

非全局区域以只读模式继承传送到 inherit-pkg-dir 目录的软件包内容。区域的打包数据库将更新,以反映软件包。使用 zoneadm 安装区域之后,便不能修改或删除这些资源。


注 –

配置中包含四种缺省 inherit-pkg-dir 资源。这些目录资源表示哪些目录应从全局区域中继承关联的软件包。资源通过只读回送文件系统挂载来实现。

  • /lib

  • /platform

  • /sbin

  • /usr


net

网络接口资源是虚拟接口名称。当区域从已安装状态转换为就绪状态时,每个区域都可以具有应检测的网络接口。

device

设备资源是与设备匹配的说明符。当区域从已安装状态转换为就绪状态时,每个区域都具有应配置的设备。

rctl

rctl 资源用于区域范围的资源控制。当区域从已安装状态转换为就绪状态时,应启用这些控制。在此发行版中,执行的区域范围的资源控制为 zone.cpu-shareszone.max-lwps

attr

此通用属性可用于用户注释或其他子系统。attrname 属性必须以字母数字字符开头。name 属性可以包含字母数字字符、连字符 (-) 和句点 (.)。以 zone. 开头的属性名称将保留,以供系统使用。

资源类型属性

有些资源类型的属性也要进行配置。以下属性与所示的资源类型关联。

fs

dirspecialrawtypeoptions

以下示例的几行代码指定全局区域中的 /dev/dsk/c0t0d0s2 将作为要配置的区域中的 /mnt 进行挂载。raw 属性指定一个在尝试挂载文件系统之前运行 fsck 命令的可选设备。所使用的文件系统类型为 UFS。添加了选项 nodeviceslogging


zonecfg:my-zone> add fs

zonecfg:my-zone:fs> set dir=/mnt

zonecfg:my-zone:fs> set special=/dev/dsk/c0t0d0s2

zonecfg:my-zone:fs> set raw=/dev/rdsk/c0t0d0s2

zonecfg:my-zone:fs> set type=ufs

zonecfg:my-zone:fs> add options [nodevices,logging]

zonecfg:my-zone:fs> end

有关更多信息,请参见-o nosuid 选项安全限制和文件系统行为fsck(1M) 手册页和 mount(1M) 手册页。另请注意,有关专用于特定文件系统的挂载选项的信息可以在 1M 手册页部分中找到。这些手册页的名称格式为 mount_filesystem

dataset

name

以下示例的几行代码指定 dataset sales 在非全局区域中可见并进行挂载,并且不再在全局区域中可见。


zonecfg:my-zone> add dataset

zonecfg:my-zone> set name=tank/sales

zonecfg:my-zone> end
inherit-pkg-dir

dir

以下示例的几行代码指定 /opt/sfw 从全局区域中进行回送挂载。


zonecfg:my-zone> add inherit-pkg-dir

zonecfg:my-zone:inherit-pkg-dir> set dir=/opt/sfw

zonecfg:my-zone:inherit-pkg-dir> end
net

addressphysical

在以下示例中,将 IP 地址 192.168.0.1 添加到区域。hme0 卡用于物理接口。


zonecfg:my-zone> add net

zonecfg:my-zone:net> set physical=hme0

zonecfg:my-zone:net> set address=192.168.0.1

zonecfg:my-zone:net> end

注 –

要确定所使用的物理接口,请在系统上键入 ifconfig -a。每一个输出行(回送驱动程序行除外)都以系统上安装的卡的名称开头。说明中包含 LOOPBACK 的行不适用于卡。


device

match

在以下示例中,/dev/pts 设备包括在区域中。


zonecfg:my-zone> add device

zonecfg:my-zone:device> set match=/dev/pts*

zonecfg:my-zone:device> end
rctl

namevalue

在此发行版中,有两种区域范围的资源控制:zone.cpu-shareszone.max-lwps

zone.cpu-shares 资源控制对区域的公平共享调度程序 (fair share scheduler, FSS) CPU 份额数设置限制。CPU 份额首先分配给区域,然后在区域内的项目之间进一步分配,如 project.cpu-shares 项中所述。有关更多信息,请参见在安装了区域的 Solaris 系统上使用公平共享调度程序

zone.max-lwps 资源控制通过防止某个区域中的过多 LWP 影响其他区域,来增强资源的隔离。可以使用 project.max-lwps 项在区域内的各个项目之间进一步分配区域的所有 LWP。

请注意,区域中的区域范围资源控制项与 project 数据库中的资源控制项使用不同的方式进行配置。在区域配置中,rctl 资源类型由三个名称/值对组成。名称分别为 privlimitaction。每个名称都有一个简单值。


zonecfg:my-zone> add rctl

zonecfg:my-zone:rctl> set name=zone.cpu-shares

zonecfg:my-zone:rctl> add value (priv=privileged,limit=10,action=none)

zonecfg:my-zone:rctl> end

zonecfg:my-zone> add rctl

zonecfg:my-zone:rctl> set name=zone.max-lwps

zonecfg:my-zone:rctl> add value (priv=privileged,limit=100,action=deny)

zonecfg:my-zone:rctl> end

有关资源控制和属性的一般信息,请参见第 6 章,资源控制(概述)在非全局区域中使用的资源控制

attr

nametypevalue

在以下示例中,添加了有关区域的注释。


zonecfg:my-zone> add attr

zonecfg:my-zone:attr> set name=comment

zonecfg:my-zone:attr> set type=string

zonecfg:my-zone:attr> set value="Production zone"

zonecfg:my-zone:attr> end

可以使用 export 子命令在标准输出中列显区域配置。通过可以在命令文件中使用的格式保存配置。

Tecla 命令行编辑库

配置中提供了 Tecla 命令行编辑库,可与 zonecfg 命令一起使用。此库为命令行历史记录和编辑支持提供了一种机制。

Tecla 命令行编辑库在以下手册页中进行介绍:

  • enhance(1)

  • libtecla(3LIB)

  • ef_expand_file(3TECLA)

  • gl_get_line(3TECLA)

  • gl_io_mode(3TECLA)

  • pca_lookup_file(3TECLA)

  • tecla(5)

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值