Те, кто следил за обновлениями ядра, возможно, заметили, что поддержка POHMELFS была добавлена в выпуске 2.6.30. Что это - файл похмелья? Исследование окрестностей страницы позволил нам предположить, что разработкой ФС занимается московский программист Евгений Поляков (и только он!), у которого на этом же сайте есть много других интересных проектов, таких как CARP-порт для Linux .
В целом у меня сложилось впечатление, что программист крайне грамотный и настойчивый.
Давайте вернемся к ПохмельФС .
статья Википедия подтверждает причастность к названию похмелья, которое для приличия расшифровывается как Параллельная оптимизированная многоуровневая файловая система обмена сообщениями между хостами .
Документация на странице проекта предполагает, что в будущем PohmelFS — это распределенная файловая система с резервированием, контролем доступа и другими удобствами, разработанная для того, чтобы не сильно отставать от локальных файловых систем по производительности.
Это альтернатива различным GFS, GlusterFS и прочим Coda. Но все это произойдет после интеграции проекта с двумя другими — летнее время И Эллиптика .
На данный момент PohmelFS является альтернативой старой плохой NFS, практически везде показывающей лучшую производительность( проверочная ссылка ).
Ниже представлен процесс настройки небольшого зоопарка.
Вещь новая, неизведанная, никто толком не знает, как ею пользоваться.
В Интернете я нашел только одно руководство, и оно не очень умное.
Поэтому здесь публикую грамотный (на мой взгляд) способ элементарной настройки.
Первое, что нужно сделать, это загрузить исходные коды ядра 2.6.30 и собрать ядро с помощью модуля pohmelfs. На момент публикации драйвер находился в статусе staging, поэтому включить его в менюконфигурацию нетривиально.
Вам необходимо включить опцию Драйверы устройств -> Промежуточные драйверы И выключить Драйверы устройств -> Промежуточные драйверы -> Исключить промежуточные драйверы из сборки.
, после чего можно включить POHMELFS, расположенный там.
Следует отметить, что ядро необходимо обновить.
только на клиенте.
Серверная часть работает в пользовательском пространстве.
Второе, что вам нужно для работы ФС — это утилиты пользовательского пространства и сервер.
Вам необходимо скомпилировать исходники.
Я загрузил отсюда последний снимок pohmelfs-server.git. Для тех, кто будет делать то же самое, скажу, что снапшоты распространяются в формате tar.bz2, о чем нужно догадаться, если не знаете.
Распакуйте, прочитайте README, поместите /usr/src/linux/drivers/staging/pohmelfs/netfs.h туда, где рекомендует начало README, то есть /usr/src/linux/fs/pohmelfs/netfs.h (это очень важно, так как на сервере взять этот файл негде, а собрать сервер необходимо).
Будьте внимательны, путь к исходникам ядра может быть другим.
После этого $ .
/autogen.sh $ .
/configure
Автоген может на что-то жаловаться, это лечится очевидным способом.
Но мой конфиг под Gentoo жаловался на невозможность найти включения POHMELFS, и только при чтении лога выяснилось, что проблема на самом деле не в netfs.h, а в bitsperlong.h, который по неизвестной причине и был не нашел .
Мне пришлось настроить это так: $ CPPFLAGS=-I/usr/src/linux-2.6.30-git18/arch/x86/include .
/configure --with-kdir-path=/usr/src/linux
Потом можно сделать make, тогда он соберет все, что сможет. Я пошел другим путем.
На сервере сборка и установка выглядели так: $ cd server; make
# cp fserver /usr/local/sbin
На клиенте в свою очередь: $ cd cfg; make; cd .
/utils; make; cd .
# cp cfg/cfg /usr/local/sbin/pohmelcfg; cp utils/flush /usr/local/sbin/pohmelflush
Это важное отступление от Makefile, так как теперь на сервере устанавливается только серверная часть, а на клиенте — только клиентская часть, а ненужные включения пока вообще не устанавливаются.
Клиентские бинарники также переименованы в более понятные имена, так как, например, «cfg» вообще не указывает на то, что он настраивает только pohmelfs. Утилиты пользовательского пространства были успешно скомпилированы как на Gentoo x86_64, так и на Arch Linux i686. Наступает момент истины.
Запускаем! Для начала запустим серверную часть.
fserver работает на переднем плане, поэтому сначала сделаем следующее: # /usr/local/sbin/fserver -a 192.168.1.10 -r /mnt/HD_a2/ -w5 2>&1 >>/var/log/fserver.log &
(Подставьте нужные параметры, -w — количество рабочих процессов)
Дальше настройка и монтирование ФС на клиенте.
# modprobe pohmelfs
# pohmelcfg -A add -a 192.168.1.10 -p 1025 -i 1
# mount -t pohmel -o idx=1 /mnt/pohmel
Здесь -i для cfg и idx= для монтирования должны быть одинаковыми, по умолчанию — 0. Насколько я понимаю, это просто идентификатор монтируемого общего ресурса.
Запуск сервера и клиента у меня не вызвал никаких затруднений, все заработало сразу.
Небольшой тест производительности (файл 700 МБ): stolen@stolen ~/soft/pohmelfs-server.git $ time cat /mnt/pohmel/share/GRTMPVOL_RU_20.10.08.iso >/dev/null
real 1m37.150s
user 0m0.010s
sys 0m1.270s
stolen@stolen ~/soft/pohmelfs-server.git $ time cat /mnt/pohmel/share/GRTMPVOL_RU_20.10.08.iso >/dev/null
real 0m0.591s
user 0m0.003s
sys 0m0.257s
stolen@stolen ~/soft/pohmelfs-server.git $ time cat /mnt/upload/share/GRTMPVOL_RU_20.10.08.iso >/dev/null
real 1m3.719s
user 0m0.003s
sys 0m0.400s
Третье — NFS, имеющая небольшое преимущество по чтению.
По записи размером 100 МБ POHMELFS оказался в 10 раз быстрее, видимо, за счет фонового ввода-вывода.
Теги: #linux #настройка Linux #новый #nfs #nfs #Pohmelfs
-
Советы По Использованию Burp Suite
19 Oct, 24 -
Двухбуквенные Домены В Домене .Su
19 Oct, 24 -
Подготовка К Проекту Внедрения Sap Hcm
19 Oct, 24 -
Идти! Идти! Идти…
19 Oct, 24 -
Видеонаблюдение На Os X
19 Oct, 24