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 ~]#