A quick start guide to SmartOS
SmartOS
Jumpstart
A fast, practical tour of SmartOS for your first host and your next command.
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.
Zones
Lightweight, isolated environments that share the host kernel.
Hardware VMs
Run other operating systems with Bhyve or KVM.
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.
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.
Source: Getting started with SmartOS ↗
ORIENTATION / 05
Learn the building blocks.
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.
It links the images and platform-specific boot instructions.
See also: Quick start guide ↗
FIRST RUN / 02
Answer the first-boot prompts.
Set the host network and root password.
Select disks for the persistent ZFS pool.
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.
The hypervisor
Log in here to inspect hardware, manage images, and create instances. Its root filesystem is rebuilt at boot.
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 ZFSPERSISTENTSource: Global zone filesystems ↗
FIRST RUN / 05
Take a first look.
uname -a # host and kernel
vmadm list # instances
zpool status # pool health
dladm show-link # network linksSources: 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.
imgadm avail # available remote images
imgadm list # imported local imagesSource: 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.
imgadm import <IMAGE_UUID>
imgadm listThe 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.
Low overhead
The zone runs its own userland on the host kernel.
Clear limits
Set memory and storage limits at creation time.
INSTANCES / 04
Describe it in JSON.
{
"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.
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.
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.
Shared kernel
SmartOS userland, resource efficient.
Guest kernel
Choose a compatible disk image and VM brand.
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.
nictagadm list
dladm show-linkSource: Managing NICs ↗
OPERATIONS / 02
Follow the network layers.
dladm show-phys -m # physical ports and MACs
dladm show-vnic # virtual NICs
ipadm show-if # interfaces
ipadm show-addr # addressesHost 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.
Sources: SmartOS in a nutshell ↗ · Command line tips ↗
OPERATIONS / 04
Check the pool first.
zpool status
zpool list
zfs list -r zoneszpool 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.
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.
pkgin up
pkgin se nginx
pkgin in nginx
pkgin lsSource: Managing packages ↗
OPERATIONS / 07
When something feels wrong.
vmadm list # did the instance start?
svcs -xv # failed services and logs
prstat -Z # resource use by zone
zpool status # storage healthStart 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 imagesvmadmCreate and control instancesnictagadm · dladm · ipadmUnderstand networkszpool · zfsInspect storagesvcs · svcadmManage servicespkginManage native zone packagesSource: 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.