共计 1993 个字符,预计需要花费 5 分钟才能阅读完成。
最近了解了一个分布式文件系统——MooseFS,之前对分布式的东西知道的很少,分布式文件系统、分布式数据库都是近而远之,觉得太复杂了离我还很遥远。在各位老师的推动下我用 6 台机器实践了一下 moosefs,moosefs 的部署还是很简单的,和配置 NFS 很像,就是多了两种角色的机器,正是有了它们,才使得 moosefs 在可扩展性和稳定性上都要远好于 NFS,在读写的性能方面,通过 dd 进行的简单测试来看,moosefs 也就是写入的速度稍微好于 NFS,读上没有差别。下面是对于 MFS 知识点的一些总结。
MFS 系统由 4 个部分构成:master、metalogger、chunkserver、client。
Master —— mfs 的大脑,记录着管理信息,比如:文件大小,存储的位置,份数等,和 innodb 中共享空间(ibdata)中存储的信息类似,这些信息被记录到 metadata.mfs 中,当该文件被载入内存后,该文件会重命名为 metadata.mfs.back,当 chunkserver 上有更新时,master 会定期将获得的新的信息回写到 metadata.mfs.back 中,保证元数据的可靠。
硬件推荐 :大内存,因为内存中需要将 metadata.mfs 加载进来,这个文件的大小取决于你 chunkserver 上存储的数据量,内存的大小会成为之后的问题,要 ECC 的可以进行错误校验,当内存中数据量达到一定程度,如果没有个容错的机制,会很可怕;冗余电池,和磁盘配置 RAID1/RAID5/RAID10,都是为了保证高可靠。
Metalogger —— mfs 的备份,好比 mysql 中的 m - s 结构,metalogger 会定期重 master 上将的 metadata、changelog、session 类型的文件下载同步到本地目录下,并加后缀”_ml”将其重命名。
硬件推荐 :与 master 机器配置一致,metalogger 本身就是 master 的一个备机,当 master 宕机后,可以直接将 metalogger 提升为 master。
Chunkserver —— 数据存储地,文件以 chunk 大小存储,每 chunk 最大为 64M,小于 64M 的,该 chunk 的大小即为该文件大小,超过 64M 的文件将被均分,每一份(chunk)的大小以不超过 64M 为原则;文件可以有多份 copy,即除了原始文件以外,该文件还存储的份数,当 goal 为 1 时,表示只有一份 copy,这份 copy 会被随机存到一台 chunkserver 上,当 goal 的数大于 1 时,每一份 copy 会被分别保存到每一个 chunkserver 上,goal 的大小不要超过 chunkserver 的数量,否则多出的 copy,不会有 chunkserver 去存,goal 设置再多实际上也就没有意义的。Copy 的份数,一般设为大于 1 份,这样如果有一台 chukserver 坏掉后,至少还有一份 copy,当这台又被加进来后,会将失去的那份 copy 补回来,始终保持原有的 copy 数,而如果 goal 设为 1copy,那么当存储该 copy 的 chunkserver 坏掉,之后又重新加入回来,copy 数将始终是 0,不会恢复到之前的 1 个 copy。
Chunkserver 上的剩余存储空间要大于 1GB(Reference Guide 有提到),新的数据才会被允许写入,否则,你会看到 No space left on device 的提示,实际中,测试发现当磁盘使用率达到 95% 左右的时候,就已经不能写入了,当时可用空间为 1.9GB。
硬件建议 :普通的机器就行,就是要来存几份数据,只要磁盘够大就好。
Client —— 客户端通过内核加载的 FUSE 模块,再通过和 master 的沟通,将 chunkserver 共享的分区挂载到本地,然后进行读写操作。由于 FUSE 模块是外加的模块,当系统重启后,需要执行 modprobe fuse,将其加载到内核中。
MooseFS 的详细介绍 :请点这里
MooseFS 的下载地址 :请点这里
相关阅读 :
分布式文件系统 MooseFS http://www.linuxidc.com/Linux/2012-06/62008.htm
在 CentOS 上安装部署 MooseFS 分布式文件系统 http://www.linuxidc.com/Linux/2013-06/85753.htm
MooseFS 分布式文件系统安装配置常见问题集 http://www.linuxidc.com/Linux/2013-06/85752.htm
MooseFS 分布式文件系统安装向导 PDF http://www.linuxidc.com/Linux/2013-06/85751.htm
DRBD+Heartbeat+Pacemaker 实现 MFS(MooseFS) 的高可用 http://www.linuxidc.com/Linux/2012-05/60699.htm