Ubuntu 14.04 LTS → 16.04 LTS frissítési tapasztalatok

Ubuntu logó
Mikor az Ubuntu 16.04 LTS Xenial Xerus megjelent, megígértem, hogy írok majd egy, a tapasztalatokról szóló cikket, melyben részletesebben megírom az élményeimet. Ezt olvashatjátok most egy kicsit kibővítve.

Mint azt valószínűleg már jól tudod, az Ubuntu 16.04 egy LTS, azaz hosszan támogatott Ubuntu kiadás, ami mind szerverre, mind az asztali kiadásra öt évnyi frissítést garantál (az Ubuntu kiadások támogatási idejéről bővebben az Ubuntu verziók támogatottsága oldalon olvashatsz).

Olyan környezetekben, ahol macerás és fáradalmas lenne a félévenkénti disztribúciófrissítés, valamilyen hosszan támogatott Linux disztribúciót telepítek, így évekig nincs más dolgom, csak frissíteni. Ha az adott rendszereken Ubuntu van, akkor azt szokásom 2,5 évente frissíteni. A 2,5 év az új LTS megjelenése + körülbelül fél év, mire közelében leszünk a .1-es kiadásnak, ami egyféle „szervizcsomagnak” tekinthető. Ezzel időt, energiát és nem utolsó sorban idegességet spórolok, hiszen durván két évvel követni az új kiadásokat kompatibilitási, konfigurálási és egyéb dolgokkal messze nem olyan vészes, mintha 5 vagy akár 10 évente lenne egy frissítés.

Az egyik olyan helyen, ahol túlnyomóan az Ubuntu uralkodik a szervereken és második rendszerként a végfelhasználók számítógépein, volt egy kis nyári leállás. Azért szeretem ezeket a tervezett időszakokat, mert egy megadott időablak áll a rendelkezésemre a karbantartási munkálatok elvégzéséhez. Kapva az alkalmon és azon, hogy itt toporog a 16.04.1, belevágtam. (Július 21-én jelenik meg. Hivatalosan ez az az időpont, amikortól már ajánlott az LTS → LTS frissítés. Ettől az időponttól kínálja fel a Frissítéskezelő is a disztribúció frissítést.) Számszerűsítve ez 11 szervert (fizikai és virtuális), 17 asztali gépet és Naradát jelenti.

Felhasználói gépek

Felhasználói gépeknek azokat a gépeket hívom, melyek számomra csak a darab-darab kategóriát képviselik, egy általános konfigurációt kapnak, ami úgy gondolom, hogy egy egyszerű felhasználónak tökéletesen jó lehet. Ezek a gépek egyszerre lettek beszerezve, azaz teljesen ugyanazt a konfigurációt (kellene hogy) tartalmazzák. Ez az egységes konfiguráció egy Intel i3-4160T processzort, 4 GB memóriát és 500 GB merevlemezt tartalmaz, Lenovo tálalásban. A gépeket (sem) én szereztem be, szóval tekintsünk el attól, hogy 2016-ban 4 GB RAM és a HDD általános felhasználásra mekkora melléfogás. Szóval a lényeg, hogy az egész gép az Intel platformjára épül, ideértve a hálózati vezérlőt is (amiért jár plusz pont).

Nem hiába kezdtem a felhasználói gépekkel a bemutatást, ugyanis nincs további hozzáfűznivalóm a dolgokhoz. Az Ubuntu 16.04 pontosan úgy működik, amiért szeretjük: gyorsan és megbízhatóan, 100%-ban kompatibilisen. Mindenféle külön kérvény nélkül pontosan és jól felismerte az eszközöket, mind az USB 3-as portok, mind pedig az eSATA + USB port tökéletesen működik. A manapság tapasztalt Intel VGA illesztőprogramokhoz köthető nyavalyák itt a legpozitívabb meglepetésemre nem jelentkeznek. Az már csak hab a tortán, hogy a FullHD felbontású monitoron is tökéletesen jól használható a Unity.

Virtuális szerverek

A következő lépés a szerverek frissítése volt, ezt is két ütemben terveztem: Először biztosra megyünk és a virtuális gépek kerülnek frissítésre (éljenek a pillanatképek!). Aztán ha nem jön szembe semmilyen váratlan kellemetlenség, akkor folytatom a gazdarendszerekkel.

DNS + NTP

Az első páciens, akit frissítettem, az a DNS és NTP szerver volt. Bár úgy terveztem, hogyha úgyis leállás van, akkor majdnem mindegy, futnak-e ezek a szolgáltatások, vagy sem. Később mégis úgy döntöttem, kipróbáljuk, mi lesz a szolgáltatásokkal frissítés közben, azaz nem állítottam le őket. A frissítés közben teljesen pozitív meglepetés ért: a szolgáltatások mindössze annyi időre álltak le, amíg megtörtént a glibc frissítés, illetve míg 10 másodpercen belül megtörtént a gép újraindítása. Semmilyen utólagos beállítást vagy hangolást nem igényelt a frissítés.

Reverse proxy

Ezen felbuzdulva léptem tovább, irány a reverse proxy. Maga a rendszerszintű frissítés itt is teljesen gyorsan és hatékonyan zajlott, pontosan úgy, ahogy fentebb már leírtam. Szólt a dpkg, hogy új konfiguráció jött az Nginxhez, nézzem meg a különbséget. Mivel az elsődleges feladat a disztribúciófrissítés minél zökkenőmentesebb levezénylése volt, nem éreztem prioritásnak az új konfigurációs direktívák élesítését. Helyette gyorsan összehasonlítottam, hogy mi változott, majd felírtam magamnak, hogy frissítés után foglalkozzak vele.

A frissítés után minden eddigi funkció az elvárt paramétereken belül működött, így a következő gép frissítése előtt átnéztem a felírt, még inaktív változásokat.

Egyetlen egy olyan új konfigurációs sor jelent meg, ami érdekes lehet: ssl_ecdh_curve sect571r1;. Rajta volt a teendők listáján a Let's Encrypt bevezetése is (és vele együtt bizonyos eszközök biztonságos csatornán történő elérhetővé tétele), így hát amit ma megtehetsz, ne halaszd holnapra. Ha pedig SSL, akkor a szokásos, már jól tesztelt konfigurációmhoz hozzácsaptam a fenti sort is.

Számomra Firefox a böngésző, a többiek csak teszt célra vannak fent. Az első tesztek teljesen jók voltak, mind Firefoxban, mind más böngészőkben ment szépen az SSL, és az adott oldal is. Megkértem Charmedet, hogy nézzen rá az adott oldalra. Ő visszajelzett, hogy a Firefox WSOD-t dob és nem lát semmit. Mondom az nem lehet, nekem jó. Némi pingpongozás után újraindítottam a rókámat és immár nekem is „megromlott”. Néhány órányi debug után eljutottam az Nginx + Firefox + HTTP/2 + SSL = WSOD kisokos eredményéhez, azaz a ssl_ecdh_curve sect571r1; új sor okozta a galibát. Ami félrevezetett, hogy más böngészőkben jó volt, se az Nginx, se a Firefox nem dobott hibát.

Ez csak egy kis mellékszál volt. Egy a lényeg, hogy itt is teljesen sikeres volt maga a disztribúciófrissítés, a hibát nem ez okozta.

Webszerver

A következő lépésben a webszerver került frissítésre. Ez annyival érdekesebb a többinél, hogy ezen a rendszeren az én Python alapú motorom dolgozik, szóval nem csak Ubuntu oldalról volt érdekes a frissítés, hanem onnan is, hogy mit kell (ha kell) módosítanom a motoron ahhoz, hogy működőképes legyen 16.04 alatt is.

Nos, újraindítás után, ahogy vártam, nem indult el, miért is tette volna… Közelebbről megvizsgálva a problémát, kiderült, hogy nem találja a datetime modult, ami valljuk be, igencsak alapvető, úgyhogy gondoltam, újraépítem a Python virtuális környezetét. Ez nem a virtuális gépet jelenti, hanem magának a motornak a környezetét: telepítéskor generálódik neki egy kis virtuális könyvtár, amely programszinten tartalmazza az ő függőségeit és nem rendszerszinten. Így én anélkül telepíthetek ilyen-olyan szoftververziókat a Python könyvtárakból, hogy megzavarnám a rendszeren lévő többi Python alkalmazást. Tökéletes. Szóval, ennek a virtuális környezetnek az újralétrehozása meg is oldotta a problémát.

Többiek

A fentebb felsorolt fontosabb virtuális gépeken kívül van még itt pár apróság, mint pl. a statisztikázó szerver. Minden egyes frissítés csendben és rendben zajlott. Elmondhatom, hogy az összes érintett Ubuntu virtuális gép tökéletesen végezte a frissítést. Annak ellenére, hogy még nem vagyunk a javasolt időben.

Amire még kivárok, az az Owncloud szerver. Nem az Ubuntu miatt, hanem inkább az Owncloud miatt. Ez egy húzósabb menet lesz, mert egyrészt PHP 7-re váltott az Ubuntu, másrészt, bár a támogatott rendszerek közt van a 16.04 Owncloud oldalon, még inkább kivárnék. Már csak azért is, mert személyes tapasztalataim vannak a szoftverfejlesztésről… Belülről. Ugyanis főállásban egy ilyen cégnél dolgozom (nem fejlesztőként). És… nos… elképesztő megrázkódtatásnak éli meg a csapat már azt is, ha egy adott függőség verziójának patch verziója nem egyezik a dokumentációban leírtakkal. A PHP 5 és 7 között pedig nem két függvény változott. Szóval, itt lesz majd egy komolyabb teszt, minden valószínűség szerint egy teszt rendszer lesz felhúzva, és ha hosszú nyüstölés után sem lesz gond vele, akkor egy próba migráció.

Fizikai szerverek

A következő lépés a fizikai szerverek frissítése. Itt már nagyobb az izgalom, ugyanis nincs snapshot. Persze, működő backup és ilyesmi van, de ezeknek a helyreállítása plusz macera. Szerencsémre az utóbbi években minden egyes funkciót virtualizáltam, így közvetlenül a fizikai gépen nem fut semmi olyan akár egyéni, akár külső program, mely érzékeny lehet a frissítésre. Ami mégis ad izgalmat a frissítéshez, az az, hogy kell-e (és ha igen, mennyit) szívni a libvirttel és a Gluster szerverrel (és másik oldalon a kliensekkel).

Nem kritikusak

Első nekifutásra két nem fontos fizikai gépet frissítettem, 15.10-ről 16.04-re, melyek olyan szolgáltatásokat futtatnak, melyek messze nem fontosak, egyféle kényelmi funkciókat látnak el. Itt kettőből egy gépen volt egy kis gikszer.

A frissítés során elérkeztünk ahhoz a ponthoz, ahol a rendszer rákérdez, hogy indítsa-e újra automatikusan a szolgáltatásokat glibc frissítés után. Hát persze, gondoltam én, azonban a konzol valamiért összeomlott és már nem tudtam visszajutni a kérdéses ablakhoz, sőt igazából az egész frissítési procedúra megrekedt egy kezdeti szinten, én pedig se előre, se hátra. Hát, indítsuk újra, max. újratelepítés következik. A legnagyobb meglepetésemre az Ubuntu már 16.04-nek mondta magát, de még a 15.10-es szolgáltatások töltődtek be. A hálózat nem indult el, valamiért nem volt képes beolvasni konfigurációs állomány dns-nameservers részét. A resolv.conf-ba az értékek kézi bevitele, és a hálózati csatoló manuális élesztése után, úgy néz ki döcög. Jó néhány program nem indul el, hiányzó függőségekre panaszkodva.

Az egyik igazán nyűgös alkalmazás a libvirt volt, amit a jelenlegi állapotában sem frissíteni, se újratelepíteni nem akart. Ezért eltávolítottam és frissítettem a rendszer többi részét immár apt-get dist-upgrade -f paranccsal. A rendszer pikk-pakk magára talált és megértette, hogy a megszakadt frissítést akarom folytatni. Szépen végigment a csomagok telepítése és beállítása. Újraindítás után eltávolítottam minden feleslegesnek ítélt csomagot is. Ami a libvirtet illeti, most, hogy a verziók rendbe jöttek, ő is örömmel települt.

A rendszeren nem is látszik, hogy volt egy félresikerült frissítés, csak én tudom micsoda bonyodalmak voltak. Örömmel töltött el a siker.

Kritikusak

A tervezett frissítés utolsó lépcsője a kritikus fizikai gépek frissítése. Ezek közül négy ráadásul még Gluster szerver is, kettő pedig kliens. Amire a legjobban készültem, az volt a legunalmasabb: nem történt semmi. Igazából a legnagyobb „izgalmat” az jelentette, hogy a 3.6.17-es Gluster szerver akar-e majd kommunikálni a 3.6.16-os többiekkel. Akar. :) A disztribúciófrissítés után annyi dolgom volt, hogy immár Xenial jelzéssel újra felvettem a Gluster tárolókat és frissítettem a 14.04-ből visszamaradtat.

Narada

Narada az én személyi számítógépem, rajta készülnek a cikkek és ő az a „szerencsés”, akitől a legtöbbet várok el, leginkább kényelem, sebesség és rendelkezésre állás tekintetében. Ráadásul az itthoni „laboromnak” is ő a kulcsfigurája. A legjobbat várom el tőle, de a legjobbat is kapja.

Az utóbbi időben megsokasodott a dolgom és nem igazán jutott már időm/erőm Narada frissítésére, hiszen mikor féléjfél tájékán hazahuppantam, nem igazán láttam csábítónak a 16.04 feltételét Naradára (nála ragaszkodok a teljesen friss, nulláról történő telepítéshez). Így történt hát, hogy néhány nappal ezelőttig szinte minden általam használt gépen 16.04 Xenial Xerus vigyorgott, kivéve őt, akin még csak a jól megszokott és – őszintén szólva igazán jól – bevált 15.10 duruzsolt. Előbb vagy utóbb viszont mindenképp muszáj lesz frissíteni, az előbb pedig jobb, mint az utóbb.

Így hát úgy döntöttem, hogy hajnali negyed egykor nekiveselkedünk egy gyors telepítésnek. Az eddigi tapasztalatok alapján úgy számoltam, hogy a szükséges gikszerek után a rendszernek legkésőbb egyre működnie kell annyira (igazából átlagosan 15 perc maga a telepítés), hogy ne legyen „új szaga”.

A rendszer telepítése fél egy előtt kész is lett, újraindításkor viszont csak a Grub helyreállító módja fogadott. "Az anyád úristenit, pont most kell velem hülyéskedned, ugye?" Nos, khmm, megkapartam a torkom, megkérdeztem a Gentoo-t, hogy ő mit szól az esethez. Megpiszkáltam az UEFI-t is és kiderült, hogy én voltam a hülye: Legacy (BIOS) módban indítottam UEFI helyett a pendrive-on lévő Xeniált. Mindenki a saját poklának kovácsa (ezért használok nginx-et is, izé), szóval így jár, aki nem kapcsolja ki a Legacy mód lehetőségét az UEFI-ben. Az, hogy az Ubuntu telepítője miért nem szólt, hogy bajok lesznek ha keverem a GPT-t és a Legacy módot, az már egy újabb érdekes kérdés.

Szóval, akkor újra minden, de most figyeljünk, hogy mindenképp EFI módban induljon a Live! rendszer. Már a nagyon sokadig alkalommal telepítek Ubuntut és elég nagy a számossága annak is, hogy EFI módban induljon a cuccos, így igazán feltűnhetett volna, hogy míg „hagyományosan” BIOS módban telepítve az Ubuntut színes-szagos a Grub, addig EFI módban csak maga a Grub fekete-fehér menüje fogad. Feltűnő a különbség.

A kis gikszer után ment minden mint a karikacsapás. Mintha még gyorsabb lett volna a telepítés mint eddig, vagy csak én voltam fáradtabb a kelleténél. A lényeg, hogy még több, mint tíz perc hiányzott a hajnali egy órához, mikor már halkan dorombolt a Xenial Xerus az SSD-n.

Másnap következett a szokásos belakás: kedvenc programok telepítése, felület kényelmessé szabása, Rhythmbox megismertetése a zenékkel, Firefox személyre szabása, néhány program törlése és több telepítése. Szóval csak a szokásos belakási procedúra. Olyannyira szokásos és jól bejáratott ez a beköltöző ritmusom, hogy egy gyorsabb gépen, ha nincs gikszer akár 10 percen belül végezhetek vele. Narada veszettül tud tépni, ha úgy tartja kedve és most úgy tartotta: Minden pont úgy történt, ahogy a nagy könyvben meg van írva. Ráadásul a 16.04 mintha még gyorsított is volna rajta! Arról nem is beszélve, hogy volt egy Intel VGA-t érintő kernel bugom (nem szereti a több monitoros rendszereket), ami szintén eltűnt. :)

Ami a programokat illeti, minden a legnagyobb rendben: nincsenek összeomlások, instabilitások, lassulások. Ami azt illeti, a Totem még javult is. Azért tartok VLC-t és MPlayert minden gépen, mert a Totem nem feltétlenül képes megbirkózni a dolgokkal. A 16.04-ben ez némileg változott: Bár fent van a VLC, maradt alapértelmezettnek a Totem, és még nem éreztem, hogy le akarom váltani: Szépen lejátszotta az eddig döccenős formátumokat is, nagyon alacsony a CPU terhelése, és jól lehet a videofájlokban tekerni is végre. A VLC-ben nagyon finoman lehet ezt szabályozni és bár a Totem még nem tart ott, de jó úton halad felé. Szóval plusz pont oda is!

Minden más szoftver pont úgy jó, ahogy van. Fut, stabil, gyors.

A végeredmény az, hogy teljesen meg vagyok elégedve az Ubuntu 16.04 Xenial Xerus LTS teljesítményével minden téren. Melegen ajánlom bárkinek!

Ubuntu 16.04 LTS kijelentkező ablak

További képek a telepítésről

Ubuntu 16.04 LTS asztal

telepítő üdvözlés

telepítés előkészítése

telepítés típusa

lokalizáció

billentyűzetkiosztás

felhasználó létrehozása

üdvözli az Ubuntu

alkalmazások felfedezése

vigye magával zenéit

képkezelés

webalkalmazások

irodai alkalmazások

akadálymentesítés

segítség és támogatás