设为首页 收藏本站
查看: 1391|回复: 0

[经验分享] MFS分布式文件系统安装向导

[复制链接]

尚未签到

发表于 2019-2-1 10:00:52 | 显示全部楼层 |阅读模式
  概述Overview
  下面我们以step-by-step 的方式,介绍在linux 平台安装MooseFS 文件系统的基本过程。我们
  假定您将以mfs 用户和mfs 组来运行MooseFS。同时,我们推荐使用FHS(文件系统层次结构标
  准Filesystem Hierarchy Standard)兼容路径,并且把归档文件mfs-1.6.15.tar.gz 放置在
  /usr/src 目录里。本文旨在向读者介绍怎样在多个专用服务器安装MooseFS 分布式文件系
  统以及在单个服务器安装Moosefs 文件系统用于测试这样的场景。
  最新的MooseFS 稳定发行版本可以从http://sourceforge.net/projects/moosefs/ 取得,在安装
  MooseFS 系统客户端时,应当确保系统已经安装了正确的fuse 版本,如果没有fuse 被安装,
  您可以从http://sourceforge.net/projects/fuse/下载并安装它。
  在专用服务器安装MooseFS 基本步骤
  我们假定使用的主机ip 地址分配如下:
   主控服务器Master server: 192.168.1.1
   主控备份服务器Metalogger server: 192.168.1.2
   存储块服务器Chunk servers: 192.168.1.101 and 192.168.1.102
   客户端主机 (clients): 192.168.2.x
  主控服务器Master server 安装
  当我们安装主控服务器时,在配置过程中(./configure),可以取消安装chunk server
  (--disable-mfschunkserver)以及MooseFS 客户端(--disable-mfsmount). 安装
  主控服务器master 的具体步骤为:
  1、添加mfs 组
  #groupadd mfs
  2、新增系统用户mfs
  #useradd -g mfs mfs
  3、切换目录
  #cd /usr/src
  4、解包归档文件
  #tar -zxvf mfs-1.6.15.tar.gz
  5、进入安装目录
  #cd mfs-1.6.15
  6、配置
  #./configure --prefix=/usr --sysconfdir=/etc \
  --localstatedir=/var/lib --with-default-user=mfs \
  --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
  7、编译并安装
  #make
  #make install
  成功安装master 以后,系统会在/etc 目录自动生成样例配置文件,这些样例文件是以.dist
  后缀命名。这里我们将借用这些样例文件作为MooseFS 主控服务器的目标配置文件:
  4
  1、切换目录
  #cd /etc
  2、复制样例文件,以得到master 所需的配置文件
  #cp mfsmaster.cfg.dist mfsmaster.cfg
  #cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
  #cp mfsexports.cfg.dist mfsexports.cfg
  如果我们打算更改这些配置文件中的某些项目的值,则需要打开特定配置文件相关文本行前的
  注释,然后修改跟随其后的值。因为被注释掉的行,即是MooseFS 内置的缺省值。
  Mfsmaster.cfg 配置文件包含主控服务器master 相关的设置,在这里我们暂时不打算对其
  进行修改。如果你想知道关于该配置文件更多的信息,请查看它的手册页(使用命令man
  mfsmaster.cfg)。
  配置文件mfsexports.cfg 指定那些客户端主机可以远程挂接MooseFS 文件系统,以及授予
  挂接客户端什么样的访问权限。例如,我们指定只有192.168.2.x 网段的主机可以以读写模式
  访问MooseFS 的整个共享结构资源(/)。在配置文件mfsexports.cfg 文件的第一行,先
  取消注释,然后把星号(*)改成192.168.2.0/24,以便我们可以得到下面的文本行:
  192.168.2.0/24 / rw,alldirs,maproot=0
  二进制文件metadata 和文本文件changelog 将被保存在目录/var/lib/mfs,这是因为我们安
  装过程的configure 步骤使用了选项 --localstatedir=/var/lib 。首次安装master 时,会自
  动生成一个名为metadata.mfs.empty 的元数据文件metadata,该文件是空的。MooseFS
  master 运必须有文件metadata.mfs,这个文件是从metadata.mfs.empty 改名而来:
  1、切换目录
  #cd /var/lib/mfs
  2、重命名文件
  #cp metadata.mfs.empty metadata.mfs
  [译者注]MooseFS master 运行以后,metadata.mfs 文件大小将发生变化,肯定不会是
  空文件了。
  修改/etc/hosts 文件,以绑定主机名mfsmaster 与ip 地址192.168.1.1:
  192.168.1.1 mfsmaster
  这个时候,我们可以试着运行master 服务(服务将以安装配置configure 指定的用户运行,这
  我们的案例里,它是mfs):
  #/usr/sbin/mfsmaster start
  在一个生产环境里,我们应当设置自动启动脚本,以便操作系统重新启动时,MooseFS master
  也能自动运行。
  为了监控MooseFS 当前运行状态,我们可以运行CGI 监控服务,这样就可以用浏览器查看整个
  MooseFS 的运行情况:
  #/usr/sbin/mfscgiserv
  现在,我们在浏览器地址栏输入http://192.168.1.1:9425 即可查看master 的运行情况(这个时
  候,是不能看见chunk server 的数据)。
  5
  备份服务器Backup server (metalogger) 安装
  用来安装metalogger 的主机,在性能上应该比master 强大(至少有更多的内存)。一旦主控
  服务器master 失效,只要导入changelogs 到元数据文件,备份服务器metalogger 将能接替发生
  故障的master,行使管理服务器的职能(更多细节请参看http://www.moosefs.org/minihowtos.
  html#redundant-master)。
  备份服务器Metalogger 安装跟主控服务器master 安装非常类似。其安装命令如下:
  1、 创建组mfs
  #groupadd mfs
  2、创建用户mfs
  #useradd -g mfs mfs
  3、切换目录
  #cd /usr/src
  4、解包归档文件
  #tar -zxvf mfs-1.6.15.tar.gz
  5、切换目录
  #cd mfs-1.6.15
  6、配置
  #./configure --prefix=/usr --sysconfdir=/etc \
  --localstatedir=/var/lib --with-default-user=mfs \
  --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
  7、编译及安装
  #make
  #make install
  8、产生配置文件
  #cd /etc
  #cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
  类似地,修改/etc/hosts 文件,增加下面的行:
  192.168.1.1 mfsmaster
  现在,我们来试着运行备份服务mfsmetaloger:
  #/usr/sbin/mfsmetalogger start
  在一个生产环境里,我们应当设置自动启动脚本,以便操作系统重新启动时,MooseFS
  mfsmetalogger 服务也能自动运行。
  存储块服务器Chunk servers 安装
  在每个chunk server 主机上执行下面的命令:
  #groupadd mfs
  #useradd -g mfs mfs
  #cd /usr/src
  #tar -zxvf mfs-1.6.15.tar.gz
  #cd mfs-1.6.15
  6
  #./configure --prefix=/usr --sysconfdir=/etc \
  --localstatedir=/var/lib --with-default-user=mfs \
  --with-default-group=mfs --disable-mfsmaster
  #make
  #make install
  准备chunk server 服务所需的配置文件:
  #cd /etc/
  #cp mfschunkserver.cfg.dist mfschunkserver.cfg
  #cp mfshdd.cfg.dist mfshdd.cfg
  为了测试这个安装,我们保留mfschunkserver.cfg 文件不做任何改动;如果读者想了解
  配置文件mfschunkserver.cfg 更详细的信息,请查看手册页 (man
  mfschunkserver.cfg)。
  在配置文件mfshdd.cfg 中,我们给出了用于客户端挂接MooseFS 分布式文件系统根分区所
  使用的共享空间位置。建议在chunk server 上划分单独的空间给 MooseFS 使用,这样做的好处
  是便于管理剩余空间。此处我们假定要使用两个共享点/mnt/mfschunks1 和
  /mnt/mfschunks2,为此,我们在mfshdd.cfg 加入下面的文本行:
  /mnt/mfschunks1
  /mnt/mfschunks2
  在启动chunk server 前,需确保用户mfs 有权限读写将要被挂接的分区(因为chunk server 运
  行时要在此创建一个.lock 的文件):
  #chown -R mfs:mfs /mnt/mfschunks1
  #chown -R mfs:mfs /mnt/mfschunks2
  类似地,修改/etc/hosts 文件,增加下面的行:
  192.168.1.1 mfsmaster
  开始启动chunk server:
  #/usr/sbin/mfschunkserver start
  现在再通过浏览器访问 http://192.168.1.1:9425/ 应该可以看见这个MooseFS 系统的全部信息,
  包括主控master 和存储服务chunkserver 。
  客户端Users’ computers 安装
  为了挂接基于MooseFS 分布式文件,客户端主机必须安装FUSE 软件包( fuse 版本号至少
  2.6,推荐使用版本号大于2.7.2 的fuse)。如果系统没有安装fuse,你必须手动对其进行安装。
  一种常见的安装方式是从源码进行编译安装-我们可以从http://sourceforge.net/projects/fuse/取
  得安装源码:
  #cd /usr/src
  #tar -zxvf fuse-2.8.3.tar.gz
  #cd fuse-2.8.3
  #./configure
  #make
  #make install
  安装客户端软件 mfsmount 的步骤:
  #cd /usr/src
  7
  #tar -zxvf mfs-1.6.15.tar.gz
  #cd mfs-1.6.15
  #./configure --prefix=/usr --sysconfdir=/etc \
  --localstatedir=/var/lib --with-default-user=mfs \
  --with-default-group=mfs --disable-mfsmaster \
  --disable-mfschunkserver
  #make
  #make install
  修改文件/etc/hosts ,增加如下的文本行:
  192.168.1.1 mfsmaster
  假定客户端的挂接点是/mnt/mfs,我们将以下面的指令来使用MooseFS 分布式共享文件系统:
  1、 创建挂接点
  #mkdir -p /mnt/mfs
  2、开始挂接操作
  #/usr/bin/mfsmount /mnt/mfs -H mfsmaster
  执行命令df –h | grep mfs 检查分区情况,可能的输出如下:
  /storage/mfschunks/mfschunks1
  2.0G 69M 1.9G 4% /mnt/mfschunks1
  /storage/mfschunks/mfschunks2
  2.0G 69M 1.9G 4% /mnt/mfschunks2
  mfs#mfsmaster:9421 3.2G 0 3.2G 0% /mnt/mfs
  安装 MooseFS 在同一个主机
  如果为测试目的,可以把MooseFS 安装在同一个物理主机上。在这里,我们不推荐您把备份服
  务也安装在这个主机上。同样,我们假定主机的ip 地址为192.168.1.1。
  为了挂接基于MooseFS 分布式文件,客户端主机必须安装FUSE 软件包( fuse 版本号至少
  2.6,推荐使用版本号大于2.7.2 的fuse)。如果系统没有安装fuse,你必须手动对其进行安装。
  一种常见的安装方式是从源码进行编译安装-我们可以从http://sourceforge.net/projects/fuse/取
  得安装源码:
  #cd /usr/src
  #tar -zxvf fuse-2.8.3.tar.gz
  #cd fuse-2.8.3
  #./configure
  #make
  #make install
  安装 MooseFS:
  #groupadd mfs
  #useradd -g mfs mfs
  #cd /usr/src
  #tar -zxvf mfs-1.6.15.tar.gz
  #cd mfs-1.6.15
  #./configure --prefix=/usr --sysconfdir=/etc \
  --localstatedir=/var/lib --with-default-user=mfs \
  --with-default-group=mfs
  8
  #make
  #make install
  MooseFS chunk 以独占方式使用专门磁盘分区是非常必要的--这样做的好处是便于管理剩余空
  间。MooseFS 并不考虑其剩余空间能被另作他用。如果没有单独创建文件系统的条件,可以在
  文件中创建一个文件系统。为了完成测试,我们准备两个2GB 的文件(文件位于目录
  /storage/mfschunks),并在其上创建文件系统。把他们格式化为ext3,分别挂接在
  /mnt/mfschunks1 和/mnt/mfschunks2。以下是具体操作步骤:
  一、挂接第一个文件系统
  1、创建目录
  #mkdir -p /storage/mfschunks
  2、创建镜像文件mfschunks1
  #dd if=/dev/zero of=/storage/mfschunks/mfschunks1 bs=1024 count=1\
  seek=$((2*1024*1024-1))
  3、创建文件系统
  #mkfs -t ext3 /storage/mfschunks/mfschunks1
  4、创建挂接点
  #mkdir -p /mnt/mfschunks1
  5、挂接文件系统
  #mount -t ext3 -o loop /storage/mfschunks/mfschunks1\
  /mnt/mfschunks1
  二、挂接第二个文件系统
  1、创建第二个镜像文件
  #dd if=/dev/zero of=/storage/mfschunks/mfschunks2 bs=1024 count=1\
  seek=$((2*1024*1024-1))
  2、创建文件系统
  #mkfs -t ext3 /storage/mfschunks/mfschunks2
  3、创建挂接点
  #mkdir -p /mnt/mfschunks2
  4、挂接文件系统
  #mount -t ext3 -o loop /storage/mfschunks/mfschunks2 \
  /mnt/mfschunks2
  在启动chunk server 前,需确保用户mfs 有权限读写将要被挂接的分区(因为chunk server 运
  行时要在此创建一个.lock 的文件):
  #chown -R mfs:mfs /mnt/mfschunks1
  #chown -R mfs:mfs /mnt/mfschunks2
  /etc 目录自动生成样例配置文件,这些样例文件是以.dist 后缀命名。这里我们将借用这些
  样例文件作为MooseFS 的目标配置文件:
  #cd /etc
  #cp mfsexports.cfg.dist mfsexports.cfg
  #cp mfsmaster.cfg.dist mfsmaster.cfg
  #cp mfschunkserver.cfg.dist mfschunkserver.cfg
  #cp mfshdd.cfg.dist mfshdd.cfg
  mfsexports.cfg 与 mfsmaster.cfg 为主控服务 master 配置文件,
  mfschunkserver.cfg 与 mfshdd.cfg 为chunk server 配置文件.
  9
  配置文件mfsexports.cfg 指定那些客户端主机可以远程挂接MooseFS 文件系统,以及授予
  挂接客户端什么样的访问权限。例如,我们指定只有192.168.2.x 网段的主机可以以读写模式
  访问MooseFS 的整个共享结构资源(/)。在配置文件mfsexports.cfg 文件的第一行,先
  取消注释,然后把星号(*)改成192.168.1.0/24,以便我们可以得到下面的文本行:
  192.168.1.0/24 / rw,alldirs,maproot=0
  修改配置文件mfshdd.cfg ,使其内容为:
  /mnt/mfschunks1
  /mnt/mfschunks2
  作为测试的例子,我们不打算修改 mfsmaster.cfg 和 mfschunkserver.cfg 配置文件的
  其他选项。
  二进制文件metadata 和文本文件changelog 将被保存在目录/var/lib/mfs,这是因为我们安
  装过程的configure 步骤使用了选项 --localstatedir=/var/lib 。首次安装master 时,会自
  动生成一个名为metadata.mfs.empty 的元数据文件metadata,该文件是空的。MooseFS
  master 运必须有文件metadata.mfs,这个文件是从metadata.mfs.empty 改名而来:
  #cd /var/lib/mfs
  #cp metadata.mfs.empty metadata.mfs
  修改文件/etc/hosts,新增如下的文本行:
  192.168.1.1 mfsmaster
  运行 master server, CGI 监控以及 chunk server:
  #/usr/sbin/mfsmaster start
  #/usr/sbin/mfscgiserv
  #/usr/sbin/mfschunkserver start
  MooseFS 当前运行状态可以在浏览器中地址栏输入http://192.168.1.1:9425/ 获得。
  挂接MooseFS 文件系统到挂接点 /mnt/mfs :
  1、建立挂接点
  #mkdir -p /mnt/mfs
  2、挂接操作
  #/usr/bin/mfsmount /mnt/mfs -H mfsmaster
  3、查看挂接情况
  # df -h | grep mfs:
  /storage/mfschunks/mfschunks1
  2.0G 69M 1.9G 4% /mnt/mfschunks1
  /storage/mfschunks/mfschunks2
  2.0G 69M 1.9G 4% /mnt/mfschunks2
  mfs#mfsmaster:9421 3.2G 0 3.2G 0% /mnt/mfs
  10
  MooseFS 基础用法
  在MooseFS 挂接点下创建目录folder1, 在该目录,我们将以一个副本的方式存放文件 (设置
  goal=1):
  #mkdir -p /mnt/mfs/folder1
  再在挂接点创建第2 个目录 folder2, 在该目录,我们将以两个个副本的方式存放文件(设置
  goal=2):
  #mkdir -p /mnt/mfs/folder2
  使用命令mfssetgoal –r 设定目录里文件的副本数:
  1、副本数为1
  #mfssetgoal -r 1 /mnt/mfs/folder1
  /mnt/mfs/folder1:
  inodes with goal changed: 0
  inodes with goal not changed: 1
  inodes with permission denied: 0
  2、副本数为2
  #mfssetgoal -r 2 /mnt/mfs/folder2
  /mnt/mfs/folder2:
  inodes with goal changed: 0
  inodes with goal not changed: 1
  inodes with permission denied: 0
  拷贝同一个文件到两个目录:
  cp /usr/src/mfs-1.6.15.tar.gz /mnt/mfs/folder1
  cp /usr/src/mfs-1.6.15.tar.gz /mnt/mfs/folder2
  命令mfschunkfile 用来检查给定的文件以多少副本数来存储。对应目录folder1 来说,
  有一个副本存储在一个chunk 里:
  #mfscheckfile /mnt/mfs/folder1/mfs-1.6.15.tar.gz
  /mnt/mfs/folder1/mfs-1.6.15.tar.gz:
  1 copies: 1 chunks
  而在目录folder2 中,文件 mfs-1.6.15.tar.gz 是以两个副本保存的:
  #mfscheckfile /mnt/mfs/folder2/mfs-1.6.15.tar.gz
  /mnt/mfs/folder2/mfs-1.6.15.tar.gz:
  2 copies: 1 chunks
  附加信息。当所有的组件被安装到同一个物理主机的时候,即便设定了goal=2 来到达保存两个
  副本的目的,但你可能看到的只是一个副本而已—这是合理的,尽管有两个磁盘,但它只是一
  个chunk server 啊!
  更多关于MooseFS 命令的使用方法,可以在这里找到:
  http://www.moosefs.org/reference-guide.html#using-moosefs
  我们推荐你阅读 FAQ 页面内容:
  http://www.moosefs.org/moosefs-faq.html
  11
  停止 MooseFS
  为了安全停止MooseFS 集群,建议执行如下的步骤:
   在所有客户端用Unmount 命令先卸载文件系统(本例将是: umount /mnt/mfs)
   停止chunk server 进程: /usr/sbin/mfschunkserver stop
   停止 metalogger 进程: /usr/sbin/mfsmetalogger stop
   停止主控 master server 进程: /usr/sbin/mfsmaster stop


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670321-1-1.html 上篇帖子: moosefs升级到1.6.27版本 下篇帖子: MFS分布式文件系统架设笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表