本文大部分来自网络及该文章:http://www.admindigest.com/4/mogilefs%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/
如果有侵犯作者权益和版权,请通知,我会及时删除,再此表示歉意。
1,MogileFS 简介
2,MogileFS 部署
3,MogileFS 测试
4,MogileFS 总结
MogileFS是一种分布式文件存储系统。可支持文件自动备份的功能,提供高可用性和高可扩展性。MogileFS是用Perl语言写的,由于有依赖模块的问题,安装过程中需要其他库和模块的支持,安装不算容易。Mogilefs不支持对一个文件内部的随机或顺序读写,因此只适合做一部分应用,如图片服务,静态HTML服务等,这些应用在文件写入后基本上不需要对文件进行修改,但是可以生成一个新的文件覆盖原有文件。
Mogilefs分为如下几部分:
1、数据库部分数据库保存了Mogilefs的所有元数据,一般使用MySQL,可以单独拿数据库服务器来做,也可以跟其他程序跑在一起。可以用mogdbsetup程序来初始化数据库。数据库部分非常重要,因为一个MogileFS系统的所有Tracker都必须指向同一个数据库,因此如果数据库出现问题,那么整个MogileFS系统将处于不可用状态,因此数据库最好采用HA结构,如MySQL主从复制架构,这样可以降低数据库出现问题对MogileFS系统的影响。
2、跟踪器(Tracker)mogilefsd即trackers程序,类似mogilefs的wiki上介绍 的,trackers做了很多工作,主要有以下几个:Replication: 机器间复制文件Deletion:从命名空间删除是立即的,从文件系统删除是异步的QueryWorker: 响应客户端的请求Reaper:在磁盘失败后将文件复制请求重新放到队列中Monitor:监测主机和设配的健康度和状态Tracker是访问MogileFS的入口,所有系统管理相关的操作都要通过其中的某个trackers完成,应用系统的一些操作也要通过trackers,因此一个高业务量的MogileFS系统最好同时运行多个trackers来做负载均衡。
3、存储节点(Storage)mogstored程序的启动将使本机成为一个存储节点。mogstored启动后,便可以通过mogadm增加这台机器到系统中。一台机器可以只运行一个 mogstored作为存储节点即可,也可以同时运行其他程序。存储节点下面还需要定义设备(device),每个设备都有一个唯一的ID编号,设备也是用mogadm添加到MogileFS系统中的。
4、工具主要就是mogadm,mogtool这两个工具了,用来在命令行下控制整个mogilefs系统以及查看状态等等。5、客户端(Client)客户端通过接口访问mogilefs系统,对整个系统进行文件读写操作。这里的接口是MogileFS提供的接口。6,测试环境Tracker IP:192.168.0.247Storage IP:192.168.0.212,192.168.0.215MySQL IP:192.168.0.245
2 安装
2.1安装前准备Linux perl使用CPAN安装如下必要的Perl库,安装命令如下:
cpan -i Danga::Socket
cpan -i IO::AIO
cpan -i IO::WrapTie
2.2安装MogileFS
下载相关源码,地址:https://github.com/mogilefs
2.3 Tracker 安装
unzip MogileFS-Server-master.zip
cd MogileFS-Server-master
perl Makefile.PL
make
make test
make install
unzip perl-MogileFS-Client-master.zip
perl Makefile.PL
make
make test
make install
unzip MogileFS-Utils-master
cd MogileFS-Utils-master
perl Makefile.PL
make
make test
make install
2.4Storge 安装
分别在192.168.0.212 192.168.0.215 上面安装如下的包
unzip MogileFS-Server-master.zip
cd MogileFS-Server-master
perl Makefile.PL
make
make test
make install
unzip perl-MogileFS-Client-master.zip
perl Makefile.PL
make
make test
make install
unzip MogileFS-Utils-master
cd MogileFS-Utils-master
perl Makefile.PL
make
make test
make install
2.5 安装,设置Mysql
安装Mysql
设置Mysql
mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database mogilefs;
Query OK, 1 row affected (0.11 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| foreman |
| mogilefs |
| mysql |
| test |
+--------------------+
5 rows in set (0.00 sec)
mysql> grant all on mogilefs.* to 'mogilefs'@'%';
Query OK, 0 rows affected (0.13 sec)
mysql> set password for 'mogilefs'@'%' = OLD_PASSWORD('mogile_db_password');
Query OK, 0 rows affected (0.04 sec)
mysql> flush pervileges;
然后在Tracker机器上执行数据库表结构的创建。
/usr/bin/mogdbsetup --dbhost=192.168.0.245 --dbname=mogilefs --dbuser=mogilefs --dbpass=mogile_db_password --dbrootpass=[passwd]
第一次使用mogdbsetup时,需要提供mysql的root密码
这里 Tracker上需要安装Mysql客户端 以及perl相关的Mysql rpm包。
2.6设置Tracker
mkdir -p /etc/mogilefs/
vi /etc/mogilefs/mogilefsd.conf
在配置文件中添加如下内容:
db_dsn = DBI:mysql:mogilefs:host=192.168.0.245;port=3306;mysql_connect_timeout=5
db_user = mogilefs
db_pass = mogile_db_password
conf_port = 7001
listener_jobs = 5
node_timeout = 5
rebalance_ignore_missing = 1
mogilefsd不能以root身份运行,必须用其他用户运行,为此需要建立新的用户:
useradd mogile
启动
su - mogile
mogilefsd -c /etc/mogilefs/mogilefsd.conf --daemon
2.7创建Storage配置文件并启动Storgae节点,分别在两太存储节点上执行。
mkdir /var/mogile_data/
vi /etc/mogilefs/mogstored.conf
添加如下内容:
httplisten=0.0.0.0:7500
mgmtlisten=0.0.0.0:7501
docroot=/data/mogile_data
启动Storage节点
mogstored --daemon
2.8 向Tracker 添加Storage节点
mogadm host add mog_storage_212 --ip=192.168.0.212 --port=7500 --status=alive
mogadm host add mog_storage_215 --ip=192.168.0.215 --port=7500 --status=alive
添加完成后,查看存储节点
mogadm host list
mog_storage_212 [1]: alive
IP: 192.168.0.212:7500
mog_storage_215 [2]: alive
IP: 192.168.0.215:7500
2.9 向Storage节点添加设备
首先要在Storage节点上添加设备,方式是在Storage节点的根存储目录下建立设备目录,设备目录以“dev”开头,后面跟一个数字序号,在MogileFS系统中,
要求每个设备的序号是唯一的。根存储目录所在磁盘直接建立设备空目录即可,对其他磁盘则需要挂载到设备目录上。如果其他硬盘已经挂载其他地方,
可以建立一个软链接来连接到挂载点上。
mkdir -p /data/mogile_data/dev21201
mogadm device add mog_storage_212 21201
mkdir -p /data/mogile_data/dev21501
mogadm device add mog_storage_215 21501
检查
mogadm check
Checking trackers...
127.0.0.1:7001 ... OK
Checking hosts...
[ 1] mog_storage_212 ... OK
[ 2] mog_storage_215 ... OK
Checking devices...
host device size(G) used(G) free(G) use% ob state I/O%
---- ------------ ---------- ---------- ---------- ------ ---------- -----
[ 1] dev21201 225.225 0.183 225.042 0.08% writeable N/A
[ 2] dev21501 225.225 0.183 225.042 0.08% writeable N/A
---- ------------ ---------- ---------- ---------- ------
total: 450.450 0.366 450.083 0.08%
3.至此MogileFS 安装完成
暂时没有没有其他测试。