r   e   k   l   a   m   a
r   e   k   l   a   m   a

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

Strona główna AktualnościOPROGRAMOWANIE

Premiera Ubuntu 16.04 Xenial Xerus pewnie zdziwiła wiele osób, które nie śledzą uważnie rozwoju tej najpopularniejszej chyba linuksowej dystrybucji. Jak na kolejny kamień milowy, świeże wydanie o wydłużonym okresie wsparcia, to niewiele jest tu atrakcji. Na pierwszy rzut oka nie widać wielkiej różnicy między nową wersją systemu, a stareńkim Ubuntu 12.04 LTS. Na nowy serwer grafiki Mir i środowisko Unity 8 czekamy, czekamy i doczekać się nie możemy. Tylko jakie to właściwie ma znaczenie? 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órzy już mówią, xenofobicznego xiędza).

Kernel 4.4 – będzie szybciej

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

Oprócz tego zwrócić uwagę trzeba przede wszystkim na włączenie sprzętowej akceleracji grafiki 3D dla maszyn wirtualnych uruchamianych przez KVM/QEMU, na tyle wydajne, by można było bez problemu 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ści aplikacji wielowątkowych. Widać to np. w rendererach. Napisany w Javie benchmark sunflow na czterordzeniowej maszynie pokazał rekordowy wzrost wydajności o aż 17%, w wypadku archiwizerów (xz i 7z) spodziewać się można wyników lepszych o 5-10%, zaś baz danych 3-7 %.

r   e   k   l   a   m   a

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

ZFS, czyli jak zdenerwować Richarda Stallmana

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

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

Dostarczona przez Canonicala implementacja ZFS-in-Linux nie oferuje tak szerokiej palety funkcji jak ZFS na Solarisie, ale dostajemy 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. Niestety integracja 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 razie potrzeby. W pakiecie – komplet znanych z Solarisa narzędzi administracyjnych. Jeśli chcecie się pobawić, to odsyłamy na początek do wiki Ubuntu, gdzie dobrze wyjaśniono podstawy.

Decyzja firmy Marka Shuttlewortha o wzięciu się za ZFS jest o tyle zaskakująca co i wspaniała. Zamiast pchać się we wciąż sprawiający kłopoty Btrfs (system plików, który w założeniach zapewnia praktycznie to samo, co ZFS), Canonical zdecydował się sięgnąć po prawdopodobnie najlepsze rozwiązanie w branży, mimo tych strasznych problemów z licencjonowaniem. Dziś może tylko umocnić pozycję Ubuntu na serwerowym 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, a nie chcieli mieć nic do czynienia z Oracle, w praktyce pozostawało tylko FreeBSD.

Kontenery po swojemu: LXD

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

Nie martwcie się o brak oprogramowania, na LXD uruchomicie wszystkie kontenery Dockera. Uruchamiają się one jednak na Ubuntu niesamowicie szybko. To zasługa zintegrowania LXD ze wspomnianym ZFS-em. Inicjując w systemie ten swoisty „hiperwizor konteneryzacji”, dostajemy do wyboru typ wykorzystywanego zaplecza pamięci masowej – albo zwykłe katalogi, albo właśnie ZFS.

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

Same kontenery można traktować po prostu jak maszyny wirtualne, tyle że bez narzutu. Mogą dostać swoje dyski, swoje interfejsy sieciowe, można je przenosić na żywo z serwera na serwer. Bezpieczeństwo jest bardzo wysokie, za sprawą filtrów, piaskownic i izolowanych przestrzeni nazw. Zarządzanie? Prosty interfejs REST, przez co łatwo będzie oprogramować sterowanie, budować panele administracyjne itp. Co w tym wszystkim zaś najciekawsze, to możliwość swobodnego wykorzystania LXD na innych niż x86 architekturach procesorowych – jak ktoś chce, może nawet na Raspberry Pi swoje kontenery uruchamiać. Zainteresowanych przetestowaniem 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 te słynne nowe pakiety snap, które pozwolą instalować w systemie dowolne oprogramowanie nie martwiąc się o konsekwencje, a deweloperom umożliwią równie szybkie dostarczanie swoich aplikacji na Ubuntu co np. na Windowsa.

Więcej na temat architektury nowych pakietów pisaliśmy rok temu, przy okazji ich debiutu w przeznaczonym dla Internetu Rzeczy systemie Ubuntu Core. Przypomnimy tylko, że to w praktyce system lekkich kontenerów, które można aktualizować niezależnie od reszty systemu. Instalacja i aktualizacja jest znacznie szybsza, gdyż sprowadza się do wstawienia kontenera lub jego przebudowy z dostarczonego pliku różnicowego.

Teraz możemy przekonać się, jak to działa w praktyce na desktopowym Ubuntu. Domyślnie narzędzi zarządzających brak. W głównym katalogu / znajdziemy jedynie katalog /snap – i to wszystko. 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ę, co właśnie faktycznie Canonical zrobił. Nowy system pakietów jest jedynie 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ł sobie postawić każdy, poza kontrolą firmy Shuttlewortha. Należyta ścieżka dla dewelopera wiąże się z zainstalowaniem pakietu snapcraft, z narzędziami do tworzenia snapów – i przesyłania ich do oficjalnego sklepu. Należyta ścieżka dla użytkownika, to instalacja, aktualizacja i deinstalacja snapów przez graficzny interfejs aplikacji Ubuntu Software.

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

Na początku z Sieci pobierana jest paczka ubuntu-core (ok. 60 MB), najwyraźniej niezbędny zasób dla wszystkich snapów, a potem paczka z kalkulatorem. Rozmiar jest szokujący – 120 MB. Kalkulator wię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. W tychże – wszystko, co potrzebne do ich uruchomienia. Dosłownie nic 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 aplikacji kalkulatora robi mający 19 KB plik /5/usr/lib/x86_64-linux-gnu/bluetooth/plugins/sixaxis.so (sterownik gamepada do PlayStation)?

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

Widać, że Canonical przy tych snapach intensywnie pracuje, przez chwilę na liście był np. dostępny serwer grafiki Mir, ale z jakiegoś powodu zniknął. Możemy za to zainstalować jakieś webserwery, klienta Tora, przeglądarkę links, czy proste konsolowe gierki. Wciąż bardziej ciekawostka niż coś poważnego – i pewnie 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 na Ubuntu 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.

Póki co wiadomo już jednak, że Ubuntu 16.04 nie jest gotowe na snapa, przynajmniej nie na desktopie. Bez wprowadzenia serwera grafiki Mir, mówienie o bezpieczeństwie jest bzdurą. Znany linuksowy programista Matthew Garrett pokazał, jak łatwo jest aplikacjom snapa wykraść dowolne informacje z innej działającej aplikacji (np. przeglądarki). To nie jest problem snapa, lecz raczej tego, że serwer X11 nie ma żadnego mechanizmu zarządzania zaufaniem wobec aplikacji, i uruchomione w jego kontekś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ących snapy użytkowników nowego Ubuntu może spotkać niemiła niespodzianka.

Poza zwykłego Linuksa

Ubuntu 16.04 LTS jest wydaniem bardzo ambitnym, kładącym fundamenty pod przyszłość systemu Canonicala, który nie będzie po prostu kolejną dystrybucją GNU/Linuksa. Choć przedstawione tu nowości mają pewnie dla większości użytkowników drugorzędne znaczenie, to nic nie szkodzi. Można się spodziewać, że konwergencja 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 systemu plików. Być może niebawem zawartość katalogu /snap będzie po prostu pulą ZFS, z automatyczną deduplikacją, kompresją i robieniem migawek, pozwalających na łatwe przechowywanie różnych wersji tej samej aplikacji w systemie.

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

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.