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

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

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

  • 优势:速度快nginx

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

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

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

今天咱们针对分布式存储给你们介绍两种企业级的应用vim

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

1、mogilefs+mysql高可用技术centos

架构图以下:
基于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编译安装环境所须要的包

一、安装包

yum local install *

二、配置数据库主从

  • 主数据库配置

    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;

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

三、配置主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的企业级分布式存储
    四、配置storage

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

五、配置节点

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

    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的企业级分布式存储

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

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

七、给节点添加到tracker中

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

    mogadm check

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

八、添加域并指定副本

  • 建立域:

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

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

    mogadm domain list

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

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

    mogfileinfo --domain=img --key=test

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

  • 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的企业级分布式存储

2、实现fastdfs分布式存储

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

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

    一、tracker server:172.17.177.177

    二、storage server:172.17.166.166 172.17.155.155

一、安装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

二、在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端口是否开启

三、在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配置同样。

四、在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

五、测试可否存储文件

  • 查看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的企业级分布式存储

六、基于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

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

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

记得点个赞哦!!!

相关文章
相关标签/搜索