Використання reiserfs в linux
Альтернативні, просунуті файлові системи для сміливців
Ознайомтеся з файловими системами ext2 (друга розширена файлова система), ext3 (третя розширена файлова система) і Reiser4 і дізнайтеся, як створити свою власну файлову систему Reiser4. Найбільш широко використовувана ext2 - це традиційна UNIX®-ова файлова система, яка погано підходить для сучасних жорстких дисків великих розмірів. У файлової системи ext3 додано журнал, але більше майже нічого. Якщо вам потрібно щось реально просунуте, можна випробувати сучасну файлову систему Reiser4.
Кріс Херборт. позаштатний співробітник, незалежний письменник
Мене завжди зачаровували файлові системи і жорсткі диски - з тих пір як я витратив купу грошей на величезний (на ті часи) 80-мегабайтний жорсткий диск для свого комп'ютера на початку 90-х років. Є щось чарівне в тому, як великі шматки даних перекидаються туди-назад по шині, Новомосковскются і пишуться тисячі файлів, працюють бенчмарки.
Може бути, ви не поділяєте мого захоплення жорсткими дисками і ПО, яке відстежує стан файлів і каталогів, але ймовірно, ви зацікавлені в збереженні даних, ефективне використання жорсткого диска, і вичавлюванні максимальної продуктивності з кволої підсистеми вводу / виводу вашого комп'ютера.
З усіх широко поширених операційних систем Linux® має найширшу підтримку різних файлових систем. В цьому відношенні Linux відрізняється від інших UNIX®-систем, які традиційно підтримують свої власні файлові системи і файлову систему ISO-9660, яка використовується на стандартних CD-ROM дисках. Моя система Fedora Core 4 має завантажувані модулі ядра для двох десятків сортів файлових систем - головним чином для забезпечення сумісності. До Linux можна підключити диск практично з будь-якої комп'ютерної системи і маніпулювати ним. Але що якщо ви встановлюєте новий диск в Linux-систему і вам не потрібно використовувати його в Windows®, QNX, Mac OS X або Minix?
Тоді варто дізнатися трохи більше про деякі основні файлових системах Linux, таких як ext2 (друга розширена файлова система), ext3 (третя розширена файлова система) і reiserfs 4 (перспективна файлова система з багатьма екзотичними можливостями, які поліпшують роботу з файлами).
підготовка
Якщо Ваш дистрибутиві Linux відсутня підтримка Reiser4 (вона є, наприклад, в Arch, Linspire і SUSE), то належить виконати досить складну операцію: пересобрать ядро. Про перезібравши ядра треба було б писати окрему керівництво, тому зверніться до керівництва для конкретного дистрибутива, яке допоможе вам розібратися в етапах складання ядра.
До того як почати компілювати ядро Linux, необхідно відвідати домашню сторінку Reiser4 на сайті Namesys (див. Розділ Ресурси) і завантажити патчі Reiser4, які підходять для використовуваного ядра. Ці патчі містять інструкцію про те, як їх застосувати перед тим, як конфігурувати і скомпілювати ядро.
Щоб створювати файлові системи Reiser4 і працювати з ними, знадобиться пакет reiser4progs. Якщо в дистрибутиві немає пакета resier4progs, знову відвідайте сайт Namesys і скачайте його (див. Ресурси).
Якщо хочеться поекспериментувати з Reiser4, чудове рішення - Gentoo Linux Live CD з підтримкою Reiser4. Див. Посилання в розділі Ресурси.
Файлові системи Linux
Через обмеженість файлової системи Minix почалася робота над її заміною. В результаті з'явився рівень абстракції віртуальної файлової системи (VFS), який спростив написання файлових систем для Linux. З використанням нового VFS файлова система Minix була розширена додаванням підтримки довгих імен файлів і збільшенням файлової системи (до 2 ГБ). Ця версія отримала назву розширеної файлової системи (ext), але і у неї залишилися обмеження.
Багато з цих обмежень були подолані в файлової системі ext2, яка все ще використовується в багатьох системах і довгий час була в Linux файлової системою за замовчуванням. В результаті додавання до ext2 журналирования з'явилася наступна версія - ext3.
Першою працює під Linux журнальованою файлової системою була reiserfs (також відома як Reiser3), яка мала підтримку журналирования і краще використовувала дисковий простір. У прийшла їй на зміну версії Reiser4, повністю переробленої і переписаною, основна увага приділяється розширюваності, безпеки і продуктивності і при цьому ефективному та безпечному зберіганню даних. Reiser4 поки не включена в ядро Linux 2.6, що зазвичай свідчить про можливу нестабільність або інших приводах для обачності. Не забувайте завжди робити резервні копії важливих даних, незалежно від файлової системи.
Давайте зробимо швидкий огляд файлових систем ext2, ext3 і Reiser4.
Традиційна: ext2
Ext2 - файлова система за замовчуванням в Linux - це традиційна UNIX-ова файлова система (базується на файлової системі Berkeley Fast Filesystem, FFS). Вона має максимальну довжину імені файлу 255 символів і теоретичний максимум розміру файлової системи 4 терабайта. (Драйвер блокових пристроїв в Linux обмежений "всього лише" 2047 гігабайтами; дайте мені знати, коли я зможу купити жорсткий диск такого обсягу).
Файлова система ext2 підтримує всі стандартні можливості UNIX:
- Ідентифікатори (ID) власника і групи.
- Біти режимів, що задають права користувачів, груп і інші права і прапори операційної системи.
- Ведення записів створення, модифікації і часу доступу до файлів (хоча більшість систем запускаються з відключеним контролем часу доступу для збільшення продуктивності ціною втрати сумісності зі стандартом POSIX 1003.1).
Головний недолік ext2 в тому, що жорсткі диски стали з моменту її створення стали набагато більше. Якщо система руйнується або відмовляє харчування, файлову систему доводиться перевіряти за допомогою fsck. що на сучасних дисках з величезною кількістю папок і файлів займає дуже багато часу.
Традиційна, але журнальована: ext3
Файлова система ext3 для Linux використовується за умовчанням в більшості сучасних дистрибутивів. У порівнянні з ext2 в ній додані:
- Журнал метаданих, що забезпечує достовірне стан файлової системи. Це звільняє від необхідності проводити тривалі перевірки за допомогою fsck після краху системи або відмови харчування.
- Індексування дерева каталогів для прискорення доступу до великих каталогах.
- Зміна розміру на льоту і можливість апгрейда файлової системи з ext2 до ext3 без переформатування жорсткого диска.
- Збільшені максимальні розміри файлу і файлової системи (2 і 32 терабайта відповідно).
Хоча ext3 поступається за швидкістю і масштабованості конкурентам (таким як Reiser3 або чудова XFS від SGI), вона сумісна з ext2, що робить її привабливою, тому що ext2 має безліч відпрацьованих утиліт для підтримки і адміністрування.
Машина Бетмена: Reiser4
Хоча файлова система Reiser3 придбала деяку популярність, завдяки її швидкості та підтримки журналювання (сьогодні вона стала файлової системою за замовчуванням для деяких дистрибутивів Linux), її творці не розслаблялися. Reiser4 написана з нуля і включає цікаві додаткові можливості:
- Ефективне журнал з реєстрацією подій.
- Ефективне зберігання маленьких файлів, в результаті чого збільшується швидкість і краще використовується дисковий простір.
- Швидка обробка дуже великих каталогів з сотнями мільйонів файлів (так, мільйони файлів в одному каталозі без втрати продуктивності).
- Гнучка інфраструктура плагінів, які дозволяють легко додавати можливості стиснення і шифрування в будь-який час в майбутньому.
- Автоматична модифікація файлової системи, що завжди гарантує її узгоджене стан.
- Динамічна оптимізація диска на льоту.
- Підтримка транзакцій в стилі баз даних.
Але стривайте, чому я назвав її "машиною Бетмена"? Reiser4 підтримує безліч цікавих можливостей, які вам можуть ніколи не знадобитися, тому що Linux VFS не відчиняє цю функціональність, - так само як численні можливості автомобіля Бетмена не знадобляться вам по дорозі з дому на роботу.
Знайомство з Reiser4
Перш ніж робити що-небудь цікаве з файлової системою Reiser4, потрібно відформатувати розділ під неї. Як видно з малюнка 1. у мене є запасний розділ для цієї мети:
Малюнок 1. Розділ для форматування
Потрібно створити нову файлову систему Reiser4 на цьому розділі і потім її змонтувати.
Створення файлової системи Reiser4
Для створення файлової системи необхідно увійти як адміністратор - root (або використовувати команду sudo для отримання адміністраторських прав) і скористатися командою mkfs.reiser4:
Ця команда створить файлову систему Reiser4 на зазначеному розділі (я вибрав / dev / hda1) з міткою "mylabel" і випадковим унікальним ідентифікатором, як показано на малюнку 2.
Малюнок 2. Створення файлової системи Reiser4

Свіжоспечена файлова система Reiser4 готова! Тепер потрібно змонтувати її, щоб почати використовувати.
монтування
Щоб змонтувати нову файлову систему, потрібно увійти як адміністратор (або використовувати команду sudo для отримання адміністраторських прав) і виконати команди mkdir і mount:
Команда mkdir створює точку монтування, після чого mount монтує пристрій з нашої файлової системою в створеної точки монтування.
Можна виконати команду mount без будь-яких аргументів, щоб подивитися список вже змонтованих файлових систем, в якому тепер з'явиться створена файлова система Reiser4 (див. Малюнок 3).
Малюнок 3. Змонтовані файлові системи, включаючи Reiser4

Тепер, коли нова файлова система змонтована, зробимо так, щоб вона монтувалася автоматично.
Автоматичне монтування файлової системи
Щоб система автоматично монтувала тому з Reiser4, необхідно прописати відповідні інструкції в файлі / etc / fstab.
В / etc / fstab слід вказати потрібний пристрій і точку монтування для файлової системи. Після пристрою і точки монтування необхідно визначити тип файлової системи і її опції (використовуйте налаштування за замовчуванням, якщо ви не знаєте точно, що робите і не володієте хорошою документацією по файлової системи). Останні дві опції, "прапор резервного копіювання" і "прапор перевірки fsck", потрібні з історичних причин.
Можна перевірити правильність редагування / etc / fstab, коректно отмонтировать файлову систему і сказавши команді mount змонтувати все автоматично:
Тепер при введенні команди mount без аргументів результат повинен виглядати в точності так само, як і раніше (див. Figure 3). Нова файлова система буде автоматично монтуватися під час завантаження разом з іншими файловими системами.
Поліпшення продуктивності і налаштування поведінки томи
Як і більшість інших файлових систем для Linux, Reiser4 має ряд опцій, які можна використовувати для поліпшення загальної продуктивності і зміни її поведінки. Ці опції можна передати команді mount. використовуючи параметр -o. як видно з наведеного нижче прикладу:
У команду можна включити кілька опцій файлової системи, розділяючи їх комами.
Щоб опції файлової системи застосовувалися під час завантаження, можна також включити їх в файл / etc / fstab:
Основні використовувані опції:
- defaults - стандартні параметри файлової системи в Linux. Опція еквівалентна завданням наступних параметрів: rw, suid, dev, exec, a uto, nouser, async. Файлова система буде змонтована в режимі читання-запису, будуть виставлені біти set-UID, звернення до блокових і символьним пристроїв буде відбуватися звичайним чином, бінарні файли будуть виконуваними, файлову систему можна буде монтувати автоматично, всі операції введення-виведення будуть проводитися асинхронно.
- noatime - не оновлювати поле часу доступу до файлів при читанні. Це не відповідає POSIX в строгому сенсі, але може значно збільшити швидкість операцій файлової системи, особливо на файлових системах з величезною кількістю папок і файлів, які зазвичай використовуються на читання, а не на запис.
- noexec - не запускати бінарні файли з файлової системи. Файлова система вважається містить тільки дані. Це може бути корисно, якщо ви не дуже довіряєте джерел файлів і бінарного коду, що знаходяться на даній файлової системи.
- nosuid - ігнорувати призначені для користувача і групові ідентифікатори файлів в цій директорії; ще одна опція безпеки на випадок, якщо ви не довіряєте джерелу файлів.
- ro - файлова система монтується в режимі тільки для читання. Спроби записати або створити новий файл не спрацюють.
- data = journal - замість того, щоб записувати в журнал файлової системи тільки метадані, перед записом в файлову систему проводиться повне журнал даних. Це гарантує цілісність даних після позаштатних ситуацій, але серйозно зменшує продуктивність записи.
Зазвичай можна використовувати стандартні параметри, але додавання опції noatime дозволяє безпечно збільшити швидкодію. Опція data = journal може бути корисна для дуже важливих CVS-серверів або файлових систем, використовуваних для резервного копіювання, де збереження даних набагато важливіше продуктивності.
Додавання нової файлової системи в Linux може бути непростим завданням, особливо якщо мова йде про одну з безлічі підтримуваних Linux альтернативних файлових систем. Знання особливостей і обмежень популярних файлових систем допоможе прийняти розумне рішення.
Файлову систему Reiser4 все ще слід розглядати як експериментальну (навіть незважаючи на те, що багато людей використовують її без проблем), оскільки вона поки що не включена в ядро Linux. Розробники Namesys докладають усіх зусиль, щоб включити свій код в ядро, тому поява дистрибутивів, що базуються на Reiser4 - тільки справа часу.
Після створення файлової системи за допомогою відповідної команди mkfs. монтування її командою mount (і додавання в файл / etc / fstab) можна почати з нею працювати. Пам'ятайте, що резервні копії важливих даних потрібно робити регулярно, а не тоді, коли відмовить жорсткий диск.
Отримати продукти і технології
- Завантажте Gentoo Linux Live CD з вбудованою підтримкою Reiser4. (EN)
- IBM trial software. ознайомчі версії програмного забезпечення для розробників, які можна завантажити прямо зі сторінки спільноти developerWorks. (EN)