Správa disků (storage) v Linuxu Milan Brož Software Engineer / Kernel Storage / Red Hat
[email protected]
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 btrfs partitions, DM, MD raid, LVM, DRBD, ... 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
Logical Volumes
/
swap
lv_root
Physical Volumes (block devices) sda1
lv_swap
Volume Group root
sda2
/data
lv_data Volume Group data
sdb
sdc
Virtualizace & VM & LVM VMX
VM1 guest stroje (VM) host server
...
disk
lv_vm1
…
disk
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