Solaris Containers

Поделись знанием:
Перейти к: навигация, поиск

Solaris Containers (включая Solaris Zones) — реализация технологии виртуализации на уровне операционной системы, представленная корпорацией Sun Microsystems в 2005 для Solaris 10.

Зоны работают как полностью изолированные виртуальные серверы внутри одного экземпляра операционной системы. Запуская множество служб на одной системе и помещая каждую из них в свой виртуальный контейнер, системный администратор может создать на одной машине такой же уровень защиты, как если бы все службы работали на разных машинах.





Терминология

В системе всегда существует одна зона, называемая глобальной («global zone»). Глобальная зона — это тот экземпляр операционной системы, который загружается при включении компьютера. Другие зоны известны как неглобальные («non-global zones»), или просто зоны. Термин «локальная зона» не рекомендуется употреблять, так как в этом контексте слово «локальная» не является антонимом слову «глобальная». Глобальная зона имеет возможность контролировать все процессы вне зависимости от того, в какой зоне они исполняются. Таким образом, в системе всегда есть глобальная зона и, возможно, неглобальные зоны. Если не оговорено особо, термин «зона» в этой статье будет относиться к неглобальным зонам.

Описание

Каждая зона имеет своё имя в сети, виртуальные сетевые интерфейсы и системы хранения данных; не существует ограничения на минимум поддерживающего зону аппаратного обеспечения кроме минимального дискового пространства, необходимого для сохранения уникальной конфигурации зоны. Особо следует отметить, что зона не нуждается в выделенном процессоре, памяти, физическом сетевом интерфейсе или HBA, хотя любой из них может быть выделен для зоны.

Каждая зона имеет систему защиты, которая не позволяет процессам взаимодействовать с процессами других зон или следить за ними. Для каждой зоны может быть создан собственный список пользователей. Система автоматически разрешает конфликты при использовании одинаковых идентификаторов пользователей в разных зонах; например, две зоны в системе могут иметь пользователя с ID 10000.

Зоне может быть приписан пул ресурсов (набор процессоров и память), чтобы гарантировать минимальное количество ресурсов. Зона может находиться в одном из следующих состояний:

  • Configured: конфигурирование закончено и подтверждено
  • Incomplete: переходное состояние между операциями install и uninstall
  • Installed: пакеты были успешно установлены
  • Ready: платформа готова к использованию
  • Running: зона успешно загрузилась и работает
  • Shutting down: зона в процессе выключения - это промежуточное состояние перед полной остановкой
  • Down: зона остановлена

Некоторые программы не могут исполняться внутри неглобальной зоны; обычно это происходит из-за того, что приложению требуются привилегии, которые не могут быть предоставлены внутри контейнера. Так как зона не имеет собственного ядра (в отличие от аппаратной виртуальной машины), приложения, требующие непосредственной работы с функциями ядра, могут не работать в контейнере.

Ресурсы

Зоны оказывают очень малое влияние на использование CPU и памяти. В настоящее время максимум 8191 неглобальная зона может работать внутри одного экземпляра операционной системы. Зоны могут занимать около 50 МБ объёма диска.

Branded zones

Хотя все зоны в системе разделяют одно общее ядро, существует возможность исполнять экземпляры операционных систем, отличных от системы в глобальной зоне. Для этого настраивают типизированные зоны (branded zones или BrandZ). Механизм BrandZ позволяет запускать в Solaris без перекомпиляции те приложения, которые были изначально скомпилированы для исполнения в других операционных системах.

Во время исполнения программы в типизированной зоне ядро Solaris обрабатывает полученные из этой зоны вызовы так, как их бы обработало ядро системы, «родной» для приложений из этой зоны.

Реализованы контейнеры для операционных систем Linux, Solaris 8, Solaris 9 и Solaris 10. Эмуляция Red Hat Enterprise Linux 3 доступна в Solaris на платформе x86. Для эмуляции необходимы библиотеки Red Hat 3 или эквивалентные библиотеки CentOS. Используя некоторые приёмы, можно эмулировать Debian[1].

Проект OpenSolaris s10brand использует механизм BrandZ для создания контейнеров для приложений под Solaris 10 в OpenSolaris. Результаты проекта интегрированы в OpenSolaris build 127.

Технически возможно реализовать поддержку зон для SuSE Linux, FreeBSD и Darwin на x86[2]. Однако вплоть до августа 2010 года сведений о случаях запуска этих систем в типизированных зонах не публиковалось.

Особенности реализации

Branded zones не поддерживаются на архитектуре sun4us. Пакеты могут быть установлены на серверы Fujitsu PRIMEPOWER с Solaris 10, но попытка использования зон приведёт к ошибке.

Похожие технологии

Другие реализации технологии виртуализации на уровне операционной системы включают OpenVZ/Virtuozzo, Linux-VServer, FreeBSD Jail, FreeVPS, Icore virtual accounts и AIX Workload Partitions.

Напишите отзыв о статье "Solaris Containers"

Примечания

  1. [www.sunhelp.ru/archives/141-Podnimaem_Debian_Etch_v_BrandZ.html SunHelp.Ru : Поднимаем Debian Etch в BrandZ]
  2. [opensolaris.org/os/community/brandz/brandz_lae_faq/ BrandZ/SCLA FAQ (Community Group brandz.brandz_lae_faq) — XWiki]

См. также

Ссылки

На английском

  • [opensolaris.org/os/community/zones/ Сообщество OpenSolaris Zones]
  • [www.opensolaris.org/os/community/zones/faq/ Solaris Containers FAQ]
  • [sun.com/software/solaris/containers_learning_center.jsp Solaris Containers Learning Center]
  • [www.sun.com/software/solaris/ds/utilization.jsp Solaris Containers data sheet]
  • [www.securitybulletins.com/mediawiki/index.php/Moving_Solaris_10_Zones Moving Solaris 10 Zones]

На русском

  • [www.opennet.ru/docs/RUS/solaris_zones Solaris 10 Containers. Конфигурирование зон]
  • [www.sunhelp.ru/archives/31-Zapuskaem_Linux_v_Solaris_Brandz_.html Запускаем Linux в Solaris Brandz ]
  • [www.sunhelp.ru/archives/141-Podnimaem_Debian_Etch_v_BrandZ.html Поднимаем Debian Etch в BrandZ]

Отрывок, характеризующий Solaris Containers

Душа его была не в нормальном состоянии. Здоровый человек обыкновенно мыслит, ощущает и вспоминает одновременно о бесчисленном количестве предметов, но имеет власть и силу, избрав один ряд мыслей или явлений, на этом ряде явлений остановить все свое внимание. Здоровый человек в минуту глубочайшего размышления отрывается, чтобы сказать учтивое слово вошедшему человеку, и опять возвращается к своим мыслям. Душа же князя Андрея была не в нормальном состоянии в этом отношении. Все силы его души были деятельнее, яснее, чем когда нибудь, но они действовали вне его воли. Самые разнообразные мысли и представления одновременно владели им. Иногда мысль его вдруг начинала работать, и с такой силой, ясностью и глубиною, с какою никогда она не была в силах действовать в здоровом состоянии; но вдруг, посредине своей работы, она обрывалась, заменялась каким нибудь неожиданным представлением, и не было сил возвратиться к ней.
«Да, мне открылась новое счастье, неотъемлемое от человека, – думал он, лежа в полутемной тихой избе и глядя вперед лихорадочно раскрытыми, остановившимися глазами. Счастье, находящееся вне материальных сил, вне материальных внешних влияний на человека, счастье одной души, счастье любви! Понять его может всякий человек, но сознать и предписать его мот только один бог. Но как же бог предписал этот закон? Почему сын?.. И вдруг ход мыслей этих оборвался, и князь Андрей услыхал (не зная, в бреду или в действительности он слышит это), услыхал какой то тихий, шепчущий голос, неумолкаемо в такт твердивший: „И пити пити питии“ потом „и ти тии“ опять „и пити пити питии“ опять „и ти ти“. Вместе с этим, под звук этой шепчущей музыки, князь Андрей чувствовал, что над лицом его, над самой серединой воздвигалось какое то странное воздушное здание из тонких иголок или лучинок. Он чувствовал (хотя это и тяжело ему было), что ему надо было старательна держать равновесие, для того чтобы воздвигавшееся здание это не завалилось; но оно все таки заваливалось и опять медленно воздвигалось при звуках равномерно шепчущей музыки. „Тянется! тянется! растягивается и все тянется“, – говорил себе князь Андрей. Вместе с прислушаньем к шепоту и с ощущением этого тянущегося и воздвигающегося здания из иголок князь Андрей видел урывками и красный, окруженный кругом свет свечки и слышал шуршанъе тараканов и шуршанье мухи, бившейся на подушку и на лицо его. И всякий раз, как муха прикасалась к егв лицу, она производила жгучее ощущение; но вместе с тем его удивляло то, что, ударяясь в самую область воздвигавшегося на лице его здания, муха не разрушала его. Но, кроме этого, было еще одно важное. Это было белое у двери, это была статуя сфинкса, которая тоже давила его.
«Но, может быть, это моя рубашка на столе, – думал князь Андрей, – а это мои ноги, а это дверь; но отчего же все тянется и выдвигается и пити пити пити и ти ти – и пити пити пити… – Довольно, перестань, пожалуйста, оставь, – тяжело просил кого то князь Андрей. И вдруг опять выплывала мысль и чувство с необыкновенной ясностью и силой.
«Да, любовь, – думал он опять с совершенной ясностью), но не та любовь, которая любит за что нибудь, для чего нибудь или почему нибудь, но та любовь, которую я испытал в первый раз, когда, умирая, я увидал своего врага и все таки полюбил его. Я испытал то чувство любви, которая есть самая сущность души и для которой не нужно предмета. Я и теперь испытываю это блаженное чувство. Любить ближних, любить врагов своих. Все любить – любить бога во всех проявлениях. Любить человека дорогого можно человеческой любовью; но только врага можно любить любовью божеской. И от этого то я испытал такую радость, когда я почувствовал, что люблю того человека. Что с ним? Жив ли он… Любя человеческой любовью, можно от любви перейти к ненависти; но божеская любовь не может измениться. Ничто, ни смерть, ничто не может разрушить ее. Она есть сущность души. А сколь многих людей я ненавидел в своей жизни. И из всех людей никого больше не любил я и не ненавидел, как ее». И он живо представил себе Наташу не так, как он представлял себе ее прежде, с одною ее прелестью, радостной для себя; но в первый раз представил себе ее душу. И он понял ее чувство, ее страданья, стыд, раскаянье. Он теперь в первый раз поняд всю жестокость своего отказа, видел жестокость своего разрыва с нею. «Ежели бы мне было возможно только еще один раз увидать ее. Один раз, глядя в эти глаза, сказать…»
И пити пити пити и ти ти, и пити пити – бум, ударилась муха… И внимание его вдруг перенеслось в другой мир действительности и бреда, в котором что то происходило особенное. Все так же в этом мире все воздвигалось, не разрушаясь, здание, все так же тянулось что то, так же с красным кругом горела свечка, та же рубашка сфинкс лежала у двери; но, кроме всего этого, что то скрипнуло, пахнуло свежим ветром, и новый белый сфинкс, стоячий, явился пред дверью. И в голове этого сфинкса было бледное лицо и блестящие глаза той самой Наташи, о которой он сейчас думал.
«О, как тяжел этот неперестающий бред!» – подумал князь Андрей, стараясь изгнать это лицо из своего воображения. Но лицо это стояло пред ним с силою действительности, и лицо это приближалось. Князь Андрей хотел вернуться к прежнему миру чистой мысли, но он не мог, и бред втягивал его в свою область. Тихий шепчущий голос продолжал свой мерный лепет, что то давило, тянулось, и странное лицо стояло перед ним. Князь Андрей собрал все свои силы, чтобы опомниться; он пошевелился, и вдруг в ушах его зазвенело, в глазах помутилось, и он, как человек, окунувшийся в воду, потерял сознание. Когда он очнулся, Наташа, та самая живая Наташа, которую изо всех людей в мире ему более всего хотелось любить той новой, чистой божеской любовью, которая была теперь открыта ему, стояла перед ним на коленях. Он понял, что это была живая, настоящая Наташа, и не удивился, но тихо обрадовался. Наташа, стоя на коленях, испуганно, но прикованно (она не могла двинуться) глядела на него, удерживая рыдания. Лицо ее было бледно и неподвижно. Только в нижней части его трепетало что то.