Файлова система APFS (Apple File System)

Автор: @DDR5.RU · Опубліковано 08/04/2017 · Оновлено 15/11/2017

64-бітові іноди, атомарні транзакції, мітки часу в наносекундах, клонування директорій, вбудоване шифрування

На вчорашній презентації WWDC 2016 компанія Apple показала нові версії операційних систем macOS (Sierra) 10.12, iOS 10, tvOS 10, watchOS 3, додаток для навчання дітей програмуванню Swift Playgrounds та нові емодзі.

Здавалося б, нічого цікавого. Проте Apple все-таки викотила дещо фундаментальне. Найзначніша розробка з усього згаданого на презентації – це файлова система нового покоління Apple File System (APFS) в операційній системі MacOS (Sierra) 10.12.

file

Аж до версії OS X 10.7 розробники продовжували допрацьовувати HFS+ і реалізовувати на рівні файлової системи нові функції для OS X. Але факт залишається фактом: HFS спочатку розроблялася в часи флоппі-дисків і вінчестерів, що обертаються, коли розміри файлів вимірювалися в кілобайтах або . Сьогодні багато хто працює з накопичувачами SSD, де зберігаються мільйони файлів — гігабайти або терабайти даних. До файлової системи висуваються інші вимоги. Замість доопрацювання старого коду компанія Apple вирішила написати нову файлову систему з нуля.

Файлова система APFS нового покоління поки що знаходиться на стадіїdeveloper preview, тобто її не планується викочувати в масове використання найближчим часом. В даний момент не можна використовувати том APFS як завантажувальний диск, його також не можна застосовувати в системі резервного копіювання Time Machine, Fusion Drive або з шифруванням File Vault. Але можна для звичайного незавантажувального тому.

Має бути ще довга доопрацювання і тестування, але вже потім APFS стане основною файловоюсистемою Apple на десятиліття вперед.

APFS, на відміну від HFS+, спочатку розрізняє регістр символів у назвах файлів та папок, і цю функцію не можна вимкнути. Це слід мати на увазі всім, хто вирішить використовувати APFS.

В принципі, Apple рекомендує спочатку поекспериментувати з APFS на зовнішньому накопичувачі, на якому не зберігається нічого важливого. Для цього пропонується використовувати утилітуhdiutil.

Основні характеристики

В офіційній документації наведено загальні характеристики файлової системи APFS у порівнянні з HFS+.

Контейнери та томи

Контейнер— це основний об'єкт зберігання даних в APFS. Конейнери зазвичай повністю збігаються із записами GUID Partition Table (GPT), вони мають власну схему захисту від збоїв і розподілу дискового простору. Кожен контейнер містить один або більшетомівабо файлових систем, у кожній з яких є власнийпростір імен, тобто набір файлів та директорій.

APFS безпосередньо не підтримує програмний RAID, але її можна використовувати з томами Apple RAID для підтримки Striping (RAID 0), Mirroring (RAID 1) та Concatenation (JBOD).

64-бітові індексні дескриптори (inode)

64-бітові іноди значно збільшує простір імен, порівняно з 32-бітними ідентифікаторами HFS+. У 64-бітній файловій системі APFS підтримується понад 9 квінтильйонів файлів на кожному томі. Цього має вистачити кожному, як казав Білл Гейтс.

Наносекундні мітки часу

У APFS значно збільшено точність міток часу (таймстампів). APFS підтримує встановлення міток часу з точністю до наносекунди. Для порівняння, у HFS+ мітки часу виставлялися з точністю до секунди.

Наносекундні таймстампи дуже важливі всучасних файлових системах, тому що вони допомагають реалізувати атомарність і атомарні транзакції - одна з основних вимог ACID до транзакційної системи (наприклад, до СУБД). Атомарність гарантує, що жодна транзакція не буде зафіксована в системі частково. Будуть або виконані її підоперації, або виконано жодної.

Захист від збоїв

Розріджені файли (sparse files)

Розширені атрибути

APFS має вбудовану підтримку розширених файлових атрибутів, яка HFS+ реалізувалася через файл Attributes, тобто через B-дерево.

Шифрування

Apple заявляє, що шифрування є фундаментальною властивістю, яка вбудована в APFS на рівні файлової системи. Для кожного тома в контейнері APFS встановлюється одна із моделей шифрування: без шифрування, шифрування з одним ключем, шифрування з кількома ключами. В останньому випадку окремі ключі застосовуються для шифрування файлів та метаданих. Залежно від обладнання APFS використовує режим шифрування AES-XTS або AES-CBC.

Клонування файлів та директорій

Снапшоти – відкриті лише для читання «зліпки» файлової системи у томі. Операційна система може використовувати снапшоти для більш ефективної процедури резервного копіювання. Тобто нарешті Time Machine буде працювати нормально (швидко).

Звичайно, за своїми можливостями APFS значно поступається 128-бітовою файловою системою ZFS, яку підтримують Linux, FreeBSD та інші вільні ОС, але з боку Apple це крок у правильному напрямку.

Дивно, що в попередній документації не згадано функцію компресії, яку HFS+, до речі, підтримує.

На конференції WWDC сьогодні ввечері відбудеться перша формальна сесія, де розробникам докладнішепродемонструють нові можливості APFS

При написанні статті було використано матеріали https://geektimes.ru/

Вас можуть зацікавити:

file