APFS
APFS (Apple File System)
Autor: Madis Võrklaev AK21
Apple failisüsteem on patendeeritud failisüsteem macOS, iOS, tvOS ja watchOS-ile, mis on loodud parandamaks senise failisüsteemi HFS+ puudusi.[1] APFS on 64-bitine failisüsteem, mis toetab üle 9 kvintiljoni (10^18) faili ühel kettajaol.[2] Ta on optimeeritud SSD- ja välkmäluseadmetele, kuid töötab ka traditsioonilistel pöörlevatel kõvaketastel.[3]
Omadused[2]
Kloonimine (Clones)
Kloon on pea hetkeline koopia failist või kataloogist. Kloonid võimaldavad operatsioonisüsteemil teha kiireid ja energiatõhusaid koopiaid sama kettajao ulatuses, hõivamata selleks lisaruumi. Andmete muudatused kirjutatakse mujale, ning algseid, muutmata plokke jagatakse. Kui faili muudetakse, siis muutused salvestatakse algsest failist eraldi vaba koha peale. Neid muutusi nimetatakse faili deltadeks. Selline salvestusviis vähendab dokumendi koopiate ja versiooniuuenduste ruumikasutust.
Kuvatõmmis (Snapshots)
Kettajao kuvatõmmis on teatud hetkes tehtud read-only tõmmis failisüsteemist. Operatsioonisüsteem kasutab tõmmiseid efektiivsemaks varukoopiate tegemiseks ning vajadusel muutuste tagasipööramiseks.
Ruumijagamine (Space Sharing)
Ruumijagamine võimaldab erinevatel failisüsteemidel jagada ühist vaba kettaruumi. Erinevalt jäikadest partitsioneerimisskeemidest, mis eel-eraldavad kindla koguse ruumi kindlale failisüsteemile, suudavad APFS-vormindatud kettajaod kasvada ning kahaneda ilma kettajagude (volume) ringijagamiseta. APFS-i puhul luuakse konteiner, mis võib sisaldada mitut kettajagu. Kettaruum on jagatud kõigi kettajagude vahel. Vaikimisi näitab iga kettajagu APFS konteineris sama palju saadaolevat ruumi, kui on kogu konteineri ulatuses. Näiteks konteiner mahuga 100GB, mis sisaldab kettajagu A (mis kasutab 10GB) ja kettajagu B (mis kasutab 20GB), näitab mõlema kettajao puhul vaba ruumi 70GB (100GB-10GB-20GB). Konteineris saab vajadusel seadistada maksimaalse eraldatud ruumi iga kettajao jaoks, samuti ka reserveerida või garanteerida minimaalselt eraldatud ruumi kettajaole.
Krüpteerimine (Encrypting)
APFS toetab järgmisi krüpteeringuid:
- Ilma krüpteeringuta
- Ühe võtme krüpteering (Single-key encryption)
- Mitme võtme krüpteering (Multi-key encryption) per-file võtmetega failidele ning eraldi võtmega tundlike metaandmete jaoks.
Mitme võtme krüpteering tagab andmete tervikluse. Ka juhul, kui kurjategijal on ligipääs füüsilisele seadmele ning seadmes olevale privaatvõtmele, ei saaks ta andmeid dekrüpteerida.
Sõltuvalt kasutuselolevast raudvarast kasutatakse AES-XTS või AES-CBC krüpteerimisvõtet.
Kirjutamisel kopeerimine (Copy-On-Write)
Tagamaks andmete säilimist kettale kirjutamisel, kasutatakse uudset copy-on-write (COW) süsteemi, mis erineb nn journaling-tüüpi meetodist, kus andmed kirjutatakse kõigepealt nn päevikusse, ja alles siis õigesse kohta kettal. COW puhul kirjutatakse failiuuendused suvalisele tühjale kohale kettal, ning neile viidatatakse metaandmestikus. Sel moel ei ole võimalik kettale kirjutamise ajal tekkinud voolukatkestuse või mõne muu vea korral sealolevaid andmeid rikkuda.[4]
Hõredad failid (Sparse files)
Tühjade plokkide efektiivsemaks kirjeldamiseks kasutatakse nn. hõredaid faile. Hõredate failide korral ei jäeta kettale tühje klastriosasid, vaid need kirjeldatakse metaandmestikus. Hõredate failide korral eraldatakse salvestusruum ainult siis, kui seda vajatakse. Sel moel saab failide loogiline suurus olla suurem kui füüsiliselt kasutatud kettaruum (teistes failisüsteemides on see võimatu).[5]
Kiire kataloogimahu arvutus (Fast Directory Sizing)
APFS võimaldab kiirelt arvutada kogu kataloogihierarhia poolt hõivatud mälumahu. Fast Directory Sizing (FDS) arvutab kasutatud mahu hetkel, kui sisu luuakse või eemaldatakse. See on sobilik kataloogidele, mis sisaldavad palju faile. FDS ei sobi kataloogidele, nagu /tmp, kus on palju ajutisi faile. FDS-i saab lubada tühjadele kataloogidele. Kataloogid, mis juba sisaldavad faile ning teisi katalooge, tuleb FDS-i kasutamiseks liigutada eelnevalt FDS-i võimekusega kataloogi.
Atomic Safe-Save
Atomic Safe-Save funktsioon teostab failide ümbernimetamist, liigutamist või kopeerimist üheainsa operatsioonina. See tähendab, et originaalandmeid ei puututa enne, kui operatsioon on edukalt lõpetatud. Seega kasutaja vaatenurgast operatsoioon kas lõpetati edukalt või seda ei teostatud üldse.
Failisüsteemi paigaldamine
Käivitatavatel kettajagudel pakub macOS High Sierra paigalduspakett turvalist uuendust HFS+ süsteemist APFS-ile. Väliste kettajagude konverteerimiseks tuleb kasutada Disk Utility-t. Paigaldatud APFS-iga kettajao saab muuta tagasi HFS+-iks, kuid sel juhul ei säili andmed.[3]
APFS ja failinimed
APFS kasutab failide loomisel ainult kehtivaid UTF-8 kodeeringuga failinimesid. Nagu ka HFS+, on ka APFS tõstutundlik iOS-il ning valitava (mitte)tõstutundlikkusega macOS-il. Vaikimisi on macOS mittetõstutundlik.[3]
Puudused[6]
- APFS ei toeta hetkel startup- ja hübriidkettaid (Fusion Drive). Time Machine varukoopiad ei ole samuti toetatud.
- Failinimed on tõstutundlikud.
- OS X 10.11 Yosemite ja sellest varasemad versioonid ei tööta APFS-iga vormindatud ketastega.
- Toetatud on ainult 64-bitised seadmed.
Teiste failisüsteemide tugi
APFS-iga süsteem suudab lugeda HFS+-vormindatud kettaid.[7]
HFS+-iga süsteem suudab lugeda APFS-iga vormindatud kettaid, kui operatsioonisüsteemiks on macOS High Sierra.[7] Viimane võib olla ebatäpne, kuna ajakirja Macworld andmetel suudab lugeda APFS-vormindatud ketast ka Sierra.[8]
Teiste failisüsteemide tugi puudub, ning APFS-ketta lugemiseks tuleks kasutada võrgujagamise protokolle. APFS-is on toetatud SMB ja NFS protokollid.[7]
Allikad
- ↑ Apple File System, Wikipedia
- ↑ 2.0 2.1 Apple File System Guide
- ↑ 3.0 3.1 3.2 Apple File System Guide FAQ
- ↑ macOS 10.12 Sierra: The Ars Technica review
- ↑ Forensics: Physical and Logical Size
- ↑ Apple Toolbox
- ↑ 7.0 7.1 7.2 Prepare for APFS in macOS High Sierra
- ↑ Apple File System FAQ: How APFS works with older Macs, encryption, external drives, and other questions