mogileFS实现分布式存储和复制
一:环境准备环境准备:一台主机当作tracker和mysql,两台当作storageserver
二: 安装包准备
在三台主机上都要安装如下软件包,tarcker主机需要安装mariadb-server
perl-Net-Netmask perl-IO-String perl-Sys-Syslog perl-IO-AIO
MogileFS-Server-2.46-2.el7.centos.noarch.rpm
MogileFS-Server-mogilefsd-2.46-2.el7.centos.noarch.rpm
MogileFS-Server-mogstored-2.46-2.el7.centos.noarch.rpm
MogileFS-Utils-2.19-1.el7.centos.noarch.rpmperl-Danga-Socket-1.61-1.el6.rf.noarch.rpm
perl-MogileFS-Client-1.14-1.el7.centos.noarch.rpm perl-Perlbal-1.78-1.el6.noarch.rpm
perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm
perl-Perlbal-1.78-1.el6.noarch.rpm
三:搭建步骤
1.初始化数据库,授予mogile用户操作mogilefs数据库的权力
MariaDB [(none)]> grant all privileges on mogilefs.* to 'mogile'@'127.0.0.1' identified by 'mogile' with grant option;
MariaDB [(none)]>flush privileges;
2.修改mogileFS的配置文件,修改如下三项,其他的项目使用默认的即可,如有需要,可以自行修改
root@centos7tmp#vim /etc/mogilefs/mogilefsd.conf
db_user = mogile
db_pass = mogile
listen = 172.17.253.25:7001
3.设定并且查看数据库
root@centos7tmp#mogdbsetup --dbpass=mogpass#一路按Y即可
root@centos7tmp#mysql -uroot
MariaDB [(none)]> use mogilefs;
MariaDB > show tables; #查看到有表就成功了
4.启动mogileFS的tracker端服务
root@centos7tmp#systemctl start mogilefsd #没报错就是成功
5.配置storageserver的配置文件
root@centos7.2/#mkdir /data/mogdata #建一个存储数据的文件夹
root@centos7.2data#chown mogilefs.moilefs mogdata/ -R#修改权限,使mogile用户可以访问
root@centos7.2~#vim /etc/mogilefs/mogstored.conf
docroot = /data/mogdata #自己制定一个文件路径最好,其他的选项默认即可
root@centos7.2data#systemctl start mogstored #开启mogileFS的storage服务
6.在storageserver上添加设备,生产中最好单独挂载一个新的磁盘,专门用来存储数据
root@centos7.1mogdata#mkdir dev1
root@centos7.1mogdata#chown mogilefs.mogilefs dev1/ -R
7.在tracker上添加主机和设备
root@centos7tmp# mogadm --tracker=172.17.253.25:7001 host add node1 --ip=172.17.253.127 --port=7500 --status=alive
root@centos7tmp# mogadm --tracker=172.17.253.25:7001 host add node2 --ip=172.17.253.200 --port=7500 --status=alive
root@centos7tmp#mogadm --tracker=172.17.253.25:7001 device add node1 1
root@centos7tmp#mogadm --tracker=172.17.253.25:7001 device add node22
8.查看添加是否成功
root@centos7tmp# mogadm --tracker=172.17.253.25:7001 check
出现如下,则表示成功
Checking trackers...
172.17.253.25:7001 ... OK
Checking hosts...
[ 1] node1 ... OK
[ 2] node2 ... OK
Checking devices...
host device size(G) used(G) free(G) use% ob state I/O%
[ 1] dev1 18.619 3.595 15.02419.31%writeable 0.0
[ 2] dev2 18.619 3.594 15.02519.30%writeable 0.0
total: 37.238 7.189 30.04919.31%
四:实现复制功能
1.三台主机上都安装
root@centos7~#yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perlYAML perl-Time-HiRes
2.用perl编译安装Sys-Syscall-0.23.tar.gz
root@centos7tmp#tar xvf Sys-Syscall-0.23
root@centos7tmp#cd Sys-Syscall-0.23/
root@centos7Sys-Syscall-0.23#perl Makefile.PL
root@centos7Sys-Syscall-0.23#make
root@centos7Sys-Syscall-0.23#makeinstall
五.添加文件验证复制功能
1.重启mogilefsd服务
root@centos7Sys-Syscall-0.23#/etc/init.d/mogilefsd stop
root@centos7Sys-Syscall-0.23#/etc/init.d/mogilefsd start
2.上传文件
root@centos7mogilefs#mogupload --domain=img -key=hello --file=39447-106.jpg
3.看复制的状态,发现成功。
root@centos7mogilefs#mogfileinfo --domain=img -key=bug
[*]file: bug
class: default
devcount: 2
domain: img
fid: 8
key: bug
length: 364854
[*]http://172.17.253.127:7500/dev1/0/000/000/0000000008.fid
[*]http://172.17.253.191:7500/dev2/0/000/000/0000000008.fid
页:
[1]