企業級分佈式存儲應用-mogilefs

一、架構設計

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=<數量>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章