APFS
APFS (Apple File System) Autor: Madis Võrklaev AK21
Apple failisüsteem (APFS) 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]
Ajalugu
Apple File System lansseeriti Apple arendajate konverentsil (WWDC) juunis 2016 asendamaks HFS+-i, mis oli kasutusel alates 1998.aastast. Kasutusele võeti see iOS-iga seadmetel 27.märtsil 2017 iOS 10.3 reliisiga ning macOS seadmetel 25.septembril 2017 macOS 10.13 reliisiga.[1]
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]
Uuendades operatsioonisüsteemi High Sierrale, vormindatakse SSD kettad automaatselt. Traditsioonilise kõvaketta ning Fusion-drive (Apple hübriidketas) puhul[6] tuleb APFS-iks konverteerimine eraldi märkeruudust lubada. Kui see jäi tegemata, või soovitakse failisüsteemi hiljem uuendada, tuleb alglaadimise käigus siseneda Recovery Mode-i (saates masina restardile, tuleb all hoida CMD+R). Sealt edasi Disk utility, kust tuleb valida boot volume ehk alglaadurti sisaldav kettajagu. Edit-menüüs on valik Convert to APFS. Kui see peaks olema mitteaktiivne, sai valitud vale kettajagu.
Väidetavalt kulub 256GB ketta konverteerimiseks umbes 2 minutit.
Kontrollimaks, kas protsess oli edukas, saab kasutada Finder->Preferences->General. Avanenud aknast tuleb valida õige ketas, ja CMD+I avab infoakna, kus on rida Format. [7]
Käsurealt konverteerimiseks tuleb alustuseks leida vajalik ketas
diskutil list
Haagi ketas lahti, kustuta partitsioon ning loo APFS konteiner:
diskutil apfs createContainer /dev/konverteeritavketas
Kui protsess on edukas, peaks lõpus olema teade
Created new APFS Container ketasX
Edasi tuleb luua APFS kettajagu
diskutil apfs addVolume ketasX APFS newAPFS
Protsessi lõpus peaks vormindatud ketas kasutatav olema.[8]
Kui kasutusel on SSD ketas, ja soovitakse automaatset APFSile vormindamist vältida, tuleb kasutada käsureaprogrammi
startosinstall
mis asub
Install macOS High Sierra.app/Contents/Resources
Automaatseks uuendamiseks ilma APFSi vormindamiseta võib kasutada käsku
/Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/startosinstall --applicationpath /Applications/Install\ macOS\ High\ Sierra.app --agreetolicense --converttoapfs NO --nointeraction
[6]
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[9]
- 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.[10]
HFS+-iga süsteem suudab lugeda APFS-iga vormindatud kettaid, kui operatsioonisüsteemiks on macOS High Sierra.[10] Viimane võib olla ebatäpne, kuna ajakirja Macworld andmetel suudab lugeda APFS-vormindatud ketast ka Sierra.[11]
Teiste failisüsteemide tugi puudub, ning APFS-ketta lugemiseks tuleks kasutada võrgujagamise protokolle. APFS-is on toetatud SMB ja NFS protokollid.[10]
Allikad
- ↑ 1.0 1.1 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
- ↑ 6.0 6.1 Using the macOS High Sierra OS installer’s startosinstall tool to avoid APFS conversion
- ↑ How to Upgrade to APFS if Not Done in macOS High Sierra Installer
- ↑ Want to Experiment With an APFS drive? Here’s How You Can Do That
- ↑ Apple Toolbox
- ↑ 10.0 10.1 10.2 Prepare for APFS in macOS High Sierra
- ↑ Apple File System FAQ: How APFS works with older Macs, encryption, external drives, and other questions