A quick start guide to SmartOS

SmartOS
Jumpstart

A fast, practical tour of SmartOS for your first host and your next command.

Begin the tour →

Use the arrow keys to move through slides.

ORIENTATION / 01

What is SmartOS?

An illumos-based, type 1 hypervisor built to run containers and hardware virtual machines on the same host.

01

Zones

Lightweight, isolated environments that share the host kernel.

02

Hardware VMs

Run other operating systems with Bhyve or KVM.

03

Live OS

Boot from USB, ISO, or PXE; keep guest data on ZFS.

Source: SmartOS in a nutshell ↗

ORIENTATION / 02

Built for infrastructure.

01 Fast provisioning from reusable images.

02 ZFS-backed storage for instances.

03 Network virtualization through Crossbow.

04 DTrace and illumos tools for observability.

Source: SmartOS documentation ↗

ORIENTATION / 03

One host.
Many workloads.

Application zonesLinux containersLinux & BSD VMsStorage-heavy servicesPrivate cloud nodesLab environments

SmartOS is the host platform. Put applications in instances rather than treating the global zone like a general-purpose server.

Source: SmartOS in a nutshell ↗

ORIENTATION / 04

The host boots live.

SmartOS loads its operating system into memory. The local disks can be dedicated to the persistent ZFS pool that holds instances and data.

BOOT MEDIAUSB / ISO / PXE
HOSTGlobal zone in RAM
STORAGEZones on ZFS

Source: Getting started with SmartOS ↗

ORIENTATION / 05

Learn the building blocks.

ZFSStorage and snapshots
ZonesIsolation and resource control
CrossbowVirtual networking
SMFService management
DTraceLive system insight
vmadmInstance lifecycle

Source: SmartOS core technologies ↗

CHAPTER 01

Get a host
running.

Boot, configure, and learn what persists.

FIRST RUN / 01

Start with the image.

Download SmartOS, then boot from USB, ISO, or PXE. For a first experiment, a supported virtual machine setup also works.

↗
Use the current download guide.

It links the images and platform-specific boot instructions.

Open guide

See also: Quick start guide ↗

FIRST RUN / 02

Answer the first-boot prompts.

1

Set the host network and root password.

2

Select disks for the persistent ZFS pool.

3

Let setup finish and reboot into the configured host.

Disk selection can erase existing data. Follow the installation walkthrough and confirm the devices before committing the pool.

Source: Installation walkthrough ↗

FIRST RUN / 03

Know where you are.

GLOBAL ZONE

The hypervisor

Log in here to inspect hardware, manage images, and create instances. Its root filesystem is rebuilt at boot.

INSTANCE

The workload

Run applications inside a native zone, an LX zone, or a hardware VM, according to the guest you need.

Source: The global zone ↗

FIRST RUN / 04

Know what survives a reboot.

/RAM-backed host root; changes do not persistEPHEMERAL
/usbkeyBoot configuration applied at startupPERSISTENT
/var & /optHost data backed by the ZFS poolPERSISTENT
/zonesInstance storage on ZFSPERSISTENT

Source: Global zone filesystems ↗

FIRST RUN / 05

Take a first look.

GLOBAL ZONEread-only checks
uname -a           # host and kernel
vmadm list         # instances
zpool status       # pool health
dladm show-link    # network links

Sources: Command line tips ↗ · Managing NICs ↗

CHAPTER 02

Build an
instance.

Find an image, define a workload, and give it a place to run.

INSTANCES / 01

Instances start
from images.

imgadm discovers and imports images. Select an image suited to the type of instance you want to create.

GLOBAL ZONEimage discovery
imgadm avail       # available remote images
imgadm list        # imported local images

Source: Managing images ↗

INSTANCES / 02

Import what you chose.

Copy a UUID from imgadm avail, then import that exact image before using it in a manifest.

GLOBAL ZONEreplace the placeholder
imgadm import <IMAGE_UUID>
imgadm list

The UUID is an example placeholder, not a current image recommendation.

Source: Managing images ↗

INSTANCES / 03

A native zone shares
the kernel.

Choose the joyent brand for a native SmartOS zone. Its JSON manifest sets the image, memory, storage quota, and NICs.

OS VIRTUALIZATION

Low overhead

The zone runs its own userland on the host kernel.

HOST CONTROL

Clear limits

Set memory and storage limits at creation time.

Source: Create a native SmartOS instance ↗

INSTANCES / 04

Describe it in JSON.

GLOBAL ZONEweb01.json · illustrative values
{
  "brand": "joyent",
  "alias": "web01",
  "image_uuid": "REPLACE_WITH_IMPORTED_IMAGE_UUID",
  "max_physical_memory": 512,
  "quota": 10,
  "nics": [{
    "nic_tag": "admin",
    "ip": "192.0.2.20",
    "netmask": "255.255.255.0",
    "gateway": "192.0.2.1",
    "primary": true
  }]
}

Replace the image UUID and documentation-only IP addresses with values for your network. Review image login requirements before creating the zone.

Source: Zone manifest guide ↗

INSTANCES / 05

Create. Then connect.

GLOBAL ZONEafter editing the manifest
vmadm create -f web01.json
vmadm list
zlogin <INSTANCE_UUID>

vmadm create starts the new zone. Use its returned UUID for zlogin; SSH access depends on your image and network setup.

Source: Create and connect to a zone ↗

INSTANCES / 06

The everyday vmadm loop.

GLOBAL ZONEreplace the placeholder
vmadm list
vmadm get <INSTANCE_UUID>
vmadm stop <INSTANCE_UUID>
vmadm start <INSTANCE_UUID>
vmadm reboot <INSTANCE_UUID>

vmadm delete permanently removes an instance. Read the full lifecycle guide before using it.

Source: Managing instances with vmadm ↗

INSTANCES / 07

Need another kernel?
Use a hardware VM.

SmartOS can run hardware guests with Bhyve or KVM. Their manifests use brand, ram, vcpus, disks, and nics rather than a native zone's root image layout.

NATIVE ZONE

Shared kernel

SmartOS userland, resource efficient.

HARDWARE VM

Guest kernel

Choose a compatible disk image and VM brand.

Source: Create a hardware virtual machine ↗

CHAPTER 03

Operate with
confidence.

The tools you reach for after the first instance is running.

OPERATIONS / 01

Networks begin
with NIC tags.

A nic_tag connects an instance NIC to a host network. The default admin tag is configured during setup; add others as your topology requires.

GLOBAL ZONEinspect before assigning
nictagadm list
dladm show-link

Source: Managing NICs ↗

OPERATIONS / 02

Follow the network layers.

GLOBAL ZONEread-only checks
dladm show-phys -m   # physical ports and MACs
dladm show-vnic      # virtual NICs
ipadm show-if        # interfaces
ipadm show-addr      # addresses

Host network changes made by hand can be temporary. Use the documented persistent configuration when a change must survive reboot.

Source: Managing NICs ↗

OPERATIONS / 03

ZFS is the storage foundation.

The setup process creates a pool for persistent instance storage. Images and guest filesystems live there, while the live host root remains disposable.

POOLzones
IMAGESReusable origins
INSTANCESGuest datasets

Sources: SmartOS in a nutshell ↗ · Command line tips ↗

OPERATIONS / 04

Check the pool first.

GLOBAL ZONEread-only checks
zpool status
zpool list
zfs list -r zones

zpool status reveals pool and disk health; zfs list shows datasets and their space use.

Source: SmartOS command line tips ↗

OPERATIONS / 05

Services speak SMF.

Use svcs to inspect services and svcadm to change their state. The same vocabulary appears in the host and in native zones.

GLOBAL ZONE OR NATIVE ZONEreplace the service name
svcs -a
svcs -xv
svcadm restart <SERVICE_FMRI>

Source: Basic SMF commands ↗

OPERATIONS / 06

Install apps inside a zone.

SmartOS native zones use pkgsrc. pkgin refreshes the package catalog, searches packages, and installs what the workload needs.

NATIVE ZONEpackage management
pkgin up
pkgin se nginx
pkgin in nginx
pkgin ls

Source: Managing packages ↗

OPERATIONS / 07

When something feels wrong.

GLOBAL ZONEfirst checks
vmadm list            # did the instance start?
svcs -xv              # failed services and logs
prstat -Z             # resource use by zone
zpool status          # storage health

Start with observed state, then follow the specific service or instance documentation.

Sources: Technical FAQs ↗ · SMF troubleshooting ↗

NEXT STEPS / 01

Keep this map close.

imgadmFind and import images
vmadmCreate and control instances
nictagadm · dladm · ipadmUnderstand networks
zpool · zfsInspect storage
svcs · svcadmManage services
pkginManage native zone packages

Source: SmartOS command references ↗

NEXT STEPS / 02

Keep exploring.

Use this deck as a launchpad. The official docs have the complete procedures and the latest details.

Inspired by OpenBSD Jumpstart ↗. Written for SmartOS.