Solaris系统下的虚拟环境-Zone

Solaris Zones在一个单独的Solaris OS实例里创建了一个或多个虚拟的OS环境。一个zone里面运行的应用程序与其它zone里面运行的应用程序完全隔离。Solaris Zones对应用提供了虚拟的OS环境,去除了针对特定物理设备类型的细节部分。这样做有助于在不同的设备类型上配置运行同一业务。Solaris Zones分为Global zone(全局zone)和区域zone(local zone)Global zone相当于原来的系统,是唯一能够接触物理设备和访问所有local zonezoneGlobal zone总是在运行,即使没有其他配置其他的zone。在Global zone里面配置的zonelocal zonelocal zone与物理设备相隔绝,在虚拟的平台上运行包括虚拟的网卡、虚拟的文件系统、虚拟的控制台等。每个local zone都有自己的进程环境和SunOS核心服务,包括所有的网络服务(inetdsyslogdrpcbind等等)

Solaris zone还提供了称为brand zone的功能,可以在一个zone里面保持一个其他操作系统的运行环境,比如Linux,或旧版本的Solaris等。这样既可以保持对旧版本Solaris的兼容性,同时又保证对其他类Unix系统的兼容性。

创建Zone

bash-3.00# mkdir -p /export/home/zbuild/

bash-3.00# chmod 700 /export/home/zbuild/

//首先创建zone的路径目录。

bash-3.00# zonecfg -z build

build: No such zone configured

Use 'create' to begin configuring a new zone.

zonecfg:build> create

//使用create命令创建一个新的zone

zonecfg:build> set zonepath=/export/home/zbuild

//设置zone的路径,对于Solaris 10不要将ZFS设为zone的路径

zonecfg:build> set autoboot=true

//在引导全局区域时将自动引导该区域,要自动引导区域,必须同时启用区域服务svc:/system/zones:default。缺省值为 false

zonecfg:build> add dataset

zonecfg:build:dataset> set name=test/home/zone

zonecfg:build:dataset> end

//将数据集test/home/zone指定给该zone

zonecfg:build> add net

zonecfg:build:net> set address=192.168.0.100

zonecfg:build:net> set physical=e1000g0

zonecfg:build:net> end

//设置网络虚拟接口

zonecfg:build> verify

//验证创建的zone

zonecfg:build> commit

//提交zone

zonecfg:build> exit

//退出

查看zone的信息

bash-3.00# zonecfg -z build info

zonename: build

zonepath: /export/home/zbuild

brand: native

autoboot: true

bootargs:

pool:

limitpriv:

scheduling-class:

ip-type: shared

inherit-pkg-dir:

        dir: /lib

inherit-pkg-dir:

        dir: /platform

inherit-pkg-dir:

        dir: /sbin

inherit-pkg-dir:

        dir: /usr

fs:

        dir: /usr/local

        special: /export/home/user/build

        raw not specified

        type: lofs

        options: []

net:

        address: 192.168.0.100

        physical: e1000g0

dataset:

        name: test/home/zone

安装,引导,停止卸载zone

安装build zone

 

bash-3.00# zoneadm -z build verify

bash-3.00# zoneadm -z build install

Preparing to install zone <build>.

Creating list of files to copy from the global zone.

Copying <6389> files to the zone.

Initializing zone product registry.

Determining zone package initialization order.

Preparing to initialize <1063> packages on the zone.

Initialized <1063> packages on zone.

Zone <build> is initialized.

The file </export/home/zbuild/root/var/sadm/system/logs/install_log> contains a log

 of the zone installation.

 

bash-3.00# zoneadm -z build list -v

  ID NAME             STATUS     PATH                           BRAND    IP

   - build            installed  /export/home/zbuild            native   shared

 

引导build

 

bash-3.00# zoneadm -z build boot

zoneadm: zone 'build': WARNING: e1000g0:1: no matching subnet found in netmasks(4)

for 192.168.0.100; using default of 255.255.255.0.

此消息只是警告,而命令已成功执行。此消息表明系统无法找到要用于在区域配置中指定的 IP 地址的网络掩码。要在后续重新引导时停止显示警告,请确保在全局区域的 /etc/nsswitch.conf 文件中列出正确的 netmasks 数据库,并且至少有一个数据库包含要用于区域 my-zone 的子网和网络掩码。例如,如果 /etc/inet/netmasks 文件和本地 NIS 数据库用于解析全局区域中的网络掩码,则 /etc/nsswitch.conf 的相应条目为:

netmasks: files nis

然后,可以将区域 my-zone 的子网和相应网络掩码信息添加到 /etc/inet/netmasks,以便以后使用。

 

bash-3.00# zoneadm list -v

  ID NAME             STATUS     PATH                           BRAND    IP

   0 global           running    /                              native   shared

   1 build            running    /export/home/zbuild            native   shared

可以使用

bash-3.00# zoneadm -z build halt

bash-3.00# zoneadm -z build reboot

停止和重启zone

下面的过程从系统中卸载build zone

bash-3.00# zlogin build shutdown

bash-3.00# zoneadm -z build uninstall -F

bash-3.00# zonecfg -z build delete –F

登陆到build zone

bash-3.00#zlogin –C build

系统提示你设置terminaltime zoneroot passwordnetwork等选项,设置完这些选项后,build zone自动重启,并显示登陆界面:

build console login: root

Password:

Jun 21 17:00:10 build login: ROOT LOGIN /dev/console

Sun Microsystems Inc.   SunOS 5.11      snv_63  October 2007

#

这样,一个独立的zone环境环境就设置完成了。

# ~.

[Connection to zone 'build' console closed]

波浪号加句点,或exit命令可以退出登陆。

总结

Solaris zoneSolaris在虚拟化方面比较突出的创新,通过为不同的zone分配相互区隔的运行环境来实现虚拟化,同时不同的zone又共享同一个内核资源,和vmware比起来,这样的效率会提高很多。这篇文章介绍了如何创建和使用zone。关键词:Solariszone,虚拟化。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值