企业级分布式存储应用-mogilefs

原创 2017年11月28日 19:03:51

一、架构设计

1.架构设计

centos系统服务器5台、一台作为mysql(主)一台mysql(从),三台作为存储节点,配置好yum源、防火墙关闭、各节点时钟服务同步、各节点之间可以通过主机名互相通信

2.服务器准备

主机 IP1 作用 备注
mogilefs-mysql01 192.168.16.173 mysql+tracker tracker+数据库主节点
mogilefs-mysql02 192.168.17.173 mysql从+tracker tracker+数据库从节点
mogilefs-store01 192.168.17.174 stored stored存储
mogilefs-store02 192.168.17.175 stored stored存储
mogilefs-store03 192.168.17.176 stored stored存储

3.安装包

先安装perl需要的包

yum install perl-Net-Netmask perl-IO-String perl-Sys-Syslog perl-IO-AIO

安装mogile需要的包
链接:https://pan.baidu.com/s/1cc0dWi 密码:8twa

rz
yum  install *

二、时间同步

ntpdate 172.17.0.1

三、基于MHA的mysql主从节点配置

1.mysql——主节点

配置文件

vim  /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
server_id=173
log_bin=/var/lib/mysql/log_bin
skip-name-resolve
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
!includedir /etc/my.cnf.d

开启服务

systemctl restart mariadb

授权复制权限

grant replication slave,replication client on *.* to  slave@'%' identified by 'slave';

2.mysql——从节点

不能设置为只读,要不然切换切换主从时,从不能w
配置文件

vim  /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
server_id=183
relay_log=/var/lib/mysql/relay_log
log_bin=/var/lib/mysql/log_bin
log_slave_updates=1

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
!includedir /etc/my.cnf.d

开启服务

systemctl start mariadb

使用授权账号从主节点复制

change master to master_host='192.168.16.173', master_user='slave', master_password='slave', master_log_file='log_bin.000001',master_log_pos=245;

开启 I/O线程和sql线程

start slave;

3.配置keepalived在主从节点

让tracker节点连接mysql数据库使用

vim  /etc/keepalived/keepalived.conf



! Configuration File for keepalived

global_defs {
   notification_email {
     root@localhost 
   }
   notification_email_from root_keepalived
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
} 

vrrp_script chk_haproxy {
        script "killall -0  -u mysql" 
        interval 2 
        weight -50 
        fall 2 
        rise 2 
}
vrrp_instance VI_2 {
    state BACKUP
    interface eth1
    virtual_router_id 15
    priority 200
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 2121
    }
    virtual_ipaddress {
        192.168.16.100
    }
    track_script {
    chk_haproxy
    } 
}

四、tracker节点关联mysql(VIP节点)

1.配置文件

vim  /etc/mogilefs/mogilefsd.conf 
    db_dsn = DBI:mysql:mogilefs:host=192.168.16.100
    db_user = mogile
    db_pass = mogile
    #监听所有IP的7000端口,避免VIP不在本机而不能启动服务
    listen = :7001

2.关联数据库

mogdbsetup --dbname=mogilefs --dbhost=192.168.16.100--dbuser=mogile --dbpass=mogile

3.启动服务

此服务很奇葩,经常明明报错,但却启动成功

systemctl restart mogilefsd

五、stored配置

1.配置文件

vim   /etc/mogilefs/mogstored.conf
maxconns = 10000
httplisten = 0.0.0.0:7500
mgmtlisten = 0.0.0.0:7501
docroot = /mogile/data

2.docroot权限

mkdir /mogile/{rpm,data} -p    
chown -R   mogilefs.mogilefs  /mogile

3.启动服务

systemctl start mogstored

4.创建节点

mkdir  /mogile/data/dev41
chown -R mogilefs.mogilefs  /mogile
mkdir  /mogile/data/dev51
chown -R mogilefs.mogilefs  /mogile
mkdir  /mogile/data/dev61
chown -R mogilefs.mogilefs  /mogile

六、添加 存储节点、设备、域、class”到 tracker 中

每个节点配置trcker节点位置

vim  /etc/mogilefs/mogilefs.conf
trackers=192.168.16.100

1.在各个tracker节点加入stored节点

mogadm host add node_17_174 --ip=192.168.17.174 --port=7500 --status=alive
mogadm host add node_17_175 --ip=192.168.17.175 --port=7500 --status=alive
mogadm host add node_17_176 --ip=192.168.17.176 --port=7500 --status=alive

2.在各个tracker节点加入stored节点的设备

mogadm device add node_17_174  dev41
mogadm device add node_17_175  dev51
mogadm device add node_17_176  dev61

3.添加域

#image为domain_name
mogadm admin add image

4.添加class并制定副本数

#class1为class_name
#--mindevcount 4 副本4份
mogadm class add image class1 --mindevcount 4

七、关于文件操作

1.上传文件

mogupload --domain=image --key=chengkun --file=./1.jpeg

2.查看文件

mogfileinfo  --domain=image --key=chengkun 

3.删除文件

mogdelete --domain=image --key=chengkun

4.列出所有的文件 key

#这个可以列出指定 domain 下面的所有的 key , 也可以指定的一个前缀, 来找特定前缀的所有文件的 key.
moglistkeys --domain=image --key_prefix=c

5.列出指定 fid 的文件

moglistfids --fromfid=<file_id> --count=<数量>
版权声明:本文为博主原创文章,未经博主允许不得转载。

企业级分布式存储应用-mogileFS

Web 2.0 时代的到来,使得单个计算机节点远远无法满足用户对海量数据和应用程序运行空间的需求。个人和企业都有安全而持久的存储信息的需求,备份成为最通俗的手段存储需要保持实时读写,提供复杂的查询功能...
  • sqj155
  • sqj155
  • 2017年12月04日 19:59
  • 46

分布式存储mogilefs

关于分布式存储        在一个信息爆炸的时代,信息数据的存储是至关重要的,QQ空间,微信朋友圈,服务器上每天都要上传数以千万的图片。这样的压力之下使得人们需要重新审视有关大数据的挑战。例如:数据...

实验:实现Mogilefs分布式存储服务

架构(一共三台主机): 一个tracker节点+Mysql服务放在一台主机 两个storage节点 注意:Xshell中有多会话管理工具,为了方便管理,建议打开; (1)、(Tra...
  • han156
  • han156
  • 2017年12月03日 21:31
  • 19

Java企业级应用架构设计中的分布式结构

Java企业级应用架构设计中的分布式结构   2010-12-24 13:54:12|  分类:默认分类 |  标签:|字号大中小 订阅 Java企业级应用架构设计是...

OpenStack 对象存储 Swift 架构、企业级应用实践(序)

随着互联网
  • pure810
  • pure810
  • 2014年04月06日 14:53
  • 918

【分布式架构】企业级分布式应用服务EDAS使用攻略(下篇)

产品优势 EDAS 支撑了整个阿里巴巴99%以上的大规模应用系统,其中涵盖了包括会员、交易、商品、店铺、物流和评价在内的所有在线核心系统,在稳定性、可靠性等多个维度具有独特的优势。 更可靠...

【分布式架构】企业级分布式应用服务EDAS使用攻略(下篇)

产品优势 EDAS 支撑了整个阿里巴巴99%以上的大规模应用系统,其中涵盖了包括会员、交易、商品、店铺、物流和评价在内的所有在线核心系统,在稳定性、可靠性等多个维度具有独特的优势。 更可靠...

分布式存储技术及应用

根据did you know(http://didyouknow.org/)的数据,目前互联网上可访问的信息数量接近1秭= 1百万亿亿 (1024)。毫无疑问,各个大型网站也都存储着海量的数据,这...
  • cywosp
  • cywosp
  • 2012年04月12日 13:54
  • 28092

Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用

1.1 应用服务器的无状态特性   应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性。 PS:提到无状态特性,不得不说下Htt...
  • wyqlxy
  • wyqlxy
  • 2015年04月21日 13:32
  • 736
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:企业级分布式存储应用-mogilefs
举报原因:
原因补充:

(最多只允许输入30个字)