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

[经验分享] 分布式存储之MogileFS简单应用

[复制链接]

尚未签到

发表于 2019-2-1 07:50:19 | 显示全部楼层 |阅读模式
  分布式存储之MogileFS分布式文件系统简单应用
  
  
一. 分布式存储原理:
a) 分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是 可靠性和安全性的焦点,不能满足大规模存储数据的需要。分布式网络存储采用扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
b) 网络存储系统分为
1. 从传统的直接存储系统DAS(直接附加存储)
2. 发展出了网络存储架构SAN(存储区域网络)
3. NAS(网络附加存储)
4. FAS(网络化存储)
c) 存储分类:
1. 封闭系统的存储
2. 开放系统的存储:
i. 内置存储
ii. 外挂存储:
a) 直连式存储(DAS
b) 网络存储(FAS):
i.              网络附加存储(NAS
ii.             存储区域网络(SAN
d) NAS存储:
NAS存储也通常被称为附加存储,顾名思义,就是存储设备通过标准地网络拓扑结构他(例如以太网)添加到一群计算机上,NAS是文件级的存储方法,它的重点在于帮助工作组和部门机构解决迅速增加存储容量的需求。如今用户采用NAS较多的功能是文件共享,图片共享
、电影共享等等,而且随着云计算的发展,一些NAS厂商也推出了云存储功能,大大方便了企业和个人用户的使用。
   NAS产品是真正即插即用的产品。NAS设备一般支持多计算机平台,用户通过网络支持协议可进入相同的文档,因而NAS设备无需改造即可用于混合Unix/Windows NT局域网内,同时NAS的应用非常灵活。
NAS又一个关键性问题,即备份过程中的带宽消耗。与将备份数据流从LAN中转移出去的存储区域网(SAN)不同,NAS仍使用网络进行备份和恢复。NAS 的一个缺点是它将存储事务由并行SCSI连接转移到了网络上。这就是说LAN除了必须处理正常的最终用户传输流外,还必须处理包括备份操作的存储磁盘请求。
  SAN存储:
存储区域网络,这个是通过光纤通道交换机连接存储阵列和服务器主机,最后成为一个专用的存储网络。SAN经过十多年历史的发展,已经相当成熟,成为业界的事实标准(但各个厂商的光纤交换技术不完全相同,其服务器和SAN存储有兼容性的要求)。
SAN提供了一种与现有LAN连接的简易方法,并且通过同一物理通道支持广泛使用的SCSIIP协议。SAN不受现今主流的、基于SCSI存储结构的布局限制。特别重要的是,随着存储容量的爆炸性增长,SAN允许企业独立地增加它们的存储容量。SAN的结构允许任何服务器连接到任何存储阵列,这样不管数据置放在那里,服务器都可直接存取所需的数据。因为采用了光纤接口,SAN还具有更高的带宽。
因为SAN解决方案是从基本功能剥离出存储功能,所以运行备份操作就无需考虑它们对网络总体性能的影响。SAN方案也使得管理及集中控制实现简化,特别是对于全部存储设备都集群在一起的时候。最后一点,光纤接口提供了10公里的连接长度,这使得实现物理上分离的、不在机房的存储变得非常容易。
总结:DAS存储一般应用在中小企业,与计算机采用直连方式,NAS存储则通过以太网添加到计算机上,SAN存储则使用FC接口,×××能更佳的存储。NASSAN的主要区别体现在操作系统在什么位置。

二. MogileFS文件系统
mogilefs的特性
1.支持多节点冗余
2.可实现自动的文件复制
3.使用名称空间(命名空间),每个文件通过key来确定
4.不需要RAID,应用层可以直接实现RAID,不共享任何东西,通过“集群”接口提供服务
5.工作与应用层,没有特殊的组件要求
6.不共享任何数据,mogilefs不需要依靠昂贵的SAN来共享磁盘,每个机器只用维护好自己的硬盘
mogilefs主要由三部分构成:tracker节点、database节点、storage节点
1trackermogileFSd进程):这个是 MogileFS 的核心部分,他是一个调度器,
2MogileFSd 进程就是trackers进程程序,trackers 做了很多工作:Replication(复制),Deletion(删除),Query(查询),Reaper(接受),Monitor(监听)等等,这个是基于事件的( event-based ) 父进程/消息总线来管理所有来之于客户端应用的交互(requesting operations to be performed),,包括将请求负载平衡到多个“query workers”中,然后让 MogileFSd 的子进程去处理;
3Database:用来存放 MogileFS 的元数据 (命名空间, 和文件在哪里),是Trackers 来操作和管理它,可以用mogdbsetup程序来初始化数据库,因为数据库保存了MogileFS的所有元数据,建议做成HA架构;
4Storage Nodes:这个是 MogileFS 存储文件存放在这些机器上,也是 mogstored 节点,也叫 Storage Server,一台存储主要都要启动一个 mogstored 服务.扩容就是增加这些机器,实际文件存放的地方。
MogileFs工作流程图:
每次文件的上传和读取,都要经过前端TrackerServer服务器,trackServer服务器受到client端请求,查询数据库,返回一个上传或者是读取的可用的后端StorageServer的地址,然后由client端直接操作后端StorageServer服务器。ipload操作返回就是成功或者失败的结构,read操作就是犯规对应的查询数据

三. MogileFs管理的几个概念
1. Domain:一个mogileFS可以有多个Domain,用来存放不同文件(大小,类型),同一个Domainkey必须唯一,不同Domain内,key可以相同;
2.每一个存储节点称为一个主机host,一个主机上可以有多个存储设备dev(单独的硬盘),每个设备都有ID号,Domain+Fid用来定位文件
3.Class:文件属性管理,定位文件存储在不同设备上的分数
  
四. MogileFS的安装及配置
A.实验环境:
1. tracker+mysql  172.17.252.64
2. storage 1172.17.250.2
3. storage2 172.17.254.208
安装所需要的包(trackerstorage都需要装)
yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perl-YAML perl-Time-HiRes
MogileFS-Server-2.46-2.el7.centos.noarch.rpm
MogileFS-Server-mogilefsd-2.46-2.el7.centos.noarch.rpm
MogileFS-Server-mogstored-2.46-2.el7.centos.noarch.rpm
MogileFS-Utils-2.19-1.el7.centos.noarch.rpm
perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm
perl-MogileFS-Client-1.14-1.el7.centos.noarch.rpm
perl-Perlbal-1.78-1.el6.noarch.rpm

B.tracker+mysql节点上配置
1.初始化数据库
Mysql > GRANT ALL PRIVILEGES ON *.* TO 'mogile' @'127.0.0.1' IDENTIFIED BY 'mogile' WITH GRANT OPTION;

2.mysql>flush  privileges
3.添加运行用户
useradd -r mogilefs
mkdir /var/run/mogilefsd/
chown -R mogilefs.mogilefs /var/run/mogilefsd #yum安装的话已经完成
mogdbsetup --dbpass=mogile

4. 修改主配置文件

5. 定义一个tracker特殊的配置
Vim   /etc/mogilefs/mogilefs.conf
trackers=172.17.252.64:7001
6. 启动服务

C)配置storage节点
1.安装所需要的包
2.vim  /etc/mogilefs/mogstored.conf
docroot = /data/mogdata
3. mkdir /data/mogdata
chown mogilefs.mogilefs /data/mogdata
4. 3./etc/init.d/mogstored start
D)tracker+mysql节点的配置
1. 添加主机,将主机信息注册到数据库中
modam (--tracker=172.17.252.64:7001) host add node1 --ip=172.17.250.2 --port=7500 --status=alive
mogadm (--tracker=172.17.252.64:7001) host add node2 --ip=172.17.254.208 --port=7500 --status=alive

2.检查主机是否加入到MogileFs的系统中
mogadm host list


3. MogileFS 中的存储设备管理
1.建一个目录 ( 并且需要 mount 一个硬盘给这个目录 ) 给这个"设备" 使用, 我们这的例子是使用dev1在主机中建一个目录,建目录使用 dev + ID 这种格式,记的所有系统中 ID 不能重复.也必须和配置文件中的路径一样(上面已经建立过)
2.给“设备”加入存储的节点当中。相当于为每个设备加入MogileFS的存储系统
mogadm  -tracker=172.17.252.64:7001 device add node1 1  
mogadm  -tracker=172.17.252.64:7001 device add node2 2

3.检查是否加入
Mogadm check

  4.添加域和添加类,并上传文件
  mogadm domain add img   #添加名为img的域
  mogadm class add img(域名) m26(类名) --mindevcount=3  #添加类
  mogupload   --domain=img  --key=test --file=1.jpg  #上传文件

  5.查看文件
  Mogfileinfo  --domain=img  -key=bug4

  Mogfileinfo  --domain=img  -key=bug3

7. 测试访问


















运维网声明 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-670225-1-1.html 上篇帖子: 分布式文件系统--MogileFS 下篇帖子: 分布式存储 之 MogileFS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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