我这里的环境都是 RHEL 5 的环境。
mysql 数据库 和 tracker 都放到一台服务器上, 为 192.168.2.85
storage server两台, 分别为 192.168.2.98 192.168.2.222
第一: 安装 Mysql 数据库
Mysql的安装请大家直接下载 rpm 安装包最方便, 下载源码安装也很简单。我这里是使用 rpm 包安装。
安装完毕后使用命令 service mysql start 启动
启动后使用mysql的客户端进入 mysql -uroot -p , 然后回车, 默认空密码, 接着回车进入到mysql的控制台。
我们把mysql的访问密码修改为 111111
修改命令为 :
use mysql;
update user set Password=password('111111') where user='root';
quit;
然后把mysql 重新启动。
service mysql stop
service mysql start
第二 : 安装依赖包
执行命令 : perl -MCPAN -e shell 进入 perl 依赖包安装模式
install Danga::Socket
install DBI
install Net::Netmask
install Gearman::Server
install Gearman::Client::Async
install IO::AIO
install Perlbal
install Mysql
install MogileFS::Server
install MogileFS::Client
install MogileFS::Utils
上述依赖包全部安装完毕后退出。
找到DBD模块所在的目录,我的目录为 /root/.cpan/build/ , 这个目录是上面安装时下载的各种依赖包。
cd DBD-mysql-3.0008
perl Makefile.PL --libs="-L/usr/lib64/mysql -lmysqlclient -L/usr/lib64 -lz " --cflags=-I/usr/include/mysql --mysql_config=/usr/bin/mysql_config --testhost=127.0.0.1 --testdb=test --testuser=root --testpassword=111111
make
make test
make install
第三: 建立数据库和创建表
进入mysql 的控制台 mysql -uroot -p111111 , 执行下面的命令
# mysql
mysql> CREATE DATABASE mogilefs;
mysql> GRANT ALL ON mogilefs.* TO 'mogile'@'%';
mysql> SET PASSWORD FOR 'mogile'@'%' = OLD_PASSWORD( '111111' );
mysql> FLUSH PRIVILEGES;
mysql> quit
然后再执行下面的命令创建表
mogdbsetup --dbhost=127.0.0.1 --dbname=mogilefs --dbuser=root --dbpassword=111111 --yes --verbose
第四 : 配置 tracker 的配置文件
用 root 用户执行
adduser mogile
mkdir /etc/mogilefs
[root@redhat1 mogilefs]# vi /etc/mogilefs/mogilefsd.conf
# Enable daemon mode to work in background and use syslog
daemonize = 0
# Where to store the pid of the daemon (must be the same in the init script)
pidfile = /var/run/mogilefsd/mogilefsd.pid
# Database connection information
db_dsn = DBI:mysql:mogilefs:host=127.0.0.1
db_user = root
db_pass = 111111
# IP:PORT to listen on for mogilefs client requests
listen = 192.168.2.85:7001
# Optional, if you don't define the port above.
conf_port = 7001
# Number of query workers to start by default.
query_jobs = 10
# Number of delete workers to start by default.
delete_jobs = 1
# Number of replicate workers to start by default.
replicate_jobs = 5
# Number of reaper workers to start by default.
# (you don't usually need to increase this)
reaper_jobs = 1
# Number of fsck workers to start by default.
# (these can cause a lot of load when fsck'ing)
#fsck_jobs = 1
# Minimum amount of space to reserve in megabytes
# default: 100
# Consider setting this to be larger than the largest file you
# would normally be uploading.
#min_free_space = 200
# Number of seconds to wait for a storage node to respond.
# default: 2
# Keep this low, so busy storage nodes are quickly ignored.
#node_timeout = 2
# Number of seconds to wait to connect to a storage node.
# default: 2
# Keep this low so overloaded nodes get skipped.
#conn_timeout = 2
# Allow replication to use the secondary node get port,
# if you have apache or similar configured for GET's
#repl_use_get_port = 1
执行如下命令来启动
su mogile
[mogile@redhat1 mogilefsd]$ mogilefsd -c /etc/mogilefs/mogilefsd.conf --daemon
[mogile@redhat1 mogilefsd]$ ps -aux|grep mogilefsd 查看是否启动 mogilefsd 成功
第五:配置 storage server 的配置文件
adduser mogile
mkdir /var/mogdata
mkdir /var/mogdata/dev1 (第二台目录为 /var/mogdata/dev2)
chown mogile:mogile /var/mogdata/dev1
mkdir /etc/mogilefs
[root@localhost mogilefs]# vi /etc/mogilefs/mogstored.conf
maxconns = 10000
httplisten = 0.0.0.0:7500
mgmtlisten = 0.0.0.0:7501
docroot = /var/mogdata
找到 MogileFS-Server-2.51 所在的目录,我的为 /root/.cpan/build/
cd MogileFS-Server-2.51
perl Makefile.PL
make
make test
make install
然后启动storage server
[root@localhost MogileFS-Server-2.51]# mogstored --daemon
[root@localhost MogileFS-Server-2.51]# ps -aux|grep mogstored
第六:添加 storage 服务器到 tracker服务器进行记录
切换到 tracker 服务器 192.168.2.85
执行如下命令
mogadm --trackers=192.168.2.85:7001 host add mogilestorage1 --ip=192.168.2.98 --port=7500 --status=alive
mogadm --trackers=192.168.2.85:7001 host add mogilestorage2 --ip=192.168.2.222 --port=7500 --status=alive
添加完毕后使用下面的命令来检查添加的结果
mogadm --trackers=192.168.2.85:7001 host list
下来添加硬盘设备让tracker服务器进行管理
mogadm --trackers=192.168.2.85:7001 device add mogilestorage1 1
mogadm --trackers=192.168.2.85:7001 device add mogilestorage2 2
执行如下命令 来查看添加的结果
mogadm --trackers=192.168.2.85:7001 device list
还可以执行如下命令来查看详细的硬盘资料
mogadm --trackers=192.168.2.85:7001 check
添加测试域的命令如下
mogadm --trackers=192.168.2.85:7001 domain add testdomain
mogadm --trackers=192.168.2.85:7001 class add testdomain normal
mogilefs 文件系统是与API的形式提供给客户端使用的, 你需要通过自己的代码来集成API。
有第三方封装的PHP的, JAVA的, RUBY的, PERL的。
我打算使用perl + fuse 的方式来使用, 但是 perl的fuse模块无法编译过去,晕死了。
遇到了这样的错误:
Fuse.xs:43: error: expected specifier-qualifier-list before 'tTHX'