Ext

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

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

Опис

Оновлення файлової системи для відбиття змін файлів і каталогів, як правило, вимагає безліч окремих операцій запису. Це може спричинити пошкодження даних у разі переривання роботи між окремими записами.

Наприклад, видалення файлу у файловій системі Unix включає два кроки:

  1. Видалення запису директорії.
  2. Маркування простору видаленого файлу та його inode у категорію "вільний простір".

Якщо збій стається між кроками 1 і 2, то з’являється завислий inode, а отже і витік пам'яті накопичувача. У нежурнальованій файловій системі виявлення і відновлення після таких неполадок вимагає повного проходження через усі структури даних файлової системи. Це зазвичай треба робити перед монтуванням ФС для запису/зчитування. Якщо ФС відносно велика і має низьку пропускну здатність, то відновлення може зайняти багато часу і призвести до довшого простою.

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

Версії

ext2

ext2 або 2-га розширена файлова система — файлова система для ядра Linux. Розроблена Rémy Card'ом як заміна для extended file system. Вона достатньо швидка для того, щоб служити еталоном в тестах продуктивності файлових систем. Вона не є журнальованою файловою системою, і це її основний недолік. Розвитком ext2 стала журнальована файлова система ext3, повністю сумісна з ext2.

Історія

На зорі розвитку Linux використовувала файлову систему Minix. Ця файлова система була досить стабільною, однак була 16-розрядною і як наслідок мала жорсткі обмеження в 64-Мегабайтах на розділ. Також було обмеження довжини імені файлу: воно становило 14 символів. Ці і не тільки обмеження призвели до появи в липні 1992 року «розширеної файлової системи» (extended file system), що вирішувала 2 основні проблеми Minix. Нова файлова система розширила обмеження на розмір файлу до 2 гігабайт і встановила максимальну довжину імені файлу в 255 символів. Однак вона все одно мала проблеми: не було підтримки роздільного доступу, тимчасових міток модифікації даних.

Розв'язком усіх проблем стала нова файлова система, розроблена в лютому 1993 року. В ext2 були одразу реалізовані відповідні стандарту POSIX списки контролю доступу ACL і розширені атрибути файлів.

ext3

ext3 або 3-я розширена файлова система — журнальована файлова система, що використовується в операційних системах на ядрі Linux, є файловою системої за замовчуванням у багатьох дистрибутивах. Базується на ФС ext2.

Файлова система ext3 може підтримувати файли розміром до 1 ТБ.

Недоліки - нижча швидкість роботи у порівнянні з ext2

ext4

ext4, або Четверта версія розширеної файлової системи,— журнальована файлова система, котра використовується в ОС з ядром Linux. Заснована на файловій системі ext3, котра є файловою системою за замовчуванням в багатьох дистрибутивах.

Вперше експериментальна підтримка ext4 була випущена у вигляді патча для Linux версій 2.6.19-rc1-mm1 та 2.6.19-rc1-git8 10 жовтня 2006 року програмістом Мортон, Ендрю|Ендрю Мортоном. Головною особливістю стало збільшення максимального обсягу одного розділу до 1 ексабайта (260 байт) при розмірі блоку 4Kb. Крім того, в ext4 представлений механізм просторового запису файлів (нова інформація додається в кінець попередньо виділеної по сусідству області файла), що зменшує фрагментацію і збільшує продуктивність.

Деякі дані

  • розмір файла до 16 ТБ;
  • розмір фс до 1024 ПБ;
  • дозволені символи всі крім NUL та '/';
  • межі дат 14 грудня 1901 — 25 квітня 2514;
  • мінімальна зміна часу — наносекунда.

Підтримка ext4 включена до релізу Fedora 9, Ubuntu 9.04 (Jaunty Jackalope), openSUSE 11.2.