IBM совершенствует файловую систему с журнализацией JFS

А именно: файловой системы с журнализацией, средств автоматического восстановления работоспособности после сбоев и кластеризации. Должно быть, кое-кто из вас уже слышал, что для Linux созданы целых четыре (вдумайтесь — четыре!) файловых системы, позволяющих вести системный журнал. Интеграция этих файловых систем в ядро 2.4 позволит заметно повысить масштабируемость, но все же не обеспечит выполнения всех условий, перечисленных Николасом. И тем не менее это наверняка привлечет к Linux внимание пользователей компьютерных систем старшего класса.

Одной из организаций, претворяющих в жизнь советы Петрили, является корпорация IBM, которая, верите вы этому или нет, становится крупнейшим игроком на рынке Linux и программного обеспечения с открытым кодом. Уже первая проба сил IBM с сервером Apache вылилась в создание виртуальной организации Linux Technology Center (LTC).

Под сенью LTC корпорация развернула множество самых разнообразных проектов, в реализации которых принимают участие коллективы, разбросанные по всему миру. В настоящее время IBM занимается созданием диспетчера логических томов (logical volume manager — LVM), повышением производительности и масштабируемости ядра, проектированием технологии OMNI для драйверов печати с открытым кодом, переносом операционной системы на платформы IA-64, PowerPC и S/390, сотрудничеством с Linux Standard Base и совершенствованием файловой системы JFS с журнализацией. Мы остановимся на проектировании версий JFS для различных операционных систем, начиная с AIX и заканчивая Linux.

Самоопределение файловых систем с журнализацией

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

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

Однако файловая система, подобная JFS, записывает в журнал не данные, а метаданные. С их помощью можно быстро определить, какой информационный блок к какому файлу относится, но в случае сбоя возможна потеря данных. Быстрое восстановление сегодня важнее, чем гарантия сохранения целостности информации. На восстановление работоспособности узла, не поддерживающего системный журнал, могут уйти часы или даже дни. А при наличии JFS эта процедура выполняется всего за несколько секунд или минут.

При использовании файловой системы с журнализацией наблюдается некоторое ухудшение производительности, поскольку системе приходится записывать дополнительные объемы информации. Однако это замедление сторицей окупится после первого же «падения» системы, после которого в противном случае пришлось бы запускать процедуру fsck. Кроме того, снижение производительности при работе с JFS не столь заметно за счет переключения системы в режим асинхронного ведения журнала. При синхронной записи частота занесения данных в журнал прямо пропорциональна интенсивности операций вывода. В асинхронном режиме запись в журнал производится в моменты уменьшения трафика ввода/вывода, и в результате накладные расходы оказываются не столь велики.

JFS глазами IBM

Команда LTC, занимающаяся проектом JFS, находится в городе Остин (штат Техас). Возглавляющий эту группу Стив Бест несколько недель назад организовал для пользователей Остина неформальную презентацию системы JFS. На встрече с пользователями Бест пояснил, что журналы JFS соответствуют классической модели транзакций, принятой в базах данных.

Бест перечислил несколько важных моментов, которые нашли отражение в JFS. Среди них можно отметить совместимость утилиты JFS fsck с символьными устройствами, возможность работы с учитывающими регистр именами файлов, поддержку платформ, отличных от Intel, и полноту регистрируемых в журнале событий.

Бест рассказал о намерении IBM перенести JFS на платформу Linux. Компания тесно сотрудничает с сообществом программистов и дистрибьюторами и рассматривает возможность встраивания JFS в ядро версии 2.4. На вопрос об интеграции JFS в среду AIX Бест ответил: «Цель команды, разрабатывавшей JFS, заключалась в создании высокопроизводительной конкурентоспособной файловой системы корпоративного уровня на платформе Linux».

Установить JFS на свой компьютер можно уже сегодня, но работы над файловой системой еще не завершены, и пока она размещена в Internet только для того, чтобы пользователи могли составить себе представление о ее возможностях. И все же в реализации проекта, о котором было объявлено только в начале текущего года, достигнуты определенные успехи. Последний вариант (12-й) был выпущен 15 сентября. Обновление JFS поддерживает три версии ядра: 2.2.14, 2.2.16 и 2.4.0 (7-й тестовый вариант). К настоящему моменту, вероятно, уже появилось обновление для последней тестовой версии ядра 2.4. Более полную информацию об этом можно получить на Web-странице JFS.


Зачем использовать журнализацию

Сведения для тех, кто не знаком с основными особенностями файловых систем с журнализацией.

В системном журнале регистрируются все события, связанные с записью и удалением данных

В журнале содержатся сведения о том, где файловая система разместила каждый блок

В случае сбоя можно выполнить откат и быстро восстановить всю информацию с помощью системного журнала

Вместо того чтобы переустанавливать компоненты и заново настраивать все существующие связи, файловая система с журнализацией решает эту задачу с использованием хранящихся в журнале записей