Správa disků (storage) v Linuxu Milan Brož Software Engineer / Kernel Storage / Red Hat mbroz@redhat.com
Storage v Linuxu... co je to blokové zařízení přehled technologie virtualizace diskového prostoru šifrování
Linux storage stack aneb Technologie bez vlastní zkratky není IN. VFS (virtual filesystem) file system ext4, XFS,, NTFS, VFAT, UDF,... volume management partitions, DM, MD raid, LVM, DRBD,... btrfs block layer SCSI, iscsi, SATA, SAS, FC, FCoE
VFS (Virtual File System)
Disk ~ blokové zařízení (disková) zařízení všeho druhu atomickou adresovací jednotkou je sektor 512 nebo 4096 bytů (+ výjimky) náhodný přístup řádově delší přístupová doba než paměť I/O operace v sektorech I/O plánovač (scheduler)
Host attached storage zařízení přímo připojená k PC řadič přímo na sběrnici komunikační protokol (ATAPI, SCSI) IDE, SATA disky SCSI, SAS (serial attached SCSI) rotační média (~seek time) SSD, flash disky, CF karty, apod.
NAS network attached storage vzdálené storage zařízení připojené přes síťový protokol, RPC, apod. NFS, CIFS, HTTP, rsync, iscsi, DRBD, FC-p2p...
SAN storage area network vzdálené storage zařízení privátní síť, switched fabric FC (Fibre Channel), InfiBand,... FCoE (Fibre Channel over Ethernet)
I/O plánovač (scheduler)
I/O plánovač (scheduler) shromažďuje a optimalizuje I/O operace spojování (merge) optimalizace na konkrétní zařízení s ohledem na priority procesů neexistuje ideální plánovač pro všechny I/O plánovač mění pořadí I/O operací! Příklad: čekání na I/O rotační médium (disk) za dobu 1 seeku CPU provede miliony instrukcí
I/O plánovač Linux příklady CFQ (Complete Fair Queing) separátní fronta per proces round-robin, čekání na I/O Noop ( no request sorting ) jen spojování seek time není důležitý (např.ssd disky) Deadline read/write fronta omezená doba na provedení I/O
Virtualizace blokových zařízení jednotný přístup ke storage, abstrakce kombinace více blokových zařízení na úrovni hw (NAS, SAN) nebo sw Příklady v Linuxu MD RAID (multiple device RAID) klasická sw implementace RAID0,1,5,6 LVM Logical Volume Manager device-mapper multipath DRBD Distributed Replicated Block Device
Virtualizace & LVM filesystem /boot / swap /data Logical Volumes Physical Volumes (block devices) sda1 lv_root lv_swap Volume Group root sda2 lv_data Volume Group data sdb sdc
Virtualizace & VM & LVM VM1 VMX guest stroje (VM) disk... disk host server lv_vm1 lv_vmx Volume Group vm_storage NAS
Sektor, stránka paměti, I/O operace
Zarovnání Device Alignment jednotlivé vrstvy (RAID, LV, partition, ) musí být zarovnané různý offset je velmi neefektivní RMW - read/modify/write Příklad: MS-DOS particie
TRIM SSD příkaz informující SSD, že oblast paměti již není použita. ~ SCSI discard Windows7 / Linux 2.6.33 http://www.windowsitpro.com/article/file-systems/q-what-is-the-trim-function-for-solid-state-disksssds-and-why-is-it-important-.aspx
Bezpečnost (storage) fyzický přístup (konzole serveru, disky) FC fabric přístupová práva OS přístupová práva, SELinux (mandatory access control, policy) POSIX capabilities šifrování HW disk (blokové zařízení) souborový systém aplikace
SECRECY? PRIVACY? PARANOIA!
Šifrování disků (storage encryption) FDE Full Disk Encryption speciální HW vendor lock-in, firmware není opensource HDD FDE (disk obsahuje data + key management) Chipset FDE (disk + chipset + TPM)
URL of this Article: http://www.h-online.com/security/news/item/nist-certified-usb-flash-drives-with-hardware-encryption-cracked-895308.html
Šifrování disků (storage encryption) Souborový systém: (EncFS, ecryptfs,...) šifrování na úrovni filesystému metadata v souboru nebo adresáři, kopírují se s daty některá metadata filesystému nejsou šifrovaná selektivní výběr, co se šifruje (které soubory nebo adresáře)
Šifrování disků (storage encryption) Virtuální blokové zařízení (dm-crypt, truecrypt, loop-aes,...) šifrování na úrovni sektorů transparentní pod filesystémem v kombinaci s volume managementem (LVM) swap HW akcelerace (VIA Padlock, Geode, AES-NI)
Hidden volume (~skrytý disk) plausible deniability (using ciphertext in ciphertext) schopnost uvěřitelně popřít, že jsou na disku nějaká data data jsou ukrytá v nepoužívaném prostoru, ke kterému je nutný další klíč, šifrovaná data nelze rozeznat od šumu vnější šifrovaný disk falešný souborový systém + data skrytý disk (vnitřní šifrovaný disk) klíč 1 klíč 2 tento koncept používá například Truecrypt pomocí device-mapperu lze vytvořit podobné schéma
Když dva dělají totéž... příklad: použití různých blokových šifrovacích módů original ECB CBC watermarking attack side channel attack (např. na implementaci AES) Cold-Boot attack Evil Maid attack...
Bezpečnost & šifrování http://www.abclinuxu.cz/images/clanky/xkcd/xkcd-538_czech.png
odkazy Silberschatz, Galvin, Gagne: Operating System Concepts, 7th edition,wiley, ISBN 0-471-6946-5 Bovet, Cesati: Understanding the Linux Kernel, 3rd edition, O'Reilly, ISBN 0-596-005650-2 Love: Linux Kernel Development, 2nd edition, Novell press, ISBN 0-672-32720-1 Full disk encryption http://sunoano.name/ws/public_xhtml/dm-crypt_luks.html