免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2011 | 回复: 2
打印 上一主题 下一主题

Solaris Zones 介绍(三) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-03 09:48 |只看该作者 |倒序浏览
配置多个区域的脚本
您也可以使用该脚本在系统上配置和引导多个区域。该脚本采用以下参数:
■        要创建的区域个数
■        zonename 前缀
■        可用作基目录的目录
要执行此脚本,您必须是全局区域中的全局管理员。全局管理员在全局区域中拥有超级用
户权限或承担主管理员角色。
#!/bin/ksh

#

# Copyright 2005 Sun Microsystems, Inc. All rights reserved.

# Use is subject to license terms.

#

#ident        "%Z%%M%        %I%        %E% SMI"
if [[ -z "$1" || -z "$2" || -z "$3" ]]; then

echo "usage: $0 <#-of-zones> <zonename-prefix> <basedir>"

exit 2

fi



if [[ ! -d $3 ]]; then

echo "$3 is not a directory"

exit 1

fi



nprocs=‘psrinfo | wc -l‘

nzones=$1

prefix=$2

dir=$3



ip_addrs_per_if=‘ndd /dev/ip ip_addrs_per_if‘

if [ $ip_addrs_per_if -lt $nzones ]; then

echo "ndd parameter ip_addrs_per_if is too low ($ip_addrs_per_if)"

echo "set it higher with ’ndd -set /dev/ip ip_addrs_per_if <num>"

exit 1

fi



i=1
while [ $i -le $nzones ]; do

zoneadm -z $prefix$i list > /dev/null 2>&1

if [ $? != 0 ]; then

echo configuring $prefix$i

F=$dir/$prefix$i.config

rm -f $F

echo "create" > $F

echo "set zonepath=$dir/$prefix$i" >> $F

zonecfg -z $prefix$i -f $dir/$prefix$i.config 2>&1 | \

sed ’s/^/        /g’

else

echo "skipping $prefix$i, alreadyconfigured"

fi

i=‘expr $i + 1‘

done



i=1

while [ $i -le $nzones ]; do

j=1

while [ $j -le $nprocs ]; do

if [ $i -le $nzones ]; then

if [ ‘zoneadm -z $prefix$i list -p | \

cut -d’:’ -f 3‘ != "configured" ]; then

echo "skipping $prefix$i, alreadyinstalled"
else

echo installing $prefix$i

mkdir -pm 0700 $dir/$prefix$i

chmod 700 $dir/$prefix$i

zoneadm -z $prefix$i install > /dev/null 2>&1 &

sleep 1        # spread things out just a tad

fi

fi

         i=‘expr $i + 1‘

j=‘expr $j + 1‘

done

wait

done



i=1

while [ $i -le $nzones ]; do

echo setting up sysid for $prefix$i

cfg=$dir/$prefix$i/root/etc/sysidcfg

rm -f $cfg

echo "network_interface=NONE {hostname=$prefix$i}" > $cfg

echo "system_locale=C" >> $cfg

echo "terminal=xterms" >> $cfg

echo "security_policy=NONE" >> $cfg

echo "name_service=NONE" >> $cfg

echo "timezone=US/Pacific" >> $cfg

echo "root_password=Qexr7Y/wzkSbc" >> $cfg # ’l1a’

i=‘expr $i + 1‘

done



i=1

para=‘expr $nprocs \* 2‘

while [ $i -le $nzones ]; do

date

j=1

while [ $j -le $para ]; do

if [ $i -le $nzones ]; then

echo booting $prefix$i

zoneadm -z $prefix$i boot &

fi

j=‘expr $j + 1‘

i=‘expr $i + 1‘

done

wait

done


如何显示非全局区域的配置
要执行此过程,您必须是全局区域中的全局管理员.

成为超级用户或承担主管理员角色。

显示区域配置。
global#        zonecfg -z zonename info

使用 zonecfg 命令修改区域配置
也可使用 zonecfg 命令执行以下操作:
■修改区域配置中的资源类型
■在区域中添加专用设备

如何修改区域配置中的资源类型
可以选择一个资源类型并修改该资源的指定。
请注意,在使用 zoneadm 安装区域之后,不能修改或删除 inherit-pkg-dir 目录中软件包的内容。
要执行此过程,您必须是全局区域中的全局管理员。

成为超级用户或承担主管理员角色。

选择要修改的区域,在此过程中为 my-zone。
global#        zonecfg -z my-zone

选择要更改的资源类型,例如,资源控制。
zonecfg:my-zone>        select rctl name=zone.cpu-shares

删除当前值。
zonecfg:my-zone:rctl>        remove value (priv=privileged,limit=20,action=none)

添加新值。
zonecfg:my-zone:rctl>        add value (priv=privileged,limit=10,action=none)

结束修改后的 rctl 的指定。
zonecfg:my-zone:rctl>        end

提交区域的配置。
zonecfg:my-zone>        commit

退出 zonecfg 命令。
zonecfg:my-zone>        exit

请注意,即使您没有在提示符下明确键入 commit,也会在键入 exit 或出现 EOF 时自动执行
commit。
由 zonecfg 提交的更改在下次引导区域时生效。

如何修改区域配置中的属性类型
使用此过程可以重置一个独立属性,该独立属性没有其他相关属性要配置。例如,要删除
现有的池关联,您可以将 pool 资源重置为 null。

成为超级用户或承担主管理员角色。

选择要修改的区域,在此过程中为 my-zone。
global#        zonecfg -z my-zone

重置要更改的属性,在此过程中为现有的池关联。
zonecfg:my-zone>        set pool=""

提交区域的配置。
zonecfg:my-zone>        commit

退出 zonecfg 命令。
zonecfg:my-zone>        exit
请注意,即使您没有在提示符下明确键入 commit,也会在键入 exit 或出现 EOF 时自动执行
commit。
由 zonecfg 提交的更改在下次引导区域时生效。


如何在区域中添加专用设备
以下过程说明如何在非全局区域配置中放置扫描设备。
要执行此过程,您必须是全局区域中的全局管理员。

成为超级用户或承担主管理员角色。

添加设备。
zonecfg:myzone>        add device

设置设备匹配,在此过程中为 /dev/scsi/scanner/c3t4*。
zonecfg:myzone:device>        set match=/dev/scsi/scanner/c3t4*

结束设备指定。
zonecfg:myzone:device>        end

退出 zonecfg 命令。
zonecfg:myzone>        exit

使用 zonecfg 命令恢复或删除区域配置
使用 zonecfg(1M) 中介绍的 zonecfg 命令可以恢复或删除区域配置。
如何恢复区域配置
当使用 zonecfg 实用程序配置区域时,请使用 revert 子命令来撤消对区域配置执行的资源设置。

要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。

在配置一个名为tmp-zone 的区域时,请键入 info 来查看配置。
zonecfg:tmp-zone>        info
配置的 net 资源段显示如下:

.

.

.

fs:

dir: /tmp

special: swap

type: tmpfs

net:

address: 192.168.0.1

physical: eri0

device

        match: /dev/pts/*


删除网络地址:
zonecfg:tmp-zone>        remove net address=192.168.0.1

检验 net 条目是否已被删除。
zonecfg:tmp-zone>        info


fs:

dir: /tmp

special: swap

type: tmpfs

device

match: /dev/pts/*
键入 revert。
zonecfg:tmp-zone>        revert

对下面的问题回答是:
Are you sure you want to revert (y/[n])?        y

检验网络地址是否再次出现:
zonecfg:tmp-zone>        info

.

.

.

fs:

dir: /tmp

special: swap

type: tmpfs

net:

address: 192.168.0.1

physical: eri0

device

match: /dev/pts/*

.

.

.





如何删除区域配置
使用带有 delete 子命令的 zonecfg,可以从系统中删除区域配置。

要执行此过程,您必须是全局区域中的全局管理员。

成为超级用户或承担主管理员角色。

使用以下两种方法之一来删除区域 a-zone 的配置:
■        使用 -F 选项强制执行操作:

global#        zonecfg -z a-zone delete -F
■        对系统提示回答是,从而以交互方式删除区域:

global#        zonecfg -z a-zone delete

Are you sure you want to delete zone a-zone (y/[n])?y

论坛徽章:
2
双鱼座
日期:2014-02-23 12:10:03操作系统版块每日发帖之星
日期:2015-12-17 06:20:00
2 [报告]
发表于 2007-09-03 09:56 |只看该作者
SF先,学习先

论坛徽章:
0
3 [报告]
发表于 2007-09-03 10:05 |只看该作者
原帖由 东方蜘蛛 于 2007-9-3 09:56 发表
SF先,学习先


周末又翻译了一些.争取尽快翻译完.谢谢蜘蛛兄的支持!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP