设为首页 收藏本站
查看: 1060|回复: 0

[经验分享] 基于mogilefs和fastdfs的企业级分布式存储

[复制链接]

尚未签到

发表于 2019-1-31 13:26:14 | 显示全部楼层 |阅读模式
    分布式存储是一个企业针对大数据的一种较好的处理方法。正是这些海
量数据的应用需求推动了海量存储系统不断的发展和性能不断的改善,推出新的的存储体系结构。从传统的直接存储系统DAS,发展出了网络存储架构 SAN和NAS网络附加存储。
    DAS:直接附加存储。通过主板上的磁盘线直接存储到磁盘上,存储方式是块存储,数据块夸网络存储很难。


  •   优点:速度快

  • 缺点:服务器跟存储是同一个设备,因此扩容难
    SAN:存储区域网络。通过光交换机实现块级别夸网络存储,还可以通过iSCSI接口(小型计算机存储借口)去存。
    NAS:网络附加存储。就是类似NFS文件共享机制,以文件方式存储。
  今天我们针对分布式存储给大家介绍两种企业级的应用


  • mogolefs分布式存储
  • fastdfs分布式存储
  一、mogilefs+mysql高可用技术
  架构图如下:

实验环境:


  • 用户: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

    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


  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

  8、添加域并指定副本


  •   创建域:

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

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

    mogadm domain list

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

  二、实现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中查看

  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的分布式存储简单搭配大家已经都会了。
  记得点个赞哦!!!




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670089-1-1.html 上篇帖子: FastDFS 分布式文件系统 搭建部署 下篇帖子: fastdfs企业级分布式存储
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表