Керівництво по просунутим файловим системам

Використання CVS

Якщо ви раніше не користувалися CVS, можете скористатися моїм керівництвом за CVS для розробників і любителів. Навіть якщо ви маєте загальне уявлення про CVS, цього буде достатньо. Переконайтеся тільки, що на вашій системі є інстальований пакет CVS і вам доступна команда cvs.

Опис інструкцій CVS, які будуть використовуватися далі, можна також знайти на сайті SGI. Після скачування початкових кодів через cvs. ви отримаєте новий каталог, що містить ядро, готове до використання XFS, і найсучасніші інструменти для роботи з цією файловою системою. Для скачування початкових кодів від XFS CVS спочатку встановіть змінну середовища CVSROOT в потрібну установку. Наприклад, в командному рядку bash введіть:

Тепер перейдіть в каталог, де ви бажаєте розмістити каталог дерева XFS, і виконайте:

За запитом пароля введіть cvs. Тепер ви підключилися до загальнодоступного сховища CVS. Отримайте найостанніші вихідні XFS, ввівши:

Запускається процес checkout. Це займе деякий час, так як файли, які ви завантажуєте, включають повне дерево исходников ядра Linux. Через деякий час, коли команда cvs checkout завершиться, ви будете мати нове дерево початкових кодів в поточному робочому каталозі. Рекомендація на майбутнє: якщо вам потрібно модернізувати дерево початкових кодів, просто всередині утворився каталогу введіть:

Робота з деревом

На початку цього розділу Деніел розповідає про підготовку дерева початкових кодів ядра. Ця частина опущена, як повністю втратила актуальність - А.Ф.

Тепер про конфігуруванні ядра. Для підтримки XFS, після make menuconfig перейдіть в секцію File systems. Там ви побачите наступну опцію:

Дозвольте її (рекомендується статично компілювати в ядро). Введіть "y" і з'являться ще три під опції:

Опція "XFS Realtime" дозволяє підтримку realtime subvolume в XFS, що дозволить в подальшому конфігурувати області пам'яті, що забезпечують певну продуктивність для додатків реального часу. Опція "XFS Quota" дозволить, як неважко здогадатися, підтримку лімітів на розмір доступного дискового простору для користувачів і груп. Опція "XFS DMAPI", якщо позначена, дозволить спеціальний API, призначений для управління додатками. В даний час під Linux ще немає інструментів, які користуються перевагами DMAPI (маються у Sistina's LVM і "рідні" утиліти SGI XFS). Однак деякі DMAPI-додатки для Linux вже знаходяться в розробці у SGI і IBM.

Після вибору "SGI XFS filesystem support" і конфігурації решти ядра на ваш смак, ви готові ввести make dep make make bzImage make modules make modules_install. інсталювати нове ядро ​​і перезавантажитися.

інсталяція інструментарію

Тепер, коли ви працюєте на ядрі, що підтримує XFS, можна створити і інсталювати різні XFS tools. Одна з хороших новин щодо XFS - вона поставляється з повним набором інструментів підтримки і утиліт. Увійдіть в каталог linux-2.4-xfs / cmd і запустіть (з правами root) наступний сценарій оболонки:

Не забудьте про переведення рядка після done. Наш спеціальний скрипт почне роботу, і всі інструменти XFS будуть інстальовані. Після фінішу додамо кілька developer-related файлів, що не інстальовані попередньою командою make install l:

H4> Створення та монтування файлової системи.

Після відпрацювання скриптів всі потрібні для XFS програми будуть інстальовані і готові до використання. Можна створити тестову XFS і спробувати досягти оптимальної продуктивності.

Якщо XFS створюється поверх ReiserFS, буде потрібно невелика хитрість. На запрошення bash введіть наступну команду для "обнулення" початкового ділянки блочного пристрою, на якому зберігалася ReiserFS, а тепер ви збираєтеся форматувати нову файлову систему XFS:

Такий крок необхідний для eybxnj; tybzt зберігаються ReiserFS метаданих. Інакше, команда mount може "заплутатися" і випадково змонтувати нову файлову систему XFS як дефектну ReiserFS! Досить дозволити dd відпрацювати 10 секунд і перервати комбінацією CTRL-C. При цьому всі "критичні" частини раніше існуючої ReiserFS будуть заповнені нулями, а код авто-детектування типу файлової системи "плутатися" більше не буде.

Прийшов час створити нову файлову систему. Для цього можна скористатися командою mkfs.xfs наступним чином:

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

Перша з таких опцій -l size = 32m. що повідомить mkfs.xfs конфігурувати файлову систему так, щоб журнал метаданих мав розмір 32 Mb. Це підвищить продуктивність, зробивши малоймовірним переповнення журналу при високих навантаженнях.

Друга опція дозволяє підняти продуктивність нової файлової системи, повідомивши mkfs.xfs мінімізувати число allocation groups. Зазвичай, mkfs.xfs вибирає число allocation groups автоматично. Але досвід показує, вибирається число дещо більше, ніж потрібно для оптимальної продуктивності однопроцесорних Linuxмашін і серверів. Якщо ви повторно перечитаєте мою попередню статтю>, allocation groups дозволяють XFS виконувати операції над метаданими паралельно. Це дуже зручно для high-end серверів, але занадто багато allocation groups додають роботи. Замість того щоб дозволити mkfs.xfs автоматично вибрати число allocation groups для вашої файлової системи, зробіть це "вручну", використовуючи -d agcount = x. Виберіть x мінімальним, наприклад, 4, 6 або 8. Розрахунок досить простий, необхідно мати, принаймні, одну allocation group на кожні 4 GB в цільовому блоковому пристрої. Дві описані опції дозволять створити "оптимізовану" XFS filesystem наступною командою:

Тепер, після створення файлової системи, її можна монтувати. При цьому можна скористатися деякими опціями монтування, що підвищують продуктивність, щоб "вичавити" максимум з нової файлової системи:

Перші дві опції монтування вимикають модифікацію atime. що практично ніколи і не потрібно, але сприяє деградації продуктивності. Опція osyncisdsync домагається такого sync / async поведінки XFS, щоб максимально відповідати такому в ext3. Завдяки таким mkfs.xfs і mount ваша нова XFS матиме швидкість трохи вище, ніж при замовчуванні.

Позитивні герої.

Одна з хороших речей в XFS - вона має багато спеціальних функціональних можливостей. Однією з них є "access control lists" або ACL. Зараз це підтримується в XFS за замовчуванням. Списки контролю доступу дозволяють визначати більш дробові дозволу на файли. Наприклад, замість обмеженого "rwx" для власника, групи та інших, стає можливим додавати будь-яке число додаткових користувачів або груп і визначати "rwx" permissions і для них.

XFS має ще одну особливість, яка називається розширеними атрибутами (extended attributes). Такі extended attributes дозволяють вам асоціювати певні користувачем дані з об'єктами файлової системи. Наприклад, якщо ви маєте графічний файл на ім'я mygraphic.png. можна прикріпити до нього атрибут, званий "thumbnail", що містить маленьку версію зображення. Ці дані не будуть видимі звичайними файловими операціями введення / виводу, але до них можна звертатися з програм, що використовують API спеціальних розширених атрибутів. За своєю суттю, розширені атрибути схожі на гілки ресурсів (resource fork), існуючі на MacOS системах.

Є приклад використання розширених атрибутів через команду attr з командного рядка. Скажімо, я бажаю додати атрибут description до мого домашнього каталогу. Я ввожу:

Після цього, щоб бачити список атрибутів, що асоціюються з / home / drobbins. можна ввести:

Розширені атрибути прості і забавні у використанні. Ви можете дізнатися про них більше, прочитавши man attr. XFS включає також API C для взаємодії з extended attributes. Якщо ви цікавитеся роботою з C ++ IOStream інтерфейсом до розширених атрибутів, можете подивитися libferris на SourceForge.

Звичайно, розширені атрібутиs і ACL відкривають цікаві можливості, але будьте обережні. Більшість програм резервного копіювання в даний час ще "не розуміють" ні EA, ні ACL. Відомі мені виключення - xfsdump і xfsrestore. поставляються з XFS distribution. Якщо використовуєте іншу backup програму, проведіть спочатку інтенсивне тестування на підтримку EA і ACL.

Я сподіваюся, вам сподобалося це "миттєве" введення в файлову систему XFS. Чекайте нових статей!

Схожі статті