分布式原理
- 通过计算机网络与节点相连,就是把一些分散的(分布在局域网内各个计算机上)共享文件夹,集合到一个文件夹内(虚拟共享文件夹)。
- 分布式文件系统的好处是集中访问、简化操作、数据容灾以及提高文件的存取性能。
MFS原理
- 元数据服务器(master):在整个体系中负责管理文件系统,维护元数据。
- 元数据日志服务器(metalogger):备份master服务器的变化日志文件,文件类型为changelog_ml. * . mfs ,当master服务器数据丢失或者损坏时,可以从日志服务器中取得文件 ,进行恢复。
- 数据存储服务器(chunkserver):真正的存储数据的服务器,存储文件是,会把文件分块保存,并在数据服务器之间进行复制,数据服务器越多,能使用的“容量”越大,可靠性就越高,性能就越好
- 客户端(client):可以像挂载NFS一样挂载MFS文件系统,其操作是相同的。
MFS读取数据的处理过程
- 客户端向元数据服务器发出读请求
- 元数据服务器把所需数据存放的位置(Chunk Server的IP地址和Chunk编号)告知客户端
- 客户端向已知的Chunk Server请求发送数据
- Chunk Server向客户端发送数据
MFS写入数据的处理过程
- 客户端向元数据服务器发送写入请求。
- 元数据服务器与Chunk Server进行交互(只有当所需的分块Chunk存在的时候才进行交互),但元数据服务器只在 某些服务器创建新的分块chunks,创建成功后由Chunk Servers告知元数据服务器操作成功。
- 元数据服务器告知客户端,可以在哪个Chunk Server的那些chunks写入数据。
- 客户端向指定的Chunk Server写入数据。
- 该Chunk Server与其他Chunk Server进行数据同步,同步成功后Chunk Server告知客户端数据写入成功。
- 客户端告知元数据服务器本次写入完毕。
MFS优势
- 高可用性:没有单点故障也称为无SPOF配置。文件系统的元数据在物理冗余服务器上保存为两个或多个副本。用户数据冗余地分布在系统中的存储服务器上。
低成本的数据安全:MooseFS使用户能够节省大量硬盘空间,保持相同的数据冗余级别。在大多数常见情况下,将节省至少55%的硬盘空间. - 可扩展性:存储可以扩展到16字节(~16000千兆字节),这使我们可以存储超过20亿个文件
高性能:旨在支持高性能I/O操作。用户数据可以在许多存储节点上同时读取/写入,从而避免单个中央服务器或单个网络连接瓶颈。
实验环境
主机 | 操作系统 | IP地址 |
---|---|---|
Master Server | CentOS-7-x86_64 | 192.168.144.110 |
MetalLogger Server | CentOS-7-x86_64 | 192.168.144.112 |
Chunk Server1 | CentOS-7-x86_64 | 192.168.144.111 |
Chunk Server2 | CentOS-7-x86_64 | 192.168.144.113 |
Client | CentOS-7-x86_64 | 192.168.144.114 |
实验部署
安装方式
- 根据官方网站提供的安装方式,我们可以按照官方提供的方式安装,简易也节约时间。
1、搭建Master Server
- 按上图方式安装完成Master Server后,直接启动即可。
mfsmaster start
- 若是需要停止
mfsmaster -s
2、搭建MetaLogger Server
- 按官方提供安装方式安装。
- 安装完成后,需要此台服务器监控master。
vim /etc/mfs/mfsmetalogger.cfg
MASTER_HOST = 192.168.144.110 //添加指向master的IP地址
- 启动服务即可。
mfsmetalogger start
- 若想停止服务。
mfsmetalogger -s
3、搭建chunk server
- 本实验有两台chunkserver,搭建步骤完全相同
- 安装方式如官方方式
vim /etc/mfs/mfschunkserver.cfg
MASTER_HOST = 192.168.144.110 //提供存储给master
vim /etc/mfs/mfshdd.cfg
/data //添加一行,在这里/data是一个给MFSmaster的分区,实际生产环境中最好使用独立的分区或磁盘挂载到此目录
mkdir /data/
chown -R mfs.mfs /data/ #更改属主属组
- 完成如上配置后,chunkserver算是配置完成,启动即可。
mfschunkserver start
- 若想停止服务。
mfschunkserver -s
4、客户端配置
- 安装方式如官方方式。
- 客户端安装完成后,创建挂载master提供空间的目录。
mkdir /abc
mfsmount -H 192.168.144.110 /abc
- 挂载完成后,查看挂载状态,如下图所示
5、客户端MFS常用操作
- mfsgetgoal命令常用来查询文件被复制的份数,-r命令可以对整个目录进行递归,goal是指文件被复制的份数。
mfsgetgoal -r /abc/
/abc/:
files with goal 2 : 1
directories with goal 2 : 1
- mfssetgoal命令用来设置文件被复制的份数,生产环境chunkserver节点数量至少大于2,文件副本数量小于等于chunkserver服务器的数量。
mfssetgoal -r 2 /abc/
/abc/:
inodes with goal changed: 0
inodes with goal not changed: 2
inodes with permission denied: 0
mfsgetgoal -r /abc/
/abc/:
files with goal 2 : 1
directories with goal 2 : 1
- 创建文件测试如下:
cd /abc
touch test
mfsgetgoal /abc/
/abc/: 2
6、MFS监控
- MFscgiserv使用Python编写的一个web服务器,监听端口为9425,可以在master上通过命令启动。
mfscgiserv
- 在客户端上通过浏览器访问http://192.168.144.110:9425
原文地址:http://blog.51cto.com/13659253/2150762
时间: 2024-11-10 19:07:49