A systemd rendszer- és szolgáltatáskezelő démon

Hasonló dokumentumok
Linux ismeretek. Göcs László mérnöktanár. 2. előadás. KF-GAMF Informatika Tanszék tavaszi félév

SysVinit / Upstart / Systemd. Zahemszky Gábor mérnök tanácsadó

Hálózatok építése és üzemeltetése

Ismerkedjünk meg a Linuxszal!

Unix alapú operációs. rendszerek ELŐADÁS CÍME. Göcs László mérnöktanár. 2. előadás. KF-GAMF Informatika Tanszék

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

A L i n u x r u h á j a

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Kiszolgálók üzemeltetése. Iványi Péter

Linux hálózati adminisztráció

Virtualizációs Technológiák Operációs rendszer szintű virtualizáció Konténerek Forrás, BME-VIK Virtualizációs technológiák

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Viczián István IP Systems JUM XIX szeptember 18.

OPERÁCIÓS RENDSZEREK 1. PROCESSZKEZELÉS

A netfilter csomagszűrő tűzfal

TI TMDSEVM6472 rövid bemutatása

Operációs rendszerek gyakorlat

italc felhasználói dokumentáció

Alternatív processz állapot és statisztika lekérdezési módszer a Linux kernelben

Miről lesz szó? Setup Project készítése. Tulajdonságok. 1. Készítsünk egy setup project alkalmazást egy már elkészített, lefordított programhoz.

Nyílt forráskódú technológiák központi és Önkormányzati környezetekben

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

italc felhasználói dokumentáció

Kapcsolat útmutató. Támogatott operációs rendszerek. A nyomtató telepítése. Kapcsolat útmutató

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

A Java EE 5 plattform

Telepítési Kézikönyv

A Docker alapjai. Takács Ákos PTE Egyetemi Könyvtár és Tudásközpont TAKÁCS ÁKOS - IPSZILON SZEMINÁRIUM - A DOCKER ALAPJAI 1

Operációs rendszerek gyakorlat

Készítette: Sallai András Terjesztés csak engedéllyel sallaia_kukac_fre _pont_hu

A SuliX család: Az oktatási és érettségi disztribúciótól a SuliXerverig

A Feldspar fordító, illetve Feldspar programok tesztelése

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

Az internet ökoszisztémája és evolúciója. Gyakorlat 1

Telepítési útmutató. 1. A készülék beállítása. 2. A szoftver telepítése. Vezérlőpult lap

Operációs rendszerek gyakorlat

Hardver és szoftver követelmények

Számítógép rendszerek. 4. óra. UNIX fejlődéstörténet

2. lépés: openssh szerver telepítés sudo apt-get install openssh-server

Nokia N9 - MeeGo Harmattan bemutatkozik

Selling Platform Telepítési útmutató Gyakori hibák és megoldások

SQL Server High Availability

Operációs rendszerek gyakorlat

Bevezetés a Python programozási nyelvbe

Virtualizációs technológiák Linux alatt (teljesítményteszt)

Egy egyszerű, gyors és szabad újratelepítő eszköz: upi

XCZ állományok ellenőrzése, átadása elektronikus beküldésre és közvetlen beküldése parancssori funkcióval az ÁNYK programban

Opensuse automatikus telepítése

6.2. TMS320C64x és TMS320C67xx DSP használata

Operációs rendszerek. UNIX/Linux fájlrendszerek

Linux ismeretek. Göcs László mérnöktanár. KF-GAMF Informatika Tanszék tavaszi félév

DRUPAL 7. újdonságai. Hojtsy Gábor Drupal Hétvége, Budapest november 14. Angela Byron fóliái alapján

Kézikönyv Nyomtatók kezelése Linuxon

SAMBA. Forrás: Lajber Zoltán: SAMBA alapok dia, SZIE

RapidMiner telepítés i. RapidMiner telepítés

Linux alapok gyakorlat

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Saját Subversion tároló üzemeltetése i. Saját Subversion tároló üzemeltetése

Selling Platform Telepítési útmutató Gyakori hibák és megoldások

Hogyan telepíthetsz fel Arch linuxot

ma és holnap Szabad Szoftver Konferencia október 8. Szeged Szalai Kálmán előadása

RH/CentOS felügyelet SUSE Manager segítségével. Kovács Lajos Vezető konzultáns

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

Importálás. más típusú (pl:.imp,.xml,.xkr,.xcz) állomány beimportálása a nyomtatványkitöltő programba

Floppix linux disztribúció üzembe helyezése VirtualBox alatt fizikai floppy meghajtó nélkül

Operációs rendszerek - bevezető

NIS + NFS+Automount. Összeállította: Sallai András

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

Veeam Agent for Windows and Linux

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

opensuse 10.3 Érettségi változat telepítése

Szoftvertelepítési útmutató NPD HU

Útmutató az OKM 2007 FIT-jelentés telepítéséhez

A szoftverfejlesztési szerződések buktatói. HWSW mobile! november 19.

MultiBoot. Felhasználói útmutató

Windows történet Windows 1.0. DOS kiegészítő Grafikus felület

Tájékoztató. Használható segédeszköz: -

PTE-PROXY VPN használata, könyvtári adatbázisok elérhetősége távolról

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge

OpenOffice.org irodai programcsomag

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

Általános áttekintés. Általános áttekintés. Általános áttekintés. Egy boot folyamat

SZOFTVER = a számítógépet működtető és az azon futó programok összessége.

Folyamatok rugalmas irányítása. FourCorm Kft.

Hálózatok építése, konfigurálása és működtetése

Hálózatok építése, konfigurálása és működtetése

Linux + XFS HOGYAN. Szteroiddal fűtött Linux. Russel Ingram. ringram@gargoylecc.com

LINUX PMB LINUXOS PARANCSOK ÉS HASZNÁLATUK - GRUB

Verifikáció és validáció Általános bevezető

DSL Internet telepítése opensuse-ra (Tesztelve: opensuse 10.0-tól 10.3-ig)

EgroupWare: A csoportmunka megoldás

1. Használatba vétel. 1.1 Biztonsági előírások. 1.2 Rendszerkövetelmények. 1.3 A csomag tartalma

ÁNYK53. Az Általános nyomtatványkitöltő (ÁNYK), a személyi jövedelemadó (SZJA) bevallás és kitöltési útmutató együttes telepítése

EBS nagyvállalati implementációja a performancia szemszögéből

A DNS64 és NAT64 IPv6 áttérési technikák egyes implementációinak teljesítőképesség- és stabilitás-vizsgálata. Répás Sándor

Külső eszközök Felhasználói útmutató

Állásidő minimalizálása: BTRFS, kgraft

A MOKKA hitelesítő szoftver telepítése és használata

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Átírás:

1 / 20 A systemd rendszer- és szolgáltatáskezelő démon Vajna Miklós 2011. szeptember 23.

Miről lesz szó? 2 / 20 A systemd projektről röviden Killer feature-ök Funkciók bemutatása Migrációs tapasztalatok Bekapcsolódás a fejlesztésbe

A systemd projektről röviden 3 / 20 Rendszer- és szolgáltatáskezelő démon sysvinit leváltására SysV és LSB init scriptekkel kompatibilis Legfontosabb funkciók: agresszív párhuzamosítási képességek a függőség-alapú szolgáltatásvezérlő logikának köszönhetően igény szerinti szolgáltatás-indítás socket/d-bus activation segítségével rendszer állapotának mentése, monitorozása és visszaállítása

A systemd projektről röviden Története 4 / 20 Szerzők: Lennart Poettering (Red Hat), Kay Sievers (Attachmate/SUSE) Nem ismeretlenek: udev, pulseaudio, avahi, ifplugd, stb. Első kiadás: 2010. április 30. Ötletek más init rendszerekből: Solaris SMF, Apple launchd, Canonical upstart Csak Linux kernelen Mára a legtöbb nagy disztribúció vagy váltott rá, vagy tervezi a váltást a következő verzióban.

A systemd projektről röviden Ki váltott már? 5 / 20 Fedora 15: ez az alapértelmezett opensuse: 11.4-ben választható, 12.1-re tervezett gyárilag Mandriva 2011: alapértelmezett Arch Linux: közösségi repóból telepíthető Frugalware 1.5: alapértelmezett Debian GNU/Linux: SID-ből telepíthető Gentoo: testing-ből elérhető

A systemd projektről röviden Miért csak Linuxon? 6 / 20 Mert olyan kernel funkciókat használ, ami jelenleg más rendszereken nem érhető el. Példák: cgroups autofs4 libudev capabilities /sys IP_FREEBIND oom score binfmt_misc

Killer feature-ök Minimalizmus A rendszerindítás építőkövei az rc scriptek voltak, példa a smartd rc scriptjére: 653 sor. A systemd ezek helyett service file-okat használ, például: [Unit] Description=Self Monitoring and Reporting Technology (SMART) Daemon [Service] ExecStart=/usr/sbin/smartd -n [Install] WantedBy=multi-user.target 7 / 20

Killer feature-ök Minden szolgáltatásnak saját cgroup 8 / 20 A monitorozás a sysvinit mellett nehézkes: honnan tudjuk, hogy egy szolgáltatás leállt? Tipikus hack: pidfile + bízni, hogy a megfelelő pid íródik bele, a szolgáltatás tényleg leáll Honnan tudjuk, hogy egy process melyik szolgáltatáshoz tartozik? (zypper ps) Probléma logout, shutdown esetén Megoldás: minden szolgáltatásnak saját cgroup, az onnan fork()olt processek is benne maradnak Ha már cgroup: limitek (cpu, memória, io, stb.) cgroup-szinten

Killer feature-ök Párhuzamosítás, implicit függőségek 9 / 20 Ismert: párhuzamosítással gyorsítható a rendszerindítás Probléma: függőségek kellenek hozzá, kézzel meg kell adni, elég egy hiba és nem bootol a rendszer Megoldás: Tegyük le a szolgáltatások socketjeit előre, majd indítsunk el mindent egyszerre, a többit a kernel megoldja (socket activation) Ha már a socketek külön életet élnek: restart egyetlen socketre beérkezett kérés elmulasztása nélkül Innen adódik az igény szerinti szolgáltatás-indítás is Hasonló ötlet alkalmazható device, path, DBus esetén

Killer feature-ök Disztribúció-független megközelítés 10 / 20 init rendszer tipikus terület ahol a disztribúciók igenis különböztek (eddig; a telepítő és csomagkezelő mellett) Az rc scripteknél ez teljes FAIL: különböző név, könyvtárak, runlevelek, paraméterek, konfigurációk Az LSB ezen segítene, de a gyors boothoz ez se volt elég, aki implementál LSB-t, az is használ egyedi kiegészítéseket Itt: a service file legyen disztribúció-független és az upstream tarball része Ugyanez egyéb alacsony szintű config file-okra: /etc/os-release és társai

Funkciók bemutatása Aktiválás 11 / 20 Rendszerindítás során: targetek, azok dependjei (egy aktiválás egy symlink, mert egymásra épülnek a targetek, nem úgy, mint sysvinitnél) Socketre küldött üzenettel: syslog, cups, dbus, udev, stb. DBus: DBus által elérhető szolgáltatásokhoz (DBus-ban ehhez mapping) Eszközön keresztül: ha bedugom a nyomtatót, induljon el a cups, bluetooth/bluetoothd ugyanígy Path: munkakönyvtárba lerakott file (nem titkoltan az OSX-ből átvett ötlet) Timer: oneshot service-ek periodikus futtatása (/tmp kipucolása)

Funkciók bemutatása Monitorozás 12 / 20 A cgroup funkció miatt pontos kép a szolgáltatás folyamatairól Akció definiálható, hogy mi történjen, ha a szolgáltatás leáll API, ahol a szolgáltatás jelezheti az állapotát Indítás során minden kimenet logolódik, nincs eltűnt hibaüzenet

Funkciók bemutatása Mount pontok kezelése 13 / 20 Szükséges: ha minden egyszerre indul, szolgáltatásoknak kellhet valamilyen mount point. Lehetséges az aktiválás itt is: autofs. Explicit mount unitokkal, vagy fstab alapján. Ráépül az fsck service-ekre. A mount unitokra is épülnek automatikusan: pl. kvóta vizsgálata.

Funkciók bemutatása Hogy néz ez ki a gyakorlatban? 14 / 20 Minden kis egység unit, ezek fajtája lehet service, socket, path, mount, device, stb. Freedesktop projekt:.desktop formátumot használja újra Csomagból /lib/systemd/system alatt, /etc alá másolható és testreszabható Futási időben: /run alatt Generátorok: kompatibilitás miatt, valamint udev üzenetekből legyártott device unitok, stb.

Migrációs tapasztalatok 15 / 20 Létező megoldás jobb kezelése esetén: visszafele kompatibilitás fstab, rc scriptek, generátor interfész Új konfigurációs file-ok esetén disztró-specifikus #ifdef-ek korlátozott ideig megengedettek A systemd még mindig újdonságnak számít: leginkább referencia jellegű dokumentáció érhető csak el

Migrációs tapasztalatok Esettanulmány: Frugalware 16 / 20 Első systemd csomag: 2010. november 23. Opcionálisan a -current ágban: 2010. december 20. Opcionálisan a -stable ágban: 2011. február 13. Alapértelmezett a -current ágban: 2011. február 21. Alapértelmezett a -stable ágban: 2011. augusztus 15. Mi vesz időt igénybe: disztró-specifikus funkciókhoz generátorok írása, tesztelés

Bekapcsolódás a fejlesztésbe 17 / 20 Szabad szoftver, de vásárolható hozzá kereskedelmi támogatás Kezdetben: legtöbb változtatás, hogy a systemd olyan jól fusson más disztribúciókon mint Fedorán Szokásos a mai felhasználók a jövő fejlesztői elv A kód nagy részét Lennart írta: egységes forráskód, nincs elbonyolítva absztrakciós rétegekkel, szétgányolva #ifdef-ekkel Új funkciók: megbeszélés levlistán, majd TODO, majd implementáció Hackeléshez szükséges tudás minimális: C, libudev, libdbus ismeret kell csak hozzá

Bekapcsolódás a fejlesztésbe Egy kis statisztika 18 / 20 $ git shortlog -s -n head 2410 Lennart Poettering 137 Kay Sievers 26 Michal Schmidt 20 Michael Biebl 17 Andrey Borzenkov 16 Miklos Vajna 13 Harald Hoyer 13 Tom Gundersen 11 Fabiano Fidencio 10 Bill Nottingham

Hivatkozások 19 / 20 Miért csak Linux-on fut a systemd: http://mail.gnome.org/archives/ desktop-devel-list/2011-may/msg00447.html Podcast: http://media.libsyn.com/media/ linuxoutlaws/linuxoutlaws160.ogg (1:10:50-nél kezdődik, 17 perc) linux.conf.au 2011 videó: http://linuxconfau.blip.tv/file/4696791/

Elérhetőségek 20 / 20 systemd honlap: http://freedesktop.org/wiki/software/systemd Levelezési lista: http://lists.freedesktop.org/ mailman/listinfo/systemd-devel IRC: irc://irc.freenode.net/systemd A diák elérhetősége: http://vmiklos.hu/odp/