MogileFS 安装及基本管理
实验环境:
CentOS release 6.3 (Final)
MySQL-5.1.67
IP:192.168.214.207 上面安装一个Tracker和一个Storage
IP:192.168.214.208 上面就安装一个MySQL,最好做成HA结构。
IP:192.168.214.209 上面只安装一个Storage。
MogileFS包括三大部分
Tracker(跟踪器,调度器)---MogileFSd进程
MogileFS的核心组成,MogileFSd进程就是Tracker的进程程序,Tracker主要做的工作是:Replication , Deletion, Query, Reaper, Monitor 等,这个是基于事件的(event-based)父进程/消息总线来管理所有来自于客户端的应用的交互,包括将请求负载平衡到多个"query workers"中,然后让 MogileFSd 的子进程去处理。mogadm,mogtool 的所有操作都要跟 Trackers 打交道,Client 的一些操作也需要定义好Trackers,因此最好同时运行多个Trackers 来做负载均衡。不建议所有的Tracker都运行在一台机器上面。
Tracker配置文件:/etc/mogilefs/mogilefsd.conf
MySQL部分
数据库用来存放MogileFS的元数据,是Tracker来操作和管理MySQL,数据库保存了MogileFS的所有数据,如果这边挂了,那整个MogileFS就挂了,所以数据库要做成HA结构。
存储节点(Storage Nodes)--(mogstored进程,Apache和Nginx等)
实际文件存放的地方. 存储节点是一个 HTTP 服务器,用来做删除,存放,重命名等事情.任何 WebDAV 服务器都可以, 不过推荐使用 mogstored . MogileFSd 可以配置到两个机器上使用不同端口… mogstored 来进行所有的 DAV 操作和流量,IO监测, 并且你自己选择的 HTTP 服务器(默认为 perlbal)用来做 GET 操作给客户端提供文。
Mogstored的配置文件:/etc/mogilefs/mogstored.conf
接下来安装这三个部分:
一: 安装之前我们需要安装一个CPANM,我们用CPANM安装Perl模块,可以解决Perl需要的依赖关系,
#wget http://xrl.us/cpanm --no-check-certificate -0 /sbin/cpanm
#chmod +x /sbin/cpanm
CPANM的用法
添加模块 #cpanm ModuleName -#cpanm 模块名称
删除模块 #cpanm –U/-uninstall ModuleName -#cpanm 模块名称
二:现在安装MogileFS
Tracker:之前我们安装了CPANM,所以我们直接用这个命令来安装,我们现在192.168.214.207这台机器上面安装Tracker。
#cpanm MogileFS::Server
#cpanm MogileFS::Utils
#cpanm MogileFS::Client
#cpanm IO::AIO
MySQL:安装mysql是最简单的,分两种情况来做.
1,数据库和tracker在一台机器上面。
#yum –y install mysql mysql-server mysql-devel
#/etc/init.d/mysqld start
建立MogileFS的数据库和用户名
# mysql
mysql> CREATE DATABASE MogileFS;
mysql> GRANT ALL ON MogileFS.* TO 'mogile'@'%';
mysql> SET PASSWORD FOR 'mogile'@'%' = OLD_PASSWORD( 'mogile' );
mysql> FLUSH PRIVILEGES;
mysql> quit
配置初始化数据库
#./mogdbsetup --dbname= MogileFS --dbuser=mogile --dbpassword=mogile
2:数据库和tracker不在同一台机器
#yum –y install mysql*
#/etc/init.d/mysqld start
建立MogileFS的数据库和用户名
# mysql
mysql> CREATE DATABASE MogileFS;
mysql> GRANT ALL ON MogileFS.* TO 'mogile'@'%';
mysql> SET PASSWORD FOR 'mogile'@'%' = OLD_PASSWORD( 'mogile' );
mysql> FLUSH PRIVILEGES;
mysql> quit
配置初始化数据库
# ./mogdbsetup --dbhost=192.168.214.208 --dbname=mMogileFS --dbuser=mogile --dbpassword=mogile
现在创建配置文件目录和修改主配置文件,MogileFS的主daemon,mogilefsd是调度器(tracker)的配置文件。
#mkdir /etc/mogilefs/
#vi /etc/mogilefs/mogilefsd.conf
# Database connection information
db_dsn = DBI:mysql:MogileFS:host=192.168.214.208
db_user = mogile
db_pass = mogile
# IP:PORT to listen on for MogileFS client requests
listen = 127.0.0.1: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
由于mogliefsd不能用root用户启动,所以要添加mogile用户,并使用mogile的用户启动tracker node。
#adduser mogile
#su – mogile
$mogilefsd –c /etc/mogilefs/mogilefsd.conf –daemon
可以 ps 来看看 mogilefsd 的进程,这个也能分别开到他启动了那些组件,分别做什么作用
[root@host_214-207 ~]# ps -ef | grep mogilefsd
root 19216 16209 0 10:42 pts/1 00:00:00 grep mogilefsd
mogile 19491 1 0 Sep19 ? 00:08:18 mogilefsd
mogile 19492 19491 0 Sep19 ? 00:06:32 mogilefsd [monitor]
mogile 19493 19491 0 Sep19 ? 00:00:44 mogilefsd [replicate]
mogile 19494 19491 0 Sep19 ? 00:00:44 mogilefsd [replicate]
mogile 19495 19491 0 Sep19 ? 00:00:44 mogilefsd [replicate]
mogile 19496 19491 0 Sep19 ? 00:00:44 mogilefsd [replicate]
mogile 19497 19491 0 Sep19 ? 00:00:43 mogilefsd [replicate]
mogile 19498 19491 0 Sep19 ? 00:00:31 mogilefsd [delete]
mogile 19499 19491 0 Sep19 ? 00:00:04 mogilefsd [queryworker]
mogile 19500 19491 0 Sep19 ? 00:00:04 mogilefsd [queryworker]
mogile 19501 19491 0 Sep19 ? 00:00:04 mogilefsd [queryworker]
mogile 19502 19491 0 Sep19 ? 00:00:04 mogilefsd [queryworker]
mogile 19503 19491 0 Sep19 ? 00:00:06 mogilefsd [queryworker]
mogile 19504 19491 0 Sep19 ? 00:00:04 mogilefsd [queryworker]
mogile 19505 19491 0 Sep19 ? 00:00:04 mogilefsd [queryworker]
mogile 19506 19491 0 Sep19 ? 00:00:04 mogilefsd [queryworker]
mogile 19507 19491 0 Sep19 ? 00:00:04 mogilefsd [queryworker]
mogile 19508 19491 0 Sep19 ? 00:00:04 mogilefsd [queryworker]
mogile 19509 19491 0 Sep19 ? 00:00:11 mogilefsd [reaper]
mogile 19510 19491 0 Sep19 ? 00:00:26 mogilefsd [fsck]
mogile 19511 19491 0 Sep19 ? 00:09:25 mogilefsd [job_master]
设置MogileFS的存储节点
MogileFS 扩容时,安装上面的几个组件就行了,也要安装 MogileFS::Utils 这个软件,不然没法加到现有的 MogileFS 中来.因为没有mogadm 的命令.但服务只要启动下面的和配置下面的就可以了.注.这个只需要在存储节点上安装.
1:配置文件mogstored.conf
配置“存储节点”storage nodes
#vi /etc/mogilefs/mogstored.conf
maxconns = 10000
httplisten = 0.0.0.0:7500
#mgmtlisten = 192.168.214.207:7501
mgmtlisten = 0.0.0.0:7501
docroot=/var/mogdata
docroot 是数据存放在什么路径决定的。
2:启动“存储节点”
#mogstored --daemon
要想在后台运行这个节点
#mogstored --daemon &
设置MogileFS中的管理工具的接口
#vi /etc/mogilefs/mogilefs.conf
trackers = 0.0.0.0:7001
MogileFS的管理
在192.168.214.207这个既是tracker和storage的服务器中,把自己先加入到MogileFS系统中。
#mogadm --lib=/usr/local/lib64/perl5 --trackers=0.0.0.0:7001 host add dev.mogilefs --ip=192.168.214.207 --port=7500 --status=alive
查看加入到MogilesFS系统中的storage
# mogadm --lib=/usr/local/lib64/perl5 --trackers=0.0.0.0:7001 host list
mystorage [1]: alive
IP: 192.168.214.209:7500
dev.mogilefs [2]: alive
IP: 192.168.214.207:7500
MogileFS中的存储设备管理
建一个目录给这个"设备"使用,我们这的例子是使用 dev1在主机中建一个目录,建目录使用 dev + ID 这种格式,记的所有系统中 ID 不能重复.也必须和配置文件中的路径一样.
#mkdir –p /var/mogdata/dev2
给"设备"加入”存储的节点“当中,相当于为每个设备加入 MogileFS 的存储系统
#mogadm device add
storage_node_name == dev.mogilefs 说明
检查我们加入的"设备"信息,这样就能见到上面这个设备了.还能显示加入的大小.
#mogadm device list
[root@host_214-207 ~]# mogadm device list
mystorage [1]: alive
used(G) free(G) total(G) weight(%)
dev2: alive 0.565 8.777 9.343 100
dev.mogilefs [2]: alive
used(G) free(G) total(G) weight(%)
dev1: alive 0.434 8.909 9.343 100