<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Представлен переработанный вариант распределённой ФС POHMELFS]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=19143&amp;type=atom" />
	<updated>2011-12-27T18:02:16Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=19143</id>
		<entry>
			<title type="html"><![CDATA[Представлен переработанный вариант распределённой ФС POHMELFS]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=237975#p237975" />
			<content type="html"><![CDATA[<p>Спустя три года с момента <a href="http://www.opennet.ru/opennews/art.shtml?num=15561">первого релиза</a> сетевой распределённой файловой системы POHMELFS в списке рассылки разработчиков ядра Linux представлен полностью переработанный вариант данной ФС, в котором реализовано большинство из всех запланированных ранее возможностей. Код проекта распространяется под лицензией GPLv2.</p><p>Новая реализация POHMELFS базируется на распределённом хранилище <a href="http://www.ioremap.net/projects/elliptics">Elliptics</a>, <a href="http://www.elliptics.ru/node/3">представляющем собой</a> распределённую хэш таблицу. Изначально Elliptics развивался как часть POHMELFS, но два года назад был выделен в отдельный проект, который успешно используется в промышленной эксплуатации. Например, Elliptics используется для организации хранения около петабайта контента в сервисах компании Yandex (карты, фотографии, музыка). Хранилище рассчитано на организацию надёжного хранения большого объёма данных в формате ключ/значение с резервированием информации за счёт дублирования данных на разных узлах сети (ситуация выхода узла из строя обрабатывается автоматически). Хранилище обеспечивает горизонтальное масштабирование - можно на лету удалять и добавлять новые узлы, при этом данные будут перераспределены автоматически.</p><p>Среди возможностей Elliptics: отсутствие единой точки отказа (отсутствует сервер мета-данных), поддержка репликации, автоматическое восстановление после сбоев, поддержка поколоночного хранения, проверка целостности, хранение данных в сжатом виде (используется метод <a href="http://www.opennet.ru/opennews/art.shtml?num=30003">Snappy</a>), атомарные транзакции, выборка группы ключей, поддержка привязки генерации уведомлений к операциям над заданными объектами и модульная архитектура, допускающая подключение различных бэкендов для хранения данных.</p><p>Отдельно можно отметить поддержку выполнения скриптов обработки данных на стороне сервера, что позволяет выполнять любые манипуляции с данными без их загрузки по сети. Например, функции работы с директориями в POHMELFS базируются на использовании данной возможности. Целью развития Elliptics является поддержка развёртывания хранилищ, работающих на базе нескольких территориально разделённых дата-центров. Кроме оптимизации на обеспечение высокой пропускной способности (Мб в секунду), основной упор делается на обеспечении высокой интенсивности выполнения операций (число операций ввода/вывода в секунду).</p><p>Если раньше дизайн POHMELFS напоминал параллельный NFS, то теперь POHMELFS выступает в роли фронтэнда с реализацией POSIX ФС, работающего поверх независимого хранилища Elliptics. Для оптимизации производительности POHMELFS поддерживает специальный режим синхронизации данных с подсоединёнными узлами, при котором данные вначале читаются/записываются в кэш локальной системы и не синхронизируются с внешним хранилищем до момента наступления таймаута. Таким образом, запись данных видна сразу только текущему пользователю и становится доступной для разделов, смонтированных на других машинах, только после сброса кэша. В случае экстренного отключения питания и если не используется режим writeback данные, которые не успели покинуть кэш, будут потеряны (как и для любых других ФС), при этом общая целостность не будет нарушена. Для увеличения скорости чтения директорий их содержимое целиком напрямую записывается в dentry/inode кэш, а не читается последовательно элемент за элементом.</p><p>Структура проекта стала заметно проще, что положительно сказалось на надёжности. Кроме того, удалось избавиться от ранее наблюдаемых узких мест, связанных с масштабированием и быстродействием (например, реализована возможность параллельного чтения/записи данных одновременно на несколько узлов). В настоящее время POHMELFS обеспечивает производительность, достаточную для полной утилизации пропускной способности сетевых устройств. Например, при выполнении на гигабитном сетевом интерфейсе синхронизации нескольких терабайт данных с локального RAID на сетевое хранилище POHMELFS с использованием утилиты rsync узким местом стала пропускная способность сетевого интерфейса.</p><p>Среди планов по развитию POHMELFS:</p><ul><li><p>Поддержка <a href="http://en.wikipedia.org/wiki/Quorum_%28distributed_computing%29">кворума</a> для обеспечения непротиворечивости чтения реплицированных на несколько узлов данных. Для гарантии, что часть распределённых по разным узлам данных не будет переписана в процессе чтения, как минимум две копии данных должны совпадать. Запись осуществляется параллельно с созданием трёх резервных блоков на разных узлах, для успешного завершения операции должно быть записано как минимум два блока с продублированными данными;</p></li><li><p>Режим совместимости с HTTP-приложениями. Для чтения и записи данных в POHMELFS станет возможно дополнительно использовать специальный HTTP API, работающий напрямую с хранилищем Elliptics по идентификатору объекта. Можно создавать такие схемы, при которых данные читаются из web-приложения через HTTP API, а записываются через штатный интерфейс файловой системы, и наоборот;</p></li><li><p>Поддержка случайного чтения разных реплик с целью балансировки нагрузки;</p></li><li><p>Возможность чтения/записи целиком столбцов или в представлении &quot;файл как директория&quot; (чтение/запись директории за один раз);</p></li><li><p>Дополнительное тестирование;</p></li><li><p>Замена старой реализации POHMELFS, входящей в состав ядра Linux (drivers/staging/pohmelfs), на новый код.</p></li></ul><p><a href="http://www.opennet.ru/opennews/art.shtml?num=32667">Источник »</a><br /><a href="https://lkml.org/lkml/2011/12/23/161">Главная ссылка к новости »</a></p>]]></content>
			<author>
				<name><![CDATA[XRevan86]]></name>
				<uri>https://linuxforum.ru/profile.php?id=10073</uri>
			</author>
			<updated>2011-12-27T18:02:16Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=237975#p237975</id>
		</entry>
</feed>
