• 超级码客 超级码客
  • 首页
  • 题库▿
    • 数据结构与算法面试题 ( 2619 + )
    • Java工程师面试题 ( 6548 + )
    • 前端工程师面试题 ( 6906 + )
    • Python工程师面试题 ( 4195 + )
    • C++工程师面试题 ( 4458 + )
    • Android工程师面试题 ( 3217 + )
    • IOS工程师面试题 ( 2330 + )
    • PHP工程师面试题 ( 3790 + )
    • C#工程师面试题 ( 3411 + )
    • Golang工程师面试题 ( 3522 + )
    • 分布式微服务面试题(中高级) ★ ( 2847 + )
    • 运维+DevOPS工程师面试题 ( 3463 + )
    • 大数据工程师面试题 ( 3093 + )
    • 数据库工程师面试题 ( 3246 + )
    • 软件测试工程师面试题 ( 2402 + )
    • 网络通讯工程师面试题 ( 1768 + )
  • 笔试
    • 算法数据结构笔试  ( 1200 + )
    • Java 笔试题  ( 1000 + )
    • 前端笔试题  ( 800 + )
    • PHP 笔试题  ( 150 + )
    • Python 笔试题  ( 150 + )
    • C++ 笔试题  ( 1200 + )
    • C# 笔试题  ( 180 + )
    • Golang 笔试题  ( 150 + )
    • 数据库笔试题  ( 800 + )
    • 运维笔试题  ( 260 + )
    • 网络通讯笔试题  ( 900 + )
    • 分布式笔试题  ( 80 + )
    • Android 笔试题  ( 120 + )
    • IOS 笔试题  ( 120 + )
    • 大数据 笔试题  ( 160 + )
    • 软件测试笔试题  ( 100 + )
  • 宝典
  • 专栏
  • 大厂题
    • 互联网大厂面试真题资料下载 📥
    • 互联网企业历年真题卷 (面试题)
    • 互联网企业历年真题卷 (笔试题)
  • 校招
  • 标签
  • 模拟
  • 组卷
  • 码客
    • Java 编程 ( 1297 篇 )
    • PHP 编程 ( 3397 篇 )
    • Python 编程 ( 1330 篇 )
    • 前端开发 ( 9328 篇 )
    • C / C++ ( 1375 篇 )
    • C# 编程 ( 904 篇 )
    • Golang 编程 ( 1144 篇 )
    • 数据库开发 ( 4549 篇 )
    • Linux 运维 ( 2346 篇 )
    • Docker容器 ( 1489 篇 )
    • 网络安全 ( 789 篇 )
    • Git代码协同 ( 1498 篇 )
    • 更多分类
  • 下载
    • IT图谱资料下载
    • Java资料下载
    • PHP资料下载
    • Python资料下载
    • 前端技术资料下载
    • IOS资料下载
    • DevOps资料下载
    • 公有云资料下载
    • C++专区资料下载
    • 数据库资料下载
    • 大数据资料下载
    • 架构设计资料下载
    • 职业发展资料下载
    • 更多分类
  • 职场
    • IT 职场
    • 发展之路
    • 挨踢人生
    • 面试经验
    • 资格考证
  • 书籍
  • 简历
  • 🎁VIP
       分布式文件系统MFS(moosefs)实现存储共享
    2025-02-14 21:36:42  [ 作者:小码客 ]  阅读数:7651

        

    由于用户数量的不断攀升,我对访问量大的应用实现了可扩展、高可靠的集群部署(即lvs+keepalived的方式),但仍然有用户反馈访问慢的问题。通过排查个服务器的情况,发现问题的根源在于共享存储服务器NFS。在我这个网络环境里,N个服务器通过nfs方式共享一个服务器的存储空间,使得NFS服务器不堪重负。察看系统日志,全是nfs服务超时之类的报错。一般情况下,当nfs客户端数目较小的时候,NFS性能不会出现问题;一旦NFS服务器数目过多,并且是那种读写都比较频繁的操作,所得到的结果就不是我们所期待的。下面是某个集群使用nfs共享的示意图:

    2222.jpg

    这种架构除了性能问题而外,还存在单点故障,一旦这个NFS服务器发生故障,所有靠共享提供数据的应用就不再可用,尽管用rsync方式同步数据到另外一个服务器上做nfs服务的备份,但这对提高整个系统的性能毫无帮助。基于这样一种需求,我们需要对nfs服务器进行优化或采取别的解决方案,然而优化并不能对应对日益增多的客户端的性能要求,因此唯一的选择只能是采取别的解决方案了;通过调研,分布式文件系统是一个比较合适的选择。采用分布式文件系统后,服务器之间的数据访问不再是一对多的关系(1个NFS服务器,多个NFS客户端),而是多对多的关系,这样一来,性能大幅提升毫无问题。

    到目前为止,有数十种以上的分布式文件系统解决方案可供选择,如lustre,hadoop,Pnfs等等。我尝试了PVFS,hadoop,moosefs这三种应用,参看了lustre、KFS等诸多技术实施方法,最后我选择了moosefs(以下简称MFS)这种分布式文件系统来作为我的共享存储服务器。为什么要选它呢?我来说说我的一些看法:

    1、 实施起来简单。MFS的安装、部署、配置相对于其他几种工具来说,要简单和容易得多。看看lustre 700多页的pdf文档,让人头昏吧。

    2、 不停服务扩容。MFS框架做好后,随时增加服务器扩充容量;扩充和减少容量皆不会影响现有的服务。注:hadoop也实现了这个功能。

    3、 恢复服务容易。除了MFS本身具备高可用特性外,手动恢复服务也是非常快捷的,原因参照第1条。

    4、 我在实验过程中得到作者的帮助,这让我很是感激。

    MFS特性(根据官方网站翻译)

    ★ 高可靠性(数据能被分成几个副本存储在不同的计算机里)

    clip_image004

    ★ 通过增加计算机或增加新的硬盘动态扩充可用磁盘空间

    ★ 可以设置删除文件的空间回收时间

    [root@mysql-bk serydir]# mfsgettrashtime bind-9.4.0.tar.gz

    bind-9.4.0.tar.gz: 600

    文件被删除10分钟后(600秒),才真正删除文件,回收磁盘空间。

    ★ 为文件创建快照

    MFS文件系统的组成

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

    2、 元数据日志服务器。备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs。当元数据服务器数据丢失或者损毁,可从日志服务器取得文件进行恢复。

    3、 数据存储服务器chunkserver。真正存储用户数据的服务器。存储文件时,首先把文件分成块,然后这些块在数据服务器chunkserver之间复制(复制份数可以手工指定,建议设置副本数为3)。数据服务器可以是多个,并且数量越多,可使用的“磁盘空间”越大,可靠性也越高。

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

    元数据服务器安装和配置

    元数据服务器可以是linux,也可以是unix,你可以根据自己的使用习惯选择操作系统,在我的环境里,我是用freebsd做为MFS元数据的运行平台。GNU源码,在各种类unix平台的安装都基本一致。

    (一) 安装元数据服务

    1、下载GNU源码

    wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.11/mfs-1.6.11.tar.gz

    2、解包 tar zxvf mfs-1.6.11.tar.gz

    3、切换目录 cd mfs-1.6.11

    4、创建用户 useradd mfs –s /sbin/nologin

    5、配置 ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs

    6、编译安装 make ; make install

    (二) 配置元数据服务

    元数据服务器的配置文件被放置于安装目录/usr/local/mfs/etc。与mfs-1.5.12版本不同的是:mfs-1.6.x版安装完成只有模版文件,其后缀形如mfsmaster.cfg.dist。为了使mfs master正常工作,需要两个配置文件mfsmaster.cfg及mfsexports.cfg,前者为主配置文件,后者为权限控制文件(mfs客户端挂接时使用)。

    (1)主配置文件mfsmaster.cfg,可直接从模版文件拷贝而来,打开这个配置文件/usr/local/mfs/etc/mfsmaster.cfg,看看都有哪些内容:

    # WORKING_USER = mfs

    # WORKING_GROUP = mfs

    # SYSLOG_IDENT = mfsmaster

    # LOCK_MEMORY = 0

    # NICE_LEVEL = -19

    # EXPORTS_FILENAME = /usr/local/mfs/etc/mfsexports.cfg

    # DATA_PATH = /usr/local/mfs/var/mfs

    # BACK_LOGS = 50

    # REPLICATIONS_DELAY_INIT = 300

    # REPLICATIONS_DELAY_DISCONNECT = 3600

    # MATOML_LISTEN_HOST = *

    # MATOML_LISTEN_PORT = 9419

    # MATOCS_LISTEN_HOST = *

    # MATOCS_LISTEN_PORT = 9420

    # MATOCU_LISTEN_HOST = *

    # MATOCU_LISTEN_PORT = 9421

    # CHUNKS_LOOP_TIME = 300

    # CHUNKS_DEL_LIMIT = 100

    # CHUNKS_WRITE_REP_LIMIT = 1

    # CHUNKS_READ_REP_LIMIT = 5

    # REJECT_OLD_CLIENTS = 0

    # deprecated, to be removed in MooseFS 1.7

    # LOCK_FILE = /var/run/mfs/mfsmaster.lock

    尽管每行都被注释掉了,但它们却是配置文件的默认值,要改变这些值,需要取消注释,然后明确指定其取值。接下来说明一下其中一些项目的含义。

    ◆ EXPORTS_FILENAME = /usr/local/mfs/etc/mfsexports.cfg 权限控制文件的存放位置。

    ◆ DATA_PATH = /usr/local/mfs/var/mfs 数据存放路径,只元数据的存放路径。那么这些数据都包括哪些呢?进目录看看,大致分3种类型的文件:

    clip_image006

    这些文件也同样要存储在其他数据存储服务器的相关目录。

    ◆ MATOCS_LISTEN_PORT = 9420 MATOCS--master to chunkserver,即元数据服务器使用9420这个监听端口来接受数据存储服务器chunkserver端的连接。

    ◆ MATOML_LISTEN_PORT = 9419 MATOML---master to metalogger,用于备份元数据服务器的变化日志。注:Mfs-1.5.12以前的版本没有这个项目。

    ◆ MATOCU_LISTEN_PORT = 9421 元数据服务器在9421端口监听,用以接受客户端对MFS进行远程挂接(客户端以mfsmount挂接MFS)

    ◆ 其他部分看字面意思都不难理解。还有几个与时间有关的数值,其单位是秒。

    这个配置文件,不必做修改就能工作了。

    (2)配置文件/usr/local/mfs/etc/mfsexports.cfg,也可直接从模版文件复制而来。这个文件的内容,十分类似NFS服务器的exports文件.实际配置时,可参照这个文件的默认行来修改以满足自己的应用需求.我的mfsexports.cfg文件的内容为:

    192.168.93.0/24 / rw

    (3)复制文件

    cp /usr/local/mfs/var/mfs/metadata.mfs.empty /usr/local/mfs/var/mfs/metadata.mfs

    这是一个8字节的文件,为mfs-1.6.x新增项目。

    (三) 元数据服务器master启动

    元数据服务器可以单独启动,即使没有任何数据存储服务器(chunkserver)也是能正常工作的,因此当我们安装配置完MFS后,即可启动它。执行命令 /usr/local/mfs/sbin/mfsmaster start ,如果没有意外,元数据库服务器就应该作为一个守护进程运行起来。现在我们可以通过3个方面来检查一下MFS master的运行状况:

    1、 检查进程

    clip_image008

    2、 检查网络状态

    clip_image010

    3、 检查系统日志

    clip_image012

    MFS的日志会直接写入系统日志。当我们增加数据存储服务器(chunkserver)或数据存储服务器(chunkserver)处故障时,都能在系统日志找到这些记录。注意,这个日志跟元数据变化日志不是一回事情。

    (四)、关闭元数据服务器

    关闭元数据服务器,务必使用 /usr/local/mfs/sbin/mfsmaster –s 这种方式,如果直接使用kill杀死进程,将导致下次启动时出现找不到相关文件,而不能正常启动服务器。这个一定要谨慎。当然,如果发生了这个事情,还是可以通过 mfsmetastore 来恢复的。

    元数据日志服务器安装和配置

    元数据日志服务为mfs 1.6以后版本新增的服务,即可以把元数据日志保留在元数据服务器,也可以单独存储。为保证其可靠性,最好单独放置。需要注意的是,源数据日志守护进程跟元数据服务器(master)在同一个服务器上,备份元数据日志的服务器作为它的客户端,从元数据服务器取得日志文件进行备份。

    (一)安装元数据日志服务器metalogger

    1、下载GNU源码

    wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.11/mfs-1.6.11.tar.gz

    2、解包 tar zxvf mfs-1.6.11.tar.gz

    3、切换目录 cd mfs-1.6.11

    4、创建用户 useradd mfs –s /sbin/nologin

    5、配置 ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs

    6、编译安装 make ; make install

    (二)元数据日志服务(metalogger)配置

    该服务仅需要一个配置文件,这里我们只需要从模板文件复制一个,然后稍微加以修改即可,下面是我的某个metalogger 的配置文件:

    [root@hynfs-2 etc]# more mfsmetalogger.cfg

    # WORKING_USER = mfs

    # WORKING_GROUP = mfs

    # SYSLOG_IDENT = mfsmetalogger

    # LOCK_MEMORY = 0

    # NICE_LEVEL = -19

    # DATA_PATH = /usr/local/mfs/var/mfs

    # BACK_LOGS = 50

    # META_DOWNLOAD_FREQ = 24

    # MASTER_RECONNECTION_DELAY = 5

    MASTER_HOST = 192.168.93.18

    MASTER_PORT = 9419

    # MASTER_TIMEOUT = 60

    # deprecated, to be removed in MooseFS 1.7

    # LOCK_FILE = /var/run/mfs/mfsmetalogger.lock

    这个配置文件,唯一需要修改的地方就是MASTER_HOST,它的值必须是元数据服务器的主机名或者ip地址。另外,为方便大家进一步理解,我把配置文件里其他几个项目简单的说明一下:

    (1)SYSLOG_IDENT = mfsmetalogger 元数据日志服务运行时,在系统日志输出的标识,下面给出一段系统日志:

    clip_image014

    (2)DATA_PATH = /usr/local/mfs/var/mfs 从元数据服务器(master)抓回文件,然后进行存放的路径。

    (3)BACK_LOGS = 50 存放备份日志的总个数为50,超出50则轮转。在做元数据恢复时,仅仅需要最近的那个日志文件备份,因此默认的日志个数就足够了,这也保证了日志备份不会写满整个分区。

    (4)META_DOWNLOAD_FREQ = 24 元数据备份文件下载请求频率。默认为24小时,即每隔一天从元数据服务器(MASTER)下载一个metadata.mfs.back文件。当元数据服务器关闭或者出故障时,matedata.mfs.back文件将消失,那么要恢复整个mfs,则需从metalogger服务器取得该文件。请特别注意这个文件,它与日志文件一起,才能够恢复整个被损坏的分布式文件系统。

    (三)元数据日志服务(metalogger)运行及关闭

    1、启动过程为:

    /usr/local/mfs/sbin/mfsmetalogger start

    working directory: /usr/local/mfs/var/mfs

    lockfile created and locked

    initializing mfsmetalogger modules ...

    mfsmetalogger daemon initialized properly

    启动过程如果不能跟元数据服务器进行通信的话,系统会给出错误信息。

    2、关闭服务,执行命令 /usr/local/mfs/sbin/mfsmetalogger stop

    3、检查服务的运行状况。从两个方面看,一个是元数据服务器,另一个是本身的数据生成情况。

    ◆察看元数据服务器网络连接,可以看见日志服务器连接到元数据服务器的tcp 9419端口。

    ◆查看日志服务器的工作目录,正常情况应该看见已经有文件生成了(从元数据服务器获取过来的)。可以手动从元数据服务器复制一个日志文件过来比较文件的内容。

    数据存储chunkserver服务器的安装配置

    数据存储服务器chunkserver也是可以运行在各种类unix平台的,因此不再多说。一个MFS环境到底能集群多少服务器,作者的说法是上PB容量,个人建议,最好3台以上;并且专门用来做存储,不要把它跟master搞到一个机器(理论上没问题,实现也是可以的,但这不是一个好策略)。因为每个数据存储服务器的安装和配置都是相同的,所以只需按照一个服务器的操作就可以了。

    (一)、安装数据存储服务器 chunkserver

    1、下载GNU源码

    wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.11/mfs-1.6.11.tar.gz

    2、解包 tar zxvf mfs-1.6.11.tar.gz

    3、切换目录 cd mfs-1.6.11

    4、创建用户 useradd mfs –s /sbin/nologin

    5、配置 ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs

    6、编译安装 make ; make install

    (二)配置数据存储服务器chunkserver

    数据存储服务器有2个配置服务器需要修改,一个是主配置文件 mfschunkserver.cfg ,另一个配置文件是 mfshdd.cfg。每个服务器用来分配给 MFS使用的空间最好是一个单独的硬盘或者一个raid卷,最低要求是一个分区。作者举的例子是创建一个大文件,然后挂接在本地,这不是个好主意,只能用来做实验了。

    1、修改配置文件 /usr/local/mfs/etc/mfschunkserver.cfg。下面是修改了的配置文件:

    #WORKING_USER = mfs

    #WORKING_GROUP = mfs

    # DATA_PATH = /usr/local/mfs/var/mfs

    # LOCK_FILE = /var/run/mfs/mfschunkserver.pid

    # SYSLOG_IDENT = mfschunkserver

    # BACK_LOGS = 50

    # MASTER_RECONNECTION_DELAY = 30

    MASTER_HOST = 192.168.0.19

    MASTER_PORT = 9420

    # MASTER_TIMEOUT = 60

    # CSSERV_LISTEN_HOST = *

    # CSSERV_LISTEN_PORT = 9422

    # CSSERV_TIMEOUT = 60

    # CSTOCS_TIMEOUT = 60

    # HDD_CONF_FILENAME = /usr/local/mfs/etc/mfshdd.cfg

    这个配置文件里,没有注释符号“#”就是被修改过的项了,接下来是里面某些项的含义说明:

    ◆ MASTER_HOST = 192.168.0.19 元数据服务器的名称或地址,可以是主机名,也可以是ip地址,只要数据存储服务器能访问到元数据服务器就行。

    ◆ LOCK_FILE = /var/run/mfs/mfschunkserver.pid 与元数据服务器master的处理完全相同.

    ◆ CSSERV_LISTEN_PORT = 9422 CSSERV—chunkserver,这个监听端口用于与其它数据存储服务器间的连接,通常是数据复制。

    ◆ HDD_CONF_FILENAME = /usr/local/mfs/etc/mfshdd.cfg 分配给MFS使用的磁盘空间配置文件的位置。

    2、修改配置文件/usr/local/mfs/etc/mfshdd.cfg。在我的服务器上,只有一个1T的SATA硬盘,分了一个800G容量的分区来做为MFS存储服务的组成部分。为了使mfs拥有写目录的权限,需要修改目录的属主。我的服务器的分区挂接点是 /data , 用 chown –R mfs:mfs /data 把属主改变。因为我的每个服务器只需贡献一个分区做为MFS,因此配置文件只需要如下一行内容就可以了:

    /data

    这个文件默认情况下有好几行,我们最好把它删掉,因为按常规情况用注释符号“#”好像不起作用。

    (三)启动数据存储服务器chunkserver

    在数据存储服务器chunkserver执行命令 /usr/local/mfs/sbin/mfschunkserver start 启动数据存储守护进程.通过以下几种方式来检查chunkserver的运行状态.

    1、 查看进程 ps aux | grep mfschunkserver

    2、 查看网络状态,正常情况下应该看见9422处于监听状态,如果有其他数据存储服务器chunkserver在同一个元数据服务器master管理下运行的话,应该能看见其他chunkserver跟本机的连接情况:

    clip_image016

    3、 查看元数据服务器的系统日志,可以看见新增的数据存储服务器chunkserver被加入。

    tail -f /var/log/messages

    Mar 27 14:28:00 mfs-ctrl mfsmaster[29647]: server 3 (192.168.0.71): usedspace: 65827913728 (61 GB), totalspace: 879283101696 (818 GB), usage: 7.49%

    (四) 关闭数据存储服务器

    跟元数据服务器master相似,执行命令 /usr/local/mfs/sbin/mfschunkserver –s , chunkserver服务就停下来了。为了使系统重启过程能自动启动chunkserver 服务,可以通过在/etc/rc.local文件追加行 /usr/local/mfs/sbin/mfschunkserver start 来达到这个目的(master的自动重启处理也可同样处理)。

    MFS客户端的安装及配置

    我的生产环境,只有centos和freebsd两种环境,因此下面的描述,只有centos及freebsd挂接MFS文件系统的情形,其他类型的unix系统,待日后尝试。对比前面的操作过程,客户端挂接后使用MFS集群文件系统才是最费时的事情。

    一、centos作为MFS的客户端。

    (一) 安装MFS客户端

    ◆Mfsmount需要依赖FUSE,因此需要先安装好fuse,这里我选用 fuse-2.7.4.tar.gz。

    1、解包 tar zxvf fuse-2.7.4.tar.gz

    2、切换目录 cd fuse-2.7.4.

    3、配置 ./configure

    4、编译安装 make;make install

    如果系统已经安装了fuse,则跳过这个步骤。

    ◆安装MFS客户端程序

    1、修改环境变量文件/etc/profile ,追加下面的行,然后再执行命令source /etc/profile使修改生效。

    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

    如果不执行这个操作,在后面安装MFS的过程中,执行命令

    ./configure --enable-mfsmount时可能出现"checking for FUSE... no  configure: error: mfsmount build was forced, but fuse development package is not installed"这样的错误,而不能正确安装MFS客户端程序。

    2、解包 tar zxvf mfs-1.6.11.tar.gz

    3、切换目录 cd mfs-1.6.11

    4、创建用户 useradd mfs –s /sbin/nologin

    5、配置 ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount

    6、编译安装 make ; make install

    ◆检查MFS客户端安装的结果。通过查看目录/usr/local/mfs/bin目录的文件,应该发现如下文件:

    clip_image018

    (二)挂接和使用MFS文件系统

    1、创建挂接点 mkdir /mnt/mfs

    2、挂接MFS /usr/local/mfs/bin/mfsmount /mnt/mfs –H 192.168.0.19 .注意,所有的MFS都是挂接同一个元数据服务器master,而不是其他数据存储服务器chunkserver !

    3、通过查看磁盘使用情况来检查是否被挂接成功。

    [root@mysql-bk ~]# df -h

    Filesystem Size Used Avail Use% Mounted on

    /dev/hda1 19G 2.7G 16G 15% /

    /dev/hda7 51G 180M 48G 1% /backup

    /dev/hdc1 145G 6.4G 131G 5% /data

    /dev/hda5 19G 173M 18G 1% /home

    /dev/hda3 24G 217M 23G 1% /var

    /dev/hda2 29G 1.6G 26G 6% /usr

    tmpfs 1.7G 0 1.7G 0% /dev/shm

    mfs#192.168.0.19:9421 2.5T 256G 2.2T 11% /mnt/mfs

    4、 进入目录/mnt/mfs,上传一个文件,看是否正常?接着在手动用touch 创建一个文件,然后再删除它们,看是否可以正常操作。

    5、 设置文件副本数量,建议以3份为佳。

    设置副本数目

    mfsrsetgoal 3 /mnt/mfs

    查看设置是否如我所愿

    mfsgetgoal /mnt/mfs/serydir/bind-9.4.0.tar.gz

    /mnt/mfs/serydir/bind-9.4.0.tar.gz: 3

    6、设置删除文件后空间回收时间。默认的回收时间为7天(604800秒)

    修改回收时间为10分钟

    mfsrsettrashtime 600 /mnt/mfs

    6、 把挂接命令追加到文件/etc/rc.local,可实现开机自动启动挂接MFS.

    二、freebsd作为MFS客户端

    Freebsd安装和挂接MFS集群文件系统,比centos操作起来要复杂一些.mfsmount需要依赖fuse,并且需要在内核中加载fusefs模块。

    (一)安装fuse

    1、解包 tar zxvf fuse-2.7.4.tar.gz

    2、切换目录 cd fuse-2.7.4.

    3、配置 ./configure

    4、编译安装 make;make install

    如果系统已经安装了fuse,则跳过这个步骤。

    (二) 安装内核模块fusefs-kmod

    1、执行系统命令sysinstall

    clip_image020

    2、光标选定Configure,进入下一步。

    clip_image022

    3、选择“Packages”,进入下一步。

    clip_image024

    4、选择“FTP”作为安装源,进入下一步。

    clip_image026

    5、选择“kld”后,回车执行默认动作“[OK]”,进入下一步选软件包。

    clip_image028

    6、选择“fusefs-kmod-0.3.9.p1_2”,按[OK]返回到第“4”步出现的那个操作界面。这时我们用“Tab”键选中底部右边的“Install”,完成安装后,会出现一个安装成功的提示,然后瞬间消失。

    ◆ 加载fusefs模块 kldload /usr/local/modules/fuse.ko .如果加载不成功,请检查是否存在模块文件fuse.ko.

    ◆ 检查fusefs模块是否被加载到内核:

    clip_image030

    如果没有类似上面馆的输出,就表明fusefs模块没有加载成功。

    (三)安装包 pkg-config:

    1、cd /usr/ports/devel/pkg-config

    2、make install clean

    (四)安装MFS客户端

    1、解包 tar zxvf mfs-1.6.11.tar.gz

    2、切换目录 cd mfs-1.6.11

    3、创建用户 pw useradd mfs –s /sbin/nologin

    4、配置 ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount

    5、编译安装 make ; make install

    ◆检查MFS客户端安装的结果。通过查看目录/usr/local/mfs/bin目录的文件,应该发现如下文件:

    clip_image018[1]

    (五)挂接和使用MFS文件系统

    1、创建挂接点 mkdir /mnt/mfs

    2、挂接MFS /usr/local/mfs/bin/mfsmount /mnt/mfs –H 192.168.0.19 .注意,所有的MFS都是挂接同一个元数据服务器master,而不是其他数据存储服务器chunkserver !

    3、通过查看磁盘使用情况来检查是否被挂接成功。

    [root@mysql-bk ~]# df -h

    Filesystem Size Used Avail Capacity Mounted on

    /dev/ad4s1a 26G 570M 24G 2% /

    devfs 1.0K 1.0K 0B 100% /dev

    /dev/ad4s1g 356G 157G 170G 48% /data

    /dev/ad4s1f 17G 215M 15G 1% /home

    /dev/ad4s1d 28G 1.1G 25G 4% /usr

    /dev/

    .........................................................

    请您注册登录超级码客,加载全部码客文章内容...
  • IT 码客文摘
  • 查看所有
    • ▪ Linux配置NFS步骤及心得
    • ▪ Glusterfs全局统一命名空间
    • ▪ 分布式文件系统MFS(moosefs)实现存储共享
    • ▪ NFS是什么?详细介绍
    • ▪ linux下MFS(moosefs)安装使用
    • ▪ 在 CentOS 7.1 上安装分布式存储系统 Ceph
    • ▪ Ceph:一个 Linux PB 级分布式文件系统
    • ▪ 基于CentOS7部署Ceph集群(版本10.2.2)(转载)
    热门相关面试题
    • 1. Java语言中声明变量和定义变量有什么不同?
      推荐等级: ★★★★★  难度: 中级
    • 2. 请简述Nest.js 中如何创建守卫?
      推荐等级: ★★★  难度: 初级
    • 3. NSURLConnectionDelegate协议中
      推荐等级: ★★★  难度: 初级
    • 4. 简述有一个网页地址, 比如PHP开发资源网主页: h
      推荐等级: ★★★★  难度: 初级
    • 5. 请简述 Go 语言中空接口 (empty inter
      推荐等级: ★★  难度: 初级
    • 6. 请简述 FastAPI 和 Starlette 的关
      推荐等级: ★★  难度: 初级
    • 7. 有如下代码:请写出程序的输出结果 ?
      推荐等级: ★★★★  难度: 中级
    • 8. 简述如何排查InfluxDB的性能问题 ?
      推荐等级: ★★★★★  难度: 中级
    • 9. 在ndarray类型的数组中,以下哪项不是用于切割数
      推荐等级: ★★★★  难度: 初级
    • 10. 请简述 Django 模板中如何使用标签?
      推荐等级: ★★  难度: 初级
    IT 软件大厂热门真题( 现场卷 )
  • 查看更多
    •    富士康-Java工程师(初中级)招聘面试题整
          企业名称:富士康   [ 图文版 ]
         小米科技2021年度前端面试题
          企业名称:小米科技   [ PDF 资源 ]
         字节跳动校招笔试(第二批)-编程题
          企业名称:字节跳动   [ PDF 资源 ]
         美团203年度Java中级招聘面试题合集
          企业名称:美团网   [ PDF 资源 ]
         2020年-商汤科技-Java高级工程师招聘
          企业名称:商汤科技   [ PDF 资源 ]
         杭州-蚂蚁金服-Java资深级别( 研发面试
          企业名称:阿里巴巴   [ PDF 资源 ]
    
    ICP备案号:沪ICP备17025979号-8 上海勤革软件版权所有 @2021-2025

    关于我们   商务合作   用户协议   隐私协议   微信小程序   APP 下载   在线咨询

    超级码客(含 APP)成立于2021年是一款针对IT程序员,软件工程师,运维,数据库,测试,软件PM等IT技术工作者打造的面试题库平台,IT岗位技术线覆盖Java,PHP,Python,Android,IOS,Linux,分布式,大数据,云计算等20大各主流技术栈,超级码客提供超过51286道优质的面试题库,技术学习文档等为用户提供全面的IT方面面试辅助以及技术指导
    APP 备案号: ICP备案号:沪ICP备17025979号-10A , 版本号:4.6 开发者:上海勤革信息技术有限公司
    超级码客