MogileFS系统简单配置实例 - 阿姜

标签: mogilefs 系统 实例 | 发表时间:2015-09-09 07:53 | 作者:阿姜
出处:

实验原理:

       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 '123456';
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:7500 //在19.76上把地址改了即可
mgmtlisten=192.168.19.74:7501
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系统简单配置实例,转载请注明。

相关 [mogilefs 系统 实例] 推荐:

MogileFS系统简单配置实例 - 阿姜

- - 博客园_首页
       MogileFS是一个开源的分布式文件系统,用于组建分布式文件集群,由LiveJournal旗下DangaInteractive公司开发,Danga团队开发了包括 Memcached、MogileFS、Perlbal等不错的开源项目:(注:Perlbal是一个强大的Perl写的反向代理服务器).

产品实例:某项目APP后台系统设计

- - 人人都是产品经理
今年有幸参与了某度假屋项目从0到1的设计过程,展示给用户的是精致的APP,然而APP背后却是逻辑比较复杂的后台系统. APP的使用体验,很大程度上是由后台系统决定的,后台系统逻辑的合理性决定了APP的核心流程. 简要介绍一下此项目的业务流程如图1所示:. 业主购买度假屋并由物业管理公司托管,业主购买度假屋有三种类型:全套、分权、分时,全套即业主购买整套度假屋,分权即业主购买度假屋部分产权,分时即业主购买某季的居住权.

深入解析物联网操作系统(架构/功能/实例分析)

- - IT瘾-geek
1.       物联网的主要特点.                        i.             连接. 所谓连接,指的是各种各样的终端设备,都能够通过某种网络技术,连接到一个统一的网络上. 下一代的基础通信网络,包括未来的5G,通信网络架构重构等,为物联网提供泛连接网络是核心目标.

[原]Dubbo实例

- -
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. Remoting: 网络通信框架,实现了sync-over-async 和 request-response 消息机制. RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能. Registry: 服务目录框架用于服务的注册和服务事件发布和订阅.

VisualVM 使用实例

- - 开源软件 - ITeye博客
VisualVM 是一款免费的性能分析工具. 监控程序运行的实时数据,从而进行动态的性能分析. 同时,它能自动选择更快更轻量级的技术尽量减少性能分析对应用程序造成的影响,提高性能分析的精度. 转储:性能分析工具从内存中获得当前状态数据并存储到文件用于静态的性能分析. 1     系统转储:JVM 生成的本地系统的转储,又称作核心转储.

学习AngularJS实例

- - Web前端 - ITeye博客
怎么样快速学习AngularJS. 相信很多初学者都有过或者类似的疑问,其实这个问题没有标准的答案,每个人的技术背景、工作经验等等都不经相同,所以学习AngularJS的切入点肯定也就不同,我之前初略使用过knockoutjs,当我第一眼看到AngularJS的Helloworld案例后,顿时就被声明式的语法和强大的双向绑定特性所吸引.

Kafka编程实例

- - CSDN博客云计算推荐文章
    Producer是一个应用程序,它创建消息并发送它们到Kafka broker中. 这些producer在本质上是不同. 比如,前端应用程序,后端服务,代理服务,适配器对于潜在的系统,Hadoop对于的Producer. 这些不同的Producer能够使用不同的语言实现,比如java、C和Python.

kafka开发实例

- - 互联网 - ITeye博客
//启动zookeeper server (用&是为了能退出命令行):. //启动kafka server: . 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

壳系统

- Vernsu - It Talks-魏武挥的blog
经常有人被我问到“你用什么浏览器”时的答案是:傲游啦360啦,但事实上,这些都不是真正的浏览器,从技术角度讲,充其量只是在IE浏览器上加一个壳罢了. 在国外,壳浏览器是以“皮肤”的形式存在,纯属为了美化浏览器而用. 但在中国,壳浏览器成了一门生意. 奇虎的主要收入来源并非来自那个由于一场商战而赫赫有名的安全卫士,而是来自于360浏览器(它有两个版本,分别以IE和Chrome为内核).

秒杀系统

- - 开源软件 - ITeye博客
秒杀系统架构分析与实战. (反馈非常好的文章,推荐). (1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货. (1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高;. 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有:.