Chinaunix首页 | 论坛 | 博客
  • 博客访问: 173195
  • 博文数量: 33
  • 博客积分: 2037
  • 博客等级: 大尉
  • 技术积分: 365
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-24 20:29
文章分类
文章存档

2011年(1)

2010年(2)

2009年(21)

2008年(9)

我的朋友

分类:

2009-06-12 16:07:50

    通过zone可实现在Solaris 10中运行其他操作系统,包括Solaris 8Solaris 9以及Linuxfor x86)。本文简单说一下如何在Solaris 10中配置Solaris 8zone。这里Solaris 10称作global zone(全局区域),在global zone上构建的zone,都称为local zone(非全局区域)。Local zone在配置的时候又可配置为完全根模型和稀疏根模型。稀疏根模型下/lib/platform/sbin/usr目录都是挂载为回送文件系统,利于节省空间(大约100MB左右),但缺点是配置不够灵活,而完全根模型允许zone管理员定制其zone的文件系统,并可添加软件包,缺点就是需要占用较多的磁盘空间。本文使用完全根模型来配置Solaris 8zoneSolaris 10for SPARC的。

 

一、准备工作

1 网站上下载Solaris 8 Containers 1.0.1。如果手头没有准备Solaris 8flash安装包,可以将Sun官网提供的solaris8-image.flar一起下载下来。

 

2确定已安装的Solaris 10版本的发布日期,根据Sun官方文档描述,在10/08版本之前的Solaris 10中,所用的Container1.0的,在10/08以及之后的版本中,升级为1.0.1的。在10/08以及之后的Solaris 10中,虽然已经包含Solaris 8container,但是还需要安装SUNWs8brandkpackage。解压s8containers-bundle-solaris10-sparc.tar.gz后,根据README文档中的说明进行安装。

 

3确定Solaris 10的网卡名称,ifconfig -a,本文测试所用机型的网卡为dmfe0

 

4确定Solaris 8 zone所使用的主机名,IP地址,子网掩码以及默认路由。

 

    5确定Solaris 10的磁盘空间大小,确保创建zone的文件系统有足够大的空间。Solaris 8创建完zone后大约为832MB

 

二、建立local zone配置

1开始zone的配置,这里local zone命名为s8-zone

# zonecfg -z s8-zone

第一次配置该zone时会提示

s8-zone: No such zone configured

Use 'create' to begin configuring a new zone.

同时屏幕上prompt变成zonecfg:s8-zone>

 

2创建s8-zone的配置,

zonecfg:s8-zone> create -t SUNWsolaris8

-t指定配置模板,这里使用的是SUNWsolaris8的模板来创建s8-zone配置文件

-b创建一个空的配置文件

 

3设置s8-zone的路径

zonecfg:s8-zone> set zonepath=/s8-zone

 

4设置自动引导

zonecfg:s8-zone> set autoboot=true

autoboot设置为ture,在global zoneSolaris10)启动时,s8-zone会随其自动启动,但需要开启Solaris 10上的svc:/system/zones:default服务,否则不能自动引导(启用服务命令# svcadm enable svc:/system/zones:default)。如果不设置autoboot,默认值为false,需要手动引导。

 

5添加虚拟网卡(本文中设置的是share方式,还有一种独占方式,ip-typeexclusive,需要以独占方式访问一个或多个网络接口,例如dmfe1,独占方式不需要设置address属性)

zonecfg:s8-zone> add net

设置IP地址和子网掩码

zonecfg:s8-zone:net> set address=192.168.0.27/24

设置网卡,这里设置的网卡即为global zone中的网卡dmfe0

zonecfg:s8-zone:net> set physical=dmfe0

设置默认路由

zonecfg:s8-zone:net> set defrouter=192.168.0.1

完成网卡设置

zonecfg:s8-zone:net> end

如果要添加多个网卡,可重复该步骤。需要注意的是,这里所设置的IP地址和子网掩码对local zone起到决定性的作用,即使在local zone安装完成后执行sys-unconfig重新设定IP地址和子网掩码,或者修改local zone中的/etc/hosts文件,都是无效的,均以zonecfg中的设置为准。

 

6添加文件系统,如果需要给zone配置物理磁盘上的分区,可按如下步骤添加

zonecfg:s8-zone> add fs

设置挂载点

zonecfg:s8-zone:fs> set dir=/var

设置block disk devices分区

zonecfg:s8-zone:fs> set special=/dev/dsk/c0t2d0s6

设置raw disk devices分区

zonecfg:s8-zone:fs> set raw=/dev/rdsk/c0t2d0s6

设置文件系统类型

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

完成文件系统设置

zonecfg:s8-zone:fs> end

可重复该步骤以添加多个文件系统

 

7如果移植的Solaris 8上有某些应用需要依赖于原机器的hostid则需要对local zonehostid进行设置在原机器上执行hostid命令来获取所需要的hostid),如没有该需求可忽略默认local zonehostidglobal zonehostid相同

zonecfg:s8-zone> add attr

设置属性名称

zonecfg:s8-zone:attr> set name=hostid

设置数据类型

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

设置hostid的值

zonecfg:s8-zone:attr> set value=80f9138e

完成设置

zonecfg:s8-zone:attr> end

 

8如果需要设置机器的machine类型(sun4usun4v等),步骤如下。如果不对其进行设置,默认与global zonemachine类型相同,可通过uname -a查看

zonecfg:s8-zone> add attr

设置属性名称

zonecfg:s8-zone:attr> set name=machine

设置数据类型

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

设置platform的值

zonecfg:s8-zone:attr> set value=sun4u

完成设置

zonecfg:s8-zone:attr> end

 

9查看local zone的配置信息

zonecfg:s8-zone> info

也可以在shellfirst prompt下输入下面的命令查看指定zone的配置信息

# zonecfg -z s8-zone info

或者指定zone中的某个属性信息

# zonecfg -z s8-zone info net

 

10校验local zone的配置

zonecfg:s8-zone> verify

如有错误,根据错误提示进行修改

 

11选择需要修改的配置并进行修改,例如要将IP地址修改为192.168.0.23

通过指定的属性值选择对应的设备或者属性,执行完后prompt会发生变化

zonecfg:s8-zone> select net address=192.168.0.27

(如果是修改s8-zone的属性,例如zonepath或者autoboot等属性,则不需要select步骤,直接进行set即可

设置新的值

zonecfg:s8-zone:net> set address=192.168.0.23

完成修改

zonecfg:s8-zone:net> end

 

12提交local zone的配置

zonecfg:s8-zone> commit

 

13退出local zone的配置

zonecfg:s8-zone> exit

   

14如有需要,可将local zone的配置导出保存为文件

# zonecfg -z s8-zone export > s8-zone.config

 

三、安装local zone系统

    1确保global zone能够访问Solaris 8flash安装包,执行如下命令开始安装

# zoneadm -z s8-zone install -u -a /tmp/s8_hw4_0401.flar

-u安装时执行sys-unconfig,对所创建的zone重新配置hostname等信息

-p保留创建flash安装包时所配置的hostname等信息

-u-p必须指定其中一个参数,如果两个参数都没有,会无法安装)

-a指定flash安装源

成功安装过程有如下显示:

      Log File: /var/tmp/s8-zone.install.14516.log

        Source: /tmp/s8_hw4_0401.flar

    Installing: This may take several minutes...

Postprocessing: This may take several minutes...

 

        Result: Installation completed successfully.

      Log File: /s8-zone/root/var/log/s8-zone.install.14516.log

 

2执行如下命令,可查看zone的状态

# zoneadm list -cv

如果显示为installed,则安装成功;

如果显示为incomplete,则安装未完成,首先需要卸载未完成的安装,然后再重新安装,卸载zone的命令如下:

# zoneadm -z s8-zone uninstall

如果显示为configured,则zone已配置,还未安装,重新执行zoneadm安装命令来安装。

 

四、引导并登录使用local zone

1首次引导local zone时,建议先以console方式登录到zone上,然后开启另一个窗口执行local zone的引导命令,这样不会错过引导时所显示的一些信息

console方式登录到s8-zone

# zlogin -C s8-zone

[Connected to zone 's8-zone' console]

 

2然后开启另一个窗口登录到global zone上,执行引导local zone的命令

# zoneadm -z s8-zone boot

   

3回到第一个窗口,可以看到引导过程中显示的信息。如果安装时指定了-u参数,则会提示对系统进行相关的配置,与一般安装系统所做设置差不多。

需要注意的:一,关于网络的设置,这里是不起作用的,zone只读取zonecfg中的网络设置;二,对于时间设置,只能取默认值,默认值与global zone时间一致,如果手动去更改,会失败。

首次引导配置完成后zone自动reboot,其后便可以登陆使用了。第一个窗口中以console方式的登录无法退出,直接关闭当前连接即可。

global zone中只有root有权限使用zlogin来登录local zone,普通用户可直接telnet登录到local zone上。

local zone运行后,ifconfig -a可以看到多出来两个虚拟网卡lo0:1dmfe0:1,这个就是s8-zone所使用的网络接口,在s8-zone关闭后,该lo0:1dmfe0:1会消失。

 

4关闭local zone

# zoneadm -z s8-zone halt

重新引导local zone

# zoneadm -z s8-zone reboot

执行如下命令可以查看zone的运行状态

# zoneadm list -iv

 

五、卸载和删除local zone

1停止local zone

# zoneadm -z s8-zone halt

 

2卸载local zone

# zoneadm -z s8-zone uninstall

 

3删除local zone配置

# zonecfg -z s8-zone delete

阅读(2940) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~