Linux下MFS分布式架构集群配置

简介:

前言:随着分布式、大数据的不断发展,很多时候大家会感觉大数据离自己很远,其实大数据就是我们身边。那我们心目中的大数据到底是什么样的呢,分布式、容错、大容量?

在我们运维中,最常见的文件存储系统大概就是NFS了,但是随着网站压力不断增加,NFS渐渐不能满足企业数据增长需求,有木有自动扩展、高效、部署、实施方便快捷的分布式存储供我们使用呢?那我们来看一下MFS基本可以满足我们的需求。

MogileFS是一种分布式文件存储系统。可支持文件自动备份的功能,提高可用性和高扩展性。MogileFS不支持对一个文件内部的随机或顺序读写,因此只适合做一部分应用,如图片服务,静态HTML服务、文件服务器等,这些应用在文件写入后基本上不需要对文件进行修改,但是可以生成一个新的文件覆盖原有文件。

分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,分布式文件系统的实际基于客户机/服务器模式。

目前常见的分布式文件系统有很多种,例如我之前一篇文章里面提到的Hadoop、FastDFS、Moosefs、PNFS(Parallel NFS)、Lustre、TFS、GFS、HDFS等等一系列。在众多的分布式文件系统解决方案中,MFS是搭建比较简单、使用起来也不需要过多的修改web程序,非常方便。那今天我们使用SHELL脚本来部署MFS。

一、Moosefs的优势

1) 通用文件系统,不需要修改上层应用就可以使用。

2) 可以在线扩容,体系架构可伸缩性极强(官方的case可以扩到70台了)。

3) 部署简单。

4) 体系架构高可用,单独一台机器出问题不会影响整体性能。

5) 文件对象高可用,可设置任意的文件冗余程度(提供比raid1+0更高的冗余级别)而绝对不会影响读或者写的性能,只会加速哦。

6) 提供Windows回收站的功能(不怕误操作了,提供类似oralce 的闪回等高级dbms的即时回滚特性,oralce这些特性可是收费的哦)

7) 提供netapp,emc,ibm等商业存储的snapshot特性。

8) google filesystem的一个c实现。

9) 提供web gui监控接口。

10)     提高随机读或写的效率。

11)     提高海量小文件的读写效率。

二、MFS系统组成部分:

    1、元数据服务器:在整个体系中负责管理管理文件系统,目前MFS只支持一个元数据服务器master,这是一个单点故障,需要一个性能稳定的服务器来充当。希望今后MFS能支持多个master服务器,进一步提高系统的可靠性。

    2、数据存储服务器:chunkserver,真正存储用户数据的服务器,存储文件时,首先把文件分成块,然后这些块在数据服务器chunkserver之间复制,数据服务器可以是多个,并且数量越多,可使用的"磁盘空间"越小,可靠性也越高。

    3、客户端:使用MFS文件系统来存储和访问的主机称为MFS的客户端,成功挂接MFS文件系统以后,就可以像以前使用NFS一样共享这个虚拟性的存储了。

    4.元数据日志服务器:负责备份master 服务器的变化日志文件,文件类型为changelog_ml.*.mfs ,以便于在master server 出问题的时候接替其进行工作。

三、主控服务器Master安装:

当我们安装主控服务器时,在配置过程中(./configure),可以取消安装chunk server

(--disable-mfschunkserver)以及MooseFS 客户端(--disable-mfsmount). 安装

主控服务器master 的具体步骤为:

1
2
3
4
5
6
7
8
9
10
添加mfs 组
groupaddmfs
新增系统用户mfs
useradd -g mfs mfs
解压安装:
tar -zxvf mfs-1.6.27. tar .gz ; cd  mfs-1.6.27
编译配置:
. /configure  --prefix= /usr  --sysconfdir= /etc  \
--localstatedir= /var/lib  --with-default-user=mfs \
--with-default-group=mfs --disable-mfschunkserver --disable-mfsmount&& make  &&makeinstall

成功安装master后,会在/etc/mfs下生成很多MFS相关文件:

cd/etc,复制如下文件:

1
2
cp  mfsmaster.cfg.dist mfsmaster.cfg
cp  mfsexports.cfg.dist mfsexports.cfg

分别表示:主配置文件,挂载文件等功能。

在/etc/mfs/mfsexports.cfg里添加如下语句:

1
192.168.33.0 /24    /  rw,alldirs,maproot=0

启动前准备:

1
2
3
4
5
cd  /var/lib/mfs/
cp  metadata.mfs.empty metadata.mfs
echo  "192.168.33.10 mfsmaster" >>  /etc/hosts
启动mfsmaster: /usr/sbin/mfsmasterstart
启动监控服务: /usr/sbin/mfscgiserv

浏览器访问地址:http://192.168.33.10:9425/mfs.cgi,可以看到MFS信息。

 wKioL1Xmv_-g2yYTAAFi_PvVDdU433.jpg

四、 Mfsmetalogger 服务器部署

安装方法跟master编译、安装参数一样哦,最后配置如下:

进入/etc/mfs/下,如下操作:

1
2
3
cp  mfsmetalogger.cfg.dist mfsmetalogger.cfg
echo  "192.168.33.10 mfsmaster"  >>  /etc/hosts
最后启动mfsmetalogger服务即可, /usr/sbin/mfsmetalogger  start

五、Chunk servers 服务器部署

MFSChunk编译参数:

1
2
. /configure  --prefix= /usr  --sysconfdir= /etc  --localstatedir= /var/lib  --with-default-
user=mfs --with-default-group=mfs --disable-mfsmaster && make  &&makeinstall

配置方法如下:

1
2
cp  mfschunkserver.cfg.dist mfschunkserver.cfg
cp  mfshdd.cfg.dist mfshdd.cfg

更改配置文件mfshdd.cfg,加入:

1
/data/

启动前准备:

1
2
3
echo  "192.168.33.10 mfsmaster"  >>  /etc/hosts
chown  -R mfs:mfs   /data
/usr/sbin/mfschunkserverstart

六、MFS客户端安装:

安装编译参数:

1
2
. /configure  --prefix= /usr  --sysconfdir= /etc  --localstatedir= /var/lib  --with-default-
user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver&& make  && make  install

启动前准备:

1
2
mkdir  /mnt/mfs
echo  "192.168.33.10 mfsmaster"  >>  /etc/hosts

挂载客户端测试:

1
/usr/bin/mfsmount/mnt/mfs  -H  192.168.33.10

然后我们可以对文件进行常规操作,其他应用服务器LAMP可以挂载MFS文件系统,来存放文件。

七、MFS必备命令:

1
2
3
4
5
6
7
8
9
10
设置副本的份数,推荐3份
/usr/bin/mfssetgoal  -r 3   /mnt/mfs
查看某文件
/usr/bin/mfsgetgoal    /mnt/mfs
查看目录信息
/usr/bin/mfsdirinfo  -H  /mnt/mfs
写入性能测试:
dd  if = /dev/zero  of=1.img bs=1M count=50
读取性能测试:
dd  if =1.img bs=1M | dd  of= /dev/null


本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/1690874
相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
4月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
376 2
|
4月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
7月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
5月前
|
消息中间件 负载均衡 中间件
⚡ 构建真正的高性能即时通讯服务:基于 Netty 集群的架构设计与实现
本文介绍了如何基于 Netty 构建分布式即时通讯集群。随着用户量增长,单体架构面临性能瓶颈,文章对比了三种集群方案:Nginx 负载均衡、注册中心服务发现与基于 ZooKeeper 的消息路由架构。最终选择第三种方案,通过 ZooKeeper 实现服务注册发现与消息路由,并结合 RabbitMQ 支持跨服务器消息广播。文中还详细讲解了 ZooKeeper 搭建、Netty 集群改造、动态端口分配、服务注册、负载均衡及消息广播的实现,构建了一个高可用、可水平扩展的即时通讯系统。
609 0
|
2月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
316 11
|
3月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
7月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
2453 57
|
5月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
301 0
|
7月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
489 11
|
8月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。

热门文章

最新文章