分布式文件存储--MFS
今天给大家讲的是目前最比较流行的分布式文件存储--MFS。MooseFS呢是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
它有好多比较好的特点比如:
下面给大家介绍下mfs的体系结构和工作原理:
任意数量的主机,可以通过mfsmount进程与管理服务器(接收和更改元数据)和数据服务器(改变实际文件数据)进行交流。
(官方网络示意图)
(读写原理图)
MFS的读数据过程1.client当需要一个数据时,首先向master server发起查询请求;
2.管理服务器检索自己的数据,获取到数据所在的可用数据服务器位置ip|port|chunkid;
3.管理服务器将数据服务器的地址发送给客户端;
4.客户端向具体的数据服务器发起数据获取请求;
5.数据服务器将数据发送给客户端;
MFS的写数据过程
1.当客户端有数据写需求时,首先向管理服务器提供文件元数据信息请求存储地址(元数据信息如:文件名|大小|份数等);
2.管理服务器根据写文件的元数据信息,到数据服务器创建新的数据块;
3.数据服务器返回创建成功的消息;
4.管理服务器将数据服务器的地址返回给客户端(chunkIP|port|chunkid);
5.客户端向数据服务器写数据;
6.数据服务器返回给客户端写成功的消息;
7.客户端将此次写完成结束信号和一些信息发送到管理服务器来更新文件的长度和最后修改时间
MFS的删除文件过程
1.客户端有删除操作时,首先向Master发送删除信息;
2.Master定位到相应元数据信息进行删除,并将chunk server上块的删除操作加入队列异步清理;
3.响应客户端删除成功的信号
MFS修改文件内容的过程
1.客户端有修改文件内容时,首先向Master发送操作信息;
2.Master申请新的块给.swp文件,
3.客户端关闭文件后,会向Master发送关闭信息;
4.Master会检测内容是否有更新,若有,则申请新的块存放更改后的文件,删除原有块和.swp文件块;
5.若无,则直接删除.swp文件块。
MFS重命名文件的过程
1.客户端重命名文件时,会向Master发送操作信息;
2.Master直接修改元数据信息中的文件名;返回重命名完成信息;
MFS遍历文件的过程
1.遍历文件不需要访问chunk server,当有客户端遍历请求时,向Master发送操作信息;
3.客户端接收到信息后显示
好了上面已经介绍的差不多了,下面咱们开始安装部署mfs。
一、环境介绍
192.168.1.10 master、metalogger
192.168.1.11 chunk server、client server
我这里为了方便我把master和metalogger放到了一块、但是实际生产环境中不要这样因为master本来就是单点,还有chunk server和client server也不应该放到一块。
二、安装步骤
master server 搭建 [root@localhost Desktop]# useradd mfs -s /sbin/nologin [root@localhost Desktop]# mv mfs-1.6.20-2.tar.gz /tmp [root@localhost Desktop]# cd /tmp/ [root@localhost tmp]# tar xf mfs-1.6.20-2.tar.gz [root@localhost tmp]# cd mfs-1.6.20-2 [root@localhost mfs-1.6.20-2]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount [root@localhost mfs-1.6.20-2]# cd /usr/local/mfs/etc/ [root@localhost etc]# ls mfsexports.cfg.dist mfsmaster.cfg.dist mfsmetalogger.cfg.dist [root@localhost etc]# cp mfsmaster.cfg.dist mfsmaster.cfg [root@localhost etc]# cp mfsexports.cfg.dist mfsexports.cfg [root@localhost etc]# cp /usr/local/mfs/var/mfs/metadata.mfs.empty /usr/local/mfs/var/mfs/metadata.mfs [root@localhost etc]# /usr/local/mfs/sbin/mfsmaster start working directory: /usr/local/mfs/var/mfs lockfile created and locked initializing mfsmaster modules ... loading sessions ... file not found if it is not fresh installation then you have to restart all active mounts !!! exports file has been loaded loading metadata ... create new empty filesystemmetadata file has been loaded no charts data file - initializing empty charts master <-> metaloggers module: listen on *:9419 master <-> chunkservers module: listen on *:9420 main master server module: listen on *:9421 mfsmaster daemon initialized properly [root@localhost etc]# /usr/local/mfs/sbin/mfscgiserv starting simpl
没有评论:
发表评论