Linux平台上MFS(MooseFS)的部署v0.5
- 格式:doc
- 大小:176.50 KB
- 文档页数:9
Linux(Centos6.5) FastDFS分布式文件系统安装文档版本控制目录1. 概述 (3)1.1. 文档目的 (3)2. 步骤 (3)2.1.安装介质 (3)2.2.远程连接到虚拟机 (4)2.3.上传FastDFS相关安装包到虚拟机 (4)2.4.搭建步骤 (5)1.概述1.1.文档目的本文档目的:1)能够在Linux系统下熟练搭建FastDFS分布式文件系统;2.步骤2.1.安装介质虚拟机:VMware_Workstation操作系统:Centos6.52.2.远程连接到虚拟机连接的工具很多,这里我们采用Notepad++插件,方便好用,打开Notepad++在插件里找到NppFTP工具,点击打开,所下图所示2.3.上传FastDFS相关安装包到虚拟机远程连接成功后,鼠标右键点击选择Upload other file here选项,将FastDFS 相关安装包上传到虚拟机,如下图所示2.4.搭建步骤第一步:把fastDFS都上传到linux系统。
第二步:安装FastDFS之前,先安装libevent工具包。
yum -y install libevent第三步:安装libfastcommonV1.0.7工具包。
1、解压缩2、进入解压后目录,执行./make.sh3、./make.sh install4、把/usr/lib64/libfastcommon.so文件向/usr/lib/下复制一份(针对32位系统)第四步:安装Tracker服务。
1、解压缩2、./make.sh3、./make.sh install安装后在/usr/bin/目录下有以fdfs开头的文件都是编译出来的。
配置文件都放到/etc/fdfs文件夹4、把/root/FastDFS/conf目录下的所有的配置文件都复制到/etc/fdfs下。
5、配置tracker服务。
修改/etc/fdfs/tracker.conf文件。
MooseFS各个配置文件的参数1.元数据服务(master server)位置:PREFIX/ etcmfsmaster.cfg是主配置文件,mfsexports.cfg是被挂接目录及权限设置。
1.1 mfsmaster.cfg的配置:凡是用#注释掉的变量均使用其默认值,这里来解释一下这些变量:#WORKING_USER和WORKING_GROUP:是运行master server的用户和组;#SYSLOG_IDENT:是master server在syslog中的标识,也就是说明这是由master serve 产生的;#LOCK_MEMORY:是否执行mlockall()以避免mfsmaster 进程溢出(默认为0);#NICE_LEVE:运行的优先级(如果可以默认是-19; 注意: 进程必须是用root启动);#EXPORTS_FILENAME:被挂接目录及其权限控制文件的存放位置#DATA_PA TH:数据存放路径,此目录下大致有三类文件,changelog,sessions和stats;#BACK_LOGS:metadata的改变log文件数目(默认是50);#REPLICATIONS_DELAY_INIT:延迟复制的时间(默认是300s);#REPLICATIONS_DELAY_DISCONNECT:chunkserver断开的复制延迟(默认是3600);# MATOML_LISTEN_HOST:metalogger监听的IP地址(默认是*,代表任何IP);# MATOML_LISTEN_PORT:metalogger监听的端口地址(默认是9419);# MATOCS_LISTEN_HOST:用于chunkserver连接的IP地址(默认是*,代表任何IP);# MATOCS_LISTEN_PORT:用于chunkserver连接的端口地址(默认是9420);# MATOCU_LISTEN_HOST:用于客户端挂接连接的IP地址(默认是*,代表任何IP);# MATOCU_LISTEN_PORT:用于客户端挂接连接的端口地址(默认是9421);# CHUNKS_LOOP_TIME :chunks的回环频率(默认是:300秒);# CHUNKS_DEL_LIMIT :在一个loop设备中可以删除chunks的最大数(默认:100)# REPLICATIONS_DELAY_DISCONNECT chunkserver断开后的复制延时(默认:3600秒)# CHUNKS_WRITE_REP_LIMIT:在一个循环里复制到一个chunkserver的最大chunk 数目(默认是1)# CHUNKS_READ_REP_LIMIT :在一个循环里从一个chunkserver复制的最大chunk 数目(默认是5)# REJECT_OLD_CLIENTS:弹出低于1.6.0的客户端挂接(0或1,默认是0)注意mfsexports访问控制对于那些老客户是没用的以上是对master server的mfsmaster.cfg配置文件的解释,对于这个文件不需要做任何修改就可以工作。
linux安装配置MongoDB5.0概览系统mongoDB安装⽅式ubuntu 20mongoDB 5.0.6apt需记忆的信息data log配置⽂件/var/lib/mongodb/var/log/mongodb/etc/mongod.confsudo systemctl start mongodsudo systemctl stop mongodsudo systemctl restart mongodsudo systemctl status mongod# 开启启动sudo systemctl disable mongodsudo systemctl enable mongod安装flowchart LR安装 --> 创建⽤户 --> 配置⽂件⾥开启authorization --> 重启mongodsudo apt-get install gnupgwget -qO - https:///static/pgp/server-5.0.asc | sudo apt-key add -sudo apt-get install gnupgecho "deb [ arch=amd64,arm64 ] https:///apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list sudo apt-get updatesudo apt-get install -y mongodb-orgecho "mongodb-org hold" | sudo dpkg --set-selectionsecho "mongodb-org-database hold" | sudo dpkg --set-selectionsecho "mongodb-org-server hold" | sudo dpkg --set-selectionsecho "mongodb-org-shell hold" | sudo dpkg --set-selectionsecho "mongodb-org-mongos hold" | sudo dpkg --set-selectionsecho "mongodb-org-tools hold" | sudo dpkg --set-selections说明:1. mongodb 分布式数据库,⽤户验证(本⽂称为client auth)和集群成员间的验证(本⽂称为internal auth) internal auth 使⽤keyfiles kms之类的验证,先不管它 2. ⽤户是和库绑定的,或者说⽤户验证的粒度是库级别,⽽不是整个实例级别 3. 不同的库下⾯可以有相同的⽤户名 4. ⼀般创建⼀个root账户,再创建⼀些普通⽤户做⽇常操作 5. ⼀般来说应⽤使⽤的⽤户只需要readWrite ⾓⾊即可mongosh进⼊后// 创建root账户use admindb.createUser({user: "root",pwd: "root",roles: [ { role: "root", db: "admin" } ]})// 创建⽇常⽤的普通账户use test/* 具体创建信息⾃⾏修改 */db.createUser({user: "xyz",pwd: "xyz123",roles: [ { role: "readWrite", db: "test" },{ role: "read", db: "reporting" } ]})如上,xyz⽤户只能登录test/reporting数据库,权限为分布读写/读接下来,只需开启authorization,就可以登⼊了sudo vim /etc/mongod.conf# 修改后重启sudo systemctl restart mongod#登录 localhost主机下的admin数据库mongosh localhost/admin -u root -pBuilt-In Roles(内置⾓⾊):1. 数据库⽤户⾓⾊:read、readWrite;2. 数据库管理⾓⾊:dbAdmin、dbOwner、userAdmin;3. 集群管理⾓⾊:clusterAdmin、clusterManager、clusterMonitor、hostManager;4. 备份恢复⾓⾊:backup、restore;5. 所有数据库⾓⾊:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase6. 超级⽤户⾓⾊:root// 这⾥还有⼏个⾓⾊间接或直接提供了系统超级⽤户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)7. 内部⾓⾊:__systemuse admin//查看当前库内已有⽤户show users//查看当前库内可⽤的roles,默认只有built-in rolesshow roles//创建⽤户,roles可以使⽤当前库内的⾓⾊,或者其他库内的⾓⾊db.createUser({user: "root",pwd: "root",roles: [ { role: "root", db: "admin" } ]})//如何修改密码db.changeUserPassword('root','rootNew');//已有⽤户新增和解除built-in rolesdb.grantRolesToUser('<username>', [{ role: '<built-in role>', db: 'admin' }])db.revokeRolesFromUser( "<username>", [{ role: '<built-in role>', db: 'admin' }])//删除⽤户命令如下,虽然所有库的⽤户信息全存在admin的ers中,删⽤户时还是要use <库名>才能删除use db_namedb.dropUser("<username>")exit//退出由于⽤户验证是库级别的,切换db时有时需要验证db.auth('root','password')需要修改的地⽅net:bindIp: 0.0.0.0 #或者某个IP#启⽤⽤户验证security:authorization: enabled # ⽹络上的auth: true 不⾏,坑死了写法和⽹上找的⽼版mongoDB有区别,注意是 **YAML 格式 **⽹络上讲的fork=true # 以创建⼦进程的⽅式运⾏,1. 本质上是daemon mode,守护进程,没有控制终端⽽⽆法与前台交互。
Linux平台上MFS(MooseFS)的部署目录1 概述 (3)2 实验环境 (3)3 安装和配置MFS Master (4)3.1 安装master (4)3.2 配置master (4)3.3 启动和停止master服务 (5)4 安装和配置ChunkServer (5)4.1 安装ChunkServer (5)4.2 配置ChunkServer (5)4.3 启动和停止ChunkServer服务 (6)5 安装和配置MFS Client (6)5.1 安装FUSE (6)5.2 安装MFS Client (7)5.3 使用MFS (7)5.4 设置副本数量 (7)5.5 设置空间回收时间 (8)6 破坏性测试 (9)6.1 测试数据存储服务器 (9)6.2 测试元数据服务器 (9)1 概述MFS(MooseFS)是一个Linux/Unix平台上开源的分布式文件系统。
它可以把文件复制成多份(如3份)分别放置在多个数据服务器(ChunkServer)上,实现文件的冗余。
而且可以动态的增加ChunkServer,实现动态存储容量扩展,甚至可以支持PB级的存储容量。
2 实验环境●硬件和软件环境:✓PC:Intel(R) Core(TM)2 Quad CPU Q9550@ 2.83GHz, 8G RAM✓OS: CentOS 5.2 (x86_64), Kernel: 2.6.18-92.el5xen✓MFS: MooseFS v1.5.12表2-1 安装MFS所需软件列表3 安装和配置MFS Master3.1 安装master●创建用户# useradd mfs -s /sbin/nologin●安装master# tar xvzf mfs-1.5.12.tar.gz# cd mfs-1.5.12# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs # make# make install3.2 配置master●创建目录# mkdir -p /var/run/mfs# chown mfs:mfs /var/run/mfs●更改配置文件/usr/local/mfs/etc/mfsmaster.cfg:#WORKING_USER = mfs#WORKING_GROUP = mfs#LOCK_FILE = /var/run/mfs/mfsmaster.pid#DATA_PATH = /usr/local/mfs/var/mfs#SYSLOG_IDENT = mfsmaster#BACK_LOGS = 50#REPLICATIONS_DELAY_INIT = 300#REPLICATIONS_DELAY_DISCONNECT = 3600#MATOCS_LISTEN_HOST = *#MATOCS_LISTEN_PORT = 9420#MATOCU_LISTEN_HOST = *#MATOCU_LISTEN_PORT = 9421#CHUNKS_LOOP_TIME = 300#CHUNKS_DEL_LIMIT = 100#CHUNKS_REP_LIMIT = 153.3 启动和停止master服务●启动master服务# /usr/local/mfs/sbin/mfsmaster start●停止master服务# /usr/local/mfs/sbin/mfsmaster -s●查看master日志/var/log/messages# tail -f /var/log/messages4 安装和配置ChunkServer4.1 安装ChunkServer●创建用户# useradd mfs -s /sbin/nologin●安装ChunkServer# tar xvzf mfs-1.5.12.tar.gz# cd mfs-1.5.12# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs # make# make install4.2 配置ChunkServer●创建目录# mkdir -p /var/run/mfs# chown mfs:mfs /var/run/mfs●创建共享存储的挂载点,建议分配整个磁盘分区# mount /dev/xvdb1 /data# chown mfs:mfs /data●更改配置文件/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 = 30MASTER_HOST = 10.8.2.41MASTER_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●更改配置文件/usr/local/mfs/etc/mfshdd.cfg, 增加文件系统挂载点:/data1/data2注意:配置的挂载点必须让mfs用户有读写权限,如没有,用如下命令赋权限:# chown mfs:mfs /data14.3 启动和停止ChunkServer服务●启动chunkserver服务# /usr/local/mfs/sbin/mfschunkserver start●停止chunkserver服务# /usr/local/mfs/sbin/mfschunkserver -s●查看chunkserver日志/var/log/messages# tail -f /var/log/messages5 安装和配置MFS Client5.1 安装FUSE●增加环境变量并使其生效export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATHexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:.export PATH=$PATH:/usr/local/mfs/bin:.●安装fuse# tar xvzf fuse-2.7.4.tar.gz# cd fuse-2.7.4# ./configure# make# make install5.2 安装MFS Client●创建用户# useradd mfs -s /sbin/nologin●安装MFS Client# tar xvzf mfs-1.5.12.tar.gz# cd mfs-1.5.12# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount# make# make install5.3 使用MFS●如果报错fuse: device not found, 请先fuse mount.# modprobe fuse●挂载MFS文件系统# mkdir /mfsdata# /usr/local/mfs/bin/mfsmount -h 10.8.2.41 -w /mfsdata●使用MFS# dd if=/dev/urandom of=/mfsdata/test.dat bs=1M count=200# md5sum /mfsdata/test.dat522c27c45064c2d0463c168593f5bead /mfsdata/test.dat5.4 设置副本数量●查看目录现在的副本数量:# mfsgetgoal /mfsdata/mfsdata: 1# mfsfileinfo /mfsdata/test.dat/mfsdata/test.dat:chunk 0: 0000000000000013_00000004 / (id:19 ver:4)copy 1: 10.8.2.44:9422chunk 1: 0000000000000014_00000003 / (id:20 ver:3)copy 1: 10.8.2.42:9422chunk 2: 0000000000000015_00000003 / (id:21 ver:3)copy 1: 10.8.2.42:9422chunk 3: 0000000000000016_00000001 / (id:22 ver:1)copy 1: 10.8.2.42:9422●更改目录现在的副本数量:# mfsrsetgoal 3 /mfsdata/mfsdata/:inodes with goal changed: 3 (3)inodes with goal not changed: 0 (0)inodes with permission denied: 0 (0)●查看更改后目录的副本数量:# mfsgetgoal /mfsdata/mfsdata: 3# mfsfileinfo /mfsdata/test.dat/mfsdata/test.dat:chunk 0: 0000000000000013_00000004 / (id:19 ver:4)copy 1: 10.8.2.42:9422copy 2: 10.8.2.43:9422copy 3: 10.8.2.44:9422chunk 1: 0000000000000014_00000003 / (id:20 ver:3)copy 1: 10.8.2.42:9422copy 2: 10.8.2.43:9422copy 3: 10.8.2.44:9422chunk 2: 0000000000000015_00000003 / (id:21 ver:3)copy 1: 10.8.2.42:9422copy 2: 10.8.2.43:9422copy 3: 10.8.2.44:9422chunk 3: 0000000000000016_00000001 / (id:22 ver:1)copy 1: 10.8.2.42:9422copy 2: 10.8.2.43:9422copy 3: 10.8.2.44:94225.5 设置空间回收时间●查看目录当前回收时间:# mfsgettrashtime /mfsdata/mfsdata: 86400●设置目录当前回收时间为600秒:# mfsrsettrashtime 600 /mfsdata/mfsdata:inodes with trashtime changed: 3 (3)inodes with trashtime not changed: 0 (0)inodes with permission denied: 0 (0)●查看更改后空间回收时间:# mfsgettrashtime /mfsdata/mfsdata: 6006 破坏性测试6.1 测试数据存储服务器现在用4个服务器组成了MFS的存储平台,其中一个是master,其余三个服务器是chunkserver.先停止一个chunkserver服务,然后在某个MFS客户端往挂接点的目录(/mfsdata)里复制数据或者创建目录/文件、或者读取文件、或者删除文件,观察操作是否能正常进行。
由于用户数量的不断攀升,我对访问量大的应用实现了可扩展、高可靠的集群部署(即lvs+keepalived的方式),但仍然有用户反馈访问慢的问题。
通过排查个服务器的情况,发现问题的根源在于共享存储服务器NFS。
在我这个网络环境里,N个服务器通过nfs方式共享一个服务器的存储空间,使得 NFS服务器不堪重负。
察看系统日志,全是nfs服务超时之类的报错。
一般情况下,当nfs客户端数目较小的时候,NFS性能不会出现问题;一旦NFS服务器数目过多,并且是那种读写都比较频繁的操作,所得到的结果就不是我们所期待的。
下面是某个集群使用nfs共享的示意图:这种架构除了性能问题而外,还存在单点故障,一旦这个NFS服务器发生故障,所有靠共享提供数据的应用就不再可用,尽管用rsync方式同步数据到另外一个服务器上做nfs服务的备份,但这对提高整个系统的性能毫无帮助。
基于这样一种需求,我们需要对nfs服务器进行优化或采取别的解决方案,然而优化并不能对应对日益增多的客户端的性能要求,因此唯一的选择只能是采取别的解决方案了;通过调研,分布式文件系统是一个比较合适的选择。
采用分布式文件系统后,服务器之间的数据访问不再是一对多的关系(1个NFS服务器,多个NFS 客户端),而是多对多的关系,这样一来,性能大幅提升毫无问题。
到目前为止,有数十种以上的分布式文件系统解决方案可供选择,如lustre,hadoop,Pnfs等等。
我尝试了 PVFS,hadoop,moosefs这三种应用,参看了lustre、KFS等诸多技术实施方法,最后我选择了moosefs(以下简称MFS)这种分布式文件系统来作为我的共享存储服务器。
为什么要选它呢?我来说说我的一些看法:1、实施起来简单。
MFS的安装、部署、配置相对于其他几种工具来说,要简单和容易得多。
看看lustre 700多页的pdf文档,让人头昏吧。
2、不停服务扩容。
MFS框架做好后,随时增加服务器扩充容量;扩充和减少容量皆不会影响现有的服务。
在linux 系统中部署程序的步骤1. 用linux 命令新建文件夹utxt 。
2. 利用FTP 新建站点,在站点中将本地的总tar 包拖到linux 系统的指定文件夹utxt 下面。
3. 在linux 窗口中,转到utxt 目录下面,执行命令“tar -xzvf tar包名”解压tar 包。
4. 再执行ll 命令,可以看到总的tar 包已经解压到当前目录下。
5. 再在utxt 目录下面新建目录software, 在software 目录下面新建两个目录dbmonitor 和scripts 。
6.(当前在utxt 目录下面, 因为总的tar 包解压到了utxt 目录下面再执行命令“cp dbmonitor.tar.gz software/dbmonitor/”,将dbmonitor.tar.gz 包拷贝到dbmonitor 目录。
7. 再切换到dbmonitor 目录(执行命令cd software/dbmonitor/), 执行ll 命令, 可以看到dbmonitor.tar.gz 包。
8. 再执行“tar -xzvf dbmonitor.tar.gz”命令解压tar 包。
9. 再修改配置文件dbmon.ini ,执行vi dbmon.ini,再执行i 修改文件,修改完成后按esc 键,现输入:wq 保存并退出,若放弃保存则输入:q! 。
10. 再运行守护程序,执行命令./sysmonitor_mon.sh &,再输入exit 退出程序,再查看是否启动成功(ps -elf|grep sys)。
升级程序的步骤(更新dbmonsrv.new 文件)1. 利用FTP 将dbmonsrv.new 文件拷贝到linux 系统相应的目录下面。
2. 再在linux 客户端将dbmonitor 程序kill 暂停下来。
到dbmonitor 目录,执行命令ps -elf|grep db,找到守护进程dbmonitor.sh 文件的进程号5770,dbmonsrv 程序的进程号19409,再执行命令kill 5770,kill 19409,再用命令ps -elf|grep db可以查看到dbmonitor.sh 和dbmonsrv 不存在了,说明已经被kill 了。
分布式文件系统MFS(moosef s)实现存储共享(第二版)作者:田逸(***********m)由于用户数量的不断攀升,我对访问量大的应用实现了可扩展、高可靠的集群部署(即lvs+keep alived的方式),但仍然有用户反馈访问慢的问题。
通过排查个服务器的情况,发现问题的根源在于共享存储服务器NFS。
在我这个网络环境里,N个服务器通过nfs方式共享一个服务器的存储空间,使得N FS服务器不堪重负。
察看系统日志,全是nfs服务超时之类的报错。
一般情况下,当nfs客户端数目较小的时候,NFS性能不会出现问题;一旦NFS服务器数目过多,并且是那种读写都比较频繁的操作,所得到的结果就不是我们所期待的。
下面是某个集群使用nfs共享的示意图:这种架构除了性能问题而外,还存在单点故障,一旦这个NF S服务器发生故障,所有靠共享提供数据的应用就不再可用,尽管用rs ync方式同步数据到另外一个服务器上做nfs服务的备份,但这对提高整个系统的性能毫无帮助。
基于这样一种需求,我们需要对nfs服务器进行优化或采取别的解决方案,然而优化并不能对应对日益增多的客户端的性能要求,因此唯一的选择只能是采取别的解决方案了;通过调研,分布式文件系统是一个比较合适的选择。
采用分布式文件系统后,服务器之间的数据访问不再是一对多的关系(1个NFS服务器,多个NFS客户端),而是多对多的关系,这样一来,性能大幅提升毫无问题。
到目前为止,有数十种以上的分布式文件系统解决方案可供选择,如lust re,hadoop,Pnfs等等。
我尝试了PVFS,hadoop,moosefs这三种应用,参看了lustre、KFS等诸多技术实施方法,最后我选择了moose fs(以下简称MFS)这种分布式文件系统来作为我的共享存储服务器。
为什么要选它呢?我来说说我的一些看法:1、实施起来简单。
MFS文件系统使用手册作者:ltgz s777整理:nonamexz对于mfs文件系统也用了半年了,确实不错,最近又翻译了作者的三篇文章,再此一同发上,希望对大家有所帮助。
不足之处还请指出,以便完善,谢谢!官方的网络示意图是这样的:MFS 文件系统结构:具体的实例安装和配置元数据服务(master server )安装元数据服务角色角色作用管理服务器managing server (master)负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝元数据日志服务器Metalogger server (Metalogger )负责备份master 服务器的变化日志文件,文件类型为changelog_ml.*.mfs ,以便于在master server 出问题的时候接替其进行工作数据存储服务器data servers (chunkservers)负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输.客户机挂载使用client computers 通过fuse 内核接口挂接远程管理服务器上所管理的数据存储服务器,.看起来共享的文件系统和本地unix 文件系统使用一样的效果.mfsmaster.cfg的配置配置文件位于安装目录/usr/local/mfs/etc,需要的配置文件有两个:mfsmaster.cfg和mfsexports.cfg,mfsmaster.cfg是主配置文件,mfsexports.cfg是被挂接目录及权限设置。
需要注意的是,凡是用#注释掉的变量均使用其默认值。
以上是对master server的mfsmaster.cfg配置文件的解释,对于这个文件不需要做任何修改就可以工作。
mfsexports.cfg的配置该文件每一个条目分为三部分:第一部分:客户端的ip地址第二部分:被挂接的目录第三部分:客户端拥有的权限地址可以指定的几种表现形式:*所有的ip地址n.n.n.n单个ip地址n.n.n.n/b IP网络地址/位数掩码n.n.n.n/m.m.m.m IP网络地址/子网掩码f.f.f.f-t.t.t.t IP段目录部分需要注意两点:/标识MooseFS根;.表示MFSMETA文件系统权限部分:ro只读模式共享rw读写的方式共享alldirs许挂载任何指定的子目录maproot映射为root,还是指定的用户password指定客户端密码启动master servermaster server可以单独启动(所谓单独启动就是在没有数据存储服务器(chunkserver)的时候也可以启动,但是不能存储,chunkserver启动后会自动的加入)。
L i n u x环境G l u s t e r F S共享磁盘配置SANY GROUP system office room 【SANYUA16H-Lin u x环境Gu lu sterF S共享磁盘配置前言GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有高扩展性、高性能、高可用性、可横向扩展的弹性特点,无元数据服务器设计使GlusterFS没有单点故障隐患。
采用GlusterFS为应用服务器提供应用包完全共享,保障应用服务的一致性;并基于GlusterFSUnify模式下多存储空间的功能,实现各服务器磁盘当前可用空间的充分利用。
1、安装GlusterFS分别在全部服务器节点上安装GlusterFS。
a)G lusterFS需要fuse和ctypes的支持,在安装开始前需要先安装fuse和ctypes,可通过yum软件仓库源实现安装:yum-yinstallgccflexfusebisonbyaccopenssl-develpython-ctypesb)上传安装包至/root下执行安装步骤,命令:tarzxvfcdglusterfs-3.3.2./configure--enable-fusermountmake&&makeinstallc)配置GlusterFS自启动:serviceglusterdstartchkconfigglusterdon2、配置GlusterFS服务端a)首先确保每个节点的主机名相互配置在/etc/hosts文件中,以下配置须在所有服务器节点上操作:编辑/etc/hosts:#vim/etc/hosts然后插入以下内容—对应IP、别称,在hosts文件中写入:10.0.0.1p0110.0.0.2p0210.0.0.3p0310.0.0.4p0410.0.0.5p0510.0.0.6p06b)分别在每个节点上分配用于GlusterFS存储的文件夹目录(空闲区域),在每个节点上执行:#mkdir-p/data/disk01注意:每个用于GlusterFS存储的文件夹目录/data/disk01以后都不能进行直接的文件(夹)操作,否则需要通过命令进行文件同步修复。
GlusterFS/Lustre/MooseFS实践总结作者:酷抉小生时间:2014/11/22文档摘要:该文档是根据个人对一些开源分布式系统的一些实践总结。
相关描述:✧关注酷抉小生的个人网站酷抉网:/✧PDF文档获取:百度网盘/s/1hqePCqw✧PDF文档及相关资料下载请到百度搜索✧欢迎加入storm-分布式-IT技术交流群(191321336,群中有详细的资料),一起讨论技术,一起分享代码,一起分享设计;✧目录GlusterFS/Lustre/MooseFS实践总结 (1)1 文档说明 (1)2 系统实践总结 (1)2.1 GlusterFS (1)2.1.1 系统概况 (1)2.1.2 系统搭建 (1)2.1.3 系统可用性 (1)2.1.4 系统性能 (2)2.1.5 系统适性 (2)2.1.6 二次开发 (2)2.1.7 实际应用 (2)2.2 Lustre (3)2.2.1 系统概况 (3)2.2.2 系统搭建 (3)2.2.3 系统可用性 (3)2.2.4 系统性能 (3)2.2.5 系统适性 (4)2.2.6 二次开发 (4)2.2.7 实际应用 (4)2.3 MooseFS (4)2.3.1 系统概况 (4)2.3.2 系统搭建 (4)2.3.3 系统可用性 (4)2.3.4 系统性能 (5)2.3.5 系统适性 (5)2.3.6 二次开发 (5)2.3.7 实际应用 (5)3 其他DFS概览 (6)4 总结 (6)5 啰嗦几句 (6)6 参考文献 (7)1 文档说明该文档为个人对一些开源分布式文件系统实践之后的总结,主要包括系统安装分析、可用性、可靠性、扩展性等方面。
由于个人工作及个人好爱原因,最近对几个开源分布式文件系统进行了实践,包括环境的搭建、性能的测试及功能的测试等等,总觉得要把这些实践过后的经验记录下来,希望能给其他人一些帮助。
根据这些总结,希望能对一些分布式文件系统爱好者或者开发者在进行原型开发时能有所帮助,主要是一些性能指标的分析。
Linux平台上MFS(MooseFS)的部署目录1 概述 (3)2 实验环境 (3)3 安装和配置MFS Master (4)3.1 安装master (4)3.2 配置master (4)3.3 启动和停止master服务 (5)4 安装和配置ChunkServer (5)4.1 安装ChunkServer (5)4.2 配置ChunkServer (5)4.3 启动和停止ChunkServer服务 (6)5 安装和配置MFS Client (6)5.1 安装FUSE (6)5.2 安装MFS Client (7)5.3 使用MFS (7)5.4 设置副本数量 (7)5.5 设置空间回收时间 (8)6 破坏性测试 (9)6.1 测试数据存储服务器 (9)6.2 测试元数据服务器 (9)1 概述MFS(MooseFS)是一个Linux/Unix平台上开源的分布式文件系统。
它可以把文件复制成多份(如3份)分别放置在多个数据服务器(ChunkServer)上,实现文件的冗余。
而且可以动态的增加ChunkServer,实现动态存储容量扩展,甚至可以支持PB级的存储容量。
2 实验环境●硬件和软件环境:✓PC:Intel(R) Core(TM)2 Quad CPU Q9550@ 2.83GHz, 8G RAM✓OS: CentOS 5.2 (x86_64), Kernel: 2.6.18-92.el5xen✓MFS: MooseFS v1.5.12表2-1 安装MFS所需软件列表3 安装和配置MFS Master3.1 安装master●创建用户# useradd mfs -s /sbin/nologin●安装master# tar xvzf mfs-1.5.12.tar.gz# cd mfs-1.5.12# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs # make# make install3.2 配置master●创建目录# mkdir -p /var/run/mfs# chown mfs:mfs /var/run/mfs●更改配置文件/usr/local/mfs/etc/mfsmaster.cfg:#WORKING_USER = mfs#WORKING_GROUP = mfs#LOCK_FILE = /var/run/mfs/mfsmaster.pid#DATA_PATH = /usr/local/mfs/var/mfs#SYSLOG_IDENT = mfsmaster#BACK_LOGS = 50#REPLICATIONS_DELAY_INIT = 300#REPLICATIONS_DELAY_DISCONNECT = 3600#MATOCS_LISTEN_HOST = *#MATOCS_LISTEN_PORT = 9420#MATOCU_LISTEN_HOST = *#MATOCU_LISTEN_PORT = 9421#CHUNKS_LOOP_TIME = 300#CHUNKS_DEL_LIMIT = 100#CHUNKS_REP_LIMIT = 153.3 启动和停止master服务●启动master服务# /usr/local/mfs/sbin/mfsmaster start●停止master服务# /usr/local/mfs/sbin/mfsmaster -s●查看master日志/var/log/messages# tail -f /var/log/messages4 安装和配置ChunkServer4.1 安装ChunkServer●创建用户# useradd mfs -s /sbin/nologin●安装ChunkServer# tar xvzf mfs-1.5.12.tar.gz# cd mfs-1.5.12# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs # make# make install4.2 配置ChunkServer●创建目录# mkdir -p /var/run/mfs# chown mfs:mfs /var/run/mfs●创建共享存储的挂载点,建议分配整个磁盘分区# mount /dev/xvdb1 /data# chown mfs:mfs /data●更改配置文件/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 = 30MASTER_HOST = 10.8.2.41MASTER_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●更改配置文件/usr/local/mfs/etc/mfshdd.cfg, 增加文件系统挂载点:/data1/data2注意:配置的挂载点必须让mfs用户有读写权限,如没有,用如下命令赋权限:# chown mfs:mfs /data14.3 启动和停止ChunkServer服务●启动chunkserver服务# /usr/local/mfs/sbin/mfschunkserver start●停止chunkserver服务# /usr/local/mfs/sbin/mfschunkserver -s●查看chunkserver日志/var/log/messages# tail -f /var/log/messages5 安装和配置MFS Client5.1 安装FUSE●增加环境变量并使其生效export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATHexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:.export PATH=$PATH:/usr/local/mfs/bin:.●安装fuse# tar xvzf fuse-2.7.4.tar.gz# cd fuse-2.7.4# ./configure# make# make install5.2 安装MFS Client●创建用户# useradd mfs -s /sbin/nologin●安装MFS Client# tar xvzf mfs-1.5.12.tar.gz# cd mfs-1.5.12# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount# make# make install5.3 使用MFS●如果报错fuse: device not found, 请先fuse mount.# modprobe fuse●挂载MFS文件系统# mkdir /mfsdata# /usr/local/mfs/bin/mfsmount -h 10.8.2.41 -w /mfsdata●使用MFS# dd if=/dev/urandom of=/mfsdata/test.dat bs=1M count=200# md5sum /mfsdata/test.dat522c27c45064c2d0463c168593f5bead /mfsdata/test.dat5.4 设置副本数量●查看目录现在的副本数量:# mfsgetgoal /mfsdata/mfsdata: 1# mfsfileinfo /mfsdata/test.dat/mfsdata/test.dat:chunk 0: 0000000000000013_00000004 / (id:19 ver:4)copy 1: 10.8.2.44:9422chunk 1: 0000000000000014_00000003 / (id:20 ver:3)copy 1: 10.8.2.42:9422chunk 2: 0000000000000015_00000003 / (id:21 ver:3)copy 1: 10.8.2.42:9422chunk 3: 0000000000000016_00000001 / (id:22 ver:1)copy 1: 10.8.2.42:9422●更改目录现在的副本数量:# mfsrsetgoal 3 /mfsdata/mfsdata/:inodes with goal changed: 3 (3)inodes with goal not changed: 0 (0)inodes with permission denied: 0 (0)●查看更改后目录的副本数量:# mfsgetgoal /mfsdata/mfsdata: 3# mfsfileinfo /mfsdata/test.dat/mfsdata/test.dat:chunk 0: 0000000000000013_00000004 / (id:19 ver:4)copy 1: 10.8.2.42:9422copy 2: 10.8.2.43:9422copy 3: 10.8.2.44:9422chunk 1: 0000000000000014_00000003 / (id:20 ver:3)copy 1: 10.8.2.42:9422copy 2: 10.8.2.43:9422copy 3: 10.8.2.44:9422chunk 2: 0000000000000015_00000003 / (id:21 ver:3)copy 1: 10.8.2.42:9422copy 2: 10.8.2.43:9422copy 3: 10.8.2.44:9422chunk 3: 0000000000000016_00000001 / (id:22 ver:1)copy 1: 10.8.2.42:9422copy 2: 10.8.2.43:9422copy 3: 10.8.2.44:94225.5 设置空间回收时间●查看目录当前回收时间:# mfsgettrashtime /mfsdata/mfsdata: 86400●设置目录当前回收时间为600秒:# mfsrsettrashtime 600 /mfsdata/mfsdata:inodes with trashtime changed: 3 (3)inodes with trashtime not changed: 0 (0)inodes with permission denied: 0 (0)●查看更改后空间回收时间:# mfsgettrashtime /mfsdata/mfsdata: 6006 破坏性测试6.1 测试数据存储服务器现在用4个服务器组成了MFS的存储平台,其中一个是master,其余三个服务器是chunkserver.先停止一个chunkserver服务,然后在某个MFS客户端往挂接点的目录(/mfsdata)里复制数据或者创建目录/文件、或者读取文件、或者删除文件,观察操作是否能正常进行。