• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Solaris10的革命性功能之一 Solaris 10 N1 Grid Container

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 30次 | 进入软件测试论坛讨论

领测软件测试网
最近刚刚发布的 Solaris 10 操作系统,号称Sun公司的真正意义上的里程碑式操作系统,带
来了诸多突破性技术,如 Solaris Containers、动态跟踪 (DTrace)、预测性自我修复和ZFS动态
文件系统等。
    比较感兴趣的是Solaris Container,也就是N1 Grid Container--网格?!现在好像比较
流行这个,Oracle 10g 也是Grid的意思。。。。
    这个Solaris Container号称可以让每个 Solaris 10 创建多达 8192 个的安全、无故障软件
分区,相对于SunFire 3800/4800/6800/4900/6900/12K/15K/25K的硬件分区好像更夸张一点,感觉
有点像PC上的VMware。IBM最近的P5系列也是,好像现在各大厂商都热衷于这个,叫什么server 
virtualization

开始上手:

root@b1000:/# uname -a
SunOS b1000 5.10 s10_63 sun4u sparc SUNW,Sun-Blade-1000

刚装完的系统,只有一个global zone
root@b1000:/# zoneadm list -vc 
  ID NAME             STATUS         PATH                          
   0 global           running        /

首先创建一个目录,用来存放新的soft zone的文件。
root@b1000:/# mkdir -p /zone/zone1
root@b1000:/# ls -ld /zone/zone1
drwxr-xr-x   2 root     other        512 Dec  4 14:42 /zone/zone1

创建一个zone1的软分区:
root@b1000:/# zonecfg -z zone1
zone1: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:zone1> create
zonecfg:zone1> set zonepath=/zone/zone1
zonecfg:zone1> set autoboot=true
zonecfg:zone1> add net
zonecfg:zone1:net> set address=192.168.0.101
zonecfg:zone1:net> set physical=eri0
zonecfg:zone1:net> end
zonecfg:zone1> info
zonepath: /zone/zone1
autoboot: true
pool: 
inherit-pkg-dir:
dir: /lib
inherit-pkg-dir:
dir: /platform
inherit-pkg-dir:
dir: /sbin
inherit-pkg-dir:
dir: /usr
net:
address: 192.168.0.101
physical: eri0
zonecfg:zone1> verify
zonecfg:zone1> commit
zonecfg:zone1> ^D
root@b1000:/# 

创建完成,查看zone1的信息:
root@b1000:/# zonecfg -z zone1 info
zonepath: /zone/zone1
autoboot: true
pool: 
inherit-pkg-dir:
dir: /lib
inherit-pkg-dir:
dir: /platform
inherit-pkg-dir:
dir: /sbin
inherit-pkg-dir:
dir: /usr
net:
address: 192.168.0.101
physical: eri0
root@b1000:/# zoneadm list -vc
  ID NAME             STATUS         PATH                          
   0 global           running        /                             
   - zone1            configured     /zone/zone1 

安装操作系统文件刚刚配置完成的zone1:
root@b1000:/# zoneadm -z zone1 install
/zone/zone1 must not be group readable.
/zone/zone1 must not be group executable.
/zone/zone1 must not be world readable.
/zone/zone1 must not be world executable.
could not verify zonepath /zone/zone1 because of the above errors.
zoneadm: zone zone1 failed to verify
root@b1000:/# ls -ld /zone/zone1
drwxr-xr-x   2 root     other        512 Dec  4 14:42 /zone/zone1
root@b1000:/# chmod 0700 /zone/zone1
root@b1000:/# ls -ld /zone/zone1
drwx------   2 root     other        512 Dec  4 14:42 /zone/zone1
root@b1000:/# zoneadm -z zone1 install
Preparing to install zone <zone1>.
Copying <2365> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <994> packages on the zone.
Initializing package <57> of <994>: percent complete: 5%
......
.....
...
这里大约需要二十分钟左右
Initialized <994> packages on zone.                                
Zone <zone1> is initialized.
Installation of these packages generated errors: <SUNWj5rt SUNWnsb SUNWmpatchmgr>
Installation of these packages generated warnings: <SUNWmoznav SUNWmozgm SUNWwbmc 
SUNWmga SUNWdclnt SUNWlvma SUNWlvmg SUNWrmui SUNWpmgr>
The file </zone/zone1/root/var/sadm/system/logs/install_log> contains a log of the zone installation.
root@b1000:/# zoneadm list -vc
  ID NAME             STATUS         PATH                          
   0 global           running        /                             
   - zone1            installed      /zone/zone1

启动这个zone:
root@b1000:/# zoneadm -z zone1 boot

进入zone1的Console:
root@b1000:/# zlogin -C zone1
[Connected to zone 'zone1' console]
[NOTICE: Zone booting up]

SunOS Release 5.10 Version s10_63 64-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: zone1
The system is coming up.  Please wait.




Select a Language

  0. English
  1. Simplified Chinese
  2. Traditional Chinese

Please make a choice (0 - 2), or press h or ? for help: 

接下来的和平时安装系统一样,设置主机名,时区,域名解析方式等等,


System identification is completed.

rebooting system due to change(s) in /etc/default/init 


[NOTICE: Zone rebooting]


SunOS Release 5.10 Version s10_63 64-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: MyWeb
The system is coming up.  Please wait.
starting rpc services: rpcbind done.
syslog service starting.
Dec  4 15:18:42 MyWeb sendmail[8940]: My unqualified host name (MyWeb) unknown; sleeping for retry
Dec  4 15:19:42 MyWeb sendmail[8940]: unable to qualify my own domain name (MyWeb) -- using short name
WARNING: local host name (MyWeb) is not qualified; see cf/README: WHO AM I?
/etc/mail/aliases: 12 aliases, longest 10 bytes, 138 bytes total
Dec  4 15:19:42 MyWeb sendmail[8941]: My unqualified host name (MyWeb) unknown; sleeping for retry
Dec  4 15:19:42 MyWeb sendmail[8942]: My unqualified host name (MyWeb) unknown; sleeping for retry

STSF Font Server Daemon.

Standard Type Services Framework 0.11.1
Copyright (c) 2001-2004 Sun Microsystems, Inc. All Rights Reserved.
STSF is Open Source Software. http://stsf.freedesktop.org

Creating new rsa public/private host key pair
Creating new dsa public/private host key pair
The system is ready.

哈哈,完成啦。。。。。。。。
虚拟的主机MyWeb启动成功,登陆。。。。。


MyWeb console login: root
Password: 
Dec  4 15:21:53 MyWeb login: ROOT LOGIN /dev/console
Sun Microsystems Inc.   SunOS 5.10      s10_63  May 2004
# df -k
Filesystem            kbytes    used   avail capacity  Mounted on
/                    10080200 2702923 7276475    28%    /
/dev                 10080200 2702923 7276475    28%    /dev
/lib                 10080200 2702923 7276475    28%    /lib
/platform            10080200 2702923 7276475    28%    /platform
/sbin                10080200 2702923 7276475    28%    /sbin
/usr                 10080200 2702923 7276475    28%    /usr
proc                       0       0       0     0%    /proc
mnttab                     0       0       0     0%    /etc/mnttab
fd                         0       0       0     0%    /dev/fd
swap                 2737048      48 2737000     1%    /var/run
swap                 2737000       0 2737000     0%    /tmp
# ifconfig -a
lo0:1: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.0.101 netmask ffffff00 broadcast 192.168.0.255
# ps -ef
     UID   PID  PPID   C    STIME TTY         TIME CMD
    root  9054  8810   0 15:20:20 ?           0:00 /usr/lib/saf/sac -t 300
    root  8906  8802   0 15:18:39 ?           0:00 /usr/sbin/nscd
    root  8802  8802   0 15:18:27 ?           0:00 zsched
    root  9055  8810   0 15:20:20 console     0:00 -sh
    root  8810  8802   0 15:18:38 ?           0:00 init
    root  8899  8802   0 15:18:39 ?           0:00 /usr/lib/autofs/automountd
  daemon  8833  8802   0 15:18:39 ?           0:00 /usr/lib/crypto/kcfd
    root  8895  8802   0 15:18:39 ?           0:00 /usr/sbin/syslogd
  daemon  8858  8802   0 15:18:39 ?           0:00 /usr/sbin/rpcbind
    root  8904  8802   0 15:18:39 ?           0:00 /usr/sbin/cron
    root  8911  8802   0 15:18:40 ?           0:00 /usr/sbin/inetd -s
    root  8967  8963   0 15:19:43 ?           0:00 /usr/sadm/lib/smc/bin/smcboot
    root  8964  8963   0 15:19:43 ?           0:00 /usr/sadm/lib/smc/bin/smcboot
    root  8949  8802   0 15:19:43 ?           0:00 /usr/lib/utmpd
    root  8965  8802   0 15:19:43 ?           0:00 /usr/lib/im/htt -port 9010 -s
yslog -message_locale C
    root  8963  8802   0 15:19:43 ?           0:00 /usr/sadm/lib/smc/bin/smcboot
    root  8966  8965   0 15:19:43 ?           0:00 htt_server -port 9010 -syslog
 -message_locale C
    root  9030  8802   0 15:19:45 ?           0:00 /usr/lib/dmi/snmpXdmid -s MyW
eb
    root  9058  8802   0 15:20:20 ?           0:00 /usr/lib/ssh/sshd
    root  9057  9054   0 15:20:20 ?           0:00 /usr/lib/saf/ttymon
  daemon  8974  8802   0 15:19:44 ?           0:02 /usr/lib/ST/stfontserverd
    root  9028  8802   0 15:19:45 ?           0:00 /usr/lib/dmi/dmispd
    root  9059  8802   0 15:20:43 ?           0:00 /usr/lib/sendmail -bd -q15m
    root  9022  8802   0 15:19:45 ?           0:00 /usr/lib/snmp/snmpdx -y -c /e
tc/snmp/conf
    root  8999  8802   0 15:19:44 ?           0:00 /usr/dt/bin/dtlogin -daemon
    root  9042  8802   0 15:19:46 ?           0:00 /usr/sfw/sbin/snmpd
   smmsp  9060  8802   0 15:20:43 ?           0:00 /usr/lib/sendmail -Ac -q15m
    root  9069  9055   0 15:22:47 console     0:00 ps -ef
不用的Sendmail停掉
# mv /etc/rc2.d/S88sendmail /etc/rc2.d/s88sendmail
# /etc/init.d/sendmail stop
# prtdiag -v
prtdiag can only be run in the global zone
哦,prtdiag不能在zone里用

prtconf有信息出来:
# prtconf 
System Configuration:  Sun Microsystems  sun4u
Memory size: 1024 Megabytes
System Peripherals (Software Nodes):

prtconf: devinfo facility not available

# exit

按 ~ 然后按 . 退出zone1的Console,回到global zone,也就是真正的B1000
MyWeb console login: ~.
[Connection to zone 'zone1' console closed]
root@b1000:/#
root@b1000:/#
root@b1000:/# zoneadm list -vc
  ID NAME             STATUS         PATH                          
   0 global           running        /                             
   1 zone1            running        /zone/zone1


root@b1000:/# telnet 192.168.0.101
Trying 192.168.0.101...
Connected to 192.168.0.101.
Escape character is '^]'.
login: root
Password: 
Not on system console
Connection to 192.168.0.101 closed by foreign host.
忘改/etc/default/login了。。。。。。。。。。。


总结:
1. 提高了系统的利用率,可以一个当N个使唤
2. 应用系统可以跑在互不干扰的动态系统域里
3. 完全可以把一个zone的root密码告诉别人,用来练手不错,整瘫了大不了
   zoneadm -z zone1 uninstall再zoneadm -z zone1 install就ok了
4. 应该还有许多好玩的功能待发掘。。。。

参考资料:
http://www.sun.com/bigadmin/content/zones/

 fujitsu_solaris 回复于:2004-12-06 10:05:52
好东西,不错

 so sorry 回复于:2004-12-06 10:32:27
:shock: 嚼不动,不过还是啃了啃

 neptun 回复于:2004-12-06 11:31:18
看上去很美

 Solaris12 回复于:2004-12-06 12:25:32
[quote:07431ca3c8="elk"]on to zone 'zone1' console closed]
root@b1000:/#
root@b1000:/#
root@b1000:/# zoneadm list -vc
  ID NAME             STATUS         PATH                          
   0 global           running    ..........[/quote:07431ca3c8]

好文章

 campoeagle 回复于:2004-12-06 18:31:13
收藏!

 songyupo 回复于:2004-12-06 21:03:21
不错好

 Guillotine 回复于:2004-12-06 22:42:57
今天试了试,没有做完,设置好以后,root@b1000:/# zlogin -C zone1
半天才有反映,而且可能让我一通乱按,下面的设置我自己都看不懂在做什么了,就没有继续做。不过还是挺有趣。
但是据说好像因为kernel是多个Zone共享的,如果kernel出了问题,还是会整个机器都down掉的。

 elk 回复于:2004-12-06 23:14:07
[quote:92a425f491="Guillotine"]今天试了试,没有做完,设置好以后,root@b1000:/# zlogin -C zone1
半天才有反映,而且可能让我一通乱按,下面的设置我自己都看不懂在做什么了,就没有继续做。不过还是挺有趣。
但是据说好像因为kernel是多个Zon..........[/quote:92a425f491]


Kernel Panic 的话,那是当然完蛋了。。。。。。。
所以说像VMWare哈哈

 quakelee 回复于:2004-12-07 01:05:03
对SunOS也许是,但对OS不是……
无论怎么看都像FreeBSD的jail………………
似乎这种技术还是freebsd比较早 :em06:

Quote:
HISTORY
     The jail command appeared in FreeBSD 4.0.

FreeBSD 4.0 (March, 2000)

我们现在已经可以在1分钟之内,只消耗2MB磁盘就创建一台FreeBSD虚拟服务器了。

 haides 回复于:2004-12-07 10:49:41
微软不也收割了VPC吗,还把里面linux的选项给去掉了.

 注册信息有误 回复于:2004-12-07 12:39:43
howto  jail  ?

 wolfop 回复于:2004-12-07 17:52:41
那个zfs呢?怎么好像没有人试试看。

 骓 回复于:2004-12-07 18:12:51
呵呵,楼主可称得上是真正的玩家...

 elk 回复于:2004-12-07 19:04:00
[quote:51fa42547f="wolfop"]那个zfs呢?怎么好像没有人试试看。[/quote:51fa42547f]

有空看看,号称无限扩展能力。。。。。。。。


。。。晕,都是号称

 songyupo 回复于:2004-12-07 20:42:30
一样,看不懂吃不下,可也咽下了,快死了

 vias 回复于:2004-12-12 19:24:33
good

 skylove 回复于:2004-12-12 20:53:54
4800的硬件分区我都没用...存储设备少了,只买了一个t3...真tmd的失败

 owenics 回复于:2004-12-12 22:36:26
哇,好东西.

 carrison 回复于:2004-12-14 09:33:26
不错,不过味道好像没有vmware香,vmware的可控性好像更强,只是不知性能方面比vmware如何,呵呵

 melonm 回复于:2004-12-14 09:42:29
zfs要到明年六月份才发布。

 paradisegame 回复于:2004-12-14 12:24:59
好东西!不过我手头没有那么好的机子做实验~
x86的慢得要死~~
好希望有台好机子玩~~

 carrison 回复于:2004-12-14 14:01:36
要是能装别的系统就更好了,这方面好像AS400功能和扩展性更强,并且支持AIX,AS400,Linux三种操作系统,呵呵

 Solaris12 回复于:2004-12-15 21:47:06
[quote:75e388fe4e="carrison"]要是能装别的系统就更好了,这方面好像AS400功能和扩展性更强,并且支持AIX,AS400,Linux三种操作系统,呵呵[/quote:75e388fe4e]

那是靠CPU的虚拟机技术实现的,
两者在技术上各有利弊,而且,差别很大

 kinux 回复于:2004-12-29 09:40:42
还不就是freebsd上的jail...

 核桃树 回复于:2005-02-28 12:49:11
这个东西和vmware可不一样,并不是指令极的仿真是在操作系统层的:)

 power_user 回复于:2005-02-28 17:46:49
Zone是基于操作系统级别的分区,Vmvare是基于应用软件级别的分区,SF4800等是基于硬件级别的分区.

 alfee 回复于:2005-02-28 21:08:30
还在争哪,

我来说两句,所有上述技术均为分区技术,对比资料表明如下:


1。无非是分区的隔离度强弱,服务器硬件隔离度最强:

 Freebsd Jails  Sun Container  EMC VMware  IBM LPARS/HP vPAR  Sun Domain   服务器硬件
------------------------------------------------------------------------>隔离强


2。无非是多出的功能要不要加新的费用,Sun Container随OS免费:

服务器硬件  Sun Domain  IBM LPARS/HP vPAR   EMC VMware  Freebsd Jails  Sun Container
------------------------------------------------------------------------>低费用


3。 无非是利用系统资源的灵活性高低,Sun Container动态且单OS内核:

服务器硬件  Sun Domain  IBM LPARS/HP vPAR  Freebsd Jails   EMC VMware  Sun Container
------------------------------------------------------------------------>配置灵活


仅供参考。

 wangy_80 回复于:2005-03-01 10:21:32
我试过了,加了zone之后连软件包都不知道是不是装好了。
因为对non-global zone来说,有一些从global zone里继承
的目录是只读的所以pkgadd时会有一堆的warning。让人看着就郁闷。

 hkwolf 回复于:2005-07-22 17:38:40
此贴稍有遗憾:

比如相关设备的虚拟分配,如SCSI卡、光驱、服务器的内存(给某个分区2G)和CPU的处理能力(划1个CPU给某区或最大不超过30%的处理能力)等,希望能将其划分到某个虚拟机下面,能否实现???

 scoolm 回复于:2005-08-25 10:03:22
set address=192.168.0.101 
搞错了如何删除

 china_unix 回复于:2005-09-07 03:53:42
zonecfg -z zonename
> remove net address=192.168.0.101

 rockamong 回复于:2005-09-07 08:51:02
这个牛,顶一个

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网