First of all, you need Postgres version 8.2 or newer since mogdbsetup refuses to run with older versions.
Anyways, I spent a quite a bit of time trying to install MogileFS with Postgres. I was getting "Can't create temporary test database:" errors. The answer was in the ~/.cpan/build/mogilefs-server-2.34/blib/lib/MogileFS/Test.pm file. The temp_store subroutine was defaulting to MySQL...
Here is the setup step by step on my Fedora 12:
yum install mogilefsd
yum install mogstored
yum install perl-CPAN // if needed
yum install perl-MogileFS-Client perl-MogileFS-Utils
yum install perl-DBD-Pg
yum install perl-IO-AIO
Setup services.
chkconfig --levels 345 mogilefsd on
chkconfig --levels 345 mogstored on
Setup a test database to be used during compilation.
$ createuser -SRlD mogile
$ createdb -E UTF8 -O mogile tmp_mogiletest
Setup environment variables for testing
$ MOGTEST_DBUSER=mogile
$ MOGTEST_DBHOST=dbhost
$ MOGTEST_DBNAME=tmp_mogiletest
$ MOGTEST_DBTYPE=Postgres
$ export MOGTEST_DBUSER MOGTEST_DBNAME MOGTEST_DBTYPE MOGTEST_DBHOST
Download and install MogileFS::Store::Postgres from CPAN. (This is going to download the whole mogilefs-server package)
$ cpan
cpan> install MogileFS::Store::Postgres
Setup database
template1=# create user mogilefs with encrypted password 'password';
template1=# create database mogilefs with owner=mogilefs encoding='UNICODE';
Run mogdbsetup
mogdbsetup --type=Postgres --dbhost=localhost --dbname=mogilefs --dbuser=mogilefs --dbpass=password
Setup config
db_dsn DBI:Pg:dbname=mogilefs;host=mogilefs-db
db_user mogilefs
db_pass password
conf_port 6001
listener_jobs 5
Start tracker
service mogilefsd start
Update mogstored.conf
httplisten=0.0.0.0:7500
mgmtlisten=0.0.0.0:7501
docroot=/var/mogdata
Define hosts and devices
mogadm host add mogilestorage-1 --ip=127.0.0.1 --port=7500 --status alive
mogadm host list
mogadm device add mogilestorage-1 1
mogadm device add mogilestorage-1 2
mkdir /var/mogdata/dev1
mkdir /var/mogdata/dev2
chown mogstored:mogstored /var/mogdata/dev1/
chown mogstored:mogstored /var/mogdata/dev2/
service mogstored start
Define domains and classes
mogadm domain add domain1
mogadm class add domain1 class1 --mindevcount=2
And don't forget to clean up the test user and database.
No comments:
Post a Comment