Theodore Ts'o выпустил патч к файловой системе ext4 с альтернативным решением проблемы с потерей данных в файлах, перезаписываемых незадолго до момента краха системы. В патче представлен новый режим журналирования "data=alloc_on_commit", похожий по своей сути на ext3 режим "data=ordered", при котором вначале изменяются данные, а потом изменения отражаются в журнале.
Включение "data=alloc_on_commit" приводит к введению отложенных коммитов, когда вначале в журнал помещается предварительная пометка, а после сброса блоков с отложенной записью (delayed allocation), в журнале окончательно фиксируется транзакция. Ожидается, что патч будет включен в состав Linux ядра 2.6.30.
Кроме того. на включение в состав Linux ядра 2.6.30 претендуют новые файловые системы: CEPH, NILFS2 и POHMELFS.
При этом, патчи с реализацией POHMELFS были включены в тестовую "staging" ветку Linux ядра еще месяц назад, в то время как патчи CEPH и NILFS2 еще только готовятся к включению.
Файловая система NILFS2 была разработана в недрах японской телефонной компании NTT, как система особо устойчивая к сбоям. Для хранения всех данных в NILFS2 используются подобные логам структуры, в которых только добавляются новые записи и никогда не переписываются активные. Таким образом оборванная крахом операция записи, никак не отразится на целостности хранимых данных. В NILFS поддерживается возможность фиксации снапшотов (snapshot) для просмотра состояния данных на определенный момент времени, используются B-tree деревья и 64-битные структуры данных.
Ceph является распределенной файловой системой и может использоваться в конфигурациях, состоящих от нескольких машин, до тысяч узлов. Общий объем хранилища данных может измеряться петабайтами, встроенные механизмы продублированной репликации данных (не зависит от отказа отдельных узлов, данные разбиваются на блоки и несколько раз дублируются на разных машинах) обеспечивают чрезвычайно высокую живучесть системы, при добавлении или удалении новых узлов, массив данных автоматически ребалансируется с учетом новшеств. В Ceph имеется поддержка снапшотов, причем снапшот может быть создан не только для всех ФC, но и для отдельных директорий. В отличии от таких файловых систем, как GFS, OCFS2, и GPFS, в Ceph обработка данных и метаданных разделена на различные группы узлов в кластере, примерно как это сделано в Lustre, с тем различием, что обработка производится на уровне пользователя, не требуя какой-то особой поддержки от ядра. Ceph может работать поверх блочных устройств, внутри одного файла или используя существующую ФС (например, XFS).
|