Nginx反代Mogilefs分布式储存示例

 

一、分布式存储系统简介

  随着信息技术不断的发展,给我们带来便利的同时,不断增加的数据量级、信息之间的连接关联越来越复杂、数据访问的并发量日益增加对I/O的要求越来越高、数据类型越来越复杂等难题也成为信息技术继续高速发展亟需解决的难题。分布式存储系统的出现在很大程度上解决了以上大部分难题。

  分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

  分布式存储系统在接口类型上可分为通用分布式储存和专用分布式储存。通用分布式储存是指没有文件系统接口,需要通过API接口进行访问;专用分布式储存也称为分布式文件系统,它们一般都会有文件系统接口,可以直接挂载。通用分布式储存有mogilefs、fastdfs等,专用分布式储存系统有moosefs等。

二、Mogilefs

1.Mogilefs架构图:

2.组成Mogliefs的组件:

1.Trackers(mogilefsd):Mogliefs的核心组件,主要功能是(Replication)节点文件复制、(Deletion)文件删除、(Query)元数据查询、(Monitor)健康监测、(Reaper)储存失败重置等等。它通常称为元数据服务器,但它不会去储存元数据,而是将元数据储存在如MySQL这一类的数据库中。为保证架构的可靠性,Trackers一般有多个。Trackers可看作是一个旁挂式代理,只负责处理元数据信息。

2.数据库:数据库用来存放Mogliefs的元数据,而由Trackers来管理数据。因此通常建议做HA。

3.mogstored(储存节点):实际文件存放的地方。通常会将实际文件保存至少两份副本。

3.示例演示拓扑图

  在三个节点同时安装Trackers和mogstored,选择其中一个节点安装MySQL。在生产环境最好是能单独将MySQL部署并且做主从复制。Trackers和mogstored也可以分开部署在不同节点上,这些都需要根据实际的生产环境来决定。这里主要是演示mogilefs,不做MySQL主从复制演示。若想要Mogilefs能挂载,可以用FUSE来实现。

  需要注意的是mogilefs存储的文件URL很特殊(后面会解释mogilefs文件名生产的过程),如存储一张图片时文件URL可能会是类似6060/0000/0000/0000/00000021.jpg这样的格式,对用户来讲就不太友好,用户可能需要直观的类似image.hello.com/21.jpg这样的URL。所以通常会使用Nginx来反代Mogilefs。

4.系统环境与安装

  Mogilefs是一个相对较年代较久但成熟的分布式储存,考虑到可能在Centos7上会出现兼容问题,这里Centos6来演示。

操作系统:CentOS release 6.6

Mogilefs:2.46

nginx:1.10

mysql:5.1

IP分配:

  n1:192.168.29.111,n2:192.168.29.112,n3:192.168.29.113,n4:192.168.29.114

结构如上图所示。

1.在n1节点上安装MySQL、mogilefsd、mogstored,并将n1配置为Trackers、Storage Node

  MySQL直接用yum安装。

~]# yum install -y mysql mysql-server

  安装Mogilefs的Trackers和Storage Node组件,安装时一定要安装Perl相关的依赖包,依赖包有:

复制代码
perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm perl-IO-stringy-2.110-1.2.el6.rfx.noarch.rpm
perl-Net-Netmask-1.9015-8.el6.noarch.rpm Perlbal-1.78-1.el6.noarch.rpm
perl-Perlbal-1.78-1.el6.noarch.rpm Perlbal-doc-1.78-1.el6.noarch.rpm
perl-IO-AIO-3.71-2.el6.x86_64.rpm
复制代码

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信