一、架构设计
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=<数量>