mfs教程(二)
mfs文件系统(二)
编译和安装
MooseFS部署的首选方法是从源代码安装
源代码包安装支持标准./configure && make && make install的步骤,重要的配置选项有:
--disable-mfsmaster –不创建成管理服务器(用于纯节点的安装)
--disable-mfschunkserver –不创建成数据存储chunkserver服务器
--disable-mfsmount –不创建mfsmount和mfstools(如果用开发包安装,他们会被默认创建的)
--enable-mfsmount –确定安装mfsmount和mfstools(如果
--prefix=DIRECTORY –锁定安装目录(默认是/usr/local)
--sysconfdir=DIRECTORY –选择配置文件目录(默认是${prefix}/etc))
--localstatedir=DIRECTORY –选择变量数据目录(默认是${prefix}/var,MFS元数据被存储在mfs的子目录下,默认是${prefix}/var/mfs )
--with-default-user -运行守护进程的用户,如果配置文件中没有设定用户,默认为nobody用户
--with-default-group=GROUP 运行守护进程的用户组,如果配置文件中没有设定用户组,默认为nogroup用户组
例如用FHS(文件系统层次标准)的兼容路径在Linux上的安装:
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib
编译安装遵守标准的DESTDIR= variable,允许安装包在临时目录(例如以创造二进制包)。已经存在的配置或这是元数据文件将会被覆盖掉。
一、管理服务器(master)
作为管理服务器(master)是MooseFS部署中重要的一个元素,在硬件方面,应该被安装在一台能够保证高可靠性和能胜任的整个系统存取的要求的机
器上。一个明智的做法是用一个配有冗余电源、ECC内存、磁盘阵列,如RAID1/RAID5/RAID10。在操作系统方面,管理服务器的操作系统应该
是具有POSIX兼容的系统(到目前支持Linux, FreeBSD, Mac OS X and OpenSolaris)。
安装管理服务器(master server)的过程:
1、安装mfs-master
2、如果是从源码安装的话,在configure时不要加--disable-mfsmaster选项。
3、创建运行master的用户(如果这样的用户不存在的话)
4、确定存放元数据文件的目录存在,而且能够被运行master的用户可写(通过configure的选项来设置运行master server的用户和元数据存储的路径,make install命令的执行要用root用户)
5、配置master server服务器是通过配置文件mfsmaster.cfg来做的,要特别注意的是TCP端口的使用
6、添加或创建(依赖于操作系统和发布版本)一组启动mfsmaster进程的脚本
安装完管理服务器后,便可以用mfsmaster命令来启动master
server,如果用root用户执行mfsmaster命令,则在启动后转为mfsmaster.cfg中指定的用户来运行,否则将以执行
mfsmaster命令的用户来运行master server。
二、元数据日志服务器
元数据日志守护进程是在安装master
server时一同安装的,最小的要求并不比master本身大,可以被运行在任何机器上(例如任一台chunkserver),但是最好是放置在
MooseFS
master的备份机上,备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs。因为主要的master
server一旦失效,可能就会将这台metalogger机器取代而作为master server。
安装管理进程:
1、从源代码安装mfs-master,在执行configure时不要带有--disable-mfsmaste选项
2、创建有运行mfsmetalogger服务权限运行的用户(如果这样的用户不存在的话)
3、确定存放元数据文件的目录存在,而且能够被运行mfsmetalogger服务的用户可写(通过configure的选项来设置运行mfsmetalogger服务的用户和元数据存储的路径,make install命令的执行要用root用户)
4、通过mfsmetalogger.cfg配置mfsmetalogger服务,要特别注意的是TCP端口,这里要使用MASTER_PORT要必须和mfsmaster.cfg文件中的MATOML_LISTEN_PORT一致。
5、添加或创建(依赖于操作系统和发布版本)一组启动mfsmetalogger进程的脚本
安装完管理服务器后,便可以用mfsmetalogger命令来启动mfsmetalogger
server,如果用root用户执行mfsmetalogger命令,则在启动后转为mfsmetalogger.cfg中指定的用户来运行,否则将以
执行mfsmetalogger命令的用户来运行mfsmetalogger server。
三、数据服务器
安装完管理服务器后,将安装数据服务器(chunkservers),这些机器的磁盘上要有适当的剩余空间,而且操作系统要遵循POSIX标准(验证了的
有这些:Linux, FreeBSD, Mac OS X and
OpenSolaris)。Chunkserver在一个普通的文件系统上储存数据块/碎片(chunks/fragments)作为文件。
Linux:
creating:
dd if=/dev/zero of=file bs=100m seek=400 count=0
mkfs -t ext3 file
mounting:
mount -o loop file mount-point
FreeBSD:
creating and mounting:
dd if=/dev/zero of=file bs=100m count=400
mdconfig -a -t vnode -f file -u X
newfs -m0 -O2 /dev/mdX
mount /dev/mdX mount-point
mounting a previously created file system:
mdconfig -a -t vnode -f file -u X
mount /dev/mdX mount-point
Mac OS X:
Start "Disk Utility" from "/Applications/Utilities"
Select from menu "Images->New->Blank Image ..."
注: 每一个chunkserver的磁盘都要为增长中的chunks保留些磁盘空间,从而达到创建新的chunk。只有磁盘都超过256M并且chunkservers报告自由空间超过1GB总量才可以被新的数据访问。最小的配置,应该从几个G字节的存储。
安装数据服务器 (chunkserver):
1、 把预先隔离的磁盘空间作为一个单独的文件系统,挂接在一个本地的目录下(如:/mnt/hd1, /mnt/hd2等等);
2、安装mfs-chunkserver
在执行configure时要不带--disable-mfschunkserver选项,
3、创建有运行chunkserver服务权限运行的用户(如果这样的用户不存在的话)
4、并给予这个户对整个MooseFS文件系统写的权限
5、利用mfschunkserver.cfg文件配置mfschunkserver服务,特别要注意的是TCP端口(MASTER_PORT变量要和mfsmaster.cfg中MATOCS_LISTEN_PORT的值一样)。
6、在mfshdd.conf文件中列出要用于MooseFS的挂载点
7、添加或创建(依赖于操作系统和发布版本)一组启动mfschunkserver进程的脚本
注:
Mfschunkserver的本地ip很重要,Mfschunkserver用此ip和mfsmaster进行连接,mfsmaster通过此ip和
MFS客户端连接(mfsmount),而且其它chunkservers之间的通讯也是通过这个ip,因此这个ip必须是远程可访问的。因此
mfsmaster的本地ip地址(MASTER_HOST)设置必须和chunkserver一样,以便于正确的连接,通常的做法是
mfsmaster,chunkservers和MFS客户端在同一网段。一般的回环地址(localhost,
127.0.0.1)不能用于MASTER_HOST,它将使chunkserver无法被其她主机访问(这样的配置只会是单机器的机器
mfsmaster,mfschunkserver和mfsmount运行)。
安装完mfschunkserver后,便可以用mfschunkserver命令来启动mfschunkserver服务器,如果用root用户执行
mfschunkserver命令,则在启动后转为mfschunkserver.cfg中指定的用户来运行,否则将以执行mfschunkserver
命令的用户来运行mfschunkserver服务。
四、客户端(mfsmount)
mfsmount需要FUSE才可以正常工作,FUSE支持多种操作系统:Linux, FreeBSD, OpenSolaris and MacOS X。
Linux一个内核模块的API版本至少必需是7.8的,这个可以用dmesg命令来检测,当载入内核模块后,应该能看到有一行fuse init
(API version 7.8)。一些可用的fuse版本是2.6.0以上,Linux kernel
2.6.20(Linux内核从2.6.20后加入了fuse)以上。由于一些小bug,因此比较新模块被荐使用,如fuse 2.7.2 及
Linux 2.6.24(尽管fuse 2.7.x单独没有包含getattr/write race condition
fix)。在FreeBSD系统上fusefs-kmod版本要0.3.9以上的才可以,在MacOS X Mac上 FUSE要10.5版本。
安装MooseFS客户端:
1、安装mfs-client,从源代码安装,在进行configure时不要加--disable-mfsmount选项就可以了
2、建立被MooseFS挂接的目录,例如/mnt/mfs。
3、MooseFS用一下的命令挂接:
mfsmount [-h master] [-p port] [-l path] [-w mount-point]
-H MASTER:是管理服务器(master server)的ip地址
-P PORT: 是管理服务器(master server)的端口号,要按照mfsmaster.cfg 配置文件中的变量MATOCU_LISTEN_POR的之填写。如果master serve使用的是默认端口号则不用指出。
-S PATH:指出被挂接mfs目录的子目录,默认是/目录,就是挂载整个mfs目录。
Mountpoint:是指先前创建的用来挂接mfs的目录。
mfs教程(二)的更多相关文章
- CRL快速开发框架系列教程二(基于Lambda表达式查询)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置
前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...
- C#微信公众号开发系列教程二(新手接入指南)
http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可 ...
- 无废话ExtJs 入门教程二十一[继承:Extend]
无废话ExtJs 入门教程二十一[继承:Extend] extjs技术交流,欢迎加群(201926085) 在开发中,我们在使用视图组件时,经常要设置宽度,高度,标题等属性.而这些属性可以通过“继承” ...
- 无废话ExtJs 入门教程二十[数据交互:AJAX]
无废话ExtJs 入门教程二十[数据交互:AJAX] extjs技术交流,欢迎加群(521711109) 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C ...
- 无废话ExtJs 入门教程二[Hello World]
无废话ExtJs 入门教程二[Hello World] extjs技术交流,欢迎加群(201926085) 我们在学校里学习任何一门语言都是从"Hello World"开始,这里我 ...
- Android Studio系列教程二--基本设置与运行
Android Studio系列教程二--基本设置与运行 2014 年 11 月 28 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处! 上面一篇博客,介绍了Studio的 ...
- Laravel教程 二:路由,视图,控制器工作流程
Laravel教程 二:路由,视图,控制器工作流程 此文章为原创文章,未经同意,禁止转载. View Controller 上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就 ...
- Android高手进阶教程(二十八)之---Android ViewPager控件的使用(基于ViewPager的横向相册)!!!
分类: Android高手进阶 Android基础教程 2012-09-14 18:10 29759人阅读 评论(35) 收藏 举报 android相册layoutobjectclassloade ...
随机推荐
- boost 部分编译
完整编译boost库需要很长时间,而且我们不一定会用到所有的库. 那么如何只编译只需要的库呢? 解压boost源码,进入解压后的目录 ./bootstrap.sh生成bjam ./bjam --bui ...
- Hibernate之mappedBy【必读】
[http://www.cnblogs.com/redcoatjk/p/4236445.html] 一.mappedBy 单向关系不需要设置该属性,双向关系必须设置,避免双方都建立外键字段 数据库中1 ...
- mysql锁之Next-Key Locks
一个Next-key锁结合了行锁和gap锁. InnoDB执行一个行级别锁在这样的一个途径,那就是它搜索或者扫描一个表索引时,它设置共享或者独占锁在它遭遇的索引记录上.于是,行级锁是真实的行记录锁.一 ...
- postman安装Postman Interceptor 插件
做后端开发避免不了进行接口调试,但是一般的项目都是前后端分离的,如果把前端代码下到本地,较为费事,这个时候就需要一个可以进行接口调试的工具.Postman就是一个不错的选择. Postman是什么? ...
- 记录几个基础的SQL开发题
1. 表A有5行数据,表B有7行数据,问Inner Join最多返回几行数据,Left Join最多返回几行数据,分别在什么情况下? Inner Join 是返回关联表的Cartesian produ ...
- 洛谷P1979 华容道
神の契约 题目大意:自己看去... 题解:做了一下午...本蒟蒻立志要写全网最详细的题解.╭(╯^╰)╮ begin.... 暴力70分.可以让空格子到处乱走,只要某个状态的指定格子到目标格子,那么此 ...
- 利用 Excel 写 C51 的宏定义
利用 Excel 写 C51 的宏定义 填好占空比,自动生成宏. #define LIGHT_LEVEL_00 0xFF #define LIGHT_LEVEL_10 0xE5 #define LIG ...
- 【android】Socket简单用法
Socket通常也称做”套接字“,用于描述IP地址和端口,废话不多说,它就是网络通信过程中端点的抽象表示.值得一提的是,Java在包java.net中提供了两个类Socket和ServerSocket ...
- php 权限 管理
权限的思考: https://www.jianshu.com/p/cf9077a7d38a 权限例子,用户 角色 功能 用户角色关联表 角色功能关联表 http://www.cnblogs.com/n ...
- 使用阿里云服务器(OOS)实现图片上传
一: 页面 <%@ page language="java" contentType="text/html; charset=utf-8" pageEnc ...