准备工作:

  1. 带有 Solaris 11 虚拟机(VMware 工作站或者 virtualbox)的好的笔记本电脑/台式机。

  2. IPS 存储库。

  3. ZFS 文件系统安装区(这是必需的,是 Solaris 11)。

配置Zone

我们需要的第一件事是要创建的新Zone的安装路径。
我将在全局Zone的 rpool 下创建一个文件系统。

root@onitroad:~# zfs create rpool/zone01

我们将使用 zonecfg 创建新Zone zone01 并通过 zonecfg 命令的交互式配置流程分配必要的资源。

root@onitroad:~# zonecfg -z zone01
Use 'create' to begin configuring a new zone.
zonecfg:zone01> create
create: Using system default template 'SYSdefault'
zonecfg:zone01> set zonepath=/rpool/zone01
zonecfg:zone01> set autoboot=true
zonecfg:zone01> set bootargs="-m verbose"
zonecfg:zone01> verify
zonecfg:zone01> commit
zonecfg:zone01> exit

验证我们创建的Zone

root@onitroad:~# zoneadm list -icv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              solaris  shared
   - zone01           configured /rpool/zone01                  solaris  excl
on  it road.com

安装Zone

在安装Zone之前,请确保我们有可用的 IPS 存储库,因为 Solaris 11 使用 IPS 通过从 IPS 存储库下载安装镜像来安装新Zone。
我在我的全局Zone中设置了一个本地存储库。

root@onitroad:~# pkg publisher
PUBLISHER                   TYPE     STATUS P LOCATION
solaris                     oroirn   online F file:///sol_11_repo/repo/

现在使用以下命令安装Zone:

root@onitroad:~# zoneadm -z zone01 install
/rpool/zone01 must not be group readable.
/rpool/zone01 must not be group executable.
/rpool/zone01 must not be world readable.
/rpool/zone01 must not be world executable.
changing zonepath permissions to 0700.
Progress being logged to /var/log/zones/zoneadm.20131122T084145Z.zone01.install
       Image: Preparing at /rpool/zone01/root.
 AI Manifest: /tmp/manifest.xml.C8aOIi
  SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml
    Zonename: zone01
Installation: Starting ...
              Creating IPS image
Startup linked: 1/1 done
              Installing packages from:
                  solaris
                      oroirn:  http://localhost:1008/solaris/ffbe7adc15370eee5e159f41613703a3f440bf35/
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                            183/183   33556/33556  222.2/222.2  560k/s
PHASE                                          ITEMS
Installing new actions                   46825/46825
Updating package state database                 Done
Updating image state                            Done
Creating fast lookup database                   Done
Installation: Succeeded
        Note: Man pages can be obtained by installing pkg:/system/bananaal
 done.
        Done: Installation completed in 510.747 seconds.
  Next Steps: Boot the zone, then log into the zone console (zlogin -C)
              to complete the configuration process.
Log saved in non-global zone as /rpool/zone01/root/var/log/zones/zoneadm.20131122T084145Z.zone01.install

该Zone现已安装。
检查已安装Zone的状态:

root@onitroad:~# zoneadm list -icv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              solaris  shared
   - zone01           installed  /rpool/zone01                  solaris  excl

我们还可以检查在 /rpool/zone01 下为 zone01 创建的文件系统。

root@onitroad:~# zfs list |grep zone
rpool/zone01                          414M  4.50G    32K  /rpool/zone01
rpool/zone01/rpool                    414M  4.50G    31K  /rpool
rpool/zone01/rpool/ROOT               414M  4.50G    31K  legacy
rpool/zone01/rpool/ROOT/solaris       414M  4.50G   390M  /rpool/zone01/root
rpool/zone01/rpool/ROOT/solaris/var  24.3M  4.50G  23.7M  /rpool/zone01/root/var
rpool/zone01/rpool/VARSHARE            31K  4.50G    31K  /var/share
rpool/zone01/rpool/export              62K  4.50G    31K  /export
rpool/zone01/rpool/export/home         31K  4.50G    31K  /export/home

用于创建Zone的 ZFS 数据集使我们能够克隆Zone。

如何在solaris 11中创建Zone

在 oracle solaris 10 中,引入了Zone,这使我们能够为可以在单台机器上运行的应用程序创建隔离环境。
Solaris 11 为Zone技术添加了许多新功能。

如何在 solaris 11 中创建Zone?

引导Zone

现在最后一步是启动已配置、已安装的Zone并使用系统配置工具 (SCI) 配置该Zone。

root@onitroad:~# zoneadm -z zone01 boot
root@onitroad:~# zlogin -C zone01
[Connected to zone 'zone01' console]

按回车键后系统配置工具启动。
使用 ESC + 2 浏览下一个屏幕。

将Zone的主机名设置为 zone01,将网络配置模式设置为手动。

在下一个屏幕上,为 NIC 卡 net0 提供 IP 地址和网络掩码。

我们不会配置任何 DNS 服务,因此请选择“不配置 DNS”。

为备用名称服务选择“无”选项。

在接下来的屏幕上,根据位置设置时区。

现在设置root密码。
此外,如果我们想要创建任何用户,我们可以在此屏幕上进行。

在继续之前仔细检查系统配置摘要。

在此之后,系统将被配置。
无需以Zone的控制台登录身份登录。
使用“~”。
从控制台出来。

从全局Zone检查 zone01 的状态。
现在应该可以运行了。

root@onitroad:~# zoneadm list -icv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              solaris  shared
   1 zone01           running    /rpool/zone01                  solaris  excl

如果我们检查 dladm,我们会看到创建了一个虚拟 NIC:

root@onitroad:~# dladm show-link
LINK                CLASS     MTU    STATE    OVER
net0                phys      1500   up       -
zone01/net0         vnic      1500   up       net0

现在登录到该Zone

root@onitroad:~# zlogin zone01
[Connected to zone 'zone01' pts/3]
Oracle Corporation      SunOS 5.11      11.1    September 2012
root@zone01:~# uname -a
SunOS zone01 5.11 11.1 i86pc i386 i86pc

检查网络设置:

root@zone01:~# dladm show-link
LINK                CLASS     MTU    STATE    OVER
net0                vnic      1500   up       ?
root@zone01:~# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
net0/v4           static   ok           192.168.1.25/24
lo0/v6            static   ok           ::1/128
net0/v6           addrconf ok           fe80::8:20ff:fe89:4b7c/10
root@zone01:~# ifconfig -a
lo0: flags=2001000849[UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL] mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
net0: flags=1000843[UP,BROADCAST,RUNNING,MULTICAST,IPv4] mtu 1500 index 2
        inet 192.168.1.25 netmask ffffff00 broadcast 192.168.1.255
        ether 2:8:20:89:4b:7c
lo0: flags=2002000849[UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL] mtu 8252 index 1
        inet6 ::1/128
net0: flags=20002004841[UP,RUNNING,MULTICAST,DHCP,IPv6] mtu 1500 index 2
        inet6 fe80::8:20ff:fe89:4b7c/10
        ether 2:8:20:89:4b:7c

如果我们检查 zfs list,我们只会看到分配给 zone 的 zfs 数据集,而不是全局文件系统。

root@zone01:~# zfs list
NAME                     USED  AVAIL  REFER  MOUNTPOINT
rpool                    441M  4.48G    31K  /rpool
rpool/ROOT               441M  4.48G    31K  legacy
rpool/ROOT/solaris       441M  4.48G   416M  /
rpool/ROOT/solaris/var  24.4M  4.48G  23.8M  /var
rpool/VARSHARE            39K  4.48G    39K  /var/share
rpool/export              63K  4.48G    32K  /export
rpool/export/home         31K  4.48G    31K  /export/home

要从非全局Zone检查Zone的完整配置详细信息:

root@onitroad:~# zonecfg -z zone01 info
zonename: zone01
zonepath: /rpool/zone01
brand: solaris
autoboot: true
bootargs: -m verbose
file-mac-profile:
pool:
limitpriv:
scheduling-class:
ip-type: exclusive
hostid:
fs-allowed:
anet:
	linkname: net0
	lower-link: auto
	allowed-address not specified
	configure-allowed-address: true
	defrouter not specified
	allowed-dhcp-cids not specified
	link-protection: mac-nospoof
	mac-address: random
	auto-mac-address: 2:8:20:89:4b:7c
	mac-prefix not specified
	mac-slot not specified
	vlan-id not specified
	priority not specified
	rxrings not specified
	txrings not specified
	mtu not specified
	maxbw not specified
	rxfanout not specified
	vsi-typeid not specified
	vsi-vers not specified
	vsi-mgrid not specified
	etsbw-lcl not specified
	cos not specified
	pkey not specified
	linkmode not specified
日期:2020-09-17 00:15:07 来源:oir作者:oir