最底层是各种物理设备,网卡,存储等等;然后是Solaris操作系统母体,提供各种核心服务,以及各种管理控制功能;再往上就是用zone实现各种虚拟平台;最上层为在各个zone里面部署的各种应用。
1.3 zone特性
安全性
把网络服务放在zone里运行,限制了发生安全侵犯事件时的潜在损失。运行在一个zone里的进程,即使拥有一个超级用户信任状也无法影响另外一个zone的活动性,比如仅能在全局zone中才能在总体上重启或关闭系统。 管理员登陆到全局zone,可监视运行在其他zone的应用的活动性以及在总体上控制系统。全局zone是缺省的zone,是永久存在的。
隔离性
zone允许在同样的机器上配置多种应用,即使这些应用是在不同的信任域中操作,或需要独占一种全局资源,或使用全局配置出现困难。个体zone拥有自己的用户设置和root密码。个体zone的重启不会影响运行在系统上的其他zone。
虚拟化
zone提供了一个虚假的环境,能够把诸如物理设备,系统的主IP地址,主机名等隐藏起来,对应用而言是不可见的。同样的环境能够在不同物理机器上进行维护,能够很好的支持对应用进行快速配置和重配置。
粒度
zone能够以任意粒度级别提供隔离。一个zone不需要专用的CPU,物理设备,或物理内存块。通过OS的资源管理特性,这些资源能被运行在单个系统上的许多zone共同混合使用,或以一个zone为基础进行分配。
透明度
除非是为了达到必须的安全性和隔离性,应避免对应用的执行环境进行变更。Zone并没有提出一个新的API或ABI(application binary interface),它提供的是标准的Solaris接口和应用环境,并且对应用尝试执行有特权的操作做了一些限制。
第2节 Zone概念
要理解Solaris的zone软件分区技术,就必须了解这些zone的相关概念:zone的类型,zone的守护进程,zone的文件系统,zone的联网,zone的命令范围,zone的状态。
2.1 Zone的类型
Solaris 10操作系统支持两种类型的zone:global zone和non-global zone(非全局zone)
GLOBAL ZONE
每个Solaris 10系统都有一个global zone。global zone有两个功能。global zone是系统的缺省zone,同时也是用来执行系统范围的管理控制的默认zone。只有在global zone里才能够对非全局zone进行配置,安装,管理或反安装。如果全局管理员没有创建任何非全局zone,所有的进程都运行在global zone中。
只有global zone才能从系统硬件启动。对系统底部架构的管理,比如物理设备,路由或动态重配置(DR)都只能在global zone中才能进行。另外,global zone还包含一个完整的Solaris系统软件包的安装,还能包含未包括在系统安装包中的额外的软件
运行在global zone中的适当的有特权的进程能访问与其他zone关联的对象;而在global zone中无特权的进程可能可以执行(非全局zone中有特权的进程不能够进行)的操作。例如,global zone中的用户可以观看系统里每一个进程的信息。如果zone的这个功能在你的站点上出现问题,可以限制对global zone的访问。
global zone提供一个完整的数据库,包含所有已安装主机的信息。它仅保留global zone的配置信息,比如global zone主机名和文件系统表。只有global zone能认识到所有的设备和文件系统
在global zone中的每个zone都有一个zone名字。global zone的名字总是叫“global”。在zone启动时,系统会为每个zone分配一个唯一的数字标识(zone id)。Global zone的ZONE ID总是0。
NON-GLOBAL ZONE
非全局zone包含一个已安装的完整Solaris操作系统软件包的子集,也能包含从全局zone共享的solaris软件包以及其他的已安装的非共享的软件包。非全局zone能包含创建在非全局zone的其他软件包,这些软件包既不是通过全局zone共享的也不是通过软件包安装的。
非全局zone在Solaris内核从全局zone引导后进行共享操作。当zone启动后,系统会分配一个非0的zone ID,并且每个zone必须拥有一个用户定义的名字。
非全局zone不会意识到其他任何zone的存在。它无法安装管理与反安装任何其他zone
2.2 Zone的守护进程
Solaris系统使用两个daemon开控制zone的操作:zoneadmd和zsched
Zoneadmd守护进程是管理zone虚拟平台的首要进程。系统中每一个活动的(ready,running,shutting down)zone均有一个zoneadmd进程在运行。Zoneadmd进程负责:
1 管理zone的引导和关闭
2 分派zone ID和开启系统进程zsched
3 设置zone范围的资源控制
4 准备在zone配置文件中指定的zone的设备
5 安装(plumb)虚拟网络接口
6 挂载环回和常规文件系统
如果zoneadmd守护进程没在运行, zoneadm命令会自动开启它。每个活动的zone都有一个关联的内核进程,zsched。Zsched进程负责使zone子系统追踪每个zone的内核线程(thread)。代表zone正在工作的内核线程为zsched所拥有。
2.3 Zone的文件系统
在第一次初始化zone时,稀疏根模型(Sparse Root Model)会从global zone安装最小数量的文件。在这种模式下,只有确定的几个root包被安装到非全局zone,它们是在全局zone进行正常安装时的所需的root包以及全局管理员可能选择的其他任何root包的子集。在这种方式下,在一个物理系统上,管理员可能会拥有正在同时运行的一个操作系统的不同版本。
如果需要在一个zone和全局zone间共享文件,可通过NFS挂载成只读文件系统。缺省时,/lib,/platform,/sbin和/usr均以这种方法挂载。共享的文件系统的例子如图所示:
图片附件: zone-2.jpg (2007-1-24 16:57, 34.79 K)
附件
-
zone-2_nhx7xoc2czkf.jpg
(0 Bytes)
-
2007-2-16 16:39, 下载次数: 0