Sistem File Apple (APFS)

64-bit inode, transaksi atom, cap waktu dalam nanodetik, kloning direktori, enkripsi bawaan


Pada presentasi WWDC 2016 kemarin , Apple memamerkan versi baru macOS (Sierra) 10.12, iOS 10, tvOS 10, sistem operasi watchOS 3, aplikasi Swift Playgrounds untuk mengajar pemrograman anak-anak, dan emoji baru.

Tampaknya tidak ada yang menarik. Namun, Apple masih meluncurkan sesuatu yang mendasar. Perkembangan paling signifikan dari semua yang disebutkan pada presentasi adalah sistem file generasi baru Apple File System (APFS) di sistem operasi macOS (Sierra) 10.12.

Di situs untuk pengembang, segera setelah presentasi, dokumentasi diterbitkan dengan karakteristik utama dan deskripsi sistem file, yang mengulangi fungsi individual dari sistem file ZFS gratis yang kuat.

Komputer Apple sekarang menggunakan sistem file HFS +, versi tambahan dari HFS (Hierarchical File System, dibuat lebih dari 30 tahun yang lalu). Seperti pendahulunya, HFS + menggunakan struktur pohon yang disebut pohon B * untuk menyimpan sebagian besar metadata. Oleh karena itu nama "sistem file hierarkis".

Pengenalan resmi HFS + berlangsung pada 19 Januari 1998, bersama dengan MacOS 8.1. Sejak 2002, sistem telah menerapkan penjurnalan untuk meningkatkan keandalan penyimpanan informasi. Sejak OS X 10.3, logging diaktifkan secara default, sekarang dimungkinkan untuk bekerja dalam mode case-sensitive.

Sampai OS X 10.7, pengembang terus memperbaiki HFS + dan mengimplementasikan fungsi-fungsi baru untuk OS X di tingkat sistem file.Tetapi faktanya tetap: HFS pada awalnya dikembangkan selama floppy disk dan hard drive berputar, ketika ukuran file diukur dalam kilobyte atau megabyte. Saat ini, banyak yang bekerja dengan drive SSD, yang menyimpan jutaan file - gigabytes atau terabyte data. Sistem file memiliki persyaratan yang sangat berbeda. Alih-alih menyelesaikan kode lama, Apple akhirnya memutuskan untuk menulis sistem file baru dari awal.

Sistem file APFS generasi berikutnya masih dalam pratinjau pengembangArtinya, tidak direncanakan untuk digunakan secara massal dalam waktu dekat. Anda tidak dapat menggunakan volume APFS sebagai disk boot saat ini, juga tidak dapat digunakan dalam sistem cadangan Time Machine, di Fusion Drive, atau dengan enkripsi File Vault. Tetapi dimungkinkan untuk volume non-boot reguler.

Masih ada penyempurnaan dan pengujian yang panjang, tetapi baru kemudian APFS akan menjadi sistem file utama Apple selama beberapa dekade mendatang.

APFS, tidak seperti HFS +, pada awalnya membedakan huruf besar-kecil dalam nama file dan folder, dan fungsi ini tidak dapat dinonaktifkan. Ini harus diingat oleh siapa pun yang memutuskan untuk menggunakan APFS.

Pada prinsipnya, Apple merekomendasikan pertama untuk bereksperimen dengan APFS pada drive eksternal, yang tidak menyimpan apa pun yang penting. Untuk ini, diusulkan untuk menggunakan utilitasHdiutil .

Fitur Utama


Dokumentasi resmi mencantumkan karakteristik umum sistem file APFS dibandingkan dengan HFS +.

Wadah dan Volume


Wadah adalah objek utama untuk menyimpan data di APFS. Kontainer biasanya persis sama dengan entri GUID Partition Table (GPT), mereka memiliki perlindungan kecelakaan dan skema alokasi ruang disk sendiri. Setiap wadah berisi satu atau lebih volume atau sistem file, masing-masing memiliki ruang nama sendiri , yaitu, satu set file dan direktori.

APFS tidak secara langsung mendukung RAID perangkat lunak, tetapi dapat digunakan dengan volume Apple RAID untuk mendukung Striping (RAID 0), Mirroring (RAID 1), dan Concatenation (JBOD).

64-bit inode


64-bit inode secara signifikan meningkatkan namespace dibandingkan dengan pengidentifikasi 32-bit di HFS +. Sistem file APFS 64-bit mendukung lebih dari 9 triliun file pada setiap volume. Itu seharusnya cukup untuk semua orang, seperti kata Bill Gates.

Stempel waktu nanosecond


APFS secara signifikan meningkatkan akurasi cap waktu (cap waktu). APFS mendukung cap waktu yang akurat untuk nanosecond. Sebagai perbandingan, di HFS + cap waktu ditetapkan ke detik terdekat.

Stempel waktu nanosecond sangat penting dalam sistem file modern, karena mereka membantu mengimplementasikan atomicity dan transaksi atom - salah satu persyaratan ACID utama untuk sistem transaksi (misalnya, DBMS). Atomicity memastikan bahwa tidak ada transaksi sebagian yang dilakukan untuk sistem. Entah semua sub-operasinya akan selesai, atau tidak satu pun akan selesai.

Proteksi kerusakan


APFS mengimplementasikan skema metadata copy-on-write yang inovatif, yang oleh Apple disebut “Crash Protection”. Ini memastikan bahwa perubahan pada sistem file dan pencatatan disimpan dalam sinkronisasi jika terjadi sesuatu selama perekaman - misalnya, daya terputus.


Skema copy-on-write ZFS

File jarang


File dengan atribut "jarang" mengasumsikan konten blok nol byte, tidak disimpan di drive, tetapi tersirat. HFS + tidak memiliki dukungan file yang jarang.

Atribut yang Diperpanjang


APFS memiliki dukungan bawaan untuk atribut file yang diperluas, yang dalam HFS + diimplementasikan melalui file Atribut, yaitu melalui B-tree.

Enkripsi


Enkripsi klaim Apple adalah properti mendasar yang dibangun ke dalam APFS pada tingkat sistem file. Untuk setiap volume dalam wadah APFS, salah satu model enkripsi dipasang: tanpa enkripsi, enkripsi dengan satu kunci, enkripsi dengan beberapa kunci. Dalam kasus terakhir, kunci individual digunakan untuk mengenkripsi file dan metadata. Bergantung pada perangkat kerasnya, APFS menggunakan mode enkripsi AES-XTS atau AES-CBC.

File dan Direktori Kloning


Kloning - penyalinan file atau direktori yang hampir instan, yang tidak memerlukan ruang tambahan untuk penyimpanan data. Ketika klon diubah, sistem file hanya mencatat perubahan data. Dengan demikian, sistem file baru dapat menyimpan banyak versi file besar, memakan lebih sedikit ruang disk.

Jepretan


Snapshots - "snapshots" read-only dari sistem file dalam volume. Sistem operasi dapat menggunakan snapshot untuk prosedur pencadangan yang lebih efisien. Artinya, akhirnya, Time Machine akan bekerja dengan baik (cepat).



Tentu saja, dalam kemampuannya, APFS secara signifikan lebih rendah daripada sistem file ZFS 128-bit , yang didukung oleh Linux, FreeBSD dan OS gratis lainnya, tetapi pada bagian Apple ini merupakan langkah ke arah yang benar.

Sungguh aneh bahwa dokumentasi pendahuluan tidak menyebutkan fungsi kompresi yang didukung oleh HFS +.

Apple telah mencoba untuk mem-porting ZFS ke OS X untuk waktu yang lama, ada diskusi aktif pada milis ZFS, snapshot awal diterbitkan untuk versi OS X berikutnya. Kemudian, OpenZFS diimplementasikan untuk OS X (O3X) dan MacZFX .

Sistem file ZFS adalah open source, dan Apple dapat meminjam beberapa ide untuk sistem file APFS. Implementasi open source untuk APFS belum siap, Apple berencana untuk menerbitkan yang terdokumentasi dan menerbitkan format APFS pada 2017.

Sesi formal pertama akan diadakan di WWDC hari ini malam ini, di mana pengembang akan diperlihatkan secara lebih rinci fitur-fitur baru APFS.

Source: https://habr.com/ru/post/id395253/


All Articles