mogilefs 分布式文件存储

本实验环境均为centos6.8

1,拓扑图如下

computer_nameip
nginx192.168.153.128/24
tracker01192.168.153.129/24
tracker02192.168.153.130/24
mogstored01192.168.153.131/24
mogstored02192.168.153.132/24
mogstored03192.168.153.133/24

1,先安装并配置tracker

        tracker是需要数据库来进行存储文件的元数据及其位置信息,两个tracker公用一个数据库,本来是通过MHA来实现高可用数据存储的,但是为了简洁,就把数据库放到tracker01上了,在生产环境中千万不要这么做

1,安装tracker相关的程序(192.168.153.129,192.168.153.130)除了mysql之外,其他的两台tracker配置都一样

yum install -y /share/mogilefs/MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm 
yum install /share/mogilefs/perl-Perlbal-1.78-1.el6.noarch.rpm -y
yum install /share/mogilefs/MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm -y
yum install /share/mogilefs/MogileFS-Server-2.46-2.el6.noarch.rpm -y
yum install /share/mogilefs/perl-Net-Netmask-1.9015-8.el6.noarch.rpm -y
yum install /share/mogilefs/perl-MogileFS-Client-1.14-1.el6.noarch.rpm -y
yum install /share/mogilefs/MogileFS-Utils-2.19-1.el6.noarch.rpm -y
yum install mysql-server -y

2,配置tracker01

        a,先修改数据库配置信息并启动数据库

vim /etc/my.cnf

# 内如如下
#在[mysqld]下面添加如下两行代码
skip_name_resolve
innodb_file_per_table=ON
service mysqld start

        b,初始化数据库,并进行授权

mysql>grant all on mogdb.* to "moguser"@"192.168.153.%" identified by "mogpass";
mysql>flush privileges;

        c,通过命令生产表

mogdbsetup --dbname=mogdb --dbuser=moguser --dbpass=mogpass

        d,修改配置文件

vim /etc/mogilefs/mogilefsd.conf

#内容如下
# Database connection information
db_dsn = DBI:mysql:mogdb:host=192.168.153.129
db_user = moguser
db_pass = mogpass
# IP:PORT to listen on for mogilefs client requests
listen = 192.168.153.129:7001

        e,启动mogilefs

service mogilefsd start

配置tracker01

a,先安装程序包,和tracker01一样(mysql 包不要安装了)

b,将tracker01的配置文件直接复制一份到本机就可以了

scp /etc/mogilefs/mogilefsd.conf 192.168.153.130:/etc/mogilefs/

c,修改tracker监听ip

d,保存并启动服务

2,安装并配置mogstored

1,先配置mogstored01

先安装程序包

yum install -y /share/mogilefs/MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm 
yum install /share/mogilefs/perl-Perlbal-1.78-1.el6.noarch.rpm perl-IO-AIO -y
yum install /share/mogilefs/MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm -y
yum install /share/mogilefs/MogileFS-Server-2.46-2.el6.noarch.rpm -y

a, 创建存储所需的目录(这些目录是要挂载不同的磁盘的,现在用目录来进行模拟)

mkdir /data/mogstored/dev{1,2,3} -pv    #在stored01执行该命令
mkdir /data/mogstored/dev{4,5,6} -pv    #在stored02执行该命令
mkdir /data/mogstored/dev{7,8,9} -pv    #在stored03执行该命令

b,在所有存储节点授权目录权限

chown -R mogilefs:mogilefs /data/mogstored/

c,编辑mogstored的配置文件

vim /etc/mogilefs/mogstored.conf

# 内容如下
maxconns = 10000
httplisten = 0.0.0.0:7500
mgmtlisten = 0.0.0.0:7501
docroot = /data/mogstored        #三个存储节点都一样,存储的目录

d,保存配置并启动服务

service mogstored start

在tracker01上配置存储信息

1,先自定义一个配置文件,方便mogadm命令调用

cd && vim .mogilefs.conf

# 内容如下
db_dsn=DBI:mysql:mogdb:host=192.168.153.129
db_user=moguser
db_pass=mogpass
trackers = 192.168.153.129:7001, 192.168.153.130:7001

2,添加节点

mogadm host add storage01 --ip=192.168.153.131 --port=7500 --status=alive
mogadm host add storage02 --ip=192.168.153.132 --port=7500 --status=alive
mogadm host add storage03 --ip=192.168.153.133 --port=7500 --status=alive

3,添加设备(总共新建了九个目录,都要添加进来)

mogadm device add storage01 1
mogadm device add storage01 2
mogadm device add storage01 3
mogadm device add storage02 4
mogadm device add storage02 5
mogadm device add storage02 6
mogadm device add storage03 7
mogadm device add storage03 8
mogadm device add storage03 9

4,新建一个域,用来存放文件

mogadm domain add files

5,先上传一个文件测试一下

mogupload --domain=files --key='fstab.txt' --file='/etc/fstab'

6,查看该文件的信息

mogfileinfo --domain=files --key='fstab.txt'

7,在浏览器中输入其中一个地址访问

8,下载到本地

mogfetch --domain=files --key='fstab.txt' --file='/root/fstab'

3,通过nginx 反向代理mogilefs

nginx默认没有mogilefs的支持模块,需要自行编译安装

模块的网页Nginx mogilefs module (v 1.0.4)

1,先安装编译环境

yum install gcc gcc-c++ openssl-devel pcre-devel -y

2,准备nginx和nginx_mogilefs_module的源码包

3,解压并编译

tar -xvf /share/mogilefs/nginx_mogilefs_module-1.0.4.tar.gz -C /root/
tar -xvf /share/mogilefs/nginx-1.8.0.tar.gz -C /root/
cd /root/nginx-1.8.0/

4,开始编译nginx

./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock \
--user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre \
--add-module=/root/nginx_mogilefs_module-1.0.4 --with-http_dav_module
make && make install

5,配置nginx的环境变量

vim /etc/profile.d/nginx.sh

#添加内容
export PATH=/usr/local/nginx/sbin:$PATH

6,重读环境变量

. /etc/profile.d/nginx.sh

7,编辑nginx的配置文件

cd /etc/nginx/
cp nginx.conf{,.bak}
vim nginx.conf

在http内容下面添加

upstream mogtrackers {
        server 192.168.153.129:7001;
        server 192.168.153.130:7001;
}

在server中添加如下

location /files/ {
        mogilefs_tracker mogtrackers;
        mogilefs_domain files;
        mogilefs_pass {
             proxy_pass $mogilefs_path;
             proxy_hide_header Content-Type;
             proxy_buffering off;
    }
}

保存退出

8,检查配置文件

9,启动nginx服务

10,在web端访问测试输入key值进行访问

11,上传一张图片测试一下

mogupload --domain=files --key='a.jpg' --file='/usr/share/backgrounds/centos_1920x1200_logoonly.jpg'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值