实验原理:

MogileFS是一个开源的分布式文件系统,用于组建分布式文件集群,由LiveJournal旗下DangaInteractive公司开发,Danga团队开发了包括 Memcached、MogileFS、Perlbal等不错的开源项目:(注:Perlbal是一个强大的Perl写的反向代理服务器)。 MogileFS是一个开源的分布式文件系统。主要特性包括:应用层的组件、无单点故障、自动文件复制、具有比RAID更好的可靠性、无需RAID支持等……核心角色如下:

Tracker节点:借助数据库保存各节点文件的元数据信息保存每个域中所有键的存储位置分布,方便检索定位数据位置的同时监控各节点,告诉客户端存储区位置并指挥storage节点复制数据副本,进程名为mogilefsd(7001)。

Database节点:为tracker节点提供数据存取服务。

Storage节点:将指定域中的键转换为其特有的文件名存储在指定的设备文件中,转换后的文件名为值,storage节点自动维护键值的对应关系,storage节点由于使用http进行数据传输,因此依赖于perlbal,storage节点前端可以使用nginx进行反向代理,但需要安装nginx-mogilefs-module-master模块进行名称转换,进程名mogstored(7501),perbal(7500)。

Domain:一个域中的键值是惟一的,一个MogileFS可以有多个域,域可以用来存储不同应用类型的数据的容器。

Host:每一个存储节点称为一个主机,一个主机上可以有多个存储设备(单独的硬盘),每个设备都有ID号,Domain+Fid用来定位文件。

Class:复制最小单位,文件属性管理,定义文件存储在不同设备上份数。

实验系统:CentOS 6.6_x86_64

实验前提:提前准备好编译环境,防火墙和selinux都关闭

实验说明:本实验共有3台主机,IP及角色分配如拓扑

下载地址:试验中用到mariadb软件的下载地址,http://pan.baidu.com/s/1bnnYiMr

实验拓扑:

    

一、在19.66上安装MySQL及MogileFS

  1.安装mysql:

tar xf mariadb-10.0.20-linux-x86_64.tar.gz  -C /usr/local/
cd /usr/local/
ln -sv mariadb-10.0.20-linux-x86_64 mysql
useradd -r mysql
mkdir -pv /mydata/data
chown -R mysql.mysql /mydata/data/
cd mysql/
chown -R root.mysql .
scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
cp support-files/my-large.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

  2.安装YAML:

wget http://search.cpan.org/CPAN/authors/id/I/IN/INGY/YAML-1.15.tar.gz
tar xf YAML-1.15.tar.gz
cd YAML-1.15
perl Makefile.PL
make && make install

  3.使用cpan在线安装MogileFS和相关模块:

cpan
----------------------------------->
install MogileFS::Server //后面有让输入yes的地方则输入yes并回车即可

    

  4.创建授权用户:

/usr/local/mysql/bin/mysql
------------------------------------------>
USE mysql;
UPDATE user SET Password=PASSWORD(123456) WHERE User='root';
GRANT ALL ON mogilefs.* TO 'moguser'@'192.168.19.%' IDENTIFIED BY '';
GRANT ALL ON *.* TO 'root'@'192.168.19.%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

  5.初始化数据库:

mogdbsetup --dbhost=192.168.19.66 --dbrootuser=root --dbrootpass=123456 --dbuser=moguser --dbpass=123456 --yes

    如果出现如下报错,则重新运行一次该命令,一般数据就可正常导入了:

    

  6.创建Tracker配置文件:

mkdir /etc/mogilefs
vim /etc/mogilefs/mogilefsd.conf
--------------------------------------------------------->
db_dsn = DBI:mysql:mogilefs:host=192.168.19.66
db_user = moguser
db_pass = 123456
conf_port = 7001
listener_jobs = 5
node_timeout = 5
rebalance_ignore_missing = 1

  7.创建mogile用户并启动测试,查看端口,看到7001已经开始监听了。另外可以使用“pkill mogilefsd”来停止mogilefsd服务。

useradd mogile
su mogile -c "mogilefsd -c /etc/mogilefs/mogilefsd.conf --deamon"

二、在19.74和19.76上安装MogileFS

  1.安装YAML:

wget http://search.cpan.org/CPAN/authors/id/I/IN/INGY/YAML-1.15.tar.gz
tar xf YAML-1.15.tar.gz
cd YAML-1.15
perl Makefile.PL
make && make install

  2.使用cpan在线安装MogileFS:

cpan
-------------------------------->
install MogileFS::Server

  3.创建Storage配置文件:

mkdir /data/mogdata -pv
useradd mogile
chown -R mogile.mogile /data/mogdata
mkdir /etc/mogilefs
vim /etc/mogilefs/mogstored.conf
----------------------------------------------------->
httplisten=192.168.19.74: //在19.76上把地址改了即可
mgmtlisten=192.168.19.74:
docroot=/data/mogdata

  4.启动MogileFS Storage节点,查看端口,看到7500和7501开始监听了。另外可以使用“pkill mogstored”来停止mogstored服务。

mogstored --daemon

    

三、管理配置MogileFS

  1.三台主机安装MogileFS-Utils:

cpan
-------------------------------->
install MogileFS::Utils

  2.在Tracker上添加Storeage节点:

mogadm --trackers=192.168.19.66:7001 host add test --ip=192.168.19.74 --port=7500 --status=alive
mogadm --trackers=192.168.19.66:7001 host add tsst --ip=192.168.19.76 --port=7500 --status=alive

  3.创建存储目录:

    在19.74上:

mkdir /data/mogdata/dev1

    在19.76上:

mkdir /data/mogdata/dev2

  4.在Tracker上添加存储设备:

mogadm --trackers=192.168.19.66:7001 device add test 1
mogadm --trackers=192.168.19.66:7001 device add tsst 2
mogadm --trackers=192.168.19.66:7001 device list
mogadm --trackers=192.168.19.66:7001 check
mogadm domain add jason

    

    

  5.上传文件测试:

mogupload --trackers=192.168.19.66:7001 --domain=jason --key='/fstab.html' --file='/etc/fstab'
mogfileinfo --trackers=192.168.19.66:7001 --domain=jason --key='/fstab.html'

    

    用浏览器打开红框内的连接,即可看到文件:

    

    咱们上传个图片试试:

mogupload --trackers=192.168.19.66:7001 --domain=jason --key='/centos.png' --file='/usr/share/backgrounds/default.png'
mogfileinfo --trackers=192.168.19.66:7001 --domain=jason --key='/centos.png'

    

    

四、扩展实验

  上面实验可以看到,上传的文件仅在一个主机上存放,实际上应该是两个节点都存放才对。我从网上查到出错的原因可能是由于Sys::Syscall这个模块造成的。我们看到现在此模块的版本为0.25。我上网搜索其解决办法,发现如果将此软件降为0.23版本可能会修复此问题,咱们试试看:

    

wget http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.23.tar.gz
tar xf Sys-Syscall-0.23.tar.gz
cd Sys-Syscall-0.23
perl Makefile.PL
make && make install

    

  重启mogilefsd进程,然后再上传一个文件试试:

vim /root/haha        //随便创建一个文件
---------------------------->
123
<----------------------------
mogupload --trackers=192.168.19.66:7001 --domain=jason --key='/haha.html' --file='/root/haha'
mogfileinfo --trackers=192.168.19.66:7001 --domain=jason --key='/haha.html'

    

  至此,实验全部结束。由于是第一次玩这个东西,很多操作不是很熟练,过程中也出了不少错误,希望此文章对大家能够有一些参考价值。如有问题,请联系QQ:82800452。感谢大家,谢谢!

MogileFS系统简单配置实例的更多相关文章

  1. logstash在Windows2008简单配置实例

    Windows2008 安装java1.8,配置系统环境变量: 官方下载并安装略...然后配置 logstash的配置文件 注意PATH路径名称不支持中文 input { file { type =& ...

  2. WordPress下载安装简单配置实例

    1.下载https://cn.wordpress.org/ 2.复制wp-config-sample.php为wp-config.php 3.创建一个wordpress数据库 4.修改wp-confi ...

  3. Windows环境双系统安装环境配置

    (最惊喜的事情莫过于...在安装系统完成重新试图安装Docker时解决了关于HyperV的问题,结果提示Docker只能在Win10 Pro或者Enterprise环境下运行...我很坚强...可以按 ...

  4. Redis:安装、配置、操作和简单代码实例(C语言Client端)

    Redis:安装.配置.操作和简单代码实例(C语言Client端) - hj19870806的专栏 - 博客频道 - CSDN.NET Redis:安装.配置.操作和简单代码实例(C语言Client端 ...

  5. 《转》Robot Framework 的安装配置和简单的实例介绍

    Robot Framework 介绍 Robot Framework 是一款基于 Python 的功能自动化测试框架.它具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进 ...

  6. 权限控制框架Shiro简单介绍及配置实例

    Shiro是什么 http://shiro.apache.org/ Apache Shiro是一个非常易用的Java安全框架,它能提供验证.授权.加密和Session控制.Shiro非常轻量级,而且A ...

  7. Mybatis缓存(1)--------系统缓存及简单配置介绍

    前言 Mybatis的缓存主要有两种: 系统缓存,也就是我们一级缓存与二级缓存: 自定义的缓存,比如Redis.Enhance等,需要额外的单独配置与实现,具体日后主要学习介绍. 在这里主要记录系统缓 ...

  8. cisco路由器 三层交换机简单环境配置实例(图)

    出处:http://www.jb51.NET/softjc/56600.html cisco路由器&三层交换机简单环境配置实例 一.网络拓扑图: 二.配置命令: 1.路由器的配置: inter ...

  9. Linux 桌面系统字体配置要略

    字体显示效果测试 这一段是为了测试宋体字的显示效果,包括宋体里面自带的英文字体,“This is english,how does it look like?”.这一行是小字.后面几个字是加粗的宋体. ...

随机推荐

  1. 关系数据库SQL之可编程性存储过程

    前言 前面关系数据库SQL之可编程性函数(用户自定义函数)一文提到关系型数据库提供了可编程性的函数.存储过程.事务.触发器及游标,前文已介绍了函数,本文来介绍一下存储过程的创建.执行.删除.(还是以前 ...

  2. [Asp.net 5] Configuration-新一代的配置文件

    微软新一代asp.net(vnext),也叫asp.net 5,开源代码都放在网址https://github.com/aspnet下. 本文介绍的是Configuration工程,下载路径为http ...

  3. C#开发微信门户及应用(45)--微信扫码登录

    在前面随笔<C#开发微信门户及应用(41)--基于微信开放平台的扫码登录处理>介绍了基于微信开放平台接口实现的微信扫码直接登录的过程.本篇介绍对扫码登录的一些改进和处理,以便更方便应用在实 ...

  4. C# 特性学习之一、CallerMemberName、CallerFilePath和CallerLineNumber

    在开发中经常会写个公有静态类记录日志,如下: /// <summary> /// Writes the error. /// </summary> /// <param ...

  5. .net中创建xml文件的两种方法

    .net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...

  6. jquery——左右按钮点击切换一组图片功能

    一.最终效果 二.功能分析 1.需求分析 点击左边pre按钮,显示前面三个图片,点击右边的next按钮,显示后面的一组(三个)图片.初始化只显示next按钮,到最后一组只显示pre按钮,中间过程两按钮 ...

  7. Java中, for循环经典例子

    循环的两种应用:穷举和迭代. break跳出整个循环 一.穷举:将所有可能的情况都走一遍,用if筛选出符合条件. 百鸡百钱: 一只公鸡1文钱,一只母鸡2文钱,一只小鸡半文钱,需要买100只鸡, 正好花 ...

  8. C标准头文件<stdlib.h>

    是个大杂烩,里面声明了从动态内存分配到常用算法等各种函数和宏 #数据类型 **size_t** **wchar_t** **div_t**是一个结构体类型,也是div()返回的类型 **ldiv_t* ...

  9. ProxyPattern

    代理模式是aop编程的基础,其主要作用是操作对象,并将你需要的新功能切入若干个你想要的切入点,静态代理模式比较简单,但是缺点比较大,这里就不上代码了,下面写上动态代理模式的代码(jdk方式,而不是采用 ...

  10. GIT 基本操作

    git 流程:1.查看自己所在分支 git branch 2.切换到开发分支 git checkout develop3.把代码拉下来 git fetch4.合并到自己本地 git merge5.切换 ...