实现基于mysql主从模式的mogilefs

16 篇文章 0 订阅
4 篇文章 0 订阅

实验环境:
  Mysql-Master:172.17.253.96 mysql+tracker
  Mysql-slave: 172.17.253.101 mysql+tracker
  Node1:172.17.253.77 tracker+store
  Node2:172.17.253.34 tracker+store
  Node3:172.17.253.13 tracker+store

1、 首先实现数据库的主从复制。

mysql-master(172.17.253.96):

[root@centos7 ~]# yum install mairadb-server
    vim /etc/my.cnf
        [mysqld]
        server_id=1
        log_bin=master_bin

[root@centos7 ~]# systemctl start mariadb

[root@centos7 ~]# mysql –uroot
MariaDB [(none)]> grant replication slave,replication client on *.* to slave@'%' identified by 'centos';
MariaDB [(none)]> show master status;                                                                   
+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master_bin.000002 |   604    |              |                  |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

mysql-slave(172.17.253.101):

vim /etc/my.cnf
    [mysqld]
    server_id=2
    relay_log=mysql_relay_bin
    log_bin=master_bin
    log_slave_updates=1

[root@centos7 ~]# systemctl start mariadb

[root@centos7 ~]# mysql –uroot
MariaDB [(none)]> change master to master_host='172.17.253.96',master_user='slave',master_password='centos',master_log_file='master_bin.000002',master_log_pos=604;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 172.17.253.96
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master_bin.000002
          Read_Master_Log_Pos: 95693
               Relay_Log_File: mysql_relay_bin.000002
                Relay_Log_Pos: 95619
        Relay_Master_Log_File: master_bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 95693
              Relay_Log_Space: 95913
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1
1 row in set (0.00 sec)

ERROR: No query specified

Mysql数据库主从实现~~~

2、配置Perl环境、安装包:
[root@centos7 ~]# yum install perl-Net-Netmask perl-IO-String perl-Sys-Syslog perl-IO-AIO –y

实验包:
  MogileFS-Server-2.46-2.el7.centos.noarch.rpm
  perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm
  MogileFS-Server-mogilefsd-2.46-2.el7.centos.noarch.rpm
  perl-MogileFS-Client-1.14-1.el7.centos.noarch.rpm
  MogileFS-Server-mogstored-2.46-2.el7.centos.noarch.rpm
  perl-Perlbal-1.78-1.el6.noarch.rpm
  MogileFS-Utils-2.19-1.el7.centos.noarch.rpm
  各自对照相应主机的环境,安装相应的包。
Mysql-master:

[root@centos7 ~]# mysql –uroot
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mogilefs.* TO mogile@'172.17.%.%' IDENTIFIED BY 'mogile' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

[root@centos7-4 ~]#  mogdbsetup --dbhost=127.0.0.1  --dbuser=mogilefs --dbpass=mogile --yes



登录数据库查看是否已经生成数据库:
[root@centos7 ~]# mysql -uroot
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mogilefs           |
| mysql              |
| performance_schema |
| test               |
| wan                |
| wan2               |
| wan3               |
+--------------------+
8 rows in set (0.12 sec)

MariaDB [(none)]> use mogilefs;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mogilefs]> show tables;
+----------------------+
| Tables_in_mogilefs   |
+----------------------+
| checksum             |
| class                |
| device               |
| domain               |
| file                 |
| file_on              |
| file_on_corrupt      |
| file_to_delete       |
| file_to_delete2      |
| file_to_delete_later |
| file_to_queue        |
| file_to_replicate    |
| fsck_log             |
| host                 |
| server_settings      |
| tempfile             |
| unreachable_fids     |
+----------------------+
17 rows in set (0.00 sec)

  在使用安装包直接安装mogilefs时会有安装脚本来创建mogilefs用户,如果是编译安装,则需要手动创建这个用户。
[root@centos7 ~]# useradd mogilefs

修改tracker配置文件,配置文件为/etc/mogilefs/mogilefsd.conf:


Vim /etc/mogilefs/mogilefsd.conf
# Enable daemon mode to work in background and use syslog
daemonize = 1
# Where to store the pid of the daemon (must be the same in the init script)
pidfile = /var/run/mogilefsd/mogilefsd.pid
# Database connection information
db_dsn = DBI:mysql:mogilefs:host=127.0.0.1
db_user = mogile
db_pass = mogile
# IP:PORT to listen on for mogilefs client requests
listen = 172.17.253.96:7001
# Optional, if you don't define the port above.
conf_port = 7001
# Number of query workers to start by default.
query_jobs = 10
# Number of delete workers to start by default.
delete_jobs = 1
# Number of replicate workers to start by default.
replicate_jobs = 5
# Number of reaper workers to start by default.
# (you don't usually need to increase this)
reaper_jobs = 1
# Number of fsck workers to start by default.
# (these can cause a lot of load when fsck'ing)
#fsck_jobs = 1
# Minimum amount of space to reserve in megabytes
# default: 100
# Consider setting this to be larger than the largest file you
# would normally be uploading.
#min_free_space = 200
# Number of seconds to wait for a storage node to respond.
# default: 2
# Keep this low, so busy storage nodes are quickly ignored.
#node_timeout = 2
# Number of seconds to wait to connect to a storage node.
# default: 2
# Keep this low so overloaded nodes get skipped.
#conn_timeout = 2
# Allow replication to use the secondary node get port,
# if you have apache or similar configured for GET's
#repl_use_get_port = 1

启动tracker服务,服务脚本为:
[root@centos7 ~]# /etc/init.d/mogilefsd start
Starting mogilefsd (via systemctl): [ OK ]

【注】如果服务启动服务报错,查看错误日志,再次检查Perl环境是否配置完整。

Mysql-slave主机上同样启动track服务即可。

3、配置节点上三台主机。Tracker+store
Tracker配置同上面所设置,只是数据库设置时,要指向mysql-master 主机地址,即:

vim /etc/mogilefs/mogilefsd.conf
    db_dsn = DBI:mysql:mogilefs:host=172.17.253.96
    db_user = mogile
    db_pass = mogile
    listen = 172.17.253.77:7001


store节点配置文件:
vim /etc/mogilefs/mogstored.conf
    maxconns = 10000
    httplisten = 0.0.0.0:7500
    mgmtlisten = 0.0.0.0:7501
    docroot = /data/mogdata    #数据存储的路径

创建数据存储路径:
[root@centos7 ~]# mkdir –p /data/mogdata
[root@centos7 ~]# chown –R mogilefs:mogilefs /data/mogdata/

启动服务:

[root@centos7-4 ~]# /etc/init.d/mogilefsd start
[root@centos7-4 ~]# /etc/init.d/mogstored start
[root@centos7-4 ~]# ss –ntl
State       Recv-Q Send-Q              Local Address:Port                             Peer Address:Port              
LISTEN      0      50                              *:3306                                        *:*                  
LISTEN      0      128                             *:7500                                        *:*                  
LISTEN      0      128                             *:7501                                        *:*                  
LISTEN      0      128                             *:111                                         *:*                  
LISTEN      0      128                             *:80                                          *:*                  
LISTEN      0      128                             *:22                                          *:*                  
LISTEN      0      128                     127.0.0.1:631                                         *:*                  
LISTEN      0      128                 172.17.253.77:7001                                        *:*                  
LISTEN      0      100                     127.0.0.1:25                                          *:*                  
LISTEN      0      128                     127.0.0.1:9000                                        *:*                  
LISTEN      0      128                            :::111                                        :::*                  
LISTEN      0      128                            :::22                                         :::*                  
LISTEN      0      128                           ::1:631                                        :::*                  
LISTEN      0      100                           ::1:25                                         :::*      

其余两台主机同样配置。
mogstored程序的启动使主机自身成为一个存储的节点,mogstored的启动后,还需要使用mogadm来让当前的这个主机加入到mogilefs的系统中,这就是一个存储节点。注意存储节点中还需要添加设备,每个设备有一个唯一的ID号,同样也要使用mogadm来加入到mogilefs的系统中。

4、tracker主机上配置
增加节点:

[root@centos7 ~]#  mmogadm --trackers=172.17.253.96:7001 host add node1 --ip=172.17.253.77 --port=7500 --status=alive
[root@centos7 ~]#  mogadm --trackers=172.17.253.96:7001 host add node2 --ip=172.17.253.34 --port=7500 --status=alive
[root@centos7 ~]#  mogadm --trackers=172.17.253.96:7001 host add node3 --ip=172.17.253.11 --port=7500 --status=alive

删除节点:
mogadm –trackers=172.17.253.96:7001 host delete node1
修改节点:
mogadm –trackers=172.17.253.96:7001 host modify node2 –ip=xxxx –port=7500 –status=alive

查看增加的节点:

[root@centos7 ~]# mogadm --trackers=172.17.253.96:7001 host list
node1 [1]: alive
  IP:       172.17.253.77:7500

node2 [2]: alive
  IP:       172.17.253.34:7500

node3 [3]: alive
  IP:       172.17.253.13:7500

或者使用:
[root@centos7 ~]# mogadm --trackers=172.17.253.96:7001 check
Checking trackers...
  172.17.253.96:7001 ... OK

Checking hosts...
  [ 1] node1 ... OK
  [ 2] node2 ... OK
  [ 3] node3 ... OK

Checking devices...
  host device         size(G)    used(G)    free(G)   use%   ob state   I/O%
  ---- ------------ ---------- ---------- ---------- ------ ---------- -----
  [ 1] dev1            46.543      5.138     41.405  11.04%  writeable   0.0
  [ 2] dev2            49.976      3.755     46.221   7.51%  writeable   0.0
  [ 3] dev3            49.976      1.678     48.297   3.36%  writeable   N/A
  ---- ------------ ---------- ---------- ---------- ------
             total:   146.494     10.571    135.923   7.22% 

5、添加设备存储节点:

[root@centos7 ~]#  modadm –trackers=172.17.253.96:7001 device add node1 1
[root@centos7 ~]#  modadm –trackers=172.17.253.96:7001 device add node2 2
[root@centos7 ~]#  modadm –trackers=172.17.253.96:7001 device add node3 3    #ID号不能重复

分别在store节点上创建存储路径:

node1:
    # mkdir /data/mogdata/dev1 -p 
    # chown mogilefs:mogilefs dev1/
node2:
    # mkdir /data/mogdata/dev2 -p 
    # chown mogilefs:mogilefs dev2/
node3:
    # mkdir /data/mogdata/dev3 -p 
    # chown mogilefs:mogilefs dev3/

查看添加的节点:

[root@centos7 ~]# mogadm --trackers=172.17.253.96:7001 device list
node1 [1]: alive
                    used(G)    free(G)   total(G)  weight(%)
   dev1:   alive      5.138     41.404     46.542        100

node2 [2]: alive
                    used(G)    free(G)   total(G)  weight(%)
   dev2:   alive      3.755     46.221     49.976        100

node3 [3]: alive
                    used(G)    free(G)   total(G)  weight(%)
   dev3:   alive      1.678     48.298     49.976        100

删除设备存储节点:
[root@centos7 ~]# mogadm –trackers=172.17.253.96:7001 device mark node1 1 dead

6、添加域
[root@centos7 ~]# mogadm –trackers=172.17.253.96:7001 domain add img
[root@centos7 ~]# mogadm –trackers=172.17.253.96:7001 domain add html

7、添加类:

默认会自动创建类:
[root@centos7 ~]# mogadm --trackers=172.17.253.96:7001 domain list
 domain               class                mindevcount   replpolicy   hashtype
-------------------- -------------------- ------------- ------------ -------
 html                 default                   2        MultipleHosts() NONE   
NONE   
 img                  default                   2        MultipleHosts() NONE       

创建自定义类:
[root@centos7 ~]#  mogadm --trackers=172.17.253.96:7001 class add img ckltext --mindevcount=3

查看类列表:
[root@centos7 ~]# mogadm --trackers=172.17.253.96:7001 domain list
 domain               class                mindevcount   replpolicy   hashtype
-------------------- -------------------- ------------- ------------ -------
 html                 default                   2        MultipleHosts() NONE   

 img                  ckltext                   3        MultipleHosts() NONE   
 img                  default                   2        MultipleHosts() NONE   

8、上传文件测试:


[root@centos7 ~]# mogupload --trackers=172.17.253.77:7001 --domain=img --key='110' --file=/root/test2.jpg

[root@centos7 ~]# mogfileinfo --trackers=172.17.253.77:7001 --domain=img --key='110'
- file: 110
     class:              default
  devcount:                    1
    domain:                  img
       fid:                   28
       key:                  110
    length:                73309
 - http://172.17.253.13:7500/dev3/0/000/000/0000000028.fid

[root@centos7 ~]# mogupload --trackers=172.17.253.96:7001 --domain=img --key='111' --file=/root/test.jpg
[root@centos7 ~]# mogfileinfo --trackers=172.17.253.96:7001 --domain=img --key='111'        
- file: 111
     class:              default
  devcount:                    1
    domain:                  img
       fid:                   29
       key:                  111
    length:                17316
 - http://172.17.253.34:7500/dev2/0/000/000/0000000029.fid

网页访问:
这里写图片描述

这里写图片描述

【注】对于mysql主从复制的实现,还可以结合keepalived。IP漂移来更完美的实现数据库的自动复制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值