xiaobailong 发表于 2005-9-1 19:59

再说 Solaris Containers

正在看一份 Solaris 容器(Containers)的资料,现在写写学到的东西,学一点,写一点。有兴趣的请一起参加讨论。

[ 本帖最后由 xiaobailong 于 2005-9-1 21:23 编辑 ]

xiaobailong 发表于 2005-9-1 20:00

1。主要内容包括一下几个方面:

    * 服务器的整合: 就是从很多小的服务器,换成一个大的服务器,主要是为了省钱。
    * Solaris资源管理:
    * Solaris虚拟区:
    * 虚拟区的技术细节:
    * 开发人员最相关的:
    * 虚拟区的安装和打包:
    * 其它方面:

xiaobailong 发表于 2005-9-1 20:01

2。服务器整合目标:
最终目标当然是为了在完成同样功能的前提下,尽量少花钱。

把多个工作放在一个系统中来完成,能够很有效地降低费用。首先,硬件得到了充分的利用,如果每个应用放在一个或多个小的服务器上,每台机器就会有很多空闲时间,没有得到充分利用。而把多个应用放在一台大的服务器上,可以更好地共享资源。其次,不需要重复建设很多基础设施,例如机房的占地空间,空调的安装数量,用电量,等等。第三,降低了管理工作的工作量。

服务器整合所需要具备的条件有哪些呢?首先是资源控制,必须分配好每个应用所能利用的资源的上限,不然一个恶意的程序占用所有资源的话,会导致其它应用请求不能即使响应。其次是安全隔离,很多应用要求较高的安全性,必须把他们各自隔离开来,以免受其它应用的影响和窥探。第三必须有一定的容错性,例如一个应用出问题了,需要重新启动,这个时候不应该导致其它应用的中断。另外,要有delegated administrative control( 这个是什么,等我研究明白了再来说哈,如果有知道的,说一声。)最后,要有相对应的软件打包管理。

xiaobailong 发表于 2005-9-1 20:02

3。Solaris 容器概述
Solaris 容器是一种集成在Solaris 10中的新的服务器整合方案,是 Solaris操作系统的一部分。

它的基本设计理念是,在一个Solaris实例中实现多个独立的执行环境,这其中包括了资源独立,安全隔离,和错误孤立。它是一个轻量级的,灵活,有效率的服务器整合方案。它的建立和管理都很容易,而且管理员只要管理一个操作系统就可以了。

Solaris容器由两大部分组成,第一部分是资源管理,例如管理微处理器,内存等资源。另一部分是虚拟区,以实现安全性。

xiaobailong 发表于 2005-9-1 20:03

4。典型应用
Solaris容器可以应用在许多领域,包括

    * 软件开发,例如可以设置一个容器实际使用,另一个容器测试新版本。
    * 数据中心,例如把wen服务器,数据库,应用服务器等多种不同的应用整合到一台大机器上,由于各自的使用高峰期不同,提高了资源的整体使用率,保证了高峰期的响应速度。
    * 怀有敌意的不信任的应用程序,例如从网上收到的一个程序,不能保证是否含有病毒或其它恶意代码的时候,就单开一个虚拟区给它,在里面试运行看看。
    * 各种hosting环境,个人认为,这是最合适的应用了。例如每一个用户一个Solaris容器,都可以得到一个root用户和多个非 root用户。
    * 面向广域网的服务,可以有效控制非法闯入所能接触到的资源和带来的破坏。

xiaobailong 发表于 2005-9-1 20:06

5。Solaris资源管理
Solaris资源管理是从早期 Solaris版本不断发展,增加新功能,不断完善过来的。它包含了许多实用的功能,其中包括

    * 公平分享调度,用来控制微处理器工作周期的分配。而实际的执行周期也和其它程序的运行情况有关。比如我给三个程序各保留三分之一CPU周期,但是如果一个运行结束了的时候,其它两个程序就可以各用50%CPU周期了。使用公平分享调度确保了最低服务水准,保证了应用程序的最低CPU运行周期。
    * 动态资源池,可以把某个或某几个微处理器放在一个资源池中,分配给某个项目及虚拟区专用。资源池中的微处理器可以动态调节。
    * 扩展会计(extended accounting, 找不到更好的翻译了),可以统计任务和进程实际使用的系统及网络资源。


所有功能全部集成在Solaris操作系统中,不需要额外安装,更不需要另外购买。

资源保留可以基于Solaris中的项目(project)概念,也可以基于虚拟区( zone)概念来完成。

xiaobailong 发表于 2005-9-1 20:07

6。公平分享调度的计算方法
以项目为例,一个Solaris项目可以包含多个任务,一个任务可以包含多个进程。每个项目可以得到一个数字作为比重,这个数字在所有比重中所占的比例,就是保留给它的微处理器的运行周期的比例。例如图中四个项目,各自的比重是1:2:3:4,比重为3的那个项目,保留给它的微处理器份额就是3/(1+2 +3+4)=30%。

xiaobailong 发表于 2005-9-1 20:21

7。动态资源池
每个资源池拥有自己的微处理器组。项目和虚拟区都可以被绑定到资源池。一个项目或一个虚拟区只能绑定到一个资源池,而一个资源池可以绑定多个项目或虚拟区。资源池中的微处理器组是由所有绑定的项目和虚拟区共享的,也是排他的。

那么如何绑定呢?可以设置project.pool这个参数,或者使用poolbind这个命令,对于虚拟区 ,也可以使用虚拟区的配置程序。

xiaobailong 发表于 2005-9-1 20:22

8。扩展会计 (extended accounting)

扩展会计是对系统活动的综合记录,这些活动可以以项目为基础,也可以以虚拟区为基础来计算,另外也可以用其它传统的属性为基础来统计(都有哪些?)

这些统计结果可以被应用到和会计,记账,运营能力等等相关的更高级的应用程序中去。

xiaobailong 发表于 2005-9-2 13:19

9。Solaris虚拟区
Solaris虚拟区实现了一层虚拟化的操作系统层面,被虚拟化的包括了文件系统,设备,网络接口和进程。

通过这些虚拟化,Solaris虚拟区提供了私密性,安全性和故障隔离。私密性是说从一个虚拟区内不能看到它外部的东西,除非通过网络协议。安全性时说一个虚拟区内运行的程序,不能影响它外部的活动。通信要通过网络协议来完成。故障隔离是说一个虚拟区内的应用程序出问题了,不会影响到其他区的应用程序。所以,每一个虚拟区看起来就像是一个独立的操作系统,但是事实上这些

Solaris虚拟区是轻量级的,容易划分的,高效率的服务器整合方案。所占用的资源非常小,安装管理简单又方便。它和Solaris资源管理互为补充,也可以独立应用。

绝大多数应用程序不需要移植,直接就可以运行在Solaris虚拟区里,因为Solaris虚拟区里的应用程序二进制接口(ABI)和应用程序编程接口(API)是和以前的普通Solaris版本一致的。
页: [1] 2 3 4
查看完整版本: 再说 Solaris Containers