Useful information about SmartOS, illumos et al is scattered among a number of sources. You can now search them all at once with SmartOS Search (a Google custom search). On the results page, you'll be able to narrow down by source (list of current sources here - suggestions for others welcome!).
VIDEO: Introduction to SmartOS
Welcome to the SmartOS Documentation Wiki. Here you'll find everything you need to get started using SmartOS and participating in the community.
- OS Virtual Machines (Zones): A light-weight virtualization solution offering a complete and secure userland environment on a single global kernel, offering true bare metal performance and all the features Illumos has, namely dynamic introspection via DTrace
- KVM Virtual Machines: A full virtualization solution for running a variety of guest OS's including Linux, Windows, *BSD, Plan9 and more
SmartOS is a "live OS", it is always booted via PXE, ISO, or USB Key and runs entirely from memory, allowing the local disks to be used entirely for hosting virtual machines without wasting disks for the root OS. This architecture has a variety of advantages including increased security, no need for patching, fast upgrades and recovery.
Virtualization in SmartOS builds on top of the foundational Illumos technologies inherited from OpenSolaris, namely:
- ZFS for storage virtualization
- Crossbow (dladm) for network virtualization
- Zones for virtualization and containment
- DTrace for introspection
- SMF for service management
- RBAC/BSM for auditing and role based security
SmartOS is typically "installed" by downloading and copying the OS image onto a USB key and then booting that key. On the first boot a configuration utility will configure your base networking, allow you to set the root password, and allow you to select which disks to use to create the ZFS Zpool which will provide persistent storage.
When you log into SmartOS you will enter the "global zone". From here you can download VM Images using the imgadm tool, which are pre-configured OS and KVM virtual machines. You can then use the vmadm tool to create and manage both OS and KVM virtual machines.
An important aspect of SmartOS is that both OS (Zones) and KVM virtual machines are both built on Zones technology. In the case of OS virtualization, the guest virtual machine is provided with a complete userland environment on which to run applications directly. In the case of KVM virtualization, the KVM qemu process will run within a stripped down Zone. This offers a variety of advantages for administration, including a common method for managing resource controls, network interfaces, and administration. It also provides KVM guests with an additional layer of security and isolation not offered by other KVM platforms.
Finally, VM's are described in JSON. Both administrative tools, imgadm and vmadm, accept and return all data in JSON format. This provides a simple, consistent, and programmatic interface for creating and managing VM's.
This wiki can provide you with a variety of resources for users at all levels. To get started, download SmartOS now, and be sure to review the Hardware Requirements. Once installed, refer to our Users Guide to help you learn your way around SmartOS. When you have questions, refer to the SmartOS Community section for pointers to our IRC chat rooms and mailing lists. When your ready to start improving and adding your own customizations to SmartOS please refer to our Developers Guide.
SmartOS is a community effort, as you explore and experiment with SmartOS please feel free to edit and contribute to this wiki to improve the documentation for other users in the community.
SmartOS is a fundamental component of the Joyent Smart Data Center (SDC) product. SDC is available for purchase and powers several public and private clouds around the globe, namely theJoyent Public Cloud (JPC). As you use SmartOS you will come across hooks that are used by SDC, such as file systems and services named "smartdc".
If you are interested in evaluating the full Smart Data Center product, please contact firstname.lastname@example.org .