Skip to content

SmartOS上如何创建一个SmartOS zone

用SmartOS启动电脑后,如果我们需要使用SmartOS系统(或者说,以前的Solaris系统)来运行应用程序,我们会在SmartOS机器上创建一个SmartOS zone(或者用Linux的术语来说,叫做Container),然后在这个zone上来安装、运行应用。

在SmartOS上创建SmartOS zone,需要两个东西:一个SmartOS zone的镜像文件(image)和一个json配置文件。

image需要从网上导入。json文件需要自己创建。

在SmartOS上,运行imgadm avail | grep base-64命令来查看有哪些smartos image文件:

[root@sunflower ~]# imgadm avail | egrep base-64
c02a2044-c1bd-11e4-bd8c-dfc1db8b0182  base-64-lts             14.4.0      smartos  zone-dataset  2015-03-03
24648664-e50c-11e4-be23-0349d0a5f3cf  base-64-lts             14.4.1      smartos  zone-dataset  2015-04-17
4166f6d6-ea5f-11e4-addd-8351b159d9b6  base-64                 15.1.0      smartos  zone-dataset  2015-04-24
b67492c2-055c-11e5-85d8-8b039ac981ec  base-64-lts             14.4.2      smartos  zone-dataset  2015-05-28
0edf00aa-0562-11e5-b92f-879647d45790  base-64                 15.1.1      smartos  zone-dataset  2015-05-28
5c7d0d24-3475-11e5-8e67-27953a8b237e  base-64                 15.2.0      smartos  zone-dataset  2015-07-27
842e6fa6-6e9b-11e5-8402-1b490459e334  base-64                 15.3.0      smartos  zone-dataset  2015-10-09
96bcddda-beb7-11e5-af20-a3fb54c8ae29  base-64-lts             15.4.0      smartos  zone-dataset  2016-01-19
088b97b0-e1a1-11e5-b895-9baa2086eb33  base-64-lts             15.4.1      smartos  zone-dataset  2016-03-04
163cd9fe-0c90-11e6-bd05-afd50e5961b6  base-64                 16.1.0      smartos  zone-dataset  2016-04-27

你可以选择一个来导入。想用最新的,就导入最后一个;想使用长期支持(lts)版本,就导入带有lts标记的。

使用imgadm import 加上image文件的UUID(第一列)来导入。根据网络状况,导入需要一定的时间。导入完成后可以用imgadm list来查看:

[root@sunflower ~]# imgadm list
UUID                                  NAME     VERSION  OS       TYPE          PUB
163cd9fe-0c90-11e6-bd05-afd50e5961b6  base-64  16.1.0   smartos  zone-dataset  2016-04-27

有了image文件,接下来创建json配置文件,来制定zone(或虚拟机)。可配置的选项有很多。但常用的主要就是内存大小,磁盘限额,网卡和网络配置等等。具体可参考vmadm命令的man手册。我们就用一个最常用、最简单的:

{
 "brand": "joyent",
 "image_uuid": "163cd9fe-0c90-11e6-bd05-afd50e5961b6",
 "alias": "test01",
 "hostname": "test01",
 "max_physical_memory": 512,
 "quota": 20,
 "resolvers": ["112.4.0.55", "208.67.220.220"],
 "nics": [
  {
    "nic_tag": "admin",
    "ip": "192.168.2.12",
    "netmask": "255.255.255.0",
    "gateway": "192.168.2.1"
  }
 ]
}

其中需要调整的是image_uuid/alias/hostname/max_physical_memory/quota/resolvers/nics中的选项。

有了这个文件,创建这个虚拟机就很简单了:

vmadm create -f test01.json

创建完成后用vmadm list查看:

[root@sunflower ~]# vmadm list
UUID                                  TYPE  RAM      STATE             ALIAS
a5be5af8-e67f-4f29-cdff-b62948ba28f5  OS    512      running           test01

用zlogin UUID(支持tab键补齐)来登陆到虚拟机上。

[root@sunflower ~]# zlogin a5be5af8-e67f-4f29-cdff-b62948ba28f5 
[Connected to zone 'a5be5af8-e67f-4f29-cdff-b62948ba28f5' pts/2]
Last login: Mon May  2 13:41:43 on pts/2
   __        .                   .
 _|  |_      | .-. .  . .-. :--. |-
|_    _|     ;|   ||  |(.-' |  | |
  |__|   `--'  `-' `;-| `-' '  ' `-'
                   /  ; Instance (base-64 16.1.0)
                   `-'  https://docs.joyent.com/images/smartos/base

[root@test01 ~]# 

 

Avatar

专业Linux/Unix/Windows系统管理员,开源技术爱好者。对操作系统底层技术,TCP/IP协议栈以及信息系统安全有强烈兴趣。电脑技术之外,则喜欢书法,古典诗词,数码摄影和背包行。

Sidebar