一、架構設計
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=<數量>