基于mogilefs和fastdfs的企业级分布式存储

  分布式存储是一个企业针对大数据的一种较好的处理方法。正是这些海
量数据的应用需求推动了海量存储系统不断的发展和性能不断的改善,推出新的的存储体系结构。从传统的直接存储系统DAS,发展出了网络存储架构 SAN和NAS网络附加存储。

  DAS:直接附加存储。通过主板上的磁盘线直接存储到磁盘上,存储方式是块存储,数据块夸网络存储很难。

  • 优点:速度快

  • 缺点:服务器跟存储是同一个设备,因此扩容难

  SAN:存储区域网络。通过光交换机实现块级别夸网络存储,还可以通过iSCSI接口(小型计算机存储借口)去存。

  NAS:网络附加存储。就是类似NFS文件共享机制,以文件方式存储。

今天我们针对分布式存储给大家介绍两种企业级的应用

  • mogolefs分布式存储
  • fastdfs分布式存储

一、mogilefs+mysql高可用技术

架构图如下:
基于mogilefs和fastdfs的企业级分布式存储
实验环境:

  • 用户:172.17.178.178
  • 从mysql+storage:172.17.166.166
  • 两个storage节点:172.17.155.155 172.17.144.144

实验需要安装的包:(每个mogilefs节点都需要安装)

yum install perl-Net-Netmask perl-IO-String perl-Sys-Syslog perl-IO-AIO  ##安装一些perl包工具

本地安装的rpm包:

MogileFS-Server-2.46-2.el6.noarch.rpm         #核心服务 
perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm   #socket 
MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm   # tracker节点 
perl-MogileFS-Client-1.14-1.el6.noarch.rpm   #客户端 
MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm    #Storage存储节点 
MogileFS-Utils-2.19-1.el6.noarch.rpm #主要是MogileFS的一些管理工具
yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perlYAML perl-Time-HiRes   #perl编译安装环境所需要的包

1、安装包

yum local install *

2、配置数据库主从

  • 主数据库配置

    vim /etc/my.cnf
    server-id=1
    log-bin=mysql-bin
    skip-name-resolve
  • 启动mysql:

    systemctl start mariadb

  • 给SLAVE授权:

    grant replication slave,replication client on . to slave@'172.17.%.%' identified by 'magedu';

  • 查看主状态:

    show master status;

  • 从数据库配置

    vim /etc/my.cnf
    server-id=2
    relay_log=mysql-relay-bin
    read-only=1
    log_bin=mysql-bin
    log_slave_updates=1

  • 指定主master:

    mysqlchange master to 
    master_host='172.17.177.177',
    master_user='slave',
    master_password='magedu',
    master_log_file='mysql-bin.000006',
    master_log_pos=414;
  • 启动slave:

    start slave;

  • 查看I/O和SQL线程是否开启:

    show slave status\G;

  • 检测检测看数据库能否数据同步

3、配置主mysql上的tracker

  • 数据库先授权:

    grant all privileges on mogilefs.* to ‘mogile’@’127.0.0.1’ identified by ‘mogile’ with grant option;

  • 然后初始化数据库:

    mogdbsetup --dbpass=mogile

  • 每次输mogadm不用再输入--tracker:

    vim /etc/mogilefs/molilefs.conf
    trackers=172.17.177.177:7001

  • 然后配置tracker:

    vim /etc/mogilefs/mogilefsd.conf
    db_dsn = DBI:mysql:mogilefs:host=127.0.0.1
    db_user = mogile
    db_pass = mogile
    listen = 172.17.177.177:7001
  • 启动tracker:

    /etc/init.d/mogilefsd start

  • 查看tracker是否正常:

    mogadm check
    基于mogilefs和fastdfs的企业级分布式存储
    4、配置storage

    vim /etc/mogilefs/mogstored.conf
    docroot = /data/mogdata
    mkdir /data/mogdata -p
    cd /data/mogdata
    chown mogilefs.mogilefs  . -R
    启动mogstored:systemctl start mogstored

5、配置节点

  • 添加主机,将主机信息注册到数据库中:

    mogadm host add node1 --ip=172.17.166.166 --port=7500  --status=alive
    mogadm host add node2 --ip=172.17.155.155 --port=7500  --status=alive
    mogadm host add node3 --ip=172.17.144.144 --port=7500  --status=alive
  • 然后查看是否添加进去:

    mogadm  check

    基于mogilefs和fastdfs的企业级分布式存储

6、给storage中添加存储节点(三个storage节点相同)

    mkdir -p /data/mogdata/dev1  创建的dev[#]每个#在系统中不能一样
    cd /data/mogdata/
    chown mogilefs.mogilefs . -R 

7、给节点添加到tracker中

mogadm device add node1  1
mogadm device add node2  2
mogadm device add node3  3
  • 检查看加进去没有:

    mogadm check

基于mogilefs和fastdfs的企业级分布式存储

8、添加域并指定副本

  • 创建域:

    mogadm domain add img
  • 在域中添加类,并指定副本:

    mogadm class add img m26 --mindevcount=3
  • 查看是否添加:

    mogadm domain list

基于mogilefs和fastdfs的企业级分布式存储
9、此时需要上传照片去测试是否成功

mogupload - -domain=img --class=m26 - -key=test  --file=123.jpg
  • 查看照片是否上传成功,副本是否三份:

    mogfileinfo --domain=img --key=test

10、此时你会发现不能实现自动复制

  • mogilefs在版本2.46版本以上不能实现自动复制,需要降级到2.3:

    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
    重启tracker和storage
    systemctl restart tracker
    systemctl restart storage

基于mogilefs和fastdfs的企业级分布式存储

二、实现fastdfs分布式存储

架构图如下:
基于mogilefs和fastdfs的企业级分布式存储

  • 实验环境:需要三台centos系统

    1、tracker server:172.17.177.177

    2、storage server:172.17.166.166 172.17.155.155

1、安装fastdfs

yum localinstall安装
fastdfs-5.0.11-1.el7.centos.x86_64.rpm
fastdfs-debuginfo-5.0.11-1.el7.centos.x86_64.rpm
fastdfs-server-5.0.11-1.el7.centos.x86_64.rpm
fastdfs-tool-5.0.11-1.el7.centos.x86_64.rpm
libfastcommon-1.0.36-1.el7.centos.x86_64.rpm
libfastcommon-devel-1.0.36-1.el7.centos.x86_64.rpm
libfdfsclient-5.0.11-1.el7.centos.x86_64.rpm
libfdfsclient-devel-5.0.11-1.el7.centos.x86_64.rpm

2、在172.17.177.177上更改tracker

    cd /etc/fdfs/
    cp tracker.conf.samle tracker.conf
    vim tracker.conf(主要是更改一下路径)
    disabled=false(默认为false,表示是否无效) 
    port=22122(默认为22122) 
    base_path=/data/fastdfs/tracker
  • 创建目录:

    mkdir /data/fastdfs/tracker
  • 启动tracker:

    /etc/init.d/fdfs_trackerd start   
  • 查看22122端口是否开启

3、在172.17.166.166和172.17.155.155上配置storage

    cd /etc/fdfs/
    cp storage.conf.sample storage.conf
    vim storage.conf(主要是更改组和工作路径以及存储路径)
    group=group1
    disabled=false(默认为false,表示是否无效) 
    port=23000(默认为23000) 
    base_path=/data/fastdfs/storage 工作的路径
    tracker_server=172.17.177.177:22122 
    store_path0=/data/fastdfs/storage 真正存储的路径
  • 创建目录:

    mkdir /data/fastdfs/storage
  • 启动服务:

    /etc/init.d/fdfs_storaged start  
  • 查看23000端口是否开启

  • 另一个storage配置一样。

4、在tracker中配置一个client文件。

  • 先配置一个客户端文件:

    cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf*
    vim /etc/fdfs/client.conf(指定一下tracker和路径)   
    base_path=/data/fastdfs/tracker 
    tracker_server=172.17.177.177:22122

5、测试能否存储文件

  • 查看storage节点是否加上:

    fdfs_monitor /etc/fdfs/client.conf
  • 上传一个文件:

    fdfs_upload_file /etc/fdfs/client.conf /root/123.jpg
  • 查看文件:

    fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/rBGbm1odMrqAUF9uAAZHIffi2RU809.jpg
  • 还可以去两个storage中查看
    基于mogilefs和fastdfs的企业级分布式存储

6、基于nginx实现fastdfs

  • 安装nginx以及对应的模块和包

    nginx-1.10.2-1.el7.centos.x86_64.rpm
    nginx-all-modules-1.10.2-1.el7.centos.noarch.rpm
    nginx-filesystem-1.10.2-1.el7.centos.noarch.rpm
    nginx-mod-http-geoip-1.10.2-1.el7.centos.x86_64.rpm
    nginx-mod-http-image-filter-1.10.2-1.el7.centos.x86_64.rpm
    nginx-mod-http-perl-1.10.2-1.el7.centos.x86_64.rpm
    nginx-mod-http-xslt-filter-1.10.2-1.el7.centos.x86_64.rpm
    nginx-mod-mail-1.10.2-1.el7.centos.x86_64.rpm
    nginx-mod-stream-1.10.2-1.el7.centos.x86_64.rpm
  • 修改nginx的配置文件

    vim /etc/nginx/nginx.conf
        location /group1/M00 {        
        root /data/fastdfs/storage/data;        
        ngx_fastdfs_module; 
        }
  • 修改对应fastdfs模块

    vim /etc/fdfs/mod_fastdfs.conf
        url_have_group_name = true 
        tracker_server=172.17.252.234:22122
        store_path0=/data/fastdfs/storage

7、用http去测试一下
基于mogilefs和fastdfs的企业级分布式存储

我相信看完这篇文章,基于mogilefs和fastdfs的分布式存储简单搭配大家已经都会了。

记得点个赞哦!!!

转载于:https://blog.51cto.com/13296637/2046587

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值