UNIX fájlrendszerek alapismeretei



Hasonló dokumentumok
UNIX: fájlrendszerek

UNIX fájlrendszerek alapismeretei

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

Operációs rendszerek 1.

Operációs rendszerek gyakorlat

A L I N U X f e l é p í t é s e

Operációs rendszerek gyakorlat

Linux alapismeretek. Felhasználó Felhasználói programok (folyamatok) Rendszerkönyvtárak (rendszerhívások) Segédprogramok (utility)

Operációs rendszerek. UNIX fájlrendszer

Informatikai Rendszerek Intézete Gábor Dénes Foiskola. Operációs rendszerek oldal LINUX

Linux fájlrendszerek. Papp Zsolt. Rendszermérnök, Novell PSH.

Operációs rendszerek gyakorlat

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

Operációs rendszerek I. IIII. gyakorlat

Unix-Linux alapok I. gyakorlatvezető: Lutár Patrícia

1_Linux_bevezeto_bash

Linux alapok gyakorlat

Operációs rendszerek gyakorlat

UNIX: folyamatok kommunikációja

(kernel3d vizualizáció: kernel245_graph.mpg)

A Linux operációs rendszer 2017.

Legfontosabb tulajdonságai. UNIX rendszer felhasználói és fejlesztői felülete (1-4. ea.) Unix hagymahéj struktúrája. Legfontosabb tulajdonságai

Informatika szintmérő-érettségi tételek február

OPERÁCIÓS RENDSZEREK I. HÁTTÉRTÁRAK

Operációs rendszerek gyak.

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

Operációs rendszerek 2 1. óra: Linux alapok Ismétlés. Windisch Gergely félév

Számítógépes alapismeretek

Bevezetés az informatikába, második gyakorlat. Bevezetés Környezetváltozók és néhány egyszerű utasítás Jogosultságok Fájlkezelés

Unix fájl-hierarchia

(jegyzet) szeptember i óra anyaga. 1. Bevezetés

2016/06/09 13:15 1/108 Linux parancssor

1.2. NFS kliens telepítése és beállítása

UNIX operációs rendszer bemutatása. A UNIX története, fejlesztésének céljai.

Operációs Rendszerek II. Első verzió: 2009/2010. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter

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

Jelenleg több mint 250 féle disztribúció létezik ( ) Kenneth Lane Thompson Dennis M. Ritchie Linus Torvalds

Unix/Linux alapok 2. Operációs rendszerek I. készítette: Kozlovszky Miklós, Bringye Zsolt Póserné Oláh Valéria, Windisch Gergely

Debreceni Egyetem Matematikai és Informatikai Intézet. 13. Védelem

Operációs rendszerek III.

Fájl rendszer (implementáció) Fájl rendszer struktúra Allokációs módszerek Szabad hely kezelése Directory implementáció Helyreállítás

Synology NAS integrálása inels IMM szerverhez

LINUX PMB VIRTUALBOX TÖRTÉNELEM DEBIAN ALAPPARANCSOK - GRUB

LINUX PMB LINUXOS PARANCSOK ÉS HASZNÁLATUK - GRUB

18. témakör. Jogosultságok (Windows és Linux jogosultságok összehasonlítása, helyi és megosztási jogosultságok)

11. Elosztott állománykezelés. Operációs rendszerek. Elosztott állománykezelés. Teljesítmény növelése. Az állományokra hivatkozás. Az állományok nevei

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

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

SQUID. Forrás:

Készítette: Csatlós István 2010-ben

Hardver és szoftver követelmények

Linux alapok. Parancsok általános alakja parancs kapcsolók paraméterek

Számítógépes munkakörnyezet II. Szoftver

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

I. Felzárkoztató Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Operációs rendszerek. Az NT folyamatok kezelése

Operációs rendszerek. A mai program. Az I/O alrendszer feladatai. I/O és fájlkezelő alrendszer

Mérési jegyzőkönyv Háttértár rendszerek vizsgálata

Az adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:

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

Operációs rendszerek. 2. gyakorlat. Munka állományokkal UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. A mai program

Operációs rendszerek. 2. gyakorlat. Munka állományokkal UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

FUSE, SSHFS és társaik - bármit láthatunk lokális fájlként!

Az alábbiakban néhány Linux parancsra látunk példákat, feladatokat.

ZFS - Zettabyte File System

Szalai Ferenc

Bevezetés jogosultságkezelés, csővezeték, átirányítások. BASH script programozás

iseries Client Access Express - Mielőtt elkezdi

Linux alapok és használatuk

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Alkalmazások típusai Szoftverismeretek

1. A Windows Vista munkakörnyezete 1

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

SZÓBELI ÉRETTSÉGI TÉMAKÖRÖK

fájlrendszer A /proc A /proc fájlrendszer A /proc fájlrendszer

Unix/Linux alapok. Operációs rendszerek I. készítette: Bringye Zsolt, Kozlovszky Miklós, Póserné Oláh Valéria, Windisch Gergely

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

Optimalizáció ESX-től View-ig. Pintér Kornél ügyfélszolgála3 mérnök

Operációs rendszerek. A védelem célja. A fenyegetés forrásai. Védelmi tartományok. Belső biztonság. Tartalom

A Linux helye az operációs rendszerek között

Windows hálózati adminisztráció

Programozás alapjai 2 UNIX dióhéjban. Legfontosabb tulajdonságai. Legfontosabb tulajdonságai/2

Legfontosabb tulajdonságai. Programozás alapjai 2 UNIX dióhéjban. Legfontosabb tulajdonságai/2. A UNIX rövid története.

NIIF Központi Elosztott Szolgáltatói Platform

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

Oktatási cloud használata

Az állományok kezelésére használt fontosabb parancsok

Java-s Nyomtatványkitöltő Program Súgó

Hibakeresés és elhárítás Linux rendszeren. Mátó Péter

Szkriptnyelvek. 1. UNIX shell

MMK-Informatikai projekt ellenőr képzés 4

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

Alapismeretek. Tanmenet

9. Állományok kezelése. Operációs rendszerek. Állomány (file) Könyvtár. Az állománykezelő feladatai. Az állományrendszer réteges implementációja

Operációs rendszerek. 1. gyakorlat. Bevezetés, követelmények UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Hálózati operációs rendszerek II. Novell Netware 5.1 Netware fájlrendszer

ÚTMUTATÓ Operációs rendszerek tárgyból 2015/2016. tanév 1. félév. Tantárgyi program

Az operációs rendszer. Az operációs rendszer feladatai, részei, fajtái Az operációs rendszer beállítása

Programozás alapjai óra. Morvai Flórián, 2010 Dr. Dévényi Károly előadásvázlata alapján

Átírás:

UNIX fájlrendszerek alapismeretei kiegészítő fóliák az előadáshoz Mészáros Tamás http://www.mit.bme.hu/~meszaros/ Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék UNIX fájlkezelés 1 / 24

Az előző részekben történt... A folyamatok a felhasználói programok futás alatt álló példányai a programokat permanens tárból töltjük be A permanens tárak nem felejtő, nagyságrendekkel nagyobb és lassabb a memóriánál blokkos fizikai tárolás és fájl-alapú logikai szervezés többféle megoldás egyedi jellemzőkkel (HDD, flash, RAID, SAN, iscsi,...) A kernel kezeli a hardver erőforrásokat (köztük a permanens tárakat) a hardverkezelő réteg felett többszintű fájlrendszer réteg található háttértár kezelés, fájlrendszer szervezés, logikai felépítés (fájl, könyvtár) adminisztrálja a fájlok blokkjait és az üres helyeket a permanens tárban elvégzi a fizikai és logikai szervezés közötti leképezést programozói interfészt nyújt az alkalmazásfejlesztők számára UNIX fájlkezelés 2 / 24

Alapfogalmak Fájl (más néven állomány, de biztosan nem file magyarul) adattárolási hely Fájlrendszer (állományrendszer) fájlok tárolásának szervezése, hozzáférés biztosítása Fájlrendszerek felhasználói felülete programozói (API, rendszerhívások) parancssori (illetve grafikus) Fájlrendszerek szervezési felülete diszk szervezés UNIX fájlkezelés 3 / 24

UNIX fájlrendszerek történeti áttekintése System V első fájlrendszer s5fs 80-as évek, alap implementáció, egyszerű szervezés 4.2 BSD Fast File Sytems FFS (a Linux ext2 alapja is) megnövelt teljesítmény új szolgáltatások akkori diszk hardver felépítéshez optimalizált rendszer Virtuális fájlrendszerek vnode/vfs moduláris, objektum-orientált cserélhető szervezési modulok, akár hálózati is Elosztott fájlrendszerek NFS: transzparens hálózati fájlrendszer RPC megvalósítással Modern fájlrendszerek ext[234], xfs, ReiserFS, Solaris zfs, (Oracle) Linux btrfs felhasználói fájlrendszerek gnome-vfs, fuse: ftp, smb, dav, stb. célra Klaszter fájlrendszerek, pl. Red Hat GFS UNIX fájlkezelés 4 / 24

A fájlrendszer felhasználói szemmel Operációs rendszer felhasználó parancssori és grafikus felület könyvtárszervezés, speciális könyvtárak fájlok és könyvtárak kezelése, attribútumaik helyfoglalás ellenőrzése hely és távoli fájlrendszerek csatolása (részben rendszergazda) fájlrendszerek menedzselése (rendszergazda) Programozó (alkalmazás fejlesztő) programozói interfészek (rendszerhívások, rendszerkönyvtárak) fájlleírók, nyitott fájl objektumok és kezelésük zárolási módszerek: kötelező, ajánlott UNIX fájlkezelés 5 / 24

Felhasználói interfész Alapvető felépítés (fa, lásd később) és parancsok ls cp mv rm cd pwd mkdir rmdir Menedzsment (csatlakoztatás, helyfoglalás) mount umount df du /etc/fstab /etc/mtab lsof Fájl- (könyvtár) attribútumok típus (- d p l b c s) linkek (hard, soft) eszköz, inode, méret, stb. időbélyegek (ctime, mtime, atime) azonosítási és hozzáférés-szabályozási adatok (lásd következő fólia) listázási parancs: ls -l -rw-r--r-- 2 root root 189 sze 8 2006 /etc/hosts -rwxr-xr-x 1 root root 616920 nov 17 01:29 /bin/bash srwxr-xr-x 1 clamilt clamilt 0 ápr 23 10:16 clamav.sock crw-rw---- 1 root tty 4, 0 ápr 20 2007 /dev/tty0 -r-s--x--- 1 root apache 10760 jan 14 14:22 suexec UNIX fájlkezelés 6 / 24

Hozzáférési jogosultságok POSIX hozzáférési jogosultságok (alap jogosultságok) 3 x 3 bit: tulajdonos, csoport, mások x olvasás, írás, futtatás értékek: 4: olvasás, 2: írás, 1: futtatás, 0: nincs jogosultság pl.: 740 = tulajdonos: olvasás, írás, futtatás; csoport: olvasás; mások: semmi könyvtárak esetében olvasás és futtatás is kell a tartalom listázásához beállítás: chmod <jogosultság> <fájl v. könyvtár> pl.: chmod 750 /home/me chmod u+rwx,g+rx,o-rwx /home/me Speciális jogosultságok: SETUID, SETGID, StickyBit SETUID/GID futtatás esetén beállítja az UID/GID értékét a fájlnak megfelelően, chmod u+s setuid_file chmod g+s setgid_file Speciális (root) jogokat igénylő műveletekre szokás beállítani: VESZÉLYES! StickyBit könyvtárra beállítva csak a tulajdonosa törölheti a fájlokat Jellemzően mindenki által írható könyvtárakra szokás beállítani (/var/tmp) POSIX ACL (access control list) (kiterjesztett jogosultságok) meghatározott felhasználóknak és csoportoknak külön is jogokat adunk pl.: setfacl -m u:student:r file az ls parancs a jogosultságok utáni + jellel figyelmeztet a meglétére UNIX fájlkezelés 7 / 24

A UNIX fájlrendszer áttekintése A fa gyökere ( / avagy ROOT) a kiinduló pont ( ls / ) /bin a rendszer működéséhez szükséges alapvető bináris állományok /sbin hasonló, de alapvetően a rendszergazda által futtatható programok /dev /etc hardver eszközök a rendszer konfigurációs beállításait tároló fájlok /home a felhasználók saját könyvtárai /lib /mnt /tmp /usr /var alapvető (megosztott, shared) rendszerkönyvtárak alkalmilag felcsatolt partíciók helye (mount) átmeneti fájlok (programok és felhasználók számára) felhasználói programok, programkönyvtárak, dokumentáció, stb. a rendszerműködés dinamikus fájljai, naplófájlok, adatbázisok lásd: diszkhasználat elemző, du, xdu, baobab, kdiskstat, filelight Fájlrendszer szabványok, változatok, trendek A fentiek alapvetően igazak, azonban ezeken belül jelentős eltérések A különböző disztribúciók eléggé változatosak FHS: Filesystem Hierarchy Standard (1994,..., 2004) UsrMove: /bin, /sbin,... a /usr megfelelő helyére (Solaris11, Fedora) UNIX fájlkezelés 8 / 24

Gyakorlatok (otthon is kipróbálható!) Fájlrendszerek kezelése: mount umount df mkfs fsck mount (Mi az a /proc?) df umount /boot mount /boot (honnan?) Hozzunk létre egy új fájlrendszer egy fájlban! dd if=/dev/zero of=filesystem.img bs=1k count=1000 losetup /dev/loop0 filesystem.img mke2fs /dev/loop0 mount /dev/loop0 /mnt Az egyik tipikus, bosszantó hibajelzés umount: /mnt: device is busy Miért nem sikerül? Valaki foglal (nyitva tart) fájlt, könyvtárat. Mit tehetünk? Megnézzük, ki mit tart fogva: lsof /mnt (esetleg remount,ro?) A UNIX könyvtárstruktúra felépítése: cd pwd ls mkdir Milyen fájlok és könyvtárak neve kezdődik ponttal? Fájlok attribútumai: ls -la ls -laz setfacl Miért van a hozzáférési jogok végén egy pont (v. plusz jel)? Fájlműveletek: cp mv Hogyan lehet átnevezni egy fájlt? UNIX fájlkezelés 9 / 24

Fájlrendszerek hangolása (gyakorlatok otthonra) Szabad hely növelése Töltsük tele a korábban létrehozott fájlrendszer-a-fájlban eszközt! cp -r /bin /mnt (ne root-ként futtassuk!) Miért 0 a szabad hely, miközben nem foglalt minden blokk? súgó: man tune2fs Fájlrendszerszintű tömörítés bekapcsolása pl.: btrfs mount opció: compress = { zlib lzo snappy } (A már létrehozott fájlrendszerre utólag is bekapcsolható.) Teljesítménynövelés A noatime opció hatása a teljesítményre A /etc/fstab fájlban módosítsuk az attribútumokat (lásd man mount) Nézzük meg a relatime opciót is! Fájlrendszerszintű tömörítés Lényegesen kisebb adatmozgatás, CPU terhelés kismértékű növelése Lásd pl.: www.phoronix.com/scan.php?page=article&item=btrfs_lzo_2638 Blokkméret beállítása (lásd tipikus fájlméretek vs. blokk címzés később) UNIX fájlkezelés 10 / 24

Programozói interfész Fájlok megnyitása (létrehozása) open() rendszerhívás és paraméterei a fájlleíró és a nyitott fájl objektum (lásd később) több folyamat által megnyitott fájl és a fork() Írás és olvasás: read(), write() Fájlok zárolása kötelező (mandatory): fcntl(), lockf() ajánlott (advisory): flock() Fájlok lezárása: close() Könyvtárak kezelése: opendir(), readdir(), rewinddir(), closedir() UNIX fájlkezelés 11 / 24

Fájlrendszerek szervezése (alapismeretek) Szervezés a felhasználói felületen fa struktúra csatlakoztatási pontok elfedés Szervezés a háttértáron blokkos tárolás fájlok leírói (diszk inode) szabad helyek kezelése Szervezés a memóriában csatlakoztatás nyilvántartása fájlok leírói (memória inode) kapcsolat a nyitott fájl objektumokhoz UNIX fájlkezelés 12 / 24

A tárolás megvalósítása A diszken elhelyezett fájlrendszer részei szuperblokk (fájlrendszer metaadatok) inode lista (fájl metaadatok) tárolt adatok szuperblokk inode lista adatblokkok Szuperblokk a fájlrendszer típusa és mérete szabad blokkok jegyzéke inode lista információk zárolási információk módosítás jelzőbit másolatok elhelyezkedése... UNIX fájlkezelés 13 / 24

Az index node (inode) hitelesítési információk (UID, GID) típus hozzáférési jogosultságok időbélyegek méret adatblokkok elhelyezkedése (címtábla) 10-15 db direkt blokkcím 1x, 2x és 3x indirekt blokkcímek 12 direkt blokk cím 12 Adatblokk (4k) Adatblokk (4k) Mekkora a maximális fájlméret? 1x indirekt blokk cím 1 4k/4 direkt blokk cím 1024 Adatblokk (4k) Adatblokk (4k) 2x indirekt blokk cím 1 4k/4 1x indirekt blokk cím 1024 4k/4 direkt blokk cím 4k/4 direkt blokk cím UNIX fájlkezelés 14 / 24

Blokkcímzés és tipikus fájlméretek Andrew S. Tanenbaum, Jorrit N. Herder, Herbert Bos: File size distribution on UNIX systems: then and now. Operating Systems Review 40(1): 100-104 (2006) UNIX fájlkezelés 15 / 24

Allokáció a diszken Szuperblokk, inode lista és adatblokkok elhelyezése a háttértáron Szempontok: teljesítmény, megbízhatóság Cilinder (blokk) csoport pl.: FFS, ext2, Allokációs elvek szuperblokk másolása minden csoportba inode lista és szabad blokkok csoportonként kezelve egy könyvtár egy csoport kis fájlok egy csoportba nagy fájlok szétkenve több csoportba új könyvtárnak egy új, kevéssé foglalt csoportot keres UNIX fájlkezelés 16 / 24

Az inode a memóriában a nyitott fájl objektumhoz kapcsolódik lásd open() diszk inode tartalma bekerül a memóriába tulajdonos, jogosultságok, metaadatok, adatblokk címtábla az aktív használat információival bővül státusz (zárolt, módosított, stb.) háttértár eszköz (fájlrendszer) azonosítója hivatkozás számláló (fájlleírók) csatlakoztatási pont adminisztrációja (Hasonlóképpen a fájlrendszer leírói is bekerülnek a csatlakoztatáskor.) UNIX fájlkezelés 17 / 24

A virtuális fájlrendszer Implementáció-független fájlrendszer absztrakció a modern unix fájlrendszerek alapja Célok: többféle fájlrendszer egységes egyidejű támogatása egységes kezelés a csatlakoztatás után (programozó IF) speciális fájlrendszerek (hálózati, processz, stb.) modulárisan bővíthető rendszer Absztrakció inode vnode fs vfs UNIX fájlkezelés 18 / 24

A vnode absztrakció adatmezők közös adatok (típus, csatlakoztatás, hivatkozás száml.) v_data: állományrendszertől függő adatok (inode) v_op: az állományrendszer metódusainak táblája virtuális függvények állományrendszertől független: vop_open, vop_read, a tényleges metódusokra helyettesítődnek be segédrutinok, makrók UNIX fájlkezelés 19 / 24

A vfs absztrakció adatmezők közös adatok (fájlrendszer típus, csatlakoztatás, hivatkozás, vfs_next) vfs_data: állományrendszertől függő adatok vfs_op: az állományrendszer metódusainak táblája virtuális függvények állományrendszertől független: vfs_mount, vfs_umount, vfs_sync, a tényleges metódusokra helyettesítődnek be segédrutinok, makrók UNIX fájlkezelés 20 / 24

A vfs és a vnode kapcsolata root vfs fájlrendszer1 vfs_next vfs_op vfs_nodecovered vfs_fstype fájlrendszer2 vfs_next vfs_op vfs_nodecovered vfs_fstype Vnode1: VROOT v_vfsp v_vfsmountedhere Vnode2: boot v_vfsp v_vfsmountedhere Vnode3: VROOT v_vfsp v_vfsmountedhere UNIX fájlkezelés 21 / 24

Alkalmazási példa: NFS egyszerűsített felépítés gép 1 gép 2 folyamat open() NFS szerver open() VFS (vfs_open) RPC VFS (vfs_open) NFS kliens nfs_open() ext2 ext2_open() UNIX fájlkezelés 22 / 24

Készítsünk saját fájlrendszert VFS alapon! Fakultatív házi feladat Aki igazán szeretné megérteni, hogyan működik a VFS. Nem nehéz... Dokumentáció http://web.archive.org/web/20071027154020/http://www.geocities.co m/ravikiran_uvs/articles/rkfs.html Ravi Kiran, a weblapot már levették, ezért a web archívumból érhető el. http://us1.samba.org/samba/ftp/cifs-cvs/ols2006-fs-tutorial-smf.odp http://ftp.samba.org/pub/samba/cifs-cvs/ols2006-fs-tutorial-smf.pdf Steve French, az IBM mérnöke, aki SAMBA fejlesztéssel foglalkozik UNIX fájlkezelés 23 / 24

Összefoglalás: UNIX fájlrendszerek alapismeretei Alapok Fájl (esetleg állomány, nem file!), fájlrendszer, API, diszk szervezés Az s5fs-től a ZFS-en át az elosztott és felhasználói fájlrendszerekig Felhasználói alapismeretek Könyvtárszervezés, speciális könyvtárak Fájlok és könyvtárak attribútumai Felhasználói eszközök (cd, pwd, ls, cp, mv, Adminisztrátori eszközök (mount, umount, df, ) Fájlrendszerek megvalósítása adatstruktúrák (inode), interfészek diszk szervezés, index címtábla, allokáció virtuális fájlrendszer felépítés, alkalmazási példa (NFS) UNIX fájlkezelés 24 / 24