开个Solaris Containers专题, 大家来讨论啊
个人认为,Solaris里面现在最好玩的就是那个Solaris Containers,特别是其中的Zones.以前的操作系统,都是把所有的应用程序全部装在一起。就像一个大厅,所有工作都在里面进行。这些任务有时候会互相影响的。而如果某个程序要重新启动机器的话,所有的应用程序都会受到影响。
而Solaris Zones,则是按需要把这个大厅分成各个独立的房间,可以按照自己的想法分配不同的任务,不同的用户,在不同的房间里操作。这样避免了相互干扰。
如果某一个区出故障,需要重新启动,则只要重起这个区就可以了,其它区不受影响。而且重起可以在十几秒之内完成。
如果某一个区不幸被病毒感染了,或者其它原因,需要重装,则只要把这个区彻底干掉,另建一个区,而且只要重装这一部分的应用程序就可以了,其它的区不会受到影响。一个区的病毒也不会感染到其它区去。
[ 本帖最后由 xiaobailong 于 2005-8-24 10:46 编辑 ] 在有些领域,大家把不同的应用程序放在不同的机器上,例如webserver, database, appserver各放在一个机器上。在做sizing的时候,每一个应用程序的峰值都要单独考虑,可是其实达到峰值的时间是很短的。总体资源利用率有时候只能达到20-30%的样子。
而如果使用Solaris Container,就可以把这些应用程序全部装在一台机器上。这样:
1。保证了应用程序的独立性。(效果同上)
2。简化管理。因为现在只有一台机器要管;系统升级的时候,也只要升级一次操作系统。
3。减少了网络的通讯流量。同一个Solaris里的zones之间互相通讯的时候,是不用通过外部网络的,虽然每一个zone 都有自己的IP地址。
4。提高系统的利用率。现在做sizing的时候,可以综合考虑所有应用程序的总体使用情况,考虑一个总的峰值就可以了。
。。。
[ 本帖最后由 xiaobailong 于 2005-8-24 10:51 编辑 ] 我居然在这个主题下还没有用任何Smilies, 不爽,改变一下这个状况:$辛苦$$支持$$瞧瞧$:lol::P:D$ok$:)$漂亮$$不错$$赚到了$ 要玩就玩得专业一点。
注意:两米以外观看。
:):):):):):):):):):):):):):):):):):):):):):):):):lol::lol::lol::lol::lol::lol::lol::lol::lol::)
:):):):):):):):):):):):):):):):):):):lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::)
:):):):):):):):):):):):):):):):lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::)
:):):):):):):):):):):):lol::lol::lol::lol::):lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::):):):):):):)
:):):):):):):):):lol::lol::lol::lol::lol::lol::lol::):lol::lol::lol::):):lol::lol::lol::lol::lol::):):):):):):):)
:):):):lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::):):):):):):lol::lol::lol::lol::):):):):):):):):)
:):lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::):):):):):):lol::lol::lol::lol::):):):):):):):):)
:):lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::):):):):):):):lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::):):)
:):lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::):):):):):):lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::):)
:):):lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::):):):):):lol::lol::lol::lol::lol::lol::):):):lol::lol::lol::lol::lol::lol::):)
:):):):):):):):):lol::lol::lol::lol::):):):):):lol::lol::lol::lol::):):):):):):lol::lol::lol::lol::lol::):)
:):):):):):):):):lol::lol::lol::lol::):):):):lol::lol::lol::lol::):):lol::lol::):):):lol::lol::lol::lol::lol::):)
:):):):):):):):):lol::lol::lol::lol::):):):):lol::lol::lol::lol::):):lol::lol::lol::lol::):lol::lol::lol::lol::lol::):)
:):):):):):):):):lol::lol::lol::lol::):):):):lol::lol::lol::lol::):):lol::lol::lol::lol::):lol::lol::lol::lol::lol::):)
:):):):):):):):):lol::lol::lol::lol::):):):):lol::lol::lol::lol::):):lol::lol::lol::):):lol::lol::lol::lol::lol::):)
:):):):):):):):):lol::lol::lol::lol::):):):):lol::lol::lol::lol::):):lol::lol::lol::):):lol::lol::lol::lol::lol::):)
:):):):):):):):):lol::lol::lol::lol::):):):):lol::lol::lol::lol::):lol::lol::lol::lol::):):lol::lol::lol::lol::lol::):)
:):):):):):):):):lol::lol::lol::lol::):):):):lol::lol::lol::lol::):lol::lol::lol::lol::):):lol::lol::lol::lol::lol::):)
:):):):):):):):):lol::lol::lol::lol::):):):):lol::lol::lol::lol::):lol::lol::lol::lol::):):lol::lol::lol::lol::lol::):)
:):):):):):):):):lol::lol::lol::lol::):):):):lol::lol::lol::lol::):lol::lol::lol::lol::):):lol::lol::lol::lol::lol::):)
:):):):):):):):):lol::lol::lol::lol::):):):):lol::lol::lol::):):lol::lol::lol::lol::):):lol::lol::lol::lol::lol::):)
:):):lol::lol::):):):lol::lol::lol::lol::lol::):):):):lol::lol::lol::):):lol::lol::lol::):):):lol::lol::lol::lol::lol::):)
:):):lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::):):):):):lol::lol::):):lol::lol::):):):):lol::lol::lol::lol::lol::):)
:):):):lol::lol::lol::lol::lol::lol::lol::lol::lol::):):):):):):):):lol::lol::lol::):):):):):lol::lol::lol::lol::):)
:):):):):):lol::lol::lol::lol::lol::lol::lol::):):):):):):):):lol::lol::lol::):lol::lol::lol::lol::):):):):):)
:):):):):):):lol::lol::lol::lol::lol::lol::):):):):):):):lol::lol::lol::lol::):):lol::lol::lol::lol::lol::):):):)
:):):):):):):):):):lol::lol::lol::):):):):):):lol::lol::lol::lol::lol::):):):lol::lol::lol::lol::lol::lol::lol::)
:):):):):):):):):):):):):):):):):lol::lol::lol::lol::lol::lol::):):):):):lol::lol::lol::lol::lol::lol::)
:):):):):):):):):):):):):):):):lol::lol::lol::lol::lol::lol::):):):):):):lol::lol::lol::lol::lol::lol::lol:
:):):):):):):):):):):):):):):lol::lol::lol::lol::lol::):):):):):):):):):lol::lol::lol::lol::lol::lol:
:):):):):):):):):):):):):):lol::lol::lol::lol::lol::):):):):):):):):):):):lol::lol::lol::lol::)
:):):):):):):):):):):):lol::lol::lol::):):):):):):):):):):):):):):):lol::lol::lol::):) 这个字写得好棒。赞一个。$漂亮$ 楼上的帖子好厉害,俺的Safari险些死掉。
觉得这个Container的概念像过去sun大型机上的Domain,HP上面好像叫Partition. Domain和Container确实都是在一台硬件server上划分独立软件区的,他们的最大区别在于:
多个Domain的硬件虽然可以是同一台大的server, 但是每一个Domain都要有自己的操作系统(可以是不同的版本)。而Container则是运行在同一个操作系统中的,用的是同一个kernel。这样管理起来比较简单,reboot某个zone的时候速度也快得多。两者可以说是各有利弊,互为补充吧。
看过一个图片举的例子,是说一个大的server, 可以分成两个Domain, 其中一个Domain运行Solaris9和一些应用程序,另一个Domain运行Solaris10, 里面又分了5个zone。每一个zone里有各自的应用程序。
[ 本帖最后由 xiaobailong 于 2005-8-23 17:50 编辑 ] 在一台机器上的一个Solaris系统中,可以有多达8000个zone。所有的Zone都公用同一个kernel。
刚刚安装好的Solaris 10, 和以前的操作系统没有两样,只有一个区,称为global zone. 而如果想要其它的独立区的话,必须设置安装启动一下才行。Solaris 10 里面有几个新增加的命令是专门做这个的,例如 zonecfg, zoneadm. 当然也可以不用这些命令,而使用GUI工具。这些新增加的区称为local zone, 简称zone.
缺省情况下,在新建一个zone的时候,/usr, /lib, /sbin, and /platform四个目录的内容是read-only方式mount到zone里面的。 如果某个zone想要自己的上述目录,就要用“full-root model”来建立这个zone.这个时候上述四个目录的内容就会被复制到新建的zone里面来。
也就是说,每一个zone可以有自己的不同的Solaris程序和库,也可以用公共的那个。但是无论如何,kernel都是同一个。
[ 本帖最后由 xiaobailong 于 2005-8-23 17:52 编辑 ] 不清楚在zone之间资源是怎么共享的?
比如鼠标,键盘,音卡,如果分配给一个程序后其它程序怎么使用呢? 原帖由 tecehux 于 2005-8-23 12:51 发表
不清楚在zone之间资源是怎么共享的?
比如鼠标,键盘,音卡,如果分配给一个程序后其它程序怎么使用呢?
在docs.sun.com有一个简单的例子:
http://docs.sun.com/app/docs/doc/817-1592/6mhahuooo?a=view
--------------------
Step 10. Add a device.
zonecfg:my-zone> add device
1.Set the device match, /dev/sound/* in this procedure.
zonecfg:my-zone:device> set match=/dev/sound/*
2.End the device specification.
zonecfg:my-zone:device> end
This step can be performed more than once to add more than one device.
--------------------
Solaris里面的资源都是放在/dev或/devices目录下面的。上面的这个例子是说,如果在新建的local zone里想要加入某个设备的话,就用 zonecfg 里的 add device指令来设置。但是不是所有的设备都可以被加入local zone里面的,只有被认为安全的设备才可以被加入。设备加入之后,就可以在这个zone里面和其它的加入了这个设备的zone之间共享了。而没有加入这个设备的zone, 就不能使用这个设备了。这样,你可以分配某个设备由某个zone独享,也可以分配某个设备由多个zone共享。
只不过声卡的问题是,如果两个程序同时发出声音,那么声音还是会混在一起的。。。。这和不分zone的情况是一样的。。。。毕竟一台机器只有一个声卡,一套声音设备。。。。
说得不对的地方,欢迎大家指正哈。
[ 本帖最后由 xiaobailong 于 2005-8-23 19:28 编辑 ]