Общая часть:
ставим 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
FreeBSD
mogilefs