Köszöntő

Szeretettel köszöntjük weboldalunkon. Cégünk fő tevékenységi köre a szoftverfejlesztés és az informatikai tanácsadás.

Küldetésünk: Optimális informatikai megoldások megtervezése és megvalósítása ügyfeleink számára.

Projektötlet: Natív Samba 4 / NFSv4 ACL támogatás ZFS-ben Linuxon - mindez Zentyal-ba integrálva

A HUP-on indítottam egy szavazást a címben olvasható projektötletről. Alább olvasható kicsit több részlet a projektről kérdés - válasz formában.

Mik azok az ACL-ek? Egyáltalán miért kell ezzel foglalkozni?

ACL = Access Control List

A hagyományos Unix jogosultságoknál sokkal részletesebb jogosultságbeállításokat tesznek lehetővé.

Jó szokás szerint különböző ACL szabványok alakultak ki:

  • A Windows ACL megoldását a Microsoft 1993-ben vezette be
  • A POSIX.1e szabvány tervezet a hagyományos "Unix" jogosultságokat terjeszti ki
  • Az IETF szabványosította az NFSv4 protokoll részeként az NFSv4 ACL-eket. Ez a modell a Windows ACL-ein alapul. Könnyű az átjárás az NFSv4 és a Windows ACL-ek között.

Jelenleg Linux-on két gond van az ACL-ekkel:

  • A POSIX és NFSv4 / Windows modellek nem egyenértékűek -> POSIX ACL-ek konvertálhatók NFSv4 / Windows ACL-lé, de visszafele ez nem igaz, csak tökéletlen konverziók léteznek.
  • Linux alatt a POSIX modell lett implementálva.
  • A POSIX.1e tervezet sosem lett ratifikálva, és hivatalosan is megszakították a szabványosítási törekvéseket. Ennek folyománya, hogy nincs egy elfogadott szabvány ami miatt a megvalósításoknak konvergálniuk kellene.

Mik azok a Samba4 ACL-ek?

A Samba4 megvalósítja a Windows ACL-ek kezelését. Azokon a rendszereken, ahol van natív NFSv4 ACL kezelés (pl. Solaris / FreeBSD), a fájlrendszerben tárolja el azokat. Linux-on ehelyett Samba specifikus Extended Attribute ("xattr")-okat tárol el a fájlrendszerben. Ezzel a probléma, hogy erről csak a Samba tud, a rendszer többi része (pl. helyi programok, NFS szerver) nem.

Hogy jön a képbe a ZFS?

A ZFS egy modern, sok hasznos funkcióval (snapshotok, zfs send/receive, zvol, raidz, deduplikálás ... stb.) rendelkező fájlrendszer. Jelenleg Linuxon az egyetlen alternatívája a btrfs. Azonban mind a Btrfs-nek, mind a ZFS-nek vannak problémái.

Mik a problémák a Btrfs-sel?

A btrfs fejlesztése a vanilla kernelben folyik. Ennek folyománya, hogy a régebbi kernelekre épülő rendszerek támogatása akkor biztosított, ha ezt a fejlesztő megoldja.

Ha a mostani stabil, szerverekhez ajánlott, Linux terjesztéseket nézzük, akkor:

  • Ubuntu 12.04 LTS esetén a 3.2-es Linux kernelben levő implementáció támogatott, vicces ismert bugokkal
  • Oracle és SUSE esetén támogatott a BtrFS, azonban a pontos feature set, amit ez a támogatott BtrFS nyújt, vagy nyújtani fog, nem ismert (a Suse 11 SP2 release notes is inkább terveket ír le).
  • A RedHat-nál az RHEL6-ban a btrfs "tech preview" állapotban érhető el.

Mik a problémák a ZFS-sel?

Ezzel szemben a ZFS Linux implementációja (zfsonlinux.org, a zfs-fuse egy halott projekt, ne keverjük ide) licenc és technikai okok miatt is a hivatalos Linux kernelen kívül karbantartott modulokból áll. A disztribúciók támogatása nagyon jó, gyakorlatilag minden elterjedt verzióhoz elérhető csomag, pl. Ubuntu LTS-en simán "apt-get install" segítségével telepíthető. A kódbázis két részből áll:

  • Solaris Porting Layer (SPL), ami a Solaris kernel adatstruktúráit szimulálja
  • maga ZFS implementáció
  • A mi tesztjeink során eddig nem futottunk bele hibába, de az issue tracker alapján akadnak szép számmal. A felhasználói bázis is relatíve kicsi.

    Ugyanakkor a ZFS kódbázis nem Linux specifikus része stabil, jól kitesztelt kód. A Linuxos port az adatokat ugyanabban a formában tárolja, mint a Solaris (-11), vagy a FreeBSD. Ha tehát a Linuxos implementációval kapcsolatban nagyon sok gond derülne ki, még mindig van lehetőség akár FreeBSD, akár OpenSolaris irányába migrálni.

    Hát ez elég elkeserítő. Nekem egyik megoldás sem tetszik. Nincs más lehetőség?

    Nekünk sem tetszik. Ha Linux-nál maradunk, akkor marad az ext4, azonban így le kell mondani a Btrfs és ZFS előnyeiről. Samba 4 / NFSv4 ACL-ek persze itt sem lesznek integrálva a rendszerrel.

    Mi alapvetően Ubuntu LTS-t használunk, és nem is tervezünk váltani technikai és menedzsment okokból sem. Ebből adódik, hogy a btrfs következő támogatott nagy upgrade-je a 14.04-es Ubuntu-val fog számunkra érkezni. Marad a ZFS, ami az eddigi tesztek alapján óvatos optimizmusra ad okot, mindenesetre úgy tudjuk majd ezt a komponenst frissíteni, hogy továbbra is a hivatalos Ubuntu kernelt használhatjuk.

    Van már NFSv4 ACL támogatás Linuxon?

    Van egy RichACL nevű projekt, ami megvalósítja az NFSv4 kompatibilis ACL-eket néhány kiterjesztéssel. Ez kernel patchekből, és felhasználói segédprogramokból áll. A kernel patch a közös infrastruktúra (VFS) módosításokon kívül az ext4 fájlrendszerhez és a kernelben levő NFSv4 szerverhez is hozzáadja a támogatást.

    Már többször megpróbálták ezt a patchsetet beolvasztani a mainline / vanilla kernelbe. Alapvető problémák (pl. az ötlet teljes elutasítása) nincsenek vele, de eddig még nem sikerült végigvinni a folyamatot. Az utóbbi időszakban a RichACL fő fejlesztője az IBM-nél más kernel projekteken dolgozik, és nem tudni, hogy mikor lesz ideje ismét a RichACL-en dolgozni.

    A Samba fejlesztők számára is ismert a RichACL projekt, és tervezik a támogatását, amint beolvasztásra kerül a kernelbe. Sőt: egy fejlesztői változat már elérhető belőle itt: v4acls-experimental/samba.git

    Egy jó összefoglaló a projektről olvasható itt: http://www.fmeh.org/ols-2010-implementing-richacl-slides.pdf

    Hogy jön ide a Zentyal?

    A Zentyal 3 egy kényelmesen használható, kisvállalati kiszolgáló, ami Ubuntu LTS-re épül. A legújabb verziója már Samba 4-et használ, ami lehetővé teszi, hogy korlátozásokkal Active Directory-ként is használjuk. A jogosultságok beállítása legkönnyebben a Windows eszközeivel lehetséges. Ezeket a beállításokat, ahogy fentebb írtam, a Samba eltárolja, azonban a rendszer többi részének erről nincs tudomása.

    A Zentyal ZFS-t egyáltalán nem támogat. Természetesen az Ubuntu csomagok telepíthetők rá, de nincs integrálva a menedzsment felületbe, az adminisztrátornak a parancssorban kell bűvészkednie. Így a Zentyal elsődleges célcsoportja számára nem elérhető.

    Pontosan mit terveztek csinálni?

    1. RichACL támogatás hozzáadása a ZFS Linux portjához. Ezt meg lehet tenni a kernel többi részének módosítása nélkül, mivel a user space -> kernel adatátvitelhez a RichACL is az xattr API-t használja. Innen kell a ZFS modulban kiolvasni a beállításokat, és konvertálni a natív ZFS beállításokra. A ZFS implementáció ezután már kezelni fogja az így beállított ACL-eket.

    2. A Samba4 RichACL modul frissítése, és beküldése a hivatalos fába. Elérni, hogy a Zentyal-ban ezzel a modullal fordított Samba-t szállítsanak.

    3. A Zentyal-hoz egy ZFS modul kifejlesztése, ami lehetővé teszi a poolok, datasetek, zvolok, snapshotok, clone-ok, és backupok (zfs send / receive) kezelését. Amennyiben lehetséges, a modul bejuttatását a következő (3.1, 3.2?) hivatalos Zentyal kiadásba.

    4. Az első 3 pont sikere esetén megkezdjük a munkát a RichACL patchset vanilla kernelbe olvasztásán.

    Alkalmasak vagytok a feladatra?

    Cégünknek jelentős tapasztalata van nyílt forráskódú fejlesztésekkel és a kernel fejlesztéssel is, a legkülönfélébb platformokon.

    Konkrétan a ZFS illetve a Samba projektekkel még nem dolgoztunk, de a forráskód rövid átnézése alapján mindkét projekt jól kezelhető, nem fog problémát jelenteni.

    Mire szolgál ez a szavazás?

    Jelenleg egy ekkora projektet önerőből nem tudunk bevállalni. Csak úgy tudunk nekikezdeni, ha valamilyen formában finanszírozókat találunk. Ennek egyik formája a crowdsourcing alapú előfinanszírozás (pl. Kickstarter). Egy másik forma lehet az utólagos támogatások használata (PayPal, Flattr ... stb.).

    Ezzel a szavazással megpróbáljuk felmérni, hogy van-e érdeklődés a projekt iránt, érdemes-e további energiát belefektetnünk.

    iPhone vs Android Konferencia

    Előadást tartottam (Kis Gergely) az iPhone vs Android konferencián multiplatform szoftverfejlesztésről "iPhone és Android két jó barát..." címmel.

    Az előadás diái letölthetők erről az oldalról.

    Emellett végre feltöltöttük a korábbi Android előadások anyagait is a Publikációk oldalra.

    Google Android fejlesztői szemmel - Előadás a szegedi Szabad Szoftver Konferencián

    Előadást tartottam a szegedi Szabad Szoftver Konferencián "Google Android fejlesztői szemmel" címmel.

    Az előadás után egy workshop keretében a gyakorlatban is bemutattam, hogy milyen kényelmes az Android fejlesztői környezete. Példaprogramként az általunk fejlesztett PreziMote alkalmazás szolgált, amely az OpenOffice.org bemutatókat tudja vezérelni Bluetooth-on keresztül.

    A diák letölthetők innen.

    Fejlesztői eszközök Androidhoz

    Szép karácsonyi ajándékként a fejlesztők és hackerek számára a Google bejelentette fejlesztői programját, ahol teljesen nyitotott telefonokat lehet vásárolni korrekt áron. A telefonok nyitott rendszerbetöltővel érkeznek, így a fejlesztők módosított szoftvert is feltölthetnek a telefonokra. És a legjobb hír, hogy a program elérhető magyar fejlesztők számára is!

    A részletek itt találhatók: http://code.google.com/android/dev-devices.html

    Első hozzájárulásunk az Androidhoz

    Az első hozzájárulásunkat az Android platformhoz már be is olvasztották és telepítették az éles rendszerbe. Igen, a Gerrit kódfelülvizsgáló eszközhöz küldtünk be egy fejlesztést.

    A folt lehetővé teszi az összes változtatás böngészését, nem csak a még nyitottakét. Miért fontos ez?

    Minden projekt története fontos érték. Dokumentál döntéseket, mint például "miért lett ez a változtatás beolvasztva" vagy még inkább "miért nem lett ez a változtatás beolvasztva". Továbbá lehetővé teszi a hozzáférést a múltbeli beszélgetésekhez.

    Ez a változtatás a követhetőbbé és nyíltabbá teszi a fejlesztési folyamatot a résztvevők számára.

    Nyílt forrású platform az Android? Igen!

    Az utóbbi néhány hétben (illetve hónapban, még mielőtt bármit is kiadtak volna nyílt forrásként), sok vélemény megjelent az interneten arról, hogy az Android platform

    • nem igazán nyílt
    • gyilkos kapcsolót (kill switch) tartalmaz, ami gonosz
    • jelentős korlátai vannak
    • fenntart funkciókat a beépített / zárt alkalmazások számára
    • csak J2ME új ruhában

    Tökéletesen megértem a frusztrációt. Azonban, a véleményekkel ellentétben nem gondolom, hogy bármilyen probléma merülne fel az Androiddal szemben ebben a tekintetben. A probléma, mint a legtöbb esetben, a kommunikáció.

    Sokan, akik elolvasták a nyílt forrású platform szlogent valójában mobiltelefonokba tölthető, kész nyílt forrású szoftvert vártak. Természetesen, a Google nem ezt ígérte.

    Tehát a valódi kérdés: Mi is egy nyílt forrású platform?

    A teljes bejegyzés angolul olvasható.

    Elkészült az új honlapunk

    Elkészült az új honlapunk, ahol az általános céginformációk mellett munkatársaink blogjai is megtalálhatók. A főbb témák:

    • Termékek és szolgáltatások bemutatása
    • Elemzések
    • Technológiák ismertetése
    • Érdekességek az informatika világából
    Tartalom átvétel