APFS: Difference between revisions

From ICO wiki
Jump to navigationJump to search
(Created page with "Apple File System is a 64-bit file system supporting over 9 quintillion files on a single volume. This state-of-the-art file system features cloning for files and directories,...")
 
No edit summary
Line 1: Line 1:
Apple File System is a 64-bit file system supporting over 9 quintillion files on a single volume. This state-of-the-art file system features cloning for files and directories, snapshots, space sharing, fast directory sizing, atomic safe-save primitives, and improved filesystem fundamentals, as well as a unique copy-on-write design that uses I/O coalescing to deliver maximum performance while ensuring data reliability.
=APFS (Apple File System)=
Autor: Madis Võrklaev AK21 10163348


Apple failisüsteem on 64-bitine failisüsteem, mis toetab üle 9 kvintiljoni (10^18) faili ühel kettajaol.  
Apple failisüsteem on 64-bitine failisüsteem, mis toetab üle 9 kvintiljoni (10^18) faili ühel kettajaol.<ref>[https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/APFS_Guide/Features/Features.html#//apple_ref/doc/uid/TP40016999-CH5-DontLinkElementID_18 Apple File System Guide]</ref> Ta on optimeeritud SSD- ja välkmäluseadmetele, kuid töötab ka traditsioonilistel pöörlevatel kõvaketastel.<ref>[https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/APFS_Guide/FAQ/FAQ.html#//apple_ref/doc/uid/TP40016999-CH6-DontLinkElementID_17 Apple File System Guide FAQ]</ref>
 
OMADUSED
- kloonimine
- kuvatõmmis
- space sharing
- krüpteering
- fast directory sizing
- atomic safe-save
- COW
 
Kloon on pea hetkeline koopia failist või kataloogist. Kloonid võimaldavad operatsioonisüsteemil teha kiireid ja energiatõhusaid koopiaid sama kettajao ulatuse, hõivamata selleks lisaruumi. Andmete muudatused kirjutatakse mujale, ning muutmata plokke jagatakse. Muutused salvestatakse cloonitud faili deltadena, vähendades nii dokumendi koopiate ja versiooniuuenduste ruumikasutust.  


==Omadused==
===Kloonimine (Clones)===
Kloon on pea hetkeline koopia failist või kataloogist. Kloonid võimaldavad operatsioonisüsteemil teha kiireid ja energiatõhusaid koopiaid sama kettajao ulatuse, hõivamata selleks lisaruumi. Andmete muudatused kirjutatakse mujale, ning muutmata plokke jagatakse. Muutused salvestatakse cloonitud faili deltadena, vähendades nii 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.
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 ringijagamiseta.
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 ringijagamiseta.
APSF-i puhul on konteineri kettaruum jagatud kõigi kettajagude vahel. Vaikimisi teatab iga kettajagu APFS konteineris sama palju saadaolevat ruumi, kui on kokku konteineri vaba kettaruumi. 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).
APSF-i puhul on konteineri kettaruum jagatud kõigi kettajagude vahel. Vaikimisi teatab iga kettajagu APFS konteineris sama palju saadaolevat ruumi, kui on kokku konteineri vaba kettaruumi. 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).
Konteiner saab vajadusel seadistada maksimaalse eraldatud ruumi kettajao jaoks, samuti ka reserveerida või garanteerida minimaalselt eraldatud ruumi kettajaole.
Konteiner saab vajadusel seadistada maksimaalse eraldatud ruumi kettajao jaoks, samuti ka reserveerida või garanteerida minimaalselt eraldatud ruumi kettajaole.
 
===Krüpteerimine (Encrypting)===
APFS toetab järgmisi krüpteeringuid:
APFS toetab järgmisi krüpteeringuid:
No encryption
No encryption
Line 26: Line 20:
Multi-key encryption ensures the integrity of user data. Even if someone were to compromise the physical security of the device and gain access to the device key, they still couldn't decrypt the user's files.
Multi-key encryption ensures the integrity of user data. Even if someone were to compromise the physical security of the device and gain access to the device key, they still couldn't decrypt the user's files.
Sõltuvalt kasutuselolevast raudvarast kasutatakse AES-XTS või AES-CBC (https://en.wikipedia.org/wiki/Disk_encryption_theory, https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation) krüpteerimisvõtet.
Sõltuvalt kasutuselolevast raudvarast kasutatakse AES-XTS või AES-CBC (https://en.wikipedia.org/wiki/Disk_encryption_theory, https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation) krüpteerimisvõtet.
 
===Kirjutamisel kopeerimine (Copy-On-Write)===
Apple File System uses a novel copy-on-write metadata scheme to ensure that updates to the file system are crash protected, without the write-twice overhead of journaling
Tagamaks uuenduste kaitset crashide vastu, kasutatakse uudset ''copy-on-write'' metaandmete süsteemi, mis erineb nn ''journaling''-tüüpi kahekordse kirjutamisega meetodist.
Tagamaks uuenduste kaitset crashide vastu, kasutatakse uudset ''copy-on-write'' metaandmete süsteemi, mis erineb nn ''journaling''-tüüpi kahekordse kirjutamisega meetodist.
 
===Hõredad failid (Sparse files)===
Apple File System supports sparse files, a more efficient way of representing empty blocks on disk.
 
With sparse files, storage is allocated only when actually needed. This allows the logical size of files to be greater than the physical space occupied on disk. APIs can query both the logical and physical size of sparse files, with functionality to seek through and rewind back to the beginnings of holes and data sections.
 
Tühjade plokkide efektiivsemaks kirjeldamiseks kasutatakse nn. hõredaid faile.
Tühjade plokkide efektiivsemaks kirjeldamiseks kasutatakse nn. hõredaid faile.
Hõredate failide korral eraldatakse salvestusruum ainult siis, kui seda vajatakse. Sel moel saab failide loogiline suurus olla suurem kui füüsiliselt kasutatud kettaruum. APId
Hõredate failide korral eraldatakse salvestusruum ainult siis, kui seda vajatakse. Sel moel saab failide loogiline suurus olla suurem kui füüsiliselt kasutatud kettaruum. APId saavad päringuid esitada nii hõredate failide loogilise kui füüsilise suuruse kohta, olles võimelised auke ning andmesektsioone läbi vaatama ja tagasi kerima.
===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 üheainsa operatsioonina. Seega kasutaja vaatenurgast operatsoioon kas lõpetati edukalt või seda ei teostatud üldse.

Revision as of 22:47, 4 November 2017

APFS (Apple File System)

Autor: Madis Võrklaev AK21 10163348

Apple failisüsteem on 64-bitine failisüsteem, mis toetab üle 9 kvintiljoni (10^18) faili ühel kettajaol.[1] Ta on optimeeritud SSD- ja välkmäluseadmetele, kuid töötab ka traditsioonilistel pöörlevatel kõvaketastel.[2]

Omadused

Kloonimine (Clones)

Kloon on pea hetkeline koopia failist või kataloogist. Kloonid võimaldavad operatsioonisüsteemil teha kiireid ja energiatõhusaid koopiaid sama kettajao ulatuse, hõivamata selleks lisaruumi. Andmete muudatused kirjutatakse mujale, ning muutmata plokke jagatakse. Muutused salvestatakse cloonitud faili deltadena, vähendades nii 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 ringijagamiseta. APSF-i puhul on konteineri kettaruum jagatud kõigi kettajagude vahel. Vaikimisi teatab iga kettajagu APFS konteineris sama palju saadaolevat ruumi, kui on kokku konteineri vaba kettaruumi. 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). Konteiner saab vajadusel seadistada maksimaalse eraldatud ruumi kettajao jaoks, samuti ka reserveerida või garanteerida minimaalselt eraldatud ruumi kettajaole.

Krüpteerimine (Encrypting)

APFS toetab järgmisi krüpteeringuid: No encryption Single-key encryption Multi-key encryption with per-file keys for file data and a separate key for sensitive metadata Multi-key encryption ensures the integrity of user data. Even if someone were to compromise the physical security of the device and gain access to the device key, they still couldn't decrypt the user's files. Sõltuvalt kasutuselolevast raudvarast kasutatakse AES-XTS või AES-CBC (https://en.wikipedia.org/wiki/Disk_encryption_theory, https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation) krüpteerimisvõtet.

Kirjutamisel kopeerimine (Copy-On-Write)

Tagamaks uuenduste kaitset crashide vastu, kasutatakse uudset copy-on-write metaandmete süsteemi, mis erineb nn journaling-tüüpi kahekordse kirjutamisega meetodist.

Hõredad failid (Sparse files)

Tühjade plokkide efektiivsemaks kirjeldamiseks kasutatakse nn. hõredaid faile. Hõredate failide korral eraldatakse salvestusruum ainult siis, kui seda vajatakse. Sel moel saab failide loogiline suurus olla suurem kui füüsiliselt kasutatud kettaruum. APId saavad päringuid esitada nii hõredate failide loogilise kui füüsilise suuruse kohta, olles võimelised auke ning andmesektsioone läbi vaatama ja tagasi kerima.

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 üheainsa operatsioonina. Seega kasutaja vaatenurgast operatsoioon kas lõpetati edukalt või seda ei teostatud üldse.