SlideShare a Scribd company logo
1 of 42
Download to read offline
MALA PRIČA O
DATOTEČNIM
SUSTAVIMA
Dinko Korunić, CARNet
(Grupa za izradu CARNet Debian paketa)
Sadržaj
1. HDD sučelja i karakteristike
2. RAID uvod, performanse
3. Linux RAID i LVM
4. datotečni sustavi: IO scheduleri,
datoteke, inode, tipovi
5. Ext3, Ext4, XFS, Btrfs, NFS,
OCFS2
6. Microsoft datotečni sustavi
7. diskusija 
Dinko Korunić: Linux datotečni sustavi 2
HDD sučelja – PATA i SCSI
 samo aktualna sučelja
 word-serial:
◦ stariji, paralelno sučelje, serijska kom.
◦ IDE/ATA/PATA – Paralel ATA
 40pin te kasnije 80pin, 16/32bit podaci
◦ SCSI – Small Computer System
Interface
 LVD, HVD varijante signalizacije
 razvoj: ..., Ultra-160, Ultra-320, Ultra-640
 68pin i 80pin, do 12m LVD
Dinko Korunić: Linux datotečni sustavi 3
HDD sučelja – SATA
 bit-serial:
◦ SATA – Serial ATA
 nasljednik PATA standarda, ATA command set
 karakteristike: half-duplex, hotswap, brža
komunikacija, manje vodiča (tanji kablovi, 1m)
 inačice: 1 (1.5 Gbps), 2 (3 Gbps), 3 (6 Gbps)
 eksterni – eSATA
 max read 285MB/s, max write 250 MB/s
 NCQ – interna optimizacija redoslijeda upita
(iodepth teoretski 32, realno 31), manje
rotacija, više izvršenih naredbi, odterećenje
hosta Dinko Korunić: Linux datotečni sustavi 4
HDD sučelja – SAS
 bit-serial:
◦ SAS – Serial Attached SCSI
 karakteristike: serijska komunikacija, SCSI
command set, multipath, serverska namjena,
point-to-point linkovi prema uređajima
 sučelje: full-duplex 3 ili 6 Gbps
 čest dual-personality (kompatibilno sa SATA)
 komponente: Initiator, Target, Service Delivery
Subsystem, Expanders
 max 64k uređaja, uređaji imaju WWN
 protokoli: SSP, STP, SMP
Dinko Korunić: Linux datotečni sustavi 5
HDD sučelja – FC
 bit-serial:
◦ FC – Fibre Channel
 bakar i optika
 protokol: FCP (transportni, najčešće SCSI
makar moguć i ATM, IP)
 aktualno: 4GFC (800 Mbit), 8GFC (1600 Mbit),
16GFC (3200 Mbit), 10GFCS (2550 Mbit),
20GFC (5100 Mbit)
 topologije: FC-P2P, FC-AL (petlja/prsten), FC-
SW (FC preklopnici)
 FC HBA uređaji za poslužitelje
Dinko Korunić: Linux datotečni sustavi 6
HDD karakteristike
 disk sector:
◦ veličina: 512, 1024, novi standard 4096
◦ partition align – paziti da se fs blokovi
(4K) podudaraju sa fizičkima inače pad
performansi zbog 2x read, 2x write
◦ fdisk -H 224 -S 56 /dev/sda
◦ parted ...
 dimenzije:
◦ 0.85”, 1”, 1.8”, 2.5”, 3.5”, 5.25”
◦ enterprise: SATA 3.5”, SAS tipično 2.5”
Dinko Korunić: Linux datotečni sustavi 7
HDD karakteristike
 shock resistance:
◦ 2D i 3D akceleratori
◦ HDAPS, 3D DriveGuard, ...
◦ parkiranje glave
 spojenost/lokacija:
◦ lokalno spojeno (…) vs. eksterno (FW,
USB, eSATA, SAS, FC)
◦ NAS (Ethernet), SAN (Ethernet, FC)
Dinko Korunić: Linux datotečni sustavi 8
HDD karakteristike
 rotational speed - pomak do
željenog sektora:
◦ rotational delay - manji sa većom brzinom
◦ ograničavajuće: buka, toplina, vibracije
◦ desktop rpm: 4200, 5400, 7200
◦ enterprise rpm: 10000, 15000
 (disk-to-buffer) transfer rate:
◦ sekvencijska brzina: rpm, gustoća zap.
◦ 15krpm SAS ~ 120MB/s avg.
◦ 10krpm SAS ~ 88MB/s avg.
Dinko Korunić: Linux datotečni sustavi 9
HDD karakteristike
◦ 15 krpm vs. 10 krpm: s brojem
diskova/spindlova u šasiji se smanjuje
razlika agregatne propusnosti
 seek time - pomak do željene trake:
◦ enterprise SAS: 3-5 ms
◦ desktop SATA: 5-9 ms (mobile 5-12ms)
◦ SSD: ~0.1 ms 
 access time - vrijeme pristupa
podacima:
◦ spin-up time + seek time + rotational delay
Dinko Korunić: Linux datotečni sustavi 10
HDD karakteristike
 IOPS – I/O operacije u sekundi:
◦ alati: Iometer, IOzone, FIO
◦ varijacije: read/write, random/sequential
◦ faktori: rpm, seek time, threads, IO queue
depth, block size, ...
◦ napredna logika: TCQ, NCQ... SAN
Dinko Korunić: Linux datotečni sustavi 11
HDD approx IOPS
5400 rpm PATA 50
7200 rpm SATA 75
10000 rpm SAS 125
15000 rpm SAS 175
SSD 6000-10000
RAID uvod
 performanse i/ili pouzdanost
 polje kao jedan disk (array vs. LUN)
 HW (visoka cijena, baterija, dedicirani
cache, specijalizirani procesor,
background operacije i provjere) vs.
SW (višak resursa na hostu, jeftino?)
 hotspare – tipično jedan po šasiji
 kontroler također ima max IOPS
ograničenje!
Dinko Korunić: Linux datotečni sustavi 12
RAID nivoi
 parity:
◦ XOR – uz postojeći paritet je dovoljan bilo
koji disk da se izračuna originalna
informacija sa preostalog diska
Dinko Korunić: Linux datotečni sustavi 13
level
min # of
disks
fault
tolerance
space
efficiency
description
RAID 0 2 0 1 stripe
RAID 1 2 n-1 1/n mirror
RAID 5 3 1 1-1/n
stripe + distrib.
parity
RAID 6 4 2 1-2/n
stripe + double
distrib. parity
RAID 10 4 n-1 1/n stripe of mirrors
RAID performanse
 RAID IOPS penalitet:
◦ omjer operacija izgubljenih zbog RAID
nivoa (zaštita, paritet, broj diskova)
◦ traženo je 250 IOPS sa 50% read
opterećenjem, 50% write opterećenjem u
RAID 6. Potrebno polje mora odraditi 875
IOPS (7x 10krpm HDD ili 5x 15krpm!)
Dinko Korunić: Linux datotečni sustavi 14
level read penalty write penalty
RAID 0 1 1
RAID 1
RAID 10
1 2
RAID 5 1 4
RAID 6 1 6
RAID performanse
 savjeti:
◦ RAID 0 – kad podaci nisu bitni 
◦ RAID 1 – intenzivne operacije nad manjim
poljima, npr. MySQL, logiranje, e-mail
maildir/mailbox (oprez, IOPS!)
◦ RAID 5 – veliki statički sadržaj, npr.
Apache2 statika, home direktoriji, itd.
◦ RAID 6 – previsok penalitet za sve osim
high-end storage
◦ RAID 10 – izrazito visok IO, npr. Squid
cache direktoriji za brze WAN linkove
Dinko Korunić: Linux datotečni sustavi 15
Linux MD – uvod
 uređaj:
◦ /dev/mdN ili /dev/md/N
 standardni nivoi: 1, 4, 5, 6, 10
 pseudo: 0, linear, multipath, faulty
 128-bitni UUID; tip particije fd
 pozadinski check/resync
 alat: mdadm
 konfiguracija: /etc/mdadm.conf
 md/sync_action: check, repair, idle
Dinko Korunić: Linux datotečni sustavi 16
Linux MD – tipični zahvati
 stvaranje novog uređaja:
◦ mdadm --create /dev/md0 --level=mirror --
raid-devices=2 /dev/sda1 /dev/sdb1
◦ mdadm --create /dev/md1 --level=5 --raid-
devices=3 /dev/sda2 /dev/sdb2 /dev/sdc2
 spajanje postojećeg uređaja:
◦ mdadm --assemble /dev/md1 /dev/hda1
◦ mdadm --assemble /dev/md3 /dev/hda3
◦ mdadm --add /dev/md1 /dev/hdb1
◦ mdadm --add /dev/md3 /dev/hdb3
Dinko Korunić: Linux datotečni sustavi 17
Linux MD – tipični zahvati
 gašenje:
◦ mdadm --stop /dev/md0
 stanje svih RAID uređaja:
◦ cat /proc/mdstat
 stanje pojedinog uređaja:
◦ mdadm --detail /dev/md0
 stvaranje konfiguracije:
◦ mdadm -Es >>/etc/mdadm/mdadm.conf
◦ mkinitramfs -k all -u
Dinko Korunić: Linux datotečni sustavi 18
Linux LVM – uvod
 PV (physical volume): fizički uređaji
sa više PE (physical extents)
 VG (volume group): nakupina PV
 LV (logical volume): dodijeljeni prostor
unutar jednog VG
 mogućnosti:
◦ dinamičko dodavanje fizičkog prostora
(PV) u VG i širenje LV-ova
◦ dinamički zahvati nad prostorom
 tip particije 8e Dinko Korunić: Linux datotečni sustavi 19
Linux LVM – alati
 stvaranje:
◦ pvcreate, vgcreate, lvcreate
 brisanje:
◦ pvremove, vgremove, lvremove
 prikaz:
◦ pvdisplay, vgdisplay, lvdisplay
 aktiviranje:
◦ vgscan, lvscan
 provjera ispravnosti:
◦ pvck Dinko Korunić: Linux datotečni sustavi 20
Linux LVM – alati
 preimenovanje:
◦ vgrename, lvrename
 proširenje:
◦ vgextend, lvextend
 skupljanje:
◦ vgreduce, lvreduce
 promjena veličine (alternativa):
◦ vgresize, lvresize
 i razni drugi...
Dinko Korunić: Linux datotečni sustavi 21
Datotečni sustavi – IO sched
 disk scheduler:
◦ optimize (reorder, delay, merge), fairness
 tipovi:
◦ CFQ – completely fair queueing, za
multiuser poslužitelje i desktop
◦ deadline – SCAN, 2x read + 1x write,
izbjegava starvation, deadline with expiry
◦ noop – nema spajanja
◦ anticipatory – predviđanje + deadline
Dinko Korunić: Linux datotečni sustavi 22
Datotečni sustavi – IO sched
 podešavanje:
◦ kernel boot: elevator=deadline
◦ sysfs: echo deadline >
/sys/block/sda/queue/scheduler
 deadline:
◦ za cluster fs-ove i high IO servere
◦ kad je potrebna garancija propusnosti
 CFQ:
◦ garancija “jednakosti” (disk-time)
 noop: za Xen virtualke i SSD-oveDinko Korunić: Linux datotečni sustavi 23
Datotečni sustavi – datoteke
 na Unix sustavu je sve datoteka, a
ako nije datoteka onda je proces!
 tipovi datoteka:
◦ regular file, directory, special file, link,
socket, named pipe, block device
 particioniranje
◦ data (tip 83): root (/), /boot, /var, var/log,
/home, /usr, /opt
◦ swap (tip 82): u praksi do veličine RAM-a
◦ stroga Unix hijerarhija!
Dinko Korunić: Linux datotečni sustavi 24
Datotečni sustavi – inode
 spremište najvažnijih informacija:
◦ veličina datoteke (bytes)
◦ koji uređaj sadrži datoteku (device ID)
◦ vlasništvo (UID, GID)
◦ tip datoteke (regular, directory, ...)
◦ dozvole (ACL) i dodatni atributi
◦ vrijeme stvaranja (ctime), zadnjeg čitanja
(atime) i promjene (mtime)
◦ broj linkova (soft, hard) na ovu datoteku
◦ pokazivač do stvarne lokacije datoteke
Dinko Korunić: Linux datotečni sustavi 25
Datotečni sustavi – inode
 važno!
◦ ime datoteke nije nužno jedinstveno
◦ brisanje čeka dok svi procesi koji mu
pristupaju nisu završili
◦ inode broj ostaje isti dokle god se
datoteka premješta po istom fs-u
◦ nije moguće hardlinkati direktorije
◦ broj inodeova ograničen pri formatiranju...
 pathname to inode: find -inum
 dinamički rast: JFS, ext4, XFS
Dinko Korunić: Linux datotečni sustavi 26
Datotečni sustavi – upotreba
 mount
◦ povezivanje uređaja sa direktorijem
◦ mount point: /media, /mnt, ...
 fstab
 fs alati:
◦ mkfs, fsck, debugfs, tunefs, ...
Dinko Korunić: Linux datotečni sustavi 27
file
system
mount
point
type options dump pass
UUID=4f7
e1a43-
97f0-4146-
ae21-
f850ebcf1
e96
/ ext4 defaults,usrjquota=aq
uota.user,grpjquota=a
quota.group,jqfmt=vfs
v0,noatime,nodelalloc
0 1
Datotečni sustavi – mount
 atime update: relatime, noatime
 tipično: defaults,ro,rw
 ograničenja: nosuid, noexec, nodev
 dnevnik: data=journal, data=ordered,
data=writeback
 razno: discard, nodelalloc, ...
 quota: quota, usrquota, grpquota,
usrjquota=aquota.user,
grpjquota=aquota.group, jqfmt=vfsv0
Dinko Korunić: Linux datotečni sustavi 28
Datotečni sustavi – tipovi
 disk:
◦ Ext2, Ext3, Ext4, Btrfs, ISO9660, ZFS,
ReiserFS, swapfs, UDF, XFS, JFS, ...
 flash:
◦ JFFS, JFFS2, YAFFS, LogFS
 tape
 database
 transactional:
◦ podverzija journaling – Ext3, Ext4, XFS, ...
Dinko Korunić: Linux datotečni sustavi 29
Datotečni sustavi – tipovi
 network:
◦ NFS, AFS, SMB/CIFS, SSHFS
 shared disk (cluster):
◦ GFS, GFS2, OCFS, OCFS2, GPFS
 specijalni:
◦ tmpfs, sysfs, procfs
Dinko Korunić: Linux datotečni sustavi 30
Datotečni sustavi – Ext3
 karakteristike:
◦ in-place nadogradnja sa ext2
◦ journal + Htree za velike direktorije
◦ 4KiB, 2TiB max filesize, 16TiB fs max
◦ 8KiB, 2TiB max filesize, 32TiB fs max
◦ jedan od najsporijih fs-ova (fsck 4TB ~ 2h)
 alati:
◦ e2fsprogs: e2fsck, mke2fs, itd.
◦ jednostavna struktura, mogućnost dobrog
oporavka (e2fsck, Testdisk, findsuper)
Dinko Korunić: Linux datotečni sustavi 31
Datotečni sustavi – Ext3
 nivoi dnevnika:
◦ journal – sve u dnevnik pa tek na disk
◦ ordered – metadata u dnevnik pa na disk,
postoji garancija spremanja na disk
◦ writerback – samo metadata u dnevnik
 mane:
◦ sporost!, nema online defragmentacija
(Shake, defrag), “nemoguće” vraćanje
obrisanih datoteka, nema transparentne
kompresije, nema snapshota, nema
journal checksumminga, 32000 subdirsDinko Korunić: Linux datotečni sustavi 32
Datotečni sustavi – Ext4
 dio osnovne Linux jezgre od kraja
2008 – stabilna verzija od 2.6.28
 prednosti:
◦ fs do 1EiB, file max do 16TiB
◦ extents - nakupine blokova umjesto
indirektnog mapiranja blok-datoteka
◦ kompatibilnost; alokacija više blokova
odjednom; odgođena alokacija
◦ vrlo brzi fsck (2-20x ubrzanje!)
◦ journal checksumming; online defrag,
SSD podrška, ... Dinko Korunić: Linux datotečni sustavi 33
Datotečni sustavi – Ext4
 alati: e2fsprogs
 offline konverzija (i ne potpuna...):
◦ tune2fs -O extents,uninit_bg,dir_index
/dev/disk
◦ fsck -yfDC0 /dev/disk
 također potrebno:
◦ Grub2, quota (Ext4-compatible)
◦ sto noviji kernel (npr. 2.6.32 ili noviji)
 Debian Lenny – standardno nije Ext4
kompatibilan  Dinko Korunić: Linux datotečni sustavi 34
Datotečni sustavi – XFS
 originalno sa IRIX sustava
 prednosti:
◦ 64-bit, fs do 16EiB, file max do 8EiB
◦ garantirana propusnost (streaming)
◦ journaling, allocation groups, striped
allocation, extent based allocation,
variable block sizes, delayed allocation,
sparse files, direct IO, DMAPI, extended
ACL, snapshots(*), online
defragmentation, online resize, atomic
disk quota, dump/restore, …
Dinko Korunić: Linux datotečni sustavi 35
Datotečni sustavi – XFS
 alati:
◦ xfs_check – provjera konzistencije, nema
gornje granice potrošnje memorije!
◦ xfs_repair – popravlja greške
◦ xfs_freeze – suspendira pisanje radi
stvaranja snapshota (LVM...)
◦ xfs_admin – promjene parametara
pojedinog fs-a
◦ xfs_growfs – širenje pojedinog fs-a
tijekom rada (online)
Dinko Korunić: Linux datotečni sustavi 36
Datotečni sustavi – Btrfs
 CoW fs, Oracle proizvod, fs nove
generacije... ali još nije dovršen 
 enterprise namjena! (ZFS alternativa)
◦ pooling, snapshots, checksums, multi-
device spanning
 implementirano:
◦ online grow/shrink, online block device
add/remove, online defrag, online
balancing, transparent compression,
subvolumes, snapshots, file cloning
Dinko Korunić: Linux datotečni sustavi 37
Datotečni sustavi – Btrfs
 implementirano:
◦ object-level striping/mirroring (RAID 0,
RAID1, RAID10), data & metadata
checksums, in-place conversion
(ext3/ext4), SSD podrška, ...
 upotreba:
◦ mkfs.btrfs
◦ btrfsctl –a ili btrfs device scan
◦ btrfsck
 multi-device – mount sa svih uređaja
Dinko Korunić: Linux datotečni sustavi 38
Datotečni sustavi – NFS
 brojne verzije protokola: v1 - v4
 brojni problemi:
◦ sigurnost i udaljene ovlasti (root squash)
◦ performanse TCP vs. UDP
◦ locking
◦ asinhroni rad
◦ centraliziranost rješenja
 implementacije:
◦ kernel (v3, v4) vs. userspace (UNFSv3)
◦ userspace – rješenje za OpenVZ
Dinko Korunić: Linux datotečni sustavi 39
Datotečni sustavi – OCFS2
 alternativa GFS/GFS2, integralni dio
Oracle RDBMS, dio std. Linux jezgre
 karakteristike:
◦ shared-disk, multi-node, cache-coherent,
parallel IO, journalling, arch/endian neutral
◦ distribuirano zaključavanje (flock(),
integrirani DLM), interni
heartbeating/quorum/fencing
 moguće koristiti:
◦ za virtualizaciju, baze podataka, spremišta
statičkih datoteka, ...Dinko Korunić: Linux datotečni sustavi 40
Datotečni sustavi – OCFS2
 kod deriviran iz ext3, jednostavan i
efikasan
 konfiguracija:
◦ /etc/ocfs2/cluster.conf
 alati:
◦ mkfs.ocfs2
◦ tunefs.ocfs2
◦ fsck.ocfs2
◦ o2cb_ctl
◦ o2image
Dinko Korunić: Linux datotečni sustavi 41
Datotečni sustavi – MS svijet
 NTFS
◦ FUSE NTFS-3G driver, puna rw podrška
◦ ntfsprogs
◦ najčešće uzrokuje povišeno opterećenje
 FAT12, FAT16, FAT32
◦ msdos (8.3), vfat (LFN), umsdos (LFN +
Unix semantika)
 FAT64/exFAT
◦ beta FUSE driver
Dinko Korunić: Linux datotečni sustavi 42

More Related Content

Similar to CUC2010-Dinko

DORS2010: Vijetnamski Linux cluster
DORS2010: Vijetnamski Linux clusterDORS2010: Vijetnamski Linux cluster
DORS2010: Vijetnamski Linux clusterDinko Korunic
 
Unutarnji dijelovi računala 1
Unutarnji dijelovi računala 1Unutarnji dijelovi računala 1
Unutarnji dijelovi računala 1LovroBevanda
 
DORS2011: MySQL Crash Recovery
DORS2011: MySQL Crash RecoveryDORS2011: MySQL Crash Recovery
DORS2011: MySQL Crash RecoveryDinko Korunic
 
ITshowoff Zagreb: Skalabilna web rjesenja
ITshowoff Zagreb: Skalabilna web rjesenjaITshowoff Zagreb: Skalabilna web rjesenja
ITshowoff Zagreb: Skalabilna web rjesenjaDinko Korunic
 
Zahtjevno računalstvo u oblaku HTC Cloud.pptx
Zahtjevno računalstvo u oblaku HTC Cloud.pptxZahtjevno računalstvo u oblaku HTC Cloud.pptx
Zahtjevno računalstvo u oblaku HTC Cloud.pptxsindikatpolicijehnzk
 
Seminar Grafičke kartice- Prezentacija.pptx
Seminar Grafičke kartice- Prezentacija.pptxSeminar Grafičke kartice- Prezentacija.pptx
Seminar Grafičke kartice- Prezentacija.pptxNadanBazdulj1
 
Prezentacija: Winows 7 migracija na KBCSM-u
Prezentacija: Winows 7 migracija na KBCSM-uPrezentacija: Winows 7 migracija na KBCSM-u
Prezentacija: Winows 7 migracija na KBCSM-uTomislav Horvatek
 
Ivan Guštin - Iskustva u optimizaciji IT Sustava primjenom Opensource rjesenj...
Ivan Guštin - Iskustva u optimizaciji IT Sustava primjenom Opensource rjesenj...Ivan Guštin - Iskustva u optimizaciji IT Sustava primjenom Opensource rjesenj...
Ivan Guštin - Iskustva u optimizaciji IT Sustava primjenom Opensource rjesenj...IT Showoff
 

Similar to CUC2010-Dinko (16)

DORS2010: Vijetnamski Linux cluster
DORS2010: Vijetnamski Linux clusterDORS2010: Vijetnamski Linux cluster
DORS2010: Vijetnamski Linux cluster
 
DORS2010-Dinko
DORS2010-DinkoDORS2010-Dinko
DORS2010-Dinko
 
Dijelovi racunala
Dijelovi racunalaDijelovi racunala
Dijelovi racunala
 
CUC2011-Dinko
CUC2011-DinkoCUC2011-Dinko
CUC2011-Dinko
 
Unutarnji dijelovi računala 1
Unutarnji dijelovi računala 1Unutarnji dijelovi računala 1
Unutarnji dijelovi računala 1
 
DORS2011-Dinko
DORS2011-DinkoDORS2011-Dinko
DORS2011-Dinko
 
DORS2011: MySQL Crash Recovery
DORS2011: MySQL Crash RecoveryDORS2011: MySQL Crash Recovery
DORS2011: MySQL Crash Recovery
 
ITshowoff Zagreb: Skalabilna web rjesenja
ITshowoff Zagreb: Skalabilna web rjesenjaITshowoff Zagreb: Skalabilna web rjesenja
ITshowoff Zagreb: Skalabilna web rjesenja
 
ITshowoff-Dinko
ITshowoff-DinkoITshowoff-Dinko
ITshowoff-Dinko
 
Zahtjevno računalstvo u oblaku HTC Cloud.pptx
Zahtjevno računalstvo u oblaku HTC Cloud.pptxZahtjevno računalstvo u oblaku HTC Cloud.pptx
Zahtjevno računalstvo u oblaku HTC Cloud.pptx
 
Seminar Grafičke kartice- Prezentacija.pptx
Seminar Grafičke kartice- Prezentacija.pptxSeminar Grafičke kartice- Prezentacija.pptx
Seminar Grafičke kartice- Prezentacija.pptx
 
CUC2009
CUC2009CUC2009
CUC2009
 
Prezentacija: Winows 7 migracija na KBCSM-u
Prezentacija: Winows 7 migracija na KBCSM-uPrezentacija: Winows 7 migracija na KBCSM-u
Prezentacija: Winows 7 migracija na KBCSM-u
 
Java card (2003)
Java card (2003)Java card (2003)
Java card (2003)
 
Ivan Guštin - Iskustva u optimizaciji IT Sustava primjenom Opensource rjesenj...
Ivan Guštin - Iskustva u optimizaciji IT Sustava primjenom Opensource rjesenj...Ivan Guštin - Iskustva u optimizaciji IT Sustava primjenom Opensource rjesenj...
Ivan Guštin - Iskustva u optimizaciji IT Sustava primjenom Opensource rjesenj...
 
Windows Server
Windows ServerWindows Server
Windows Server
 

More from Dinko Korunic

CARNet-SNMP-ZenOSS-Radionica
CARNet-SNMP-ZenOSS-RadionicaCARNet-SNMP-ZenOSS-Radionica
CARNet-SNMP-ZenOSS-RadionicaDinko Korunic
 
VSS2014-kriminalitet
VSS2014-kriminalitetVSS2014-kriminalitet
VSS2014-kriminalitetDinko Korunic
 
VSS predavanje: Oblici racunalnog kriminaliteta
VSS predavanje: Oblici racunalnog kriminalitetaVSS predavanje: Oblici racunalnog kriminaliteta
VSS predavanje: Oblici racunalnog kriminalitetaDinko Korunic
 
FSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacijaFSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacijaDinko Korunic
 

More from Dinko Korunic (8)

Tru64-Mreza
Tru64-MrezaTru64-Mreza
Tru64-Mreza
 
CARNet-SNMP-ZenOSS-Radionica
CARNet-SNMP-ZenOSS-RadionicaCARNet-SNMP-ZenOSS-Radionica
CARNet-SNMP-ZenOSS-Radionica
 
FSEC2011-Dinko
FSEC2011-DinkoFSEC2011-Dinko
FSEC2011-Dinko
 
VSS2014-kriminalitet
VSS2014-kriminalitetVSS2014-kriminalitet
VSS2014-kriminalitet
 
MTA-testiranje
MTA-testiranjeMTA-testiranje
MTA-testiranje
 
DNS-prirucnik
DNS-prirucnikDNS-prirucnik
DNS-prirucnik
 
VSS predavanje: Oblici racunalnog kriminaliteta
VSS predavanje: Oblici racunalnog kriminalitetaVSS predavanje: Oblici racunalnog kriminaliteta
VSS predavanje: Oblici racunalnog kriminaliteta
 
FSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacijaFSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacija
 

CUC2010-Dinko

  • 1. MALA PRIČA O DATOTEČNIM SUSTAVIMA Dinko Korunić, CARNet (Grupa za izradu CARNet Debian paketa)
  • 2. Sadržaj 1. HDD sučelja i karakteristike 2. RAID uvod, performanse 3. Linux RAID i LVM 4. datotečni sustavi: IO scheduleri, datoteke, inode, tipovi 5. Ext3, Ext4, XFS, Btrfs, NFS, OCFS2 6. Microsoft datotečni sustavi 7. diskusija  Dinko Korunić: Linux datotečni sustavi 2
  • 3. HDD sučelja – PATA i SCSI  samo aktualna sučelja  word-serial: ◦ stariji, paralelno sučelje, serijska kom. ◦ IDE/ATA/PATA – Paralel ATA  40pin te kasnije 80pin, 16/32bit podaci ◦ SCSI – Small Computer System Interface  LVD, HVD varijante signalizacije  razvoj: ..., Ultra-160, Ultra-320, Ultra-640  68pin i 80pin, do 12m LVD Dinko Korunić: Linux datotečni sustavi 3
  • 4. HDD sučelja – SATA  bit-serial: ◦ SATA – Serial ATA  nasljednik PATA standarda, ATA command set  karakteristike: half-duplex, hotswap, brža komunikacija, manje vodiča (tanji kablovi, 1m)  inačice: 1 (1.5 Gbps), 2 (3 Gbps), 3 (6 Gbps)  eksterni – eSATA  max read 285MB/s, max write 250 MB/s  NCQ – interna optimizacija redoslijeda upita (iodepth teoretski 32, realno 31), manje rotacija, više izvršenih naredbi, odterećenje hosta Dinko Korunić: Linux datotečni sustavi 4
  • 5. HDD sučelja – SAS  bit-serial: ◦ SAS – Serial Attached SCSI  karakteristike: serijska komunikacija, SCSI command set, multipath, serverska namjena, point-to-point linkovi prema uređajima  sučelje: full-duplex 3 ili 6 Gbps  čest dual-personality (kompatibilno sa SATA)  komponente: Initiator, Target, Service Delivery Subsystem, Expanders  max 64k uređaja, uređaji imaju WWN  protokoli: SSP, STP, SMP Dinko Korunić: Linux datotečni sustavi 5
  • 6. HDD sučelja – FC  bit-serial: ◦ FC – Fibre Channel  bakar i optika  protokol: FCP (transportni, najčešće SCSI makar moguć i ATM, IP)  aktualno: 4GFC (800 Mbit), 8GFC (1600 Mbit), 16GFC (3200 Mbit), 10GFCS (2550 Mbit), 20GFC (5100 Mbit)  topologije: FC-P2P, FC-AL (petlja/prsten), FC- SW (FC preklopnici)  FC HBA uređaji za poslužitelje Dinko Korunić: Linux datotečni sustavi 6
  • 7. HDD karakteristike  disk sector: ◦ veličina: 512, 1024, novi standard 4096 ◦ partition align – paziti da se fs blokovi (4K) podudaraju sa fizičkima inače pad performansi zbog 2x read, 2x write ◦ fdisk -H 224 -S 56 /dev/sda ◦ parted ...  dimenzije: ◦ 0.85”, 1”, 1.8”, 2.5”, 3.5”, 5.25” ◦ enterprise: SATA 3.5”, SAS tipično 2.5” Dinko Korunić: Linux datotečni sustavi 7
  • 8. HDD karakteristike  shock resistance: ◦ 2D i 3D akceleratori ◦ HDAPS, 3D DriveGuard, ... ◦ parkiranje glave  spojenost/lokacija: ◦ lokalno spojeno (…) vs. eksterno (FW, USB, eSATA, SAS, FC) ◦ NAS (Ethernet), SAN (Ethernet, FC) Dinko Korunić: Linux datotečni sustavi 8
  • 9. HDD karakteristike  rotational speed - pomak do željenog sektora: ◦ rotational delay - manji sa većom brzinom ◦ ograničavajuće: buka, toplina, vibracije ◦ desktop rpm: 4200, 5400, 7200 ◦ enterprise rpm: 10000, 15000  (disk-to-buffer) transfer rate: ◦ sekvencijska brzina: rpm, gustoća zap. ◦ 15krpm SAS ~ 120MB/s avg. ◦ 10krpm SAS ~ 88MB/s avg. Dinko Korunić: Linux datotečni sustavi 9
  • 10. HDD karakteristike ◦ 15 krpm vs. 10 krpm: s brojem diskova/spindlova u šasiji se smanjuje razlika agregatne propusnosti  seek time - pomak do željene trake: ◦ enterprise SAS: 3-5 ms ◦ desktop SATA: 5-9 ms (mobile 5-12ms) ◦ SSD: ~0.1 ms   access time - vrijeme pristupa podacima: ◦ spin-up time + seek time + rotational delay Dinko Korunić: Linux datotečni sustavi 10
  • 11. HDD karakteristike  IOPS – I/O operacije u sekundi: ◦ alati: Iometer, IOzone, FIO ◦ varijacije: read/write, random/sequential ◦ faktori: rpm, seek time, threads, IO queue depth, block size, ... ◦ napredna logika: TCQ, NCQ... SAN Dinko Korunić: Linux datotečni sustavi 11 HDD approx IOPS 5400 rpm PATA 50 7200 rpm SATA 75 10000 rpm SAS 125 15000 rpm SAS 175 SSD 6000-10000
  • 12. RAID uvod  performanse i/ili pouzdanost  polje kao jedan disk (array vs. LUN)  HW (visoka cijena, baterija, dedicirani cache, specijalizirani procesor, background operacije i provjere) vs. SW (višak resursa na hostu, jeftino?)  hotspare – tipično jedan po šasiji  kontroler također ima max IOPS ograničenje! Dinko Korunić: Linux datotečni sustavi 12
  • 13. RAID nivoi  parity: ◦ XOR – uz postojeći paritet je dovoljan bilo koji disk da se izračuna originalna informacija sa preostalog diska Dinko Korunić: Linux datotečni sustavi 13 level min # of disks fault tolerance space efficiency description RAID 0 2 0 1 stripe RAID 1 2 n-1 1/n mirror RAID 5 3 1 1-1/n stripe + distrib. parity RAID 6 4 2 1-2/n stripe + double distrib. parity RAID 10 4 n-1 1/n stripe of mirrors
  • 14. RAID performanse  RAID IOPS penalitet: ◦ omjer operacija izgubljenih zbog RAID nivoa (zaštita, paritet, broj diskova) ◦ traženo je 250 IOPS sa 50% read opterećenjem, 50% write opterećenjem u RAID 6. Potrebno polje mora odraditi 875 IOPS (7x 10krpm HDD ili 5x 15krpm!) Dinko Korunić: Linux datotečni sustavi 14 level read penalty write penalty RAID 0 1 1 RAID 1 RAID 10 1 2 RAID 5 1 4 RAID 6 1 6
  • 15. RAID performanse  savjeti: ◦ RAID 0 – kad podaci nisu bitni  ◦ RAID 1 – intenzivne operacije nad manjim poljima, npr. MySQL, logiranje, e-mail maildir/mailbox (oprez, IOPS!) ◦ RAID 5 – veliki statički sadržaj, npr. Apache2 statika, home direktoriji, itd. ◦ RAID 6 – previsok penalitet za sve osim high-end storage ◦ RAID 10 – izrazito visok IO, npr. Squid cache direktoriji za brze WAN linkove Dinko Korunić: Linux datotečni sustavi 15
  • 16. Linux MD – uvod  uređaj: ◦ /dev/mdN ili /dev/md/N  standardni nivoi: 1, 4, 5, 6, 10  pseudo: 0, linear, multipath, faulty  128-bitni UUID; tip particije fd  pozadinski check/resync  alat: mdadm  konfiguracija: /etc/mdadm.conf  md/sync_action: check, repair, idle Dinko Korunić: Linux datotečni sustavi 16
  • 17. Linux MD – tipični zahvati  stvaranje novog uređaja: ◦ mdadm --create /dev/md0 --level=mirror -- raid-devices=2 /dev/sda1 /dev/sdb1 ◦ mdadm --create /dev/md1 --level=5 --raid- devices=3 /dev/sda2 /dev/sdb2 /dev/sdc2  spajanje postojećeg uređaja: ◦ mdadm --assemble /dev/md1 /dev/hda1 ◦ mdadm --assemble /dev/md3 /dev/hda3 ◦ mdadm --add /dev/md1 /dev/hdb1 ◦ mdadm --add /dev/md3 /dev/hdb3 Dinko Korunić: Linux datotečni sustavi 17
  • 18. Linux MD – tipični zahvati  gašenje: ◦ mdadm --stop /dev/md0  stanje svih RAID uređaja: ◦ cat /proc/mdstat  stanje pojedinog uređaja: ◦ mdadm --detail /dev/md0  stvaranje konfiguracije: ◦ mdadm -Es >>/etc/mdadm/mdadm.conf ◦ mkinitramfs -k all -u Dinko Korunić: Linux datotečni sustavi 18
  • 19. Linux LVM – uvod  PV (physical volume): fizički uređaji sa više PE (physical extents)  VG (volume group): nakupina PV  LV (logical volume): dodijeljeni prostor unutar jednog VG  mogućnosti: ◦ dinamičko dodavanje fizičkog prostora (PV) u VG i širenje LV-ova ◦ dinamički zahvati nad prostorom  tip particije 8e Dinko Korunić: Linux datotečni sustavi 19
  • 20. Linux LVM – alati  stvaranje: ◦ pvcreate, vgcreate, lvcreate  brisanje: ◦ pvremove, vgremove, lvremove  prikaz: ◦ pvdisplay, vgdisplay, lvdisplay  aktiviranje: ◦ vgscan, lvscan  provjera ispravnosti: ◦ pvck Dinko Korunić: Linux datotečni sustavi 20
  • 21. Linux LVM – alati  preimenovanje: ◦ vgrename, lvrename  proširenje: ◦ vgextend, lvextend  skupljanje: ◦ vgreduce, lvreduce  promjena veličine (alternativa): ◦ vgresize, lvresize  i razni drugi... Dinko Korunić: Linux datotečni sustavi 21
  • 22. Datotečni sustavi – IO sched  disk scheduler: ◦ optimize (reorder, delay, merge), fairness  tipovi: ◦ CFQ – completely fair queueing, za multiuser poslužitelje i desktop ◦ deadline – SCAN, 2x read + 1x write, izbjegava starvation, deadline with expiry ◦ noop – nema spajanja ◦ anticipatory – predviđanje + deadline Dinko Korunić: Linux datotečni sustavi 22
  • 23. Datotečni sustavi – IO sched  podešavanje: ◦ kernel boot: elevator=deadline ◦ sysfs: echo deadline > /sys/block/sda/queue/scheduler  deadline: ◦ za cluster fs-ove i high IO servere ◦ kad je potrebna garancija propusnosti  CFQ: ◦ garancija “jednakosti” (disk-time)  noop: za Xen virtualke i SSD-oveDinko Korunić: Linux datotečni sustavi 23
  • 24. Datotečni sustavi – datoteke  na Unix sustavu je sve datoteka, a ako nije datoteka onda je proces!  tipovi datoteka: ◦ regular file, directory, special file, link, socket, named pipe, block device  particioniranje ◦ data (tip 83): root (/), /boot, /var, var/log, /home, /usr, /opt ◦ swap (tip 82): u praksi do veličine RAM-a ◦ stroga Unix hijerarhija! Dinko Korunić: Linux datotečni sustavi 24
  • 25. Datotečni sustavi – inode  spremište najvažnijih informacija: ◦ veličina datoteke (bytes) ◦ koji uređaj sadrži datoteku (device ID) ◦ vlasništvo (UID, GID) ◦ tip datoteke (regular, directory, ...) ◦ dozvole (ACL) i dodatni atributi ◦ vrijeme stvaranja (ctime), zadnjeg čitanja (atime) i promjene (mtime) ◦ broj linkova (soft, hard) na ovu datoteku ◦ pokazivač do stvarne lokacije datoteke Dinko Korunić: Linux datotečni sustavi 25
  • 26. Datotečni sustavi – inode  važno! ◦ ime datoteke nije nužno jedinstveno ◦ brisanje čeka dok svi procesi koji mu pristupaju nisu završili ◦ inode broj ostaje isti dokle god se datoteka premješta po istom fs-u ◦ nije moguće hardlinkati direktorije ◦ broj inodeova ograničen pri formatiranju...  pathname to inode: find -inum  dinamički rast: JFS, ext4, XFS Dinko Korunić: Linux datotečni sustavi 26
  • 27. Datotečni sustavi – upotreba  mount ◦ povezivanje uređaja sa direktorijem ◦ mount point: /media, /mnt, ...  fstab  fs alati: ◦ mkfs, fsck, debugfs, tunefs, ... Dinko Korunić: Linux datotečni sustavi 27 file system mount point type options dump pass UUID=4f7 e1a43- 97f0-4146- ae21- f850ebcf1 e96 / ext4 defaults,usrjquota=aq uota.user,grpjquota=a quota.group,jqfmt=vfs v0,noatime,nodelalloc 0 1
  • 28. Datotečni sustavi – mount  atime update: relatime, noatime  tipično: defaults,ro,rw  ograničenja: nosuid, noexec, nodev  dnevnik: data=journal, data=ordered, data=writeback  razno: discard, nodelalloc, ...  quota: quota, usrquota, grpquota, usrjquota=aquota.user, grpjquota=aquota.group, jqfmt=vfsv0 Dinko Korunić: Linux datotečni sustavi 28
  • 29. Datotečni sustavi – tipovi  disk: ◦ Ext2, Ext3, Ext4, Btrfs, ISO9660, ZFS, ReiserFS, swapfs, UDF, XFS, JFS, ...  flash: ◦ JFFS, JFFS2, YAFFS, LogFS  tape  database  transactional: ◦ podverzija journaling – Ext3, Ext4, XFS, ... Dinko Korunić: Linux datotečni sustavi 29
  • 30. Datotečni sustavi – tipovi  network: ◦ NFS, AFS, SMB/CIFS, SSHFS  shared disk (cluster): ◦ GFS, GFS2, OCFS, OCFS2, GPFS  specijalni: ◦ tmpfs, sysfs, procfs Dinko Korunić: Linux datotečni sustavi 30
  • 31. Datotečni sustavi – Ext3  karakteristike: ◦ in-place nadogradnja sa ext2 ◦ journal + Htree za velike direktorije ◦ 4KiB, 2TiB max filesize, 16TiB fs max ◦ 8KiB, 2TiB max filesize, 32TiB fs max ◦ jedan od najsporijih fs-ova (fsck 4TB ~ 2h)  alati: ◦ e2fsprogs: e2fsck, mke2fs, itd. ◦ jednostavna struktura, mogućnost dobrog oporavka (e2fsck, Testdisk, findsuper) Dinko Korunić: Linux datotečni sustavi 31
  • 32. Datotečni sustavi – Ext3  nivoi dnevnika: ◦ journal – sve u dnevnik pa tek na disk ◦ ordered – metadata u dnevnik pa na disk, postoji garancija spremanja na disk ◦ writerback – samo metadata u dnevnik  mane: ◦ sporost!, nema online defragmentacija (Shake, defrag), “nemoguće” vraćanje obrisanih datoteka, nema transparentne kompresije, nema snapshota, nema journal checksumminga, 32000 subdirsDinko Korunić: Linux datotečni sustavi 32
  • 33. Datotečni sustavi – Ext4  dio osnovne Linux jezgre od kraja 2008 – stabilna verzija od 2.6.28  prednosti: ◦ fs do 1EiB, file max do 16TiB ◦ extents - nakupine blokova umjesto indirektnog mapiranja blok-datoteka ◦ kompatibilnost; alokacija više blokova odjednom; odgođena alokacija ◦ vrlo brzi fsck (2-20x ubrzanje!) ◦ journal checksumming; online defrag, SSD podrška, ... Dinko Korunić: Linux datotečni sustavi 33
  • 34. Datotečni sustavi – Ext4  alati: e2fsprogs  offline konverzija (i ne potpuna...): ◦ tune2fs -O extents,uninit_bg,dir_index /dev/disk ◦ fsck -yfDC0 /dev/disk  također potrebno: ◦ Grub2, quota (Ext4-compatible) ◦ sto noviji kernel (npr. 2.6.32 ili noviji)  Debian Lenny – standardno nije Ext4 kompatibilan  Dinko Korunić: Linux datotečni sustavi 34
  • 35. Datotečni sustavi – XFS  originalno sa IRIX sustava  prednosti: ◦ 64-bit, fs do 16EiB, file max do 8EiB ◦ garantirana propusnost (streaming) ◦ journaling, allocation groups, striped allocation, extent based allocation, variable block sizes, delayed allocation, sparse files, direct IO, DMAPI, extended ACL, snapshots(*), online defragmentation, online resize, atomic disk quota, dump/restore, … Dinko Korunić: Linux datotečni sustavi 35
  • 36. Datotečni sustavi – XFS  alati: ◦ xfs_check – provjera konzistencije, nema gornje granice potrošnje memorije! ◦ xfs_repair – popravlja greške ◦ xfs_freeze – suspendira pisanje radi stvaranja snapshota (LVM...) ◦ xfs_admin – promjene parametara pojedinog fs-a ◦ xfs_growfs – širenje pojedinog fs-a tijekom rada (online) Dinko Korunić: Linux datotečni sustavi 36
  • 37. Datotečni sustavi – Btrfs  CoW fs, Oracle proizvod, fs nove generacije... ali još nije dovršen   enterprise namjena! (ZFS alternativa) ◦ pooling, snapshots, checksums, multi- device spanning  implementirano: ◦ online grow/shrink, online block device add/remove, online defrag, online balancing, transparent compression, subvolumes, snapshots, file cloning Dinko Korunić: Linux datotečni sustavi 37
  • 38. Datotečni sustavi – Btrfs  implementirano: ◦ object-level striping/mirroring (RAID 0, RAID1, RAID10), data & metadata checksums, in-place conversion (ext3/ext4), SSD podrška, ...  upotreba: ◦ mkfs.btrfs ◦ btrfsctl –a ili btrfs device scan ◦ btrfsck  multi-device – mount sa svih uređaja Dinko Korunić: Linux datotečni sustavi 38
  • 39. Datotečni sustavi – NFS  brojne verzije protokola: v1 - v4  brojni problemi: ◦ sigurnost i udaljene ovlasti (root squash) ◦ performanse TCP vs. UDP ◦ locking ◦ asinhroni rad ◦ centraliziranost rješenja  implementacije: ◦ kernel (v3, v4) vs. userspace (UNFSv3) ◦ userspace – rješenje za OpenVZ Dinko Korunić: Linux datotečni sustavi 39
  • 40. Datotečni sustavi – OCFS2  alternativa GFS/GFS2, integralni dio Oracle RDBMS, dio std. Linux jezgre  karakteristike: ◦ shared-disk, multi-node, cache-coherent, parallel IO, journalling, arch/endian neutral ◦ distribuirano zaključavanje (flock(), integrirani DLM), interni heartbeating/quorum/fencing  moguće koristiti: ◦ za virtualizaciju, baze podataka, spremišta statičkih datoteka, ...Dinko Korunić: Linux datotečni sustavi 40
  • 41. Datotečni sustavi – OCFS2  kod deriviran iz ext3, jednostavan i efikasan  konfiguracija: ◦ /etc/ocfs2/cluster.conf  alati: ◦ mkfs.ocfs2 ◦ tunefs.ocfs2 ◦ fsck.ocfs2 ◦ o2cb_ctl ◦ o2image Dinko Korunić: Linux datotečni sustavi 41
  • 42. Datotečni sustavi – MS svijet  NTFS ◦ FUSE NTFS-3G driver, puna rw podrška ◦ ntfsprogs ◦ najčešće uzrokuje povišeno opterećenje  FAT12, FAT16, FAT32 ◦ msdos (8.3), vfat (LFN), umsdos (LFN + Unix semantika)  FAT64/exFAT ◦ beta FUSE driver Dinko Korunić: Linux datotečni sustavi 42