Статті

У цьому розділі Ви знайдете основну інформацію щодо відновлення та доступу до даних,а також корисні поради з цієї теми.

Download software

Особливості різних файлових систем

На сьогодні комп'ютерний ринок пропонує величезні можливості для збергіання інформації в цифровій формі. Існуючі пристрої зберігання даних включають в себе внутрішні та зовнішні жорсткі диски, карти пам'яті фото- та відеокамери, USB флеш-накопичувачі і складні системи RAID. Частина даних зберігається на них у вигляді файлів, включаючи документи, зображення, бази даних, повідомлення електронної пошти тощо. Основним принципом зберігання цих файлів зпіучність отримання доступу до них і легкість у відновленні в разі їх втрати.

У цій статті наведено загальний огляд поняття файлової системи, основні засоби керування даними на будь-якому сховищі, а також описано особливості різних типів файлових систем.


Що таке файлова система?

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

Як правило, сховища комп'ютера використовують сектор та індексацію зсуву для посилання на будь-який байт інформації на сховищі. Сектор – це група байтів (зазвичай 512 байт), мінімальна адресна одиниця фізичної пам'яті. Наприклад, байт 1040 на жорсткому диску матиме посилання «сектор № 3» і буде зміщений у секторі 16 байт ([сектор] + [сектор] + [16 байт]). Ця схема застосовується для оптимізації адресації пам'яті та для використання меншого числа для посилання на будь-яку частину інформації, що знаходиться на сховищі.

Щоб опустити другу частину адреси (зсув у секторі), файли, як правило, зберігаються починаючи з початку сектора та займають цілі сектори (наприклад: 10-байтовий файл займає весь сектор, 512-байтовий файл також займає весь сектор, в той же час 514-байтовий файл займає два сектори повністю).

Кожен файл зберігається в "невикористаних" секторах і може бути прочитаний пізніше за відомою позицією та розміром. Однак, як ми знаємо, які сектори зайняті і які є вільними? Де зберігаються розмір, розташування та ім'я файлу? За ці відомості відповідає файлова система.

В цілому, файлова система являє собою структуроване представлення даних та набір метаданих, що описують ці дані. Вона застосовується до сховища під час форматування. Файлова система служить для цілей всього сховища, а також є частиною ізольованого сегмента зберігання – розділу диска. Зазвичай файлова система керує блоками, а не секторами. Блоки файлової системи – це групи секторів, які оптимізують адресацію пам'яті. Сучасні файлові системи зазвичай використовують розміри блоків від 1 до 128 секторів (512-65536 байт). Файли, як правило, зберігаються на початку блоку і займають цілі блоки.

Постійні операції запису або видалення даних у файловій системі спричиняють фрагментацію. Таким чином, файли не зберігаються як цілі одиниці, а діляться на фрагменти. Наприклад, сховище повністю зайняте файлами розміром 4 блоки кожен (наприклад, колекція фотографій). Користувач хоче зберегти файл, який займатиме 8 блоків, і, отже, видаляє перший і останній файли. При цьому, звільняється простір з 8 блоків, однак перший сегмент розташований на початку сховища, а другий – в кінці. У цьому випадку 8-блоковий файл розділений на дві частини (по 4 блоки) і займає вільні «отвори». Інформація про обидва фрагменти як частини одного файлу зберігається у файловій системі.

Крім файлів користувача, файлова система також містить власні параметри (наприклад, розмір блоку), дескриптори файлів (включаючи розмір файлу, розташування файлу, його фрагменти тощо), імена файлів та ієрархію каталогів. Вона також може зберігати інформацію про безпеку, розширені атрибути та інші параметри.

Щоб відповідати різноманітним вимогам користувачів, таким як продуктивність сховища, стабільність та надійність, розроблено безліч файлових систем, які дозволяють ефективніше виконувати різні функції.

Файлові системи Windows

Microsoft Windows застосовує дві основні файлові системи: NTFS, основний формат більшості сучасних версій цієї ОС, за замовчуванням – FAT, файлова система, що успадкована від старої DOS, і exFAT як її подальше розширення. Крім того, для серверних комп'ютерів, починаючи з Windows Server 2012 корпорацією Майкрософт була розроблена файлова система ReFS як файлової системи нового покоління.

FAT:

FAT (таблиця розподілу файлів) – одна з найпростіших файлових систем, існує з 1980-х років. Вона складається з сектора дескрипторів файлової системи (завантажувальний сектор або суперблок), таблиці розміщення блоків файлової системи (File Allocation Table) та простір для зберігання файлів і папок. Файли в FAT зберігаються в каталогах. Кожна директорія являє собою масив 32-байтних записів, кожен з яких визначає файл або розширені атрибути файлу (наприклад, довге ім'я файлу). Запис файлу атрибує перший блок файлу. Будь-який наступний блок можна знайти через таблицю розподілу блоків, використовуючи його як пов'язаний список.

Таблиця розподілу блоків містить масив дескрипторів блоку. Нульове значення вказує на те, що блок не використовується, а ненульовий відноситься до наступного блоку файлу або спеціального значення для кінця файлу.

Номери в FAT12FAT16FAT32 позначають кількість бітів, які використовуються для переліку блоку файлової системи. Це означає, що FAT12 може використовувати до 4096 різних блочних посилань, тоді як FAT16 та FAT32 можуть використовувати відповідно 65536 і 4294967296. Фактичний максимум кількості блоків ще менший і залежить від застосованого драйвера файлової системи.

FAT12 та FAT16 використовувалися для старих дискет і на сьогодні втратили свою популярність. FAT32 все ще широко використовується для карток пам'яті та USB-накопичувачів. Система підтримується смартфонами, цифровими камерами та іншими портативними пристроями.

FAT32 може використовуватися на зовнішніх сховищах або розділах дисків розміром до 32 ГБ (Windows не може створити файлову систему FAT32, яка буде більшою за 32 ГБ, в той ча, як Linux підтримує розмір до 2 ТБ), і не дозволяє створення файлів, розмір яких перевищує 4 ГБ. Для вирішення цієї проблеми було розроблено exFAT, який не має жодних обмежень щодо розміру файлів або розділів.

NTFS:

NTFS (New Technology File System) була представлена в 1993 році разом з Windows NT і на сьогодні є найпоширенішою файловою системою для комп'ютерів на базі Windows. Більшість операційних систем лінії Windows Server також використовують цей формат.

Ця файлова система є досить надійною завдяки журналюванню та підтримує безліч функцій, включаючи контроль доступушифрування тощо. Кожен файл в NTFS зберігається як дескриптор файлу у таблиці основних файлів (Master File Table) та вміст файлу. Master File Table містить записи з усією інформацією про файли: їхній розмір, розташування, назву тощо. Перші 16 записів таблиці введені для BitMap, що зберігає запис усіх вільних і використаних кластерів, журнал, який використовується для журналювання записів та BadClus, що містять інформацію про погані кластери. Перший і останній сектори файлової системи містять параметри файлової системи (завантажувальний запис або суперблок). Ця файлова система використовує 48-бітові та 64-бітові значення для файлів посилань, що дозволяє підтримувати сховища даних з надзвичайно високою місткістю.

ReFS:

ReFS (Resilient File System) – це остання розробка Microsoft, представлена в Windows 8, тепер доступна і для Windows 10. Архітектура файлової системи кардинально відрізняється від інших файлових систем Windows і в основному організована у формі B+-дереваReFS має високу толерантність до збоїв у зв'язку з новими функціями, включеними в систему, включаючи Copy-on-Write (CoW) – функцію, завдяки якій метадані не модифікуються без копіювання, а дані не записуються над існуючими даними, а на новий дисковий простір. При будь-яких змінах файлів нова копія метаданих зберігається у вільному місці сховища, а система потім створює посилання зі старих метаданих на нові. Таким чином, система зберігає значну кількість старих резервних копій у різних місцях, забезпечуючи легкість відновлення файлів у випадку їх перезапису.

Щоб дізнатися більше про відновлення даних із цих файлових систем, перегляньте статтю "Шанси для відновлення".

Файлові системи macOS

Операційна система macOS від компанії Apple застосовує дві файлові системи: HFS+, розширення своєї власної файлової системи HFS, що використовується на старих комп'ютерах Macintosh, і нещодавно представлену APFS.

HFS+ використовувалася як основна файлова система настільних комп'ютерів Apple включаючи комп'ютери Mac, iPod, а також продукти Apple X Server, перш ніж була замінена на APFS у macOS High Sierra. Новітні серверні продукти також застосовують файлову систему Apple Xsan, кластеризовану файлову систему від StorNext і CentraVision.

Файлова системаHFS+ використовує B-дерева для розміщення та зберігання файлів. Томи розділено на сектори, як правило, розміром 512 байт, які потім об'єднуються в блоки розподілу, кількість яких залежить від загального обсягу. Інформація про вільні та використані блоки розподілу зберігається у файлі розподілу. Всі блоки розподілу, присвоєні кожному файлу, як і раніше, зберігаються у файлі Extends Overflow. І, нарешті, всі файлові атрибути вказані в файлі атрибутів. Надійність даних підвищена завдяки журналюванню, що дає змогу відслідковувати всі зміни в системі та швидко повертати їх у робочий стан у випадку непередбачених подій. Серед інших підтримуваних функцій – жорсткі посилання на каталоги, логічне шифрування обсягу, контроль доступу, компресія даних тощо.

Файлова система APFS має на меті вирішення основних проблем свого попередника і розроблена для ефективної роботи з сучасними флеш накопичувачами та твердотільними накопичувачами. Ця 64-розрядна файлова система використовує метод Copy-on-Write для підвищення продуктивності, що дозволяє копіювати кожен блок, перш ніж зміни будуть застосовані, і пропонує багато функцій для збереження цілісності даних та економії простору. Весь вміст файлу та метадані про файл, папки разом з іншими структурами APFS зберігаються в контейнерному суперблоці (Container Superblock). Цей суперблок зберігає інформацію про кількість блоків у контейнері, розмір блоку тощо. Інформація про всі виділені та вільні блоки контейнера організується за допомогою Bitmap Structures. Кожен том в контейнері має свій власний суперблок (Volume Superblock), який містить інформацію про цей том. Всі файли та папки тому записуються в B-дерево файлу і папки, тоді як Extents B-Tree несе відповідальність за додаткові відомості – посилання на вміст файлу (початок файлу, його довжину в блоках).

Для отримання інформації про відновлення даних з цих файлових систем, перегляньте статтю "Шанси для відновлення".

Файлові системи Linux

Linux як операційна система з відкритим кодом спрямована на запровадження, тестування та використання різних типів файлових систем. Найпопулярніші файлові системи Linux включають:

  • Ext2, Ext3, Ext4 – «рідні» файлові системи Linux. Вони активно розроблюються і вдосконалюються. Файлова система Ext3 як розширення до Ext2, використовує операції запису транзакцій з  журналомExt4 як продовження Ext3 розширений за допомогою оптимізованої інформації про розподіл файлів (екстенси) та розширених атрибутів файлів. Ця файлова система часто використовується як «коренева» файлова система для більшості версій Linux.

  • ReiserFS – альтернативна файлова система Linux для зберігання величезної кількості невеликих файлів. Вона оснащена хорошою можливістю пошуку файлів і дозволяє розміщувати компактні файли, зберігаючи хвостові файли або невеликі файли разом з метаданими, щоб не використовувати великі блоки файлової системи для тих самих цілей. Однак ця файлова система більше не підтримується.

  • XFS – файлова система компанії SGI, що початково використовувалася для серверів компанії IRIX. Тепер специфікації XFS реалізовані в Linux. Файлова система XFS має високу продуктивність і широко використовується для зберігання файлів.

  • JFS – файлова система, розроблена компанією IBM для потужних обчислювальних систем компанії. JFS1 зазвичай означає JFS, в той час, як JFS2 – її другий реліз. В даний час ця файлова система має відкритий вихідний код і застосовується в більшості сучасних версій Linux.

  • Btrfs – це файлова система, розроблена компанією Oracle, яка з 2009 року підтримується Linux. Файлова система призначена для високої надійності та масштабованості, забезпечуючи вищу відмовостійкість, простіше адміністрування й ряд додаткових функцій, але все одно не може вважатися абсолютно стабільною.

Поняття «жорстких посилань», що використовуються в даному виді операційних систем, збігається з більшістю файлових систем Linux, оскільки ім'я файлу не розглядається як файловий атрибут і, швидше за все, визначається як псевдонім для файла в певному каталозі. Файловий об'єкт може мати посилання з багатьох розташувань, навіть багаторазово з одного каталогу під різними назвами. Це може призвести до серйозних і навіть непереборних труднощів при відновленні імен файлів після видалення файлу або пошкодження файлової системи.

Щоб отримати відомості про відновлення даних із цих файлових систем, перегляньте статтю "Шанси для відновлення".

Файлові системи BSD, Solaris, Unix

Найпоширенішою файловою системою для цих операційних систем є UFS (Unix File System), що також має назву FFS (Fast File System).

На даний момент UFS (у різних виданнях) підтримується всіма операційними системами Unix-сімейства і є основною файловою системою ОС BSD та ОС Sun Solaris. Сучасні комп'ютерні технології мають тенденцію застосовувати заміни для UFS у різних операційних системах (ZFS для Solaris, JFS і похідні файлові системи для Unix тощо).

Щоб отримати відомості про відновлення даних із цих файлових систем, перегляньте статтю "Шанси для відновлення".

Кластеризовані файлові системи

Кластеризовані файлові системи використовуються в комп'ютерних кластерних системах. Ці файлові системи підтримують розподілене сховище.

До розподілених файлових систем належать:

  • ZFS (Zettabyte File System) компанії Sun – файлова система, розроблена для розподілених сховищ на базі Sun Solaris OS.

  • Apple Xsan – розробка компанії Apple компанії як продовження файлових систем CentraVision і StorNext.

  • VMFS (Virtual Machine File System), розроблена компанією VMware для VMware ESX Server.

  • GFS (Global File System) від Red Hat Linux.

  • JFS1 – оригінальна (непідтримувана) версія файлової системи IBM JFS, що використовується в більш старих системах зберігання даних AIX.

Загальні властивості цих файлових систем включають підтримку розподілених сховищ, розширюваність та модульність.

Щоб отримати додаткові відомості про відновлення даних з цих файлових систем, перегляньте статтю "Шанси для відновлення".

Останнє оновлення: 20.06.2018