Введение
Виртуализация на уровне ОС Solaris Containers (включая Solaris Zones) - это реализация технологии виртуализации на уровне операционной системы для систем x86 и SPARC, впервые выпущенная публично в феврале 2004 года в бета-версии 51 Solaris 10, а затем в первом полном выпуске Solaris 10, 2005. Он присутствует в дистрибутивах illumos (ранее OpenSolaris), таких как OpenIndiana, SmartOS, Tribblix и OmniOS, а также в официальном релизе Oracle Solaris 11. Контейнер Solaris - это сочетание системного управления ресурсами и разграничения, обеспечиваемого зонами. Зоны действуют как полностью изолированные виртуальные серверы в пределах одной экземпляра операционной системы. Объединяя несколько наборов приложений в одной системе и помещая их в отдельные контейнеры виртуальных серверов, системные администраторы могут сократить затраты и обеспечить большую часть той же защиты отдельных машин на одной машине.
Solaris Containers (including Solaris Zones) is an implementation of operating system level virtualization technology for x86 and SPARC systems, first released publicly in February 2004 in build 51 beta of Solaris 10, and subsequently in the first full release of Solaris 10, 2005. It is present in illumos (formerly OpenSolaris) distributions, such as OpenIndiana, SmartOS, Tribblix and OmniOS, as well as in the official Oracle Solaris 11 release. A Solaris Container is the combination of system resource controls and the boundary separation provided by zones. Zones act as completely isolated virtual servers within a single operating system instance. By consolidating multiple sets of application services onto one system and by placing each into isolated virtual server containers, system administrators can reduce cost and provide most of the same protections of separate machines on a single machine.
Терминология
Название этой технологии изменилось во время разработки и публичных мероприятий перед запуском. До запуска Solaris Zones в 2005 году Solaris Container был любым типом рабочей нагрузки, ограниченной функциями управления ресурсами Solaris. Последнее было отдельным пакетом программного обеспечения в более ранней истории. К 2007 году термин Solaris Containers стал означать Solaris Zone в сочетании с контролем управления ресурсами. Позже произошел постепенный переход, при котором Solaris Containers специально относились к не глобальным зонам, с дополнительным управлением ресурсами или без него. Зон, в которых размещается глобальная зона, называют "не глобальными зонами", но иногда их просто называют "зонами". Термин "местная зона" специально не рекомендуется, поскольку в этом использовании "местная" не является антонимом "глобальной". Глобальная зона имеет видимость всех ресурсов в системе, независимо от того, связаны ли они с глобальной зоной или не глобальной зоной. Если не указано иное, в этой статье "зона" будет относиться к не глобальным зонам. Для упрощения терминологии Oracle отказался от использования термина "контейнер" в Solaris 11 и вернулся к использованию термина "зона Solaris" независимо от использования средств управления ресурсами.
Необходимые ресурсы
Зоны вызывают очень низкую накладную на CPU и память. Большинство типов зон используют виртуальное адресное пространство глобальной зоны. Зона может быть назначена пулу ресурсов (набор процессоров плюс класс планирования), чтобы гарантировать определенное использование, или может быть ограничена фиксированной вычислительной мощностью ("ограниченный процессор") или может быть предоставлена доля через планирование справедливой доли. В настоящее время в пределах одной экземпляра операционной системы может быть создано максимум 8191 не глобальных зон. "Разбросанные зоны", в которых большая часть содержимого файловой системы передается в глобальную зону, могут занимать всего 50 МБ дискового пространства. "Все корневые зоны", в которых каждая зона имеет свою копию файлов операционной системы, могут занимать от нескольких сотен мегабайт до нескольких гигабайт, в зависимости от установленного программного обеспечения. Пределы 8191 возникают из предела 8,192 обратных соединений на экземпляр Solaris. Каждая зона нуждается в обратном соединении. Глобальная зона получает одну, оставляя 8191 для не глобальных зон. Даже при использовании целых корневых зон, требования к дисковому пространству могут быть незначительными, если файловая система ОС зоны является клоном ZFS изображения глобальной зоны, поскольку на диске должны храниться только блоки, отличные от изображения моментального снимка; этот метод также позволяет создавать новые зоны за несколько секунд.
Документация
Операционная система Solaris по умолчанию предоставляет страницы руководства для контейнеров Solaris; более подробную документацию можно найти в различных онлайн-технических ресурсах. Первый опубликованный документ и справочник для Solaris Zones был написан в феврале 2004 года Деннисом Кларком в Blastwave, предоставляя основы для начала работы. Этот документ был значительно расширен Бренданом Греггом в июле 2005 года. Контейнеры Solaris 8 и Solaris 9 были подробно задокументированы Деннисом Кларком на Blastwave в апреле 2008 года. Документ Blastwave Solaris 8 и Solaris 9 Containers был очень ранним в цикле выпуска технологии Solaris Containers, и действия и реализация в Blastwave привели к последующей маркетинговой деятельности Sun Microsystems. В книге Oracle Solaris 10 System Virtualization Essentials, написанной Джеффом Виктором и др., даются подробные сведения о функциях и лучших практиках. Более подробная документация может быть найдена на сайте документации Oracle.
Вопросы внедрения
Начиная с Solaris 10 10/08, брендовые зоны поддерживаются на архитектуре sun4us (серверы Fujitsu PRIMEPOWER) через пакеты FJSVs8brandr и FJSVs9brandr.