Ubuntu 16.04 pod maską. ZFS, kontenery, snapy – to nowa jakość w Linuksie!

Premiera Ubuntu 16.04 Xenial Xerus pewnie zdziwiławiele osób, które nie śledzą uważnie rozwoju tejnajpopularniejszej chyba linuksowej dystrybucji. Jak na kolejnykamień milowy, świeże wydanie o wydłużonym okresie wsparcia, toniewiele jest tu atrakcji. Na pierwszy rzut oka nie widać wielkiejróżnicy między nową wersją systemu, a stareńkim Ubuntu 12.04LTS. Na nowy serwer grafiki Mir i środowisko Unity 8 czekamy,czekamy i doczekać się nie możemy. Tylko jakie to właściwie maznaczenie? Tam, gdzie to jest naprawdę ważne, tam gdzie leżąpieniądze, Ubuntu 16.04 jest wydaniem naprawdę rewolucyjnym.Zapraszamy pod maskę gościnnej afrowiórki (czy też jak niektórzyjuż mówią, xenofobicznego xiędza).

Ubuntu 16.04 pod maską. ZFS, kontenery, snapy – to nowa jakość w Linuksie!

Kernel 4.4 – będzie szybciej

Jądro Linuksa w wersji 4.4 zadebiutowałow styczniu tego roku, od razu z założeniem że otrzyma wydłużonyokres wsparcia (do dwóch lat). Dobrze się więc wpisuje w systemoperacyjny, który wsparciem się cieszyć przez pięć lat, dokwietnia 2021 roku. W porównaniu do Ubuntu 14.04 (które dziękiaktualizacji z lutego ma już wreszcie w miarę nowoczesne jądro4.2) to przede wszystkim ulepszenia sterowników sprzętowych.

Oprócz tego zwrócić uwagę trzeba przede wszystkim na włączeniesprzętowej akceleracji grafiki 3D dla maszyn wirtualnychuruchamianych przez KVM/QEMU, na tyle wydajne, by można było bezproblemu uruchamiać tak wymagające sprzętowej akceleracji pulpity.Wprowadzono też znaczącą zmianę w działaniu planisty(schedulera) jądra, która przyniosła spory wzrost wydajnościaplikacji wielowątkowych. Widać to np. w rendererach. Napisany wJavie benchmark sunflow na czterordzeniowej maszynie pokazałrekordowy wzrost wydajności o aż 17%, w wypadku archiwizerów (xz i7z) spodziewać się można wyników lepszych o 5-10%, zaś bazdanych 3-7 %.

Sunflow w maszynach wirtualnych z Ubuntu 14.04 LTS i 16.04 LTS
Sunflow w maszynach wirtualnych z Ubuntu 14.04 LTS i 16.04 LTS

Reasumując, dostajemy wysoce stabilne systemowe „jajko”,które poradzi sobie nawet z najnowszym sprzętem, włącznie zgrafiką Intela gen9 i nowymi układami AMD czy Nvidii, i które wwielu realnych zastosowaniach pozwoli znacznie więcej wycisnąć zprocesora głównego. W zasadzie jedynym powodem do niezadowoleniamoże być brak tak długo oczekiwanego nowego systemu komunikacjimiędzyprocesowej KDBUS – ale powiedzmy sobie szczerze, to przecieżnie jest wina Canonicala.

ZFS, czyli jak zdenerwować Richarda Stallmana

Na nic się zdały krzyki licencyjnychpurystów, nie mogących pogodzić się z tym, że bądź co bądźsystem operacyjny z rodziny GNU/Linux będzie zawierał komponentyniby opensource'owe, ale jednak na licencji niezgodnej z GPL.Dostajemy więc po raz pierwszy oficjalnie na Linuksie słynny systemplików ZFS, stworzony z myślą o systemie Solaris – i co tu dużomówić, zachowujący się dość osobliwie.

Zwykłemu użytkownikowi w teorii niewiele po ZFS-ie w Ubuntu16.04 LTS. Nie można go wykorzystać do zainstalowania systemu, niemożna nawet w instalatorze utworzyć nawet partycji domowej (/home).Co więc można? To przede wszystkim rozwiązanie dla serwerówplików. ZFS po prostu lepiej niż cokolwiek innego dba ointegralność danych, jest niemal całkowicie odporne na zepsuciedanych wywoływane zarówno przez błędy software'owe jak isprzętowe. Ten system plików oferuje też ogromną elastyczność,pozwalając na łączenie w jednolite pule rozmaitych typów pamięcimasowych i sam zadba o ich rozlokowanie.

Dostarczona przez Canonicala implementacja ZFS-in-Linux nieoferuje tak szerokiej palety funkcji jak ZFS na Solarisie, aledostajemy wbudowany menedżer wolumenów logicznych, ciągłąkontrolę spójności, automatyczne naprawy plików, migawki,kompresję danych i klonowanie danych typu copy-on-write. Niestetyintegracja ze zwykłymi narzędziami jest żadna. Należy więc zainstalować z oficjalnego repozytorium pakiet narzędzi ZFS (sudo apt-get install zfsutils-linux),odpowiedni moduł jądra już tu jest i zostanie załadowany w raziepotrzeby. W pakiecie – komplet znanych z Solarisa narzędziadministracyjnych. Jeśli chcecie się pobawić, to odsyłamy napoczątek do wikiUbuntu, gdzie dobrze wyjaśniono podstawy.

Dwie pule ZFS w systemie, jedną zrobił sobie sam menedżer kontenerów LXD
Dwie pule ZFS w systemie, jedną zrobił sobie sam menedżer kontenerów LXD

Decyzja firmy Marka Shuttlewortha o wzięciu się za ZFS jest otyle zaskakująca co i wspaniała. Zamiast pchać się we wciążsprawiający kłopoty Btrfs (system plików, który w założeniachzapewnia praktycznie to samo, co ZFS), Canonical zdecydował sięsięgnąć po prawdopodobnie najlepsze rozwiązanie w branży, mimotych strasznych problemówz licencjonowaniem. Dziś może tylko umocnić pozycję Ubuntu naserwerowym rynku, czyniąc z tego systemu coś więcej, niż tylko„Linuksa dla tych, co nie potrafią zainstalować Debiana”.Przypomnijmy, że jak do tej pory dla tych, którzy chcieli ZFS, anie chcieli mieć nic do czynienia z Oracle, w praktyce pozostawałotylko FreeBSD.

Kontenery po swojemu: LXD

Nowemu systemowi plików towarzyszy lekki system konteneryzacji,zbudowany na bazie znanego już od lat LXC – podobnie jak modnyostatnio Docker. Docker jest jednak czymś innym, bardziej menedżeremkontenerów aplikacji, podczas gdy LXD (LinuX container Daemon) jestmenedżerem kontenerów systemowych.

Nie martwcie się o brak oprogramowania, na LXD uruchomiciewszystkie kontenery Dockera. Uruchamiają się one jednak na Ubuntuniesamowicie szybko. To zasługa zintegrowania LXD ze wspomnianymZFS-em. Inicjując w systemie ten swoisty „hiperwizorkonteneryzacji”, dostajemy do wyboru typ wykorzystywanego zapleczapamięci masowej – albo zwykłe katalogi, albo właśnie ZFS.

Konfiguracja demona LXD: jesteśmy prowadzeni za rączkę
Konfiguracja demona LXD: jesteśmy prowadzeni za rączkę

Oczywiście wypada wybrać ZFS, wówczas dostaniemymożliwość albo wykorzystania istniejącego urządzenia blokowego,albo założenia własnego, ustalenia rozmiarów i dostępnościprzez sieć. Wówczas te wszystkie atrakcje, włącznie z kompresją,błyskawicznym kopiowaniem, migawkami, stają się dostępne dlakontenerów.

Każdy kontener oddzielną maszyną, z własnym dostępem do sieci
Każdy kontener oddzielną maszyną, z własnym dostępem do sieci

Same kontenery można traktować po prostu jak maszyny wirtualne,tyle że bez narzutu. Mogą dostać swoje dyski, swoje interfejsysieciowe, można je przenosić na żywo z serwera na serwer.Bezpieczeństwo jest bardzo wysokie, za sprawą filtrów, piaskownici izolowanych przestrzeni nazw. Zarządzanie? Prosty interfejs REST,przez co łatwo będzie oprogramować sterowanie, budować paneleadministracyjne itp. Co w tym wszystkim zaś najciekawsze, tomożliwość swobodnego wykorzystania LXD na innych niż x86architekturach procesorowych – jak ktoś chce, może nawet naRaspberry Pi swoje kontenery uruchamiać. Zainteresowanychprzetestowaniem zapraszamy na oficjalną stronęprojektu.

Snap – aplikacje bez oglądania się na resztęsystemu

Nieprzypadkowo o tym, co mogło najbardziej podekscytowaćzwykłego użytkownika Ubuntu piszemy na samym końcu. Chodzi o tesłynne nowe pakiety snap, które pozwolą instalować w systemiedowolne oprogramowanie nie martwiąc się o konsekwencje, adeweloperom umożliwią równie szybkie dostarczanie swoich aplikacjina Ubuntu co np. na Windowsa.

Więcej na temat architektury nowych pakietów pisaliśmyrok temu, przy okazji ich debiutu w przeznaczonym dla InternetuRzeczy systemie Ubuntu Core. Przypomnimy tylko, że to w praktycesystem lekkich kontenerów, które można aktualizować niezależnieod reszty systemu. Instalacja i aktualizacja jest znacznie szybsza,gdyż sprowadza się do wstawienia kontenera lub jego przebudowy zdostarczonego pliku różnicowego.

Teraz możemy przekonać się, jak to działa w praktyce nadesktopowym Ubuntu. Domyślnie narzędzi zarządzających brak. Wgłównym katalogu / znajdziemy jedynie katalog /snap – i towszystko. By wypróbować nowe pakiety, należy wpierw zainstalowaćz normalnych repozytoriów pakiet snapd (sudo apt-get install snapd).Zarządzanie tymi paczkami-kontenerami odbywa się za pomocąpolecenia snap.

Gdy zaczniecie bawić się snapem i przeczytacie jego obskurnąraczej dokumentację (man snap), szybko zorientujecie się, cowłaśnie faktycznie Canonical zrobił. Nowy system pakietów jestjedynie połowicznie otwarty. Instalacja odbywa się z oficjalnego„sklepu”. Można też ręcznie zainstalować plik z rozszerzeniem.snap. To już jednak nie są repozytoria PPA, które mógł sobiepostawić każdy, poza kontrolą firmy Shuttlewortha. Należytaścieżka dla dewelopera wiąże się z zainstalowaniem pakietusnapcraft, z narzędziami do tworzenia snapów – i przesyłania ichdo oficjalnego sklepu. Należyta ścieżka dla użytkownika, toinstalacja, aktualizacja i deinstalacja snapów przez graficznyinterfejs aplikacji Ubuntu Software.

O ile deweloperzy mogą już jednak pracować ze snapcraftem (i tunależy przyznać, że jest to dopracowane narzędzie), UbuntuSoftware póki co snapów nie zainstaluje. Pozostaje konsola –poleceniem snap list możemy odpytać serwer o dostępne paczki. Jestich póki co zaledwie garstka, w większości przykłady i prosteaplikacje dla mobilnego Ubuntu Touch (np. kalkulator czy zegar).Spróbujmy zainstalować więc kalkulator, poleceniem sudo snapinstall ubuntu-calculator-app. Robi się nieco dziwnie.

Instalujemy kalkulator (i przy okazji mnóstwo innych dziwnych rzeczy)
Instalujemy kalkulator (i przy okazji mnóstwo innych dziwnych rzeczy)

Na początku z Sieci pobierana jest paczka ubuntu-core (ok. 60MB), najwyraźniej niezbędny zasób dla wszystkich snapów, a potempaczka z kalkulatorem. Rozmiar jest szokujący – 120 MB. Kalkulatorwiększy od przeglądarki? Zainstalujmy więc jeszcze zegarek.Kolejne 120 MB. Cóż tam w środku jest? Odwiedzając katalog /snap,znajdziemy tam podkatalog /bin z linkami do plików wykonywalnych,podkatalog ubuntu-core, oraz podkatalogi poszczególnych aplikacji. Wtychże – wszystko, co potrzebne do ich uruchomienia. Dosłownienic poza linuksowym jądrem nie jest brane z samego systemu,znajdziemy tam demony, biblioteki i sterowniki, a obecnośćniektórych jest kompletnie niezrozumiała. Co bowiem w aplikacjikalkulatora robi mający 19 KB plik/5/usr/lib/x86_64-linux-gnu/bluetooth/plugins/sixaxis.so (sterownikgamepada do PlayStation)?

Snapowy Kalkulator uruchomiony z konsoli. Lepszy jest niż ten z GNOME
Snapowy Kalkulator uruchomiony z konsoli. Lepszy jest niż ten z GNOME

Zainstalowane przez snapa aplikacje nie ujawniają się winterfejsie Unity (nie dało się ich znaleźć przez Dasha), ale sąbez problemu uruchamiane z konsoli. I tak nasz 120-megabajtowykalkulator uruchomimy poleceniem ubuntu-calculator-app.calculator.Garść ostrzeżeń i komunikatów o błędach nie przeszkadza wuruchomieniu pokazu slajdów, wyjaśniającego jak z kalkulatorakorzystać.

A tak wygląda zegarek
A tak wygląda zegarek

Widać, że Canonical przy tych snapach intensywnie pracuje, przezchwilę na liście był np. dostępny serwer grafiki Mir, ale zjakiegoś powodu zniknął. Możemy za to zainstalować jakieśwebserwery, klienta Tora, przeglądarkę links, czy proste konsolowegierki. Wciąż bardziej ciekawostka niż coś poważnego – ipewnie się to nie zmieni, przynajmniej do czasu pojawienia siępierwszych poważniejszych aplikacji w formacie snap. Wiadomo już,że zainteresowana jest nim Mozilla, która chce w ten sposób naUbuntu 16.04 LTS dostarczaćnajświeższe wersje Firefoksa, bez konieczności czekania na to, ażopiekunowie dystrybucji włączą je do oficjalnych repozytoriów.

Jaki ładny snap-miś. Szkoda, że złośliwy i kradnie hasła (bez obaw, haslo123 to tylko przykład)
Jaki ładny snap-miś. Szkoda, że złośliwy i kradnie hasła (bez obaw, haslo123 to tylko przykład)

Póki co wiadomo już jednak, że Ubuntu 16.04 nie jest gotowe nasnapa, przynajmniej nie na desktopie. Bez wprowadzenia serweragrafiki Mir, mówienie o bezpieczeństwie jest bzdurą. Znanylinuksowy programista Matthew Garrett pokazał,jak łatwo jest aplikacjom snapa wykraść dowolne informacje z innejdziałającej aplikacji (np. przeglądarki). To nie jest problemsnapa, lecz raczej tego, że serwer X11 nie ma żadnego mechanizmuzarządzania zaufaniem wobec aplikacji, i uruchomione w jegokontekście snapy mogą praktycznie wszystko. Biorąc pod uwagę to,że Canonical raczej nie będzie miał zasobów, by analizowaćwiersz po wierszu przesyłane do sklepu aplikacje, instalującychsnapy użytkowników nowego Ubuntu może spotkać niemiłaniespodzianka.

Poza zwykłego Linuksa

Ubuntu 16.04 LTS jest wydaniem bardzo ambitnym, kładącymfundamenty pod przyszłość systemu Canonicala, który nie będziepo prostu kolejną dystrybucją GNU/Linuksa. Choć przedstawione tunowości mają pewnie dla większości użytkowników drugorzędneznaczenie, to nic nie szkodzi. Można się spodziewać, żekonwergencja tych zaprezentowanych nowych technologii zaowocuje czymśniespotykanym. Co z tego np., że paczki snapa są takie duże? 95%zawartości ubuntu-calculator-app i ubuntu-clock-app jest taka sama.Aż się prosi, by wykorzystać kompresję na poziomie systemuplików. Być może niebawem zawartość katalogu /snap będzie poprostu pulą ZFS, z automatyczną deduplikacją, kompresją irobieniem migawek, pozwalających na łatwe przechowywanie różnychwersji tej samej aplikacji w systemie.

O ile przez kilka lat wydawało się, żeCanonical biega za własnym ogonem, nie mogąc znaleźć sobiemiejsca, to dzisiaj firma Marka Shuttlewortha staje się nie tylemoże liderem linuksowego świata, co utalentowanymoutsiderem-pionierem. I gdy Microsoft oficjalnie wyda swój SQLServer na Linuksa, to możecie być pewni, że zanim pojawią siępaczki RPM dla Red Hata, najpierw zobaczymy snapy z tą bazą dlaUbuntu.

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (212)