已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、MogileFS介绍 MogileFS是一种分布式文件存储系统。可支持文件自动备份的功能,提供高 可用性和高可扩展性。Mogilefs不支持对一个文件内部的随机或顺序读写,因此 只适合做一部分应用,如图片服务,静态HTML服务等,这些应用在文件写入后基 本上不需要对文件进行修改,但是可以生成一个新的文件覆盖原有文件。 Mogilefs分为如下几部分: 1、数据库部分 数据库保存了Mogilefs的所有元数据,一般使用MySQL,可以单独拿数据库服务 器来做,也可以跟其他程序跑在一起。可以用 mogdbsetup程序来初始化数据库。 数据库部分非常重要,因为一个MogileFS系统的所有Tracker都必须指向同一个 数据库,因此如果数据库出现问题,那么整个MogileFS系统将处于不可用状态, 因此数据库最好采用HA结构,如MySQL主从复制架构,这样可以降低数据库出现 问题对 MogileFS系统的影响。 2、跟踪器(Tracker) mogilefsd即trackers程序,类似mogilefs的wiki上介绍,trackers做了很多工 作,主要有以下几个: * Replication: 机器间复制文件 * Deletion:从命名空间删除是立即的,从文件系统删除是异步的 * QueryWorker: 响应客户端的请求 * Reaper:在磁盘失败后将文件复制请求重新放到队列中 * Monitor:监测主机和设配的健康度和状态 Tracker是访问MogileFS的入口,所有系统管理相关的操作都要通过其中的某个 trackers完成,应用系统的一些操作也要通过trackers,因此一个高业务量的 MogileFS系统最好同时运行多个trackers来做负载均衡。 3、存储节点(Storage) mogstored程序的启动将使本机成为一个存储节点。mogstored启动后,便可以通 过mogadm增加这台机器到系统中。一台机器可以只运行一个 mogstored作为存储 节点即可,也可以同时运行其他程序。存储节点下面还需要定义设备(device), 每个设备都有一个唯一的ID编号,设备也是用mogadm添加到MogileFS系统中的。 4、工具 主要就是mogadm,mogtool这两个工具了,用来在命令行下控制整个mogilefs系 统以及查看状态等等。 5、客户端(Client) 客户端通过接口访问mogilefs系统,对整个系统进行文件读写操作。 (/4/mogilefs%E5%AE%89%E8%A3%85%E4%B8%8E%E9 %85%8D%E7%BD%AE/#mogilefs%E4%BB%8B%E7%BB%8D) MogileFS特点 * 应用层不需要特殊的核心组件 * 无单点失败MogileFS安装的三个组件(存储节点、跟踪器、跟踪用的 数据库),均可运行在多个机器上,因此没有单点失败。(你也可以将跟踪器和存 储节点运行在同一台机器上,这样你就没有必要用4台机器)推荐至少两台机器。 (没有单点失败本人持保留意见) * 自动的文件复制基于不同的文件“分类”,文件可以被自动的复制到 多个有足够存储空间的存储节点上,这样可以满足这个“类别”的最少复制要求。 比如你有一个图片网站,你可以设置原始的JPEG图片需要复制 至少三份,但实 际只有1or2份拷贝,如果丢失了数据,那么Mogile可以重新建立遗失的拷贝数。 用这种办法,MogileFS(不做RAID)可以节约 磁盘,否则你将存储同样的拷贝多 份,完全没有必要。 * “比RAID好多了”在一个非存储区域网络的RAID(non-SAN RAID)的 建立中,磁盘是冗余的,但主机不是,如果你整个机器坏了,那么文件也将不能 访问。 MogileFS在不同的机器之间进行文件复制,因此文件始终是可用的。 * 传输中立,无特殊协议MogileFS客户端可以通过NFS或HTTP来和 MogileFS的存储节点来通信,但首先需要告知跟踪器一下。 * 简单的命名空间文件通过一个给定的key来确定,是一个全局的命名 空间。你可以自己生成多个命名空间,只要你愿意,不过这样可能在同一MogileFS 中会造成key冲突。 * 不用共享任何东西MogileFS不需要依靠昂贵的SAN来共享磁盘,每个 机器只用维护好自己的磁盘。 * 不需要RAID在MogileFS中的磁盘可以是做了RAID的也可以是没有,如 果是为了安全性着想的话RAID没有必要买了,因为 MogileFS已经提供了。 * 不会碰到文件系统本身的不可知情况在MogileFS中的存储节点的磁 盘可以被格式化成多种格式(ext3,reiserFS等等)。MogilesFS会做自己内部目 录的哈希,所以它不会碰到文件系统本身的一些限制,比如一个目录中的最大文 件数。你可以放心的使用。 * mogileFS 适合于静态存储,就是那种一次保存,多次读取型的资源,比 如以html方式静态化处理的动态文件,图片文件,其他只提供下载的文件等。 (/starxu85/archive/2008/12/04/3447301.aspx) 二、MogileFS安装 第一: 首先要安装 Mysql 数据库第二 :安装依赖包执行命令 : perl -MCPAN -e shell 进入 perl 依赖包安装模式install Danga:Socketinstall DBIinstall Net:Netmaskinstall Gearman:Serverinstall Gearman:Client:Async install IO:AIOinstall Perlbalinstall Bundle:DBD:mysqlinstall MogileFS:Serverinstall MogileFS:Clientinstall MogileFS:Utils上述依赖包全部安装完毕后退出。找到DBD模块所在的目录,我的目录为 /root/.cpan/build/ , 这个目录是上面安装时下载的各种依赖包。cd DBD-mysql-3.0008perl Makefile.PL -libs=-L/usr/lib64/mysql -lmysqlclient -L/usr/lib64 -lz -cflags=-I/usr/include/mysql -mysql_config=/usr/bin/mysql_config -testhost= -testdb=test -testuser=root -testpassword=111111makemake test make install第三: 建立数据库和创建表进入mysql 的控制台 mysql -u root p 111111 , 执行下面的命令# mysqlmysql CREATE DATABASE mogilefs;mysql GRANT ALL ON mogilefs.* TO mogile%;mysql SET PASSWORD FOR mogile% = OLD_PASSWORD( 111111 );mysql FLUSH PRIVILEGES;mysql quit然后再执行下面的命令创建表mogdbsetup -dbhost=localhost -dbname=mogilefs -dbuser=mogile -dbpassword=111111 -dbrootuser=root dbrootpass=111111 -yes -verbose第四 : 配置 tracker 的配置文件用 root 用户执行adduser mogilemkdir /etc/mogilefsvi /etc/mogilefs/mogilefs.conf:trackers :7001db_dsn DBI:mysql:mogilefs:host=db_user mogiledb_pass 111111listen :7001conf_port 7001query_jobs 10delete_jobs 1replicate_jobs 5reaper_jobs 1执行如下命令来启动su mogilemogileredhat1 mogilefsd$ mogilefsd -c /etc/mogilefs/mogilefsd.conf -daemonmogileredhat1 mogilefsd$ ps -aux|grep mogilefsd 查看是否启动 mogilefsd 成功然后在各个tracker上进行如下的配置,以便把mogilefsd加入服务并在系统启动时自动启动: 编写管理脚本: 在/etc/rc.d/init.d/下新建文件mogilefsd,内容如下:#!/bin/bash # #mogilefsd - Startupscript fortheMogileFS tracker # #chkconfig: 2345 85 15 /此行必写#description:MogileFS tracker /此行必写,描述服务的内容#processname:mogilefsd #config: /etc/mogilefs/mogilefsd.conf #pidfile: /var/run/mogilefsd.pid #Sourcefunctionlibrary. ./etc/rc.d/init.d/functions #Path to the apachectl script, server binary, and short-form for messages. lockfile=$LOCKFILE-/var/lock/mogilefsd RETVAL=0 start() echo -n $Starting mogilefsd su - mogile -c /usr/bin/mogilefsd -c /etc/mogilefs/mogilefsd.conf -daemon RETVAL=$? echo $RETVAL = 0 & touch $lockfile return $RETVALstop() echo -n $Stopping mogilefsd# netstat -nlp|grep mogilefsd|grep -v grep|awk print $7|awk -F/print $1|xargs kill -9 killproc mogilefsd RETVAL=$? echo $RETVAL = 0 & rm -f $lockfile reload() echo -n $Reloading mogilefsd killproc mogilefsd -HUP RETVAL=$? echo #See howwewerecalled. case$1in start) start ; stop) stop ; status) statusmogilefsd RETVAL=$? ; restart) stop sleep 1 start ; reload) reload ; *) echo$Usage: mogilefsdstart|stop|restart|reload|status exit 1 esac exit $RETVAL 然后依次执行如下命令:#cd /etc/rc.d/init.d#chmod 755 mogilefsd#chkconfig add mogilefsd这样,当Linux启动时mogilefsd就会自动启动。也可以通过手动执行以下命令来进行mogilefsd的启动和停止:#service mogilefsd start|stop|restart第五:配置 storage server 的配置文件adduser mogilemkdir /var/mogdatamkdir /var/mogdata/dev1 (第二台目录为 /var/mogdata/dev2)chown mogile:mogile /var/mogdata/dev1mkdir /etc/mogilefsvi /etc/mogilefs/mogstored.conf:maxconns=10000httplisten=:7500mgmtlisten=:7501docroot=/var/mogdata然后启动storage server rootlocalhost MogileFS-Server-2.51# mogstored -daemonrootlocalhost MogileFS-Server-2.51# ps -aux|grep mogstored1.在每个storage的机器上,对storage进行相关的配置,以便把mogstored加入服务并在系统启动时自动启动: 编写管理脚本: 在/etc/rc.d/init.d/下新建文件mogstored,内容如下:#!/bin/sh#mogstored -Startupscript for the MogleFS storage node#chkconfig: 235 85 15#description:MogileFS storage node#processname:mogstored#config:/etc/mogilefs/mogstored.conf#pidfile:/var/run/mogstored.pid#Source function library. /etc/rc.d/init.d/functions#Path to the apachectl script,server binary,and short-form for messages.lockfile=$LOCKFILE-/var/lock/mogstoredRETVAL=0start() echo -n $Starting mogstored /usr/bin/mogstored -c /etc/mogilefs/mogstored.conf -daemon RETVAL=$? echo $RETVAL = 0 & touch $lockfile return $RETVALstop() echo -n $Stopping mogstored killproc mogstored RETVAL=$? echo $RETVAL = 0 & rm -f $lockfile reload() echo -n $Reloading mogstored killproc mogstored -HUP RETVAL=$? echo #See how we were called.case $1 in start) start ; stop) stop ; status) status mogstored RETVAL=$? ; restart) stop sleep 1 start ; reload) reload ; *) echo $Usage:mogstoredstart|stop|restart|reload|status| exit 1esacexit $RETVAL然后依次执行如下命令:#cd /etc/rc.d/init.d#chmod 755 mogstored#chkconfig add mogstored2.mkdir/data/mogdata 建立数据目录,在每个storage按照所设置的配置文件建立 数据目录 3.根据你机器所能用的硬盘,在数据目录下建立对应的目录并进行挂载 Acd/data/mogdata&mkdirDEV101 B e2label /dev/sdb1 /DEV1 这样写好处在于即使把硬盘从主板上的ide0(hda) 换到ide2(hdc),系统仍可自动挂载正确的分区。 C vi /etc/fstab 添加LABEL=/DEV1 /data/mogdata/dev101 ext3 defaults 1 2 第六:添加 storage 服务器到 tracker服务器进行记录切换到 tracker 服务器执行如下命令mogadm -trackers=:7001 host add mogilestorage1 -ip= -port=7500 status=alive mogadm -trackers=:7001 host add mogilestorage2 -ip= -port=7500 -status=alive添加完毕后使用下面的命令来检查添加的结果mogadm -trackers=:7001 host list下来添加硬盘设备让tracker服务器进行管理mogadm -trackers=:7001 device add mogilestorage1 1mogadm -trackers=:7001 device add mogilestorage2 2执行如下命令 来查看添加的结果mogadm -trackers=:7001 device list 还可以执行如下命令来查看详细的硬盘资料mogadm -trackers=:7001 check在存储节点中使设备失效mogadm device mark mog_store_22 dev101 dead添加域和类添加image域# mogadm domain add image在image域中添加upload类存储份数为2# mogadm class add image upload mindevcount=2mogadm -trackers=:7001 domain add testdomainmogadm -trackers=.85:7001 class add testdomain normal查看域和tracker节点# mogadm domain list七、Mogtool工具创建文件和读取文件内容7.1、创建文件如将/data/up.txt文件创建到image域中upload/up.txt文件。命令如下:# mogtool -trackers=:7001 -domain=image inject /data/up.txt upload/up.txt注:/data/up.txt为本地系统文件Upload/up.txt为mogilefs文件内文件Mogilefs文件系统中没有目录概念,将创建的文件名以upload/up.txt来代替。7.2、读取文件 # mogtool -trackers=:7001 -domain=image extract upload/up.txt -Fetching piece 1.Trying http:/ :7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学生兼职 合同
- 软件服务 合同
- 没有日期 合同
- 东莞废油合同
- 2025年宁夏回族自治区石嘴山市新《安全生产法》考试试卷及答案
- 梁粮食协议书
- 家庭调解协议书
- 车辆购置协议书
- 房屋遗产协议书范本
- 修房纠纷协议书
- 2025至2030中国高速公路行业项目调研及市场前景预测评估报告
- 厨房台面加工合同范本
- 2025年中级经济师《建筑与房地产》考试真题及答案(完整版)
- 运动生理体温调节
- 2025年度新闻记者职业资格考试真题及答案
- 2025年简易劳动合同范本下载5篇
- 生产建设项目水土保持设施验收技术规程(2025版)
- 《新污染物治理技术》-课件 第1章 新污染物简介
- 淋巴瘤全套课件
- 打钻工安全培训内容
- 药代动力学脑内分布研究-洞察及研究
评论
0/150
提交评论