你好,游客 登录 注册 搜索
背景:
阅读新闻

分布式文件系统 MogileFS 详述

[日期:2015-02-15] 来源:Linux社区  作者:xiaocen [字体: ]

第三步:连接上数据库,给两个用户授权:

[root@node0 ~]# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 46
Server version: 10.0.10-MariaDB-log MariaDB Server

Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> USE mysql;

Database changed

MariaDB [mysql]> GRANT ALL ON *.* TO 'root'@'172.16.%.%' IDENTIFIED BY 'linux';
Query OK, 0 rows affected (0.20 sec)

MariaDB [mysql]> GRANT ALL ON mogdb.* TO 'moguser'@'172.16.%.%' IDENTIFIED BY 'linux';
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.21 sec)

MariaDB [mysql]>

第四步:再到两个节点上,在其中一个上设置即可:

[root@node1 mogilefs]# mogdbsetup --dbhost=172.16.27.88 --dbport=3306 --dbname=mogdb --dbrootuser=root --dbrootpass=linux --dbuser=moguser --dbpass=linux --yes

# 可以再回到node0上查看一下生成的数据库

MariaDB [mysql]> USE mogdb;
Database changed

MariaDB [mogdb]> SHOW TABLES;
+----------------------+
| Tables_in_mogdb      |
+----------------------+
| 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.03 sec)

第五步:在两个节点的其中一个上添加主机:

[root@node1 ~]# mogadm --trackers=172.16.27.1:7001 host add 172.16.27.1 --ip=172.16.27.1 --status=alive
[root@node1 ~]# mogadm --trackers=172.16.27.1:7001 host add 172.16.27.2 --ip=172.16.27.2 --status=alive
[root@node1 mogilefs]# mogadm --trackers=172.16.27.1:7001 host list
172.16.27.1 [1]: alive
 IP:       172.16.27.1:7500

172.16.27.2 [2]: alive
 IP:       172.16.27.2:7500

# 再添加设备

[root@node1 mogilefsd]# mogadm --trackers=172.16.27.1:7001 device add 172.16.27.1 1
[root@node1 mogilefsd]# mogadm --trackers=172.16.27.1:7001 device add 172.16.27.2 2
[root@node1 mogilefsd]# mogadm --trackers=172.16.27.1:7001 device list
172.16.27.1 [1]: alive
                   used(G)    free(G)   total(G)  weight(%)
  dev1:   alive      2.799     15.887     18.686        100

172.16.27.2 [2]: alive
                   used(G)    free(G)   total(G)  weight(%)
  dev2:   alive      1.476     17.210     18.686        100

 

#

[root@node1 ~]# mogadm --trackers=172.16.27.1:7001 domain add images # 添加域
[root@node1 ~]# mogadm --trackers=172.16.27.1:7001 domain add files
[root@node1 ~]# mogadm --trackers=172.16.27.1:7001 domain add html
[root@node1 ~]# mogadm --trackers=172.16.27.1:7001 domain list  # 查看域

domain               class                mindevcount   replpolicy   hashtype
-------------------- -------------------- ------------- ------------ -------
files                default                   2        MultipleHosts() NONE   

html                 default                   2        MultipleHosts() NONE   

images               default                   2        MultipleHosts() NONE   

[root@node1 ~]# mogadm --trackers=172.16.27.1:7001 class add images class0 --mindevcount=2
[root@node1 ~]# mogadm --trackers=172.16.27.1:7001 class list
domain               class                mindevcount   replpolicy   hashtype
-------------------- -------------------- ------------- ------------ -------
files                default                   2        MultipleHosts() NONE   

html                 default                   2        MultipleHosts() NONE   

images               class0                    2        MultipleHosts() NONE #添加类
images               default                   2        MultipleHosts() NONE   
# 上传几张图片和测试的页面上去
[root@node1 ~]# mogupload --trackers=172.16.27.1:7001 --domain=images --key='1.png' --file='/usr/share/backgrounds/default_1920x1200.png'                    
[root@node1 ~]# mogupload --trackers=172.16.27.1:7001 --domain=images --key='2.png' --file='/usr/share/backgrounds/wallpaper-six-2560x1240.png'

[root@node1 ~]# mogupload --trackers=172.16.27.1:7001 --domain=images --key='/images/3.png' --file='/usr/share/backgrounds/CentOS_wallpaper_01_1920x1200.png'

[root@node1 ~]# mogupload --trackers=172.16.27.1:7001 --domain=html --key='/files/index.html' --file='/var/www/html/index.html'
[root@node1 ~]# mogupload --trackers=172.16.27.1:7001 --domain=files --key='/files/index.html' --file='/var/www/html/index.html'

[root@node1 ~]# moglistkeys --trackers=172.16.27.1:7001 --domain=images
/images/3.png
1.png
2.png
[root@node1 ~]# mogfileinfo --trackers=172.16.27.1:7001 --domain=images --key='/images/3.png'
- file: /images/3.png
    class:              default
 devcount:                    2
   domain:               images
      fid:                    5
      key:        /images/3.png
   length:               202652
- http://172.16.27.2:7500/dev2/0/000/000/0000000005.fid
- http://172.16.27.1:7500/dev1/0/000/000/0000000005.fid
[root@node1 ~]# mogfileinfo --trackers=172.16.27.1:7001 --domain=files --key='/files/index.html'
- file: /files/index.html
    class:              default
 devcount:                    2
   domain:                files
      fid:                    9
      key:    /files/index.html
   length:                   53
- http://172.16.27.2:7500/dev2/0/000/000/0000000009.fid
- http://172.16.27.1:7500/dev1/0/000/000/0000000009.fid
[root@node1 ~]#

   可以复制这个地址在页面上测试一下,这里是每上传一个文件就都会在两个节点是都存一份,如果节点多的话它会根据定义的devcount自己选择节点存储几份,这样在一个节点掉了也可以在别的节点在有相同的资源可用;

第六步:以上的都配置好了就可以在前端的Nginx上配置访问控制了,修改配置文件:

[root@node0 nginx]# vim nginx.conf

   upstream mogcluster {    # 定义多个上游服务器
       server 172.16.27.1:7001;
       server 172.16.27.2:7001;
   }
   server {    # 定义一个虚拟主机
       listen 80;
       server_name www.tanxw.com;

       location /images/ {
           mogilefs_tracker mogcluster;
           mogilefs_domain images;

           mogilefs_pass {
               proxy_pass $mogilefs_path;
               proxy_hide_header Content-Type;
               proxy_buffering off;
           }
       }
       location ~* ^(/files/.*)$ {
           mogilefs_tracker mogcluster;
           mogilefs_domain files;

           mogilefs_pass $1 {
               proxy_pass $mogilefs_path;
               proxy_hide_header Content-Type;
               proxy_buffering off;
           }
       }
   }

# 修改好配置文件后保存退出重启服务

[root@node0 nginx]# service nginx restart
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
[root@node0 nginx]#

分布式文件系统 MogileFS 详述

然后在页面上测试访问刚才上传的文件以及图片:

分布式文件系统 MogileFS 详述

分布式文件系统 MogileFS 详述

 

总结:

   最后还可以测试一下把一个节点掉了,试着访问一下看另外正常工作的节点可不可以正常提供服务,这里还可以添加很多功能的,后续还会更新相关的基础网站服务器架构搭建的文章,在此,如果发现在什么不妥或做得不到的还望大家多提点建议。

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-02/113474.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款