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

一、架构设计

1.架构设计

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

2.服务器准备

主机IP1作用备注
mogilefs-mysql01192.168.16.173mysql+trackertracker+数据库主节点
mogilefs-mysql02192.168.17.173mysql从+trackertracker+数据库从节点
mogilefs-store01192.168.17.174storedstored存储
mogilefs-store02192.168.17.175storedstored存储
mogilefs-store03192.168.17.176storedstored存储

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=<数量>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值