MogileFS на FreeBSD

Разговоры ни о чём

Модератор: vadim64

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

MogileFS на FreeBSD

Непрочитанное сообщение ProFTP » 2009-07-05 17:05:13

это для того чтобы винчестер и процессор не грузило??
там 100% нагрузку на CPU создает кэширование, синхронизация всякая...
ФС вместе с СУБД работает, если бы были тесты скорости!!!


MogileFS - open source distributed filesystem
Распределенная файловая система созданная в рамках проекта LiveJournal и реализованная на уровне многоплатформенного приложения на Perl.

Присутствуют операции создания файла (путь к файлу представляет собой множество ключей в рамках заданных доменов, информация о файлах хранится в MySQL базе) и его чтения (т.е. пригодна для решения задач, когда нужно один раз создать файл, а потом многократно его читать, модификация файла производится только путем полной перезаписи).

Для каждого файла задается его класс, определяющий на какое число соседних машин от будет реплицирован. Отлично подходит для создания распределенных web-проектов и как средство создания высоконадежного хранилища данных, не прибегая к использованию RAID. Доступ пользовательских приложений к ФС осуществляется посредством HTTP запросов (PUT/GET) или через использования виртуального NFS тома.
# Perlbal - система балансировки нагрузки на Perl, представленная на том же сайте. Отличный пример как нужно писать высокопроизводительные приложения на Perl.
http://www.danga.com/mogilefs/
установка MogileFS


Общая часть:
ставим subversion
cd /usr/ports/devel/p5-subversion && make install

сохраняем текущий транк в /root/mogile:
svn checkout http://code.sixapart.com/svn/mogilefs/trunk

или лучше просто перенести архивом с существующего места

ставим из портов:
/usr/ports/sysutils/p5-mogilefs-server
/usr/ports/sysutils/p5-MogileFS-Utils
/usr/ports/sysutils/p5-MogileFS-Client
/usr/ports/devel/p5-String-CRC32

- обновляем все библиотеки в /usr/local/lib/perl5/site_perl/5.8.8/ и в /usr/local/bin на полученные из svn
- копируем /mogile/trunk/server/lib/mogdeps/Gearman в /usr/local/lib/perl5/site_perl/5.8.8/
- setenv PERL5LIB lib:/usr/local/lib/perl5/5.8.8/BSDPAN:/usr/local/lib/perl5/site_perl/5.8.8/mach:/usr/local/lib/perl5/site_perl/5.8.8:/usr/local/lib/perl5/site_perl:/usr/local/lib/perl5/5.8.8/mach:/usr/local/lib/perl5/5.8.8:/usr/local/lib/perl5/site_perl/5.8.8/MogileFS

- /etc/mogilefs/mogilefs.conf
lib = /usr/local/lib/perl5/site_perl/5.8.8/
trackers=192.168.0.4:6001

- добавляем юезра:
pw groupadd mogile
pw useradd mogile -g mogile -s tcsh -m

копируем скрипты для мониторинга загрузки дисков в /root/scripts в crontab
*/2 * * * * root /root/scripts/disk-busy-stat.sh

установка трекера:
- ставим из портов:
/usr/ports/databases/p5-DBD-mysql51 (или для 5.0)
/usr/ports/databases/p5-DBI
# mysql
mysql> CREATE DATABASE mogilefs;
mysql> GRANT ALL ON mogilefs.* TO 'mogile'@'%';
mysql> SET PASSWORD FOR 'mogile'@'%' = OLD_PASSWORD( '1111111' );
mysql> FLUSH PRIVILEGES;
mysql> quit
mogdbsetup --dbhost=127.0.0.1 --dbname=mogilefs
- /etc/mogilefs/mogilefsd.conf
db_dsn = DBI:mysql:mogilefs:host=127.0.0.1
db_user = mogile
db_pass = 111111
conf_port 6001

если после запуска процессы могилы жрут много цпу на трекере - рестартануть могилу на стораджах.
# su mogile
$ mogilefsd -c /etc/mogilefs/mogilefsd.conf --daemon
$ exit

установка storage ноды:

- mkdir /var/mogdata
- монтируем туда как “devN” сами диски-стораджи (N должно быть уникальное для всего трекера)
ln -s /usr/home/mogile/dev4/ /var/mogdata/dev4
- создаем в каждом каталог test-write mkdir /home/mogile/dev4/test-write
- ставим на них права 777 chmod -R 777 /usr/home/mogile/dev4/
- /etc/mogilefs/mogstored.conf
mgmtlisten=0.0.0.0:7501
docroot=/var/mogdata
server=none

- ставим апач (сначала) и пхп из портов.
cd /usr/ports/www/apache20 && make install
cd /usr/ports/lang/php5 && make config

- Ставим nginx
cd /usr/ports/www/nginx && make config

- включить mod_dav, mod_flv(он будет как вебдав и отдавать статику)
Если у нас будет антихотлинк на стораджах
cd /usr/ports/security/php5-mcrypt && make install

в rc.conf
apache2_enable="YES"
nginx_enable="YES"
mogstored_enable="YES"
mkdir /var/log/nginx
chmod 777 /var/log/nginx/

- nginx.conf и httpd.conf взять с других стораджей
- mkdir /usr/home/domain.com, скопировать туда скрипты
- автостартап скрипт для стораджа

- проверить содержимое /etc/mogilefs/
- синхронизировать время /usr/sbin/ntpdate pool.ntp.org
- запускаем nginx, апач
- /usr/local/etc/mogstored start
- в ротацию
/var/log/nginx/nginx-access.log 600 7 10000 * J /var/run/nginx.pid
/var/log/nginx/error_log 600 7 10000 * J /var/run/nginx.pid
/var/log/httpd-access.log 600 7 10000 * J /var/run/httpd.pid
/var/log/snmpd.log 644 7 3000 * J

Трекер должен быть запущен.
- Добавляем новый хост на трекер (выполняем на трекере): mogadm host add [dns имя нового стораджа] –ip=[ip нового стораджа] –status=alive
например,
mogadm host add storage1.domain.com --ip=1.2.3.1 --status=alive

- Добавляем папки с нового хоста на трекер:
mogadm device add [dns имя нового стораджа] N –status=alive
например,
mogadm device add storage1.domain.com 1 --status=alive

Сделать приоритет в два раза больше чем у других
mogadm device modify storage1.domain.com 1 --status=alive --weight=200

Если надо приостановить отдачу с хоста
mogadm device modify storage1.domain.com 1 --status=down

Если надо его вывести
mogadm device modify storage1.domain.com 1 --status=dead

http://unix-notes.ru/tag/mogilefs/
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: MogileFS на FreeBSD

Непрочитанное сообщение paradox » 2009-07-06 16:07:55

это для того чтобы винчестер и процессор не грузило??
это для тог что бы делать распределнную ФС

Гость
проходил мимо

Re: MogileFS на FreeBSD

Непрочитанное сообщение Гость » 2009-07-07 6:08:35

да, на класстерах тоже...
там написано что можно php, в статье которую я привел тут просто ставиться эта ФС вместе с ФриБСД? я так понимаю можно использовать на мельком нагруженном сервке где кэш и т.д. больое?

Гость
проходил мимо

Re: MogileFS на FreeBSD

Непрочитанное сообщение Гость » 2009-07-07 6:51:51

paradox писал(а): это для тог что бы делать распределнную ФС
что это значит?
а нафига струтура ФС хранить с СУБД? скорее всего для быстродействия? допустим если есть каталог(и) в котором есть много файлов, то если произвести весь список, то идет нагрузка на CPU (в UFS2 есть сепциальных кэш) если у тебя кэш 50ГБ Squid, то постоянно нагрузка винчестер...