文档章节

分布式存储moosefs的安装及测试

上海李浩
 上海李浩
发布于 2014/05/22 19:58
字数 3829
阅读 260
收藏 2

由于官网moosefs.org中有一个中文的手册,我是直接照猫画虎,所以不再过多的晾自己的内容

MooseFS 分布式文件系统安装向导 Michał Borychowski MooseFS Support Manager contact@moosefs.org March 2010 Gemius SA 翻译Translated by:田逸 (sery@163.com) 北京Beijing May 2010 2 MooseFS 安装向导 翻译:田逸 (sery@163.com) 概述Overview......................................................................................................................................... 3 在专用服务器安装MooseFS 基本步骤 ................................................................................................ 3 主控服务器Master server 安装 ........................................................................................................ 3 备份服务器Backup server (metalogger) 安装 .................................................................................. 5 存储块服务器Chunk servers 安装 .................................................................................................... 5 客户端Users’ computers 安装 ........................................................................................................... 6 安装 MooseFS 在同一个主机 ................................................................................................................ 7 MooseFS 基础用法 ............................................................................................................................... 10 停止 MooseFS ....................................................................................................................................... 11 3 概述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、切换目录(注,在我下载的1.6.27-5版本中,是/etc/mfs/下有以下所提到的文件) #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
10241024-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
10241024-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 北京Beijing 2010/5/5 因为在我的环境中有不少windows的机器,故而我用mfs4win也访问moosefs,当然如果不是在同一个工作组的话,在windows下挂盘前,最好填mfsmaster的ip地址。

© 著作权归作者所有

上海李浩

上海李浩

粉丝 5
博文 16
码字总数 12703
作品 1
上海
后端工程师
私信 提问
Linux搭建MFS分布式文件系统

说明: 架构规划 元数据服务器 mfs-master-1 172.16.100.2 备份服务器 mfs-metalogger 172.16.100.4 数据存储服务器 mfs-chunkserver-1 172.16.100.5 数据存储服务器 mfs-chunkserver-2 172....

流年契约
2018/06/28
0
0
分布式网络文件系统--MooseFS

一.介绍 1.简介 MooseFS是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本。对于访问的客户端或者用户来说,整...

yaohong
2017/11/21
0
0
分布式文件系统 MooseFS 1.6.27-5 发布

MooseFS 1.6.27-5 发布,此版本最重要的更新就是限制l chunkserver 的连接断开;修复了网络连接超时的问题;在 metarestore 添加了一个进度百分比;改进了写新 chunks 时选择服务器的算法。 ...

oschina
2014/02/12
1K
1
mooseFS 2.0 发布,网络分布式文件系统

2014年7月1日,分布式文件系统 moosefs 2.0 发布,分为社区版和专业版。 此版本支持在多个规则中运行多个 master 服务器。其中一个规则是 ”leader”,是给 chunkservers 和客户端使用。每个...

purple_grape
2014/09/23
1K
2
MooseFS(MFS)安装手记(一)

MooseFS是一种分布式文件系统,MooseFS文件系统结构包括以下四种角色: 1 管理服务器managing server (master) 负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝...

China_OS
2012/02/13
3.1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Replugin借助“UI进程”来快速释放Dex

public static boolean preload(PluginInfo pi) { if (pi == null) { return false; } // 借助“UI进程”来快速释放Dex(见PluginFastInstallProviderProxy的说明) return PluginFastInsta......

Gemini-Lin
48分钟前
4
0
Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
今天
4
0
CSS--属性

一、溢出 当内容多,元素区域小的时候,就会产生溢出效果,默认是纵向溢出 横向溢出:在内容和容器之间再套一层容器,并且内部容器要比外部容器宽 属性:overflow/overflow-x/overflow-y 取值...

wytao1995
今天
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
7
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部