Kontenery Solaris - Solaris Containers

Strefy Solaris
Pierwotny autor (autorzy) Mikrosystemy słoneczne
Deweloper(zy) iluminaci i Oracle
Pierwsze wydanie styczeń 2005 ( styczeń 2005 )
Napisane w do
System operacyjny Oracle Solaris
Platforma SPARC , x86
Dostępne w język angielski
Rodzaj Wirtualizacja na poziomie systemu operacyjnego
Licencja CDDL , zastrzeżony
Stronie internetowej Oracle .com / Solariss

Solaris Containers (w tym Solaris Zones ) to implementacja technologii wirtualizacji na poziomie systemu operacyjnego dla systemów x86 i SPARC, po raz pierwszy wydana publicznie w lutym 2004 r. w kompilacji 51 beta Solaris 10 , a następnie w pierwszym pełnym wydaniu Solaris 10, 2005. Jest obecny w dystrybucjach illumos (dawniej OpenSolaris ), takich jak OpenIndiana , SmartOS , Tribblix i OmniOS, a także w oficjalnym wydaniu Oracle Solaris 11.

Solaris Container to połączenie kontroli zasobów systemu i separacji granic zapewnianej przez strefy . Strefy działają jak całkowicie izolowane serwery wirtualne w ramach pojedynczej instancji systemu operacyjnego. Konsolidując wiele zestawów usług aplikacji w jednym systemie i umieszczając każdy z nich w izolowanych kontenerach serwerów wirtualnych, administratorzy systemu mogą obniżyć koszty i zapewnić większość tych samych zabezpieczeń oddzielnych komputerów na jednej maszynie.

Terminologia

Nazwa tej technologii zmieniła się podczas prac rozwojowych i przedpremierowych wydarzeń publicznych. Przed uruchomieniem Stref Solaris w 2005 roku Kontener Solaris był dowolnym rodzajem obciążenia ograniczonego przez funkcje zarządzania zasobami Solaris. Ten ostatni był oddzielnym pakietem oprogramowania we wcześniejszej historii. Do 2007 roku termin Solaris Containers zaczął oznaczać Strefę Solaris połączoną z kontrolą zarządzania zasobami.

Później nastąpił stopniowy ruch, tak że kontenery Solaris odnosiły się konkretnie do stref nieglobalnych, z dodatkowym zarządzaniem zasobami lub bez niego. Strefy hostowane przez strefę globalną są znane jako „strefy nieglobalne”, ale czasami są nazywane po prostu „strefami”. Termin „strefa lokalna” jest szczególnie odradzany, ponieważ w tym znaczeniu „lokalny” nie jest antonimem słowa „globalny”. Strefa globalna ma widoczność wszystkich zasobów w systemie, niezależnie od tego, czy są one powiązane ze strefą globalną, czy ze strefą nieglobalną. O ile nie zaznaczono inaczej, „strefa” będzie odnosić się do stref nieglobalnych w tym artykule.

Aby uprościć terminologię, firma Oracle zrezygnowała z używania terminu Container w systemie Solaris 11 i powróciła do używania terminu Strefa Solaris niezależnie od użycia kontroli zarządzania zasobami.

Opis

Każda strefa ma własną nazwę węzła, dostęp do wirtualnych lub fizycznych interfejsów sieciowych oraz przypisaną do niej pamięć; nie ma wymogu, aby strefa miała jakąkolwiek minimalną ilość dedykowanego sprzętu innego niż pamięć dyskowa niezbędna do jej unikalnej konfiguracji. W szczególności nie wymaga dedykowanego procesora, pamięci, fizycznego interfejsu sieciowego ani HBA , chociaż każdy z nich może być przydzielony konkretnie do jednej strefy.

Każda strefa ma otaczającą ją granicę bezpieczeństwa, która uniemożliwia procesowi powiązanemu z jedną strefą interakcję lub obserwowanie procesów w innych strefach. Każdą strefę można skonfigurować z osobną listą użytkowników. System automatycznie zarządza konfliktami identyfikatorów użytkowników; oznacza to, że dwie strefy w systemie mogą mieć zdefiniowany identyfikator użytkownika 10000, a każda z nich byłaby odwzorowana na swój własny unikalny identyfikator globalny.

Strefa może znajdować się w jednym z następujących stanów:

  • Skonfigurowane: konfiguracja została zakończona i zatwierdzona.
  • Niekompletne: stan przejścia podczas operacji instalowania lub odinstalowywania.
  • Zainstalowane: pakiety zostały pomyślnie zainstalowane.
  • Gotowe: Platforma wirtualna została założona.
  • Uruchomiona: Strefa uruchomiła się pomyślnie i jest teraz uruchomiona.
  • Wyłączenie: Strefa jest w trakcie zamykania – jest to stan tymczasowy, prowadzący do „ Wyłączenia ”.
  • Wyłączona: strefa zakończyła proces zamykania i jest wyłączona — jest to stan tymczasowy, prowadzący do stanu „Zainstalowana”.

Niektóre programy nie mogą być wykonywane z nieglobalnej strefy; zazwyczaj dzieje się tak, ponieważ aplikacja wymaga uprawnień , których nie można nadać w kontenerze. Ponieważ strefa nie ma własnego oddzielnego jądra (w przeciwieństwie do sprzętowej maszyny wirtualnej ), aplikacje wymagające bezpośredniej manipulacji funkcjami jądra, takimi jak możliwość bezpośredniego odczytu lub zmiany przestrzeni pamięci jądra, mogą nie działać w kontenerze.

Potrzebne zasoby

Strefy powodują bardzo niskie obciążenie procesora i pamięci. Większość typów stref współdzieli wirtualną przestrzeń adresową strefy globalnej. Strefę można przypisać do puli zasobów (zestaw procesorów plus klasa planowania), aby zagwarantować określone użycie, lub można ją ograniczyć do stałej mocy obliczeniowej („ograniczony procesor”) lub można przyznać udziały za pośrednictwem planowania sprawiedliwego udziału .

Obecnie w jednym wystąpieniu systemu operacyjnego można utworzyć maksymalnie 8191 stref nieglobalnych. „Strefy rzadkie”, w których większość zawartości systemu plików jest współdzielona ze strefą globalną, mogą zajmować zaledwie 50 MB miejsca na dysku. „Whole Root Zones”, w których każda strefa ma swoją własną kopię plików systemu operacyjnego, może zajmować od kilkuset megabajtów do kilku gigabajtów, w zależności od zainstalowanego oprogramowania. Limity 8191 wynikają z limitu 8192 połączeń pętli zwrotnej na instancję Solarisa. Każda strefa wymaga połączenia zwrotnego. Strefa globalna otrzymuje jeden, pozostawiając 8191 dla stref nieglobalnych.

Nawet w przypadku całych stref głównych wymagania dotyczące miejsca na dysku mogą być pomijalne, jeśli system plików systemu operacyjnego strefy jest klonem ZFS globalnego obrazu strefy, ponieważ tylko bloki inne niż obraz migawki muszą być przechowywane na dysku; ta metoda umożliwia również tworzenie nowych stref w kilka sekund.

Strefy markowe

Chociaż wszystkie strefy w systemie mają wspólne jądro, dodano dodatkowy zestaw funkcji o nazwie strefy markowe ( w skrócie BrandZ ). Pozwala to poszczególnym strefom zachowywać się w sposób inny niż domyślna marka strefy globalnej. Istniejące marki (październik 2009) można podzielić na dwie kategorie:

  • Marki, które nie wykonują tłumaczenia wywołań systemowych:
    • „natywny” jest domyślny dla Solarisa 10
    • „ipkg” jest ustawieniem domyślnym dla OpenSolaris , OpenIndiana i OmniOS
    • „radosny” jest domyślny dla SmartOS
    • „klaster” jest używany dla stref Klastra Solaris
    • „oznakowane” służy do stref w Solaris Trusted Extensions środowiska
  • Marki wykonujące tłumaczenie wywołań systemowych:
    • 'solaris8' zapewnia środowisko Solaris 8 w systemie Solaris 10, w tym translację z wywołań systemowych Solaris 8 na wywołania systemowe Solaris 10 (dostępne tylko w systemach SPARC )
    • 'solaris9' zapewnia środowisko Solaris 9 w systemie Solaris 10, w tym tłumaczenie z wywołań systemowych Solaris 9 na wywołania systemowe Solaris 10 (dostępne tylko w systemach SPARC)
    • 'lx' zapewnia środowisko Red Hat Enterprise Linux 3 w systemie Solaris 10, w tym translację z wywołań systemowych RHEL 3 na wywołania systemowe Solaris 10 (dostępne tylko w systemach x86). W SmartOS strefy marki lx mogą zapewnić środowisko uruchomieniowe dla większości nowoczesnych dystrybucji Linuksa, w tym Ubuntu, Debian, CentOS, Alpine i innych. Wsparcie dla LX nie zostało przesłane do illumos.
    • 's10brand' zapewnia środowisko Solaris 10 w systemie OpenSolaris lub Oracle Solaris 11, w tym tłumaczenie z wywołań systemowych Solaris 10 na wywołania systemowe OpenSolaris/Oracle Solaris 11
    • Solaris-kz udostępnia oddzielną instancję Solaris 11.2 lub nowszą, z własnym jądrem i niezależnymi pakietami, w systemie Oracle Solaris 11.2 lub nowszym. Ta funkcja była po raz pierwszy publicznie dostępna w wersji beta Solaris 11.2 (pobieranie publiczne).

Marka strefy jest ustalana w momencie tworzenia strefy. Druga kategoria jest zaimplementowana z punktami interpozycji w jądrze systemu operacyjnego, które mogą być używane do zmiany zachowania wywołań systemowych , ładowania procesów , tworzenia wątków i innych elementów.

W przypadku marki „lx” do uzupełnienia emulowanego środowiska wymagane są biblioteki z Red Hat 3 lub równoważnej dystrybucji, takiej jak CentOS .

Dokumentacja

System operacyjny Solaris domyślnie udostępnia strony podręcznika dla kontenerów Solaris; bardziej szczegółową dokumentację można znaleźć w różnych zasobach technicznych on-line.

Pierwszy opublikowany dokument i praktyczne odniesienie do Stref Solaris został napisany w lutym 2004 roku przez Dennisa Clarke'a z Blastwave, dostarczając niezbędnych elementów do rozpoczęcia pracy. Dokument ten został znacznie rozszerzony przez Brendana Gregga w lipcu 2005 roku. Kontenery Solaris 8 i Solaris 9 zostały szczegółowo udokumentowane przez Dennisa Clarke'a w Blastwave ponownie w kwietniu 2008 roku. Dokument dotyczący kontenerów Solaris 8 i Solaris 9 był bardzo wcześnie w cyklu wydawniczym. technologii Solaris Containers, a działania i wdrożenie w Blastwave zaowocowały kontynuacją działań marketingowych Sun Microsystems. Książka Oracle Solaris 10 System Virtualization Essentials napisana przez Jeffa Victora i innych zawiera szczegółowe informacje o funkcjach i najlepsze praktyki. Bardziej obszerną dokumentację można znaleźć w witrynie dokumentacji Oracle.

Problemy wdrożeniowe

Od Solaris 10 10/08 strefy markowe są obsługiwane w architekturze sun4us (serwery Fujitsu PRIMEPOWER) poprzez pakiety FJSVs8brandr i FJSVs9brandr.

Zobacz też

Bibliografia

Linki zewnętrzne