实验环境:centos7系统服务器4台、 一台作为mysql, 三台作为存储节点, 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信,我的就是四台做的,五台分开也行。 实验原理: 每次文件的上传和读取,都经过前端TrackerServer服务器,trackerServer服务器受到client端的请求,查询数据库,返回一个上传或者是读取的可用的后端StorageServer的地址,然后由client端直接操作后端StorageServer服务器。upload操作返回就是成功或者失败的结果,read操作就是返回对应的查询数据。 实验架构: 实验步骤: 第一步:下载安装mogilefs的包,每台主机都要做 MogileFS-Server-2.46-2.el7.centos.noarch.rpm
perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm MogileFS-Server-mogilefsd-2.46-2.el7.centos.noarch.rpm
perl-MogileFS-Client-1.14-1.el7.centos.noarch.rpm MogileFS-Server-mogstored-2.46-2.el7.centos.noarch.rpm
perl-Perlbal-1.78-1.el6.noarch.rpm MogileFS-Utils-2.19-1.el7.centos.noarch.rpm 第二步:安装同步复制的包,需要自己下载源码包然后降级编译包,每台主机都要做 1、准备Perl环境 yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perlYAML perl-Time-HiRes 2、下载包编译安装 wget http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.23.tar.gz tar -xvf Sys-Syscall-0.23.tar.gz cd Sys-Syscall-0.23/ perl Makefile.PL make make install 3、重启mogilefs和mogstore,每台机器都需要重启。 以上第二步:可以留在最后配置完成后,需要同步文件存储的时候做。 第三步:配置数据库主从架构 详情见数据库主从配置 第四步:mogilefs服务初始化 1、数据库授权 GRANT ALL PRIVILEGES ON . TO 'mogile' @'127.0.0.1' IDENTIFIED BY 'mogile' WITH GRANT OPTION; 2、设定数据库: mogdbsetup --dbpass=mogpass 其他的配置默认都设好了,而且主上设置的信息也会同步到从上。 3、修改tracker的配置文件配置文件: /etc/mogilefs/mogilefsd.conf master: db_dsn = DBI:mysql:mogilefs:host=127.0.0.1 db_user = mogile db_pass = mogile listen = 172.17.254.124:7001 slave(storage1): db_dsn = DBI:mysql:mogilefs:host=172.17.254.124 主上的数据库 db_user = mogile db_pass = mogile IP:PORT to listen on for mogilefs client requests listen = 172.17.254.125:7001 Storage2: db_dsn = DBI:mysql:mogilefs:host=172.17.254.124 db_user = mogile db_pass = mogile listen = 172.17.254.130:7001 Storage3: db_dsn = DBI:mysql:mogilefs:host=172.17.254.124 db_user = mogile db_pass = mogile listen = 172.17.254.181:7001 4、启动服务 (tracker 服务为 mogilefsd ) (storage服务为mogstored) /etc/init.d/mogilefsd start 第五步:修改storage的配置文件,每个节点都要作如下操作 /etc/mogilefs/mogstored.conf docroot = /data/mogdata mkdir /data/mogdata -p 加上数据的存储目录chown mogilefs.mogilefs mogdata/ -R 修改权限 /etc/init.d/mogstored start 启动storage 第六步:在tracker上加上host节点,可以加上一个客户端的配置文件,就不用一直写tracker了。 mogadm --trackers=172.17.254.124:7001 host add node1 --ip=172.17.254.125 --port=7500 --status=alive mogadm host add node2 --ip=172.17.254.125 --port=7500 --status=alive mogadm host add node3 --ip=172.17.254.181 --port=7500 --status=alive mogadm check 检测节点的状态 第七步:建一个目录(并且需要mount一个硬盘给这个目录)给这个"设备" 使用,我们这的例子是使用 dev1在主机中建一个目录,建目录使用dev+ID这种格式,记的所有系统中ID不能重复.也必须和配置文件中的路径一样 如下: Node1: mkdir -p /data/mogdata/dev1 chown mogilefs.mogilefs . -R Node2: mkdir -p /data/mogdata/dev2 chown mogilefs.mogilefs . -R Node3: mkdir -p /data/mogdata/dev3 chown mogilefs.mogilefs . -R 记住:这里面也需要更改权限 第八步:一定要注意, 给相对应用的块设备 mount 到这个点, 软链也行. 不然写文件都会写到系统硬上,其它的硬盘都是空的。 给"设备"加入”存储的节点“当中,相当于为每个设备加入 MogileFS 的存储系统,这个节点容易加错。 mogadm device add node1 1
mogadm device add node2 2 mogadm device add node3 3 mogadm device list 第九步:当上面的准备好了,MogileFS 是运行中时,接下来我们要建一个我们自己的'名字空间'和加入文 件到存储当中。 我们使用mogadm的工具来能创建一个"域"和"类".也可以使用这个来增加文件到"类"中。 mogadm domain add img mogadm domain list mogadm class add img m26 --mindevcount=4 在img中建立一个类。 mogadm domain list 第十步:上传文件,然后检测一下是否可用。 mogupload --domain=img --key=test --file=1.jpg mogfileinfo --domain=img --key=test 第十一步:降级操作,实现数据同步复制,每台机器都需要执行下面的操作 首先安装Perl的环境 yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perlYAML perl-Time-HiRes 然后需要自己下载组件安装: wget http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.23.tar.gz tar -xvf Sys-Syscall-0.23.tar.gz cd Sys-Syscall-0.23/ perl Makefile.PL make make install 最后重启mogilefsd 和mogstored ,每台机器都要重启 第十二步:测试界面 易错点:不要把节点和设备加错,不然无法数据复制。