阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

分布式文件系统之MogileFS

137次阅读
没有评论

共计 15426 个字符,预计需要花费 39 分钟才能阅读完成。

本节我们将来认识下分布式文件系统,不过我主要讲的是关于其中的一个比较流行的 mogilefs 进行介绍,好了其他的不多说了,下面我们就开始吧。

什么是分布式文件系统?

什么是分布式文件系统(Distributed File System)?顾名思义,就是分布式 + 文件系统。它包含了 2 方面,从文件系统的客户端的角度来看,他就是一个标准的文件系统,提供了 API,由此可以进行文件的创建、删除、读写等操作;从内部来看的话,分布式文件系统则与普通的文件系统不同,它不在是本地的磁盘中,它的内容和目录都不是存储在本地磁盘中,而是通过网络传输到远程主机上,并且同一个文件存储在不只一台远程主机中,而是在一簇主机中进行分布式存储,协同提供服务。

MogileFS 设置 Memcached http://www.linuxidc.com/Linux/2012-03/56905.htm

在 MogileFS 中使用 Nginx http://www.linuxidc.com/Linux/2012-03/56904.htm

在开源分布式文件系统 MogileFS 中使用 Nginx http://www.linuxidc.com/Linux/2012-03/56573.htm

自定义 Nagios 监控 MogileFS 存储节点脚本 http://www.linuxidc.com/Linux/2011-12/49394.htm

  常见的分布式文件系统

      GFS:Google File System

      HDFS:适合存储大文件;

      TFS:在名称节点上将元数据存储于关系型数据中,文件数量不再受限于名称节点的内存空间;可以存储海量小文件;

      Lustre: 企业级应用,重量级;

      GlusterFS: 适用于存储少量大文件,流媒体,云

      MooseFS: 通用简便,适用于存储小文件,大文件也不错

      Mogilefs: 使用 Perl 语言,FastDFS

      FastDFS:在内存中存储

      Ceph:内核级别,支持 PB 级别存储

 

 

MogileFS

  MogileFS 是一个开源的分布式文件存储系统,由 LiveJournal 旗下的 DangaInteractive 公司开发。Danga 团队开发了包括 Memcached、MogileFS、Perlbal 等多个知名的开源项目。目前使用 MogileFS 的公司非常多,如日本排名先前的几个互联公司及国内的 yupoo(又拍)、digg、豆瓣、1 号店、大众点评、搜狗和安居客等,分别为所在的组织或公司管理着海量的图片。

 

MogileFS 的特性:

  1、应用层:用户空间文件系统,无须特殊的核心组件

  2、无单点:(tracker, mogstore, database(MySQL))

  3、自动文件复制:复制的最小单位不是文件,而 class;

  4、传输中立,无特殊协议:可以通过 NFS 或 HTTP 进行通信;

  5、比 RAID 好多了

  6、简单的命名空间:每个文件对应一个 key:用于 domain 定义名称空间

  7、不共享任何数据:

MogileFS 组件:

 

Tracker nodes:MogileFS 的核心,是一个调度器;服务进程为 mogilefsd; 职责:删除、复制、监控、查询等;

storge nodes:mogstored 进程: 数据存储的位置,通常是一个 HTTP(WebDAV)服务器,用来数据的创建、删除、获取;

Database nodes(MySQL): 用于为 tracker 存储元数据信息,mogileFS

 

实验:构建基于 Nginx+mogilefs 的分布式文件系统

实验拓扑图:

分布式文件系统之 MogileFS

总的实验步骤如下: 由于有些步骤连在一起做,所以做的时候可能并不是完全按照以下步骤进行:

安装 tracker:

  1、安装相关的包:

  MogileFS-Server-2.46-2.el6.noarch.rpm

  MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm

  perl-Net-Netmask-1.9015-8.el6.noarch.rpm

  MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm

  perl-Perlbal-1.78-1.el6.noarch.rpm

  2、授权数据库用户,并初始 mysql 数据库

  # mogdbsetup

  3、修改配置文件

  db_dsn = DBI:mysql:DBNAME:host=HOSTNAME

  4、启动 mogilefsd 进程

安装 mogstord:

  1、安装相关的包

  MogileFS-Server-2.46-2.el6.noarch.rpm

  MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm

  perl-Net-Netmask-1.9015-8.el6.noarch.rpm

  MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm

  perl-Perlbal-1.78-1.el6.noarch.rpm

  perl-IO-AIO

  2、准备存储设备

  挂载至某路径下,确认此路径下存在文件 devN

  此路径的属主和属组为 mogilefs.mogilefs

  3、修改配置文件 /etc/mogilefs/mogstored.conf

  docRoot=

  前面的挂载路径;

  配置 mogielfs:

  1、向 tracker 添加各 mogstored 主机

  mogadm –trackers=TRACKER_NODE host add

  2、向 tracker 添加各设备

  mogadm –trackers=TRACKER_NODE device add

  3、为 tracker 定义名称空间 domain

  mogadm –trackers=TRACKER_NODE domain add

  4、为 domain 添加一个或多个 class

  mogadm –trackers=TRACKER_NODE class add

    可同时副本的最少个数;

 

好了下面就开始安装了。

2 个 storage 节点都装上以下几个包

[root@localhost mogilefs]# ls    
MogileFS-Server-2.46-2.el6.noarch.rpm            MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm  perl-MogileFS-Client-1.14-1.el6.noarch.rpm  perl-Perlbal-1.78-1.el6.noarch.rpm    
MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm  MogileFS-Utils-2.19-1.el6.noarch.rpm            perl-Net-Netmask-1.9015-8.el6.noarch.rpm    
[root@localhost mogilefs]# yum install -y * perl-IO-AIO

各自创建存储目录(2 个节点分别为 dev{1,2})

第一个节点:

[root@www mog]# mkdir -pv /mogdata/data/dev1    
mkdir: created directory `/mogdata’    
mkdir: created directory `/mogdata/data’    
mkdir: created directory `/mogdata/data/dev1′

第二个节点:

[root@localhost mog]# mkdir -pv /mogdata/data/dev2    
mkdir: created directory `/mogdata’    
mkdir: created directory `/mogdata/data’    
mkdir: created directory `/mogdata/data/dev2′

修改文件夹权限

[root@www ~]# chown -R mogilefs.mogilefs /mogdata/data/

数据库授权

mysql 节点安装并启动 mysqld

[root@localhost mog]# yum install mysql mysql-server

[root@localhost mog]# service mysqld start

Please report any problems with the /usr/bin/mysqlbug script!

                                                          [OK]    
Starting mysqld:                                          [OK]

 

进入 mysql 进行授权

mysql> grant all on mogilefs.* to ‘moguser’@’172.16.%.%’ identified by ‘mogpass’;    
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;    
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to ‘root’@’172.16.%.%’ identified by ‘mageedu’;    
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;    
Query OK, 0 rows affected (0.00 sec)

 

OK,下面到 storage 端进行数据库初始化

分布式文件系统之 MogileFS

初始化完成可以在数据库中查看

分布式文件系统之 MogileFS

 

 

修改配置文件

注意 2 个节点中都要修改

[root@www mog]# vim /etc/mogilefs/mogilefsd.conf

分布式文件系统之 MogileFS

然后就可以启动服务了

[root@www mog]# service mogilefsd start    
Starting mogilefsd                                        [OK]

查看端口是否开启

分布式文件系统之 MogileFS

 

下面修改 mogstored 的配置文件并启动服务(2 个节点都要改)

[root@localhost mog]# vim /etc/mogilefs/mogstored.conf

分布式文件系统之 MogileFS

[root@www ~]# service mogstored start    
Starting mogstored                                        [OK]

查看端口是否启动

分布式文件系统之 MogileFS

 

添加节点

[root@www ~]# mogadm –trackers=172.16.6.20:7001 host add 172.16.6.20 –ip=172.16.6.20 –status=alive    
[root@www ~]# mogadm –trackers=172.16.6.20:7001 host add 172.16.6.30 –ip=172.16.6.30 –status=alive

查看是否添加成功

分布式文件系统之 MogileFS 

分布式文件系统之 MogileFS

 

添加设备

 

[root@www ~]# mogadm –trackers=172.16.6.20:7001,172.16.6.30:7001 device add 172.16.6.20 1    
[root@www ~]# mogadm –trackers=172.16.6.20:7001,172.16.6.30:7001 device add 172.16.6.30 2

查看是否添加成功

分布式文件系统之 MogileFS

发现刚刚的文件目录的权限没给。注: 修改权限的步骤我没写在这里,我放到了上面的修改权限

修改之后就 OK:

分布式文件系统之 MogileFS

 

创建 domain:实现名称空间

[root@www ~]# mogadm –trackers=172.16.6.20:7001,172.16.6.30:7001 domain add files

[root@www ~]# mogadm –trackers=172.16.6.20:7001,172.16.6.30:7001 domain add images

 

查看生成的 domain

分布式文件系统之 MogileFS

创建 class:复制文件的最小单位

分布式文件系统之 MogileFS

解释下这里的几个参数意思:

mindevcount: 最小复制文件的份数

replpolicy: 复制份数

hashtype: 采用的 hash 的类型

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-10/107519p2.htm

好了下面就可以上传一下文件试一下看看了

上传图片文件

[root@www ~]# mogupload –trackers=172.16.6.20:7001 –domain=images –key=’/a.jepg’ –file=’/root/75b4519340.jpg’

上传文本文件

[root@www ~]# mogupload –trackers=172.16.6.20:7001 –domain=files –key=’/init.html’ –file=’/etc/inittab’

 

查看文件的 fid 进行访问

[root@www ~]# mogfileinfo –trackers=172.16.6.20:7001 –domain=images –key=’/a.jepg’    
– file: /a.jepg    
    class:              default    
  devcount:                    2    
    domain:              images    
      fid:                    4    
      key:              /a.jepg    
    length:              432441    
– http://172.16.6.30:7500/dev2/0/000/000/0000000004.fid    
– http://172.16.6.20:7500/dev1/0/000/000/0000000004.fid

分布式文件系统之 MogileFS

[root@www ~]# mogfileinfo –trackers=172.16.6.20:7001 –domain=files –key=’/init.html’    
– file: /init.html    
    class:              default    
  devcount:                    2    
    domain:                files    
      fid:                    5    
      key:          /init.html    
    length:                  884    
– http://172.16.6.20:7500/dev1/0/000/000/0000000005.fid    
– http://172.16.6.30:7500/dev2/0/000/000/0000000005.fid

分布式文件系统之 MogileFS

OK,成功了。

 

但是如果是通过 fid 来访问的方式实在是太过拙劣,我们能不能通过直接访问如 172.16.6.20/a.jpeg 这种方式来访问呢

没错,那这就是用 nginx 来反向代理的意义了,我们可以通过 nginx 上的 mogilefs 模块来实现这种功能,那么下面就来让我们安装配置吧

 

 

nginx 的编译安装

由于 yum 安装的 nginx 不支持 mogilefs 这个模块,因此我们只能编译安装了

编译之前确保编译环境准备就绪

# yum groupinstall “Development Tools” “Server Platform Deveopment”    
# yum install openssl-devel pcre-devel

下面我们需要编译安装的包已经模块包

这里我已经下载好了

[root@localhost ~]# ls  
anaconda-ks.cfg  install.log  install.log.syslog  mogilefs  nginx-1.6.1.tar.gz  nginx_mogilefs_module-1.0.4.tar.gz  

创建系统用户 nginx

[root@localhost nginx-1.6.1]# groupadd -r nginx    
[root@localhost nginx-1.6.1]# useradd -g nginx -r nginx

 

2 个包都进行解压

[root@localhost ~]# tar xf nginx-1.6.1.tar.gz    
[root@localhost ~]# tar xf nginx_mogilefs_module-1.0.4.tar.gz

编译安装 nginx

[root@localhost ~]# cd nginx-1.6.1

分布式文件系统之 MogileFS

[root@localhost nginx-1.6.1]# make && make install

ok,安装完毕

 

修改配置文件使 nginx 进行反向代理

[root@localhost nginx-1.6.1]# vim /etc/nginx/nginx.conf

以下 yellow 字体为加入的配置

worker_processes  1;

events {
    worker_connections  1024;    
}

http {
    include      mime.types;    
    default_type  application/octet-stream;

      sendfile        on;    
    #tcp_nopush    on;

    #keepalive_timeout  0;    
    keepalive_timeout  65;

    #gzip  on;    
    upstream trackers {定义上流服务器集群      
      server 172.16.6.20:7001;      
      server 172.16.6.30:7001;      
}      
    server {
        listen      80;    
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root  html;    
            index  index.html index.htm;    
        }    
      location ~* ^(/img/.*)$ {注意为了方便起见,这里我只是对图片这个区域进行了定义,

          mogilefs_tracker trackers;     这里 并没有对其他区域定义,对其他区域定义的方式也一样      
          mogilefs_domain images;    指定区域       
          mogilefs_noverify on;

          mogilefs_pass $1{

              proxy_pass $mogilefs_path;      
              proxy_hide_header Content-Type;      
              proxy_buffering off;      
                }      
          }   
           

        error_page  500 502 503 504  /50x.html;    
        location = /50x.html {
            root  html;    
                  }

            }

  }

 

为 nginx 提供类似 service 的启动脚本

[root@localhost nginx-1.6.1]# vim /etc/init.d/nginx

#!/bin/sh   

 

#   

 

# nginx – this script starts and stops the nginx daemon   

 

#   

 

# chkconfig:  – 85 15   

 

# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \   

 

#              proxy and IMAP/POP3 proxy server   

 

# processname: nginx   

 

# config:      /etc/nginx/nginx.conf   

 

# config:      /etc/sysconfig/nginx   

 

# pidfile:    /var/run/nginx.pid   

 

# Source function library.   

 

. /etc/rc.d/init.d/functions   

 

# Source networking configuration.   

 

. /etc/sysconfig/network   

 

# Check that networking is up.   

 

[“$NETWORKING” = “no”] && exit 0   

 

nginx=”/usr/sbin/nginx”   

 

prog=$(basename $nginx)   

 

NGINX_CONF_FILE=”/etc/nginx/nginx.conf”   

 

[-f /etc/sysconfig/nginx] && . /etc/sysconfig/nginx   

 

lockfile=/var/lock/subsys/nginx   

 

make_dirs() {   

 

  # make required directories   

 

  user=`nginx -V 2>&1 | grep “configure arguments:” | sed ‘s/[^*]*–user=\([^]*\).*/\1/g’ -`   

 

  options=`$nginx -V 2>&1 | grep ‘configure arguments:’`   

 

  for opt in $options; do   

 

      if [`echo $opt | grep ‘.*-temp-path’`]; then   

 

          value=`echo $opt | cut -d “=” -f 2`   

 

          if [! -d “$value”]; then   

 

              # echo “creating” $value   

 

              mkdir -p $value && chown -R $user $value   

 

          fi   

 

      fi   

 

  done   

 

}   

 

start() {   

 

    [-x $nginx] || exit 5   

 

    [-f $NGINX_CONF_FILE] || exit 6   

 

    make_dirs   

 

    echo -n $”Starting $prog: ”   

 

    daemon $nginx -c $NGINX_CONF_FILE   

 

    retval=$?   

 

    echo   

 

    [$retval -eq 0] && touch $lockfile   

 

    return $retval   

 

}   

 

stop() {   

 

    echo -n $”Stopping $prog: ”   

 

    killproc $prog -QUIT   

 

    retval=$?   

 

    echo   

 

    [$retval -eq 0] && rm -f $lockfile   

 

    return $retval   

 

}   

 

restart() {   

 

    configtest || return $?   

 

    stop   

 

    sleep 1   

 

    start   

 

}   

 

reload() {   

 

    configtest || return $?   

 

    echo -n $”Reloading $prog: ”   

 

    killproc $nginx -HUP   

 

    RETVAL=$?   

 

    echo   

 

}   

 

force_reload() {   

 

    restart   

 

}   

 

configtest() {   

 

  $nginx -t -c $NGINX_CONF_FILE   

 

}   

 

rh_status() {   

 

    status $prog   

 

}   

 

rh_status_q() {   

 

    rh_status >/dev/null 2>&1   

 

}   

 

case “$1” in   

 

    start)   

 

        rh_status_q && exit 0   

 

        $1   

 

        ;;   

 

    stop)   

 

        rh_status_q || exit 0   

 

        $1   

 

        ;;   

 

    restart|configtest)   

 

        $1   

 

        ;;   

 

    reload)   

 

        rh_status_q || exit 7   

 

        $1   

 

        ;;   

 

    force-reload)   

 

        force_reload   

 

        ;;   

 

    status)   

 

        rh_status   

 

        ;;   

 

    condrestart|try-restart)   

 

        rh_status_q || exit 0   

 

            ;;   

 

    *)   

 

        echo $”Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}”   

 

        exit 2   

 

esac

给予执行权限

[root@localhost nginx-1.6.1]# chmod +x /etc/init.d/nginx

启动服务

root@localhost nginx-1.6.1]# service nginx start    
Starting nginx:                                            [OK]

 

OK,下面我们就可以测试下了

先传一张图片到服务器上

[root@www ~]# mogupload –trackers=172.16.6.20:7001 –domain=images –key=’/img/a.jpg’ –file=’/root/75b4519340.jpg’

OK,下面我们直接用 key 的路径进行访问

分布式文件系统之 MogileFS

OK, 实验完成。

那么本节的内容就讲到这里,欢迎大家的批评指正,谢谢!

本节我们将来认识下分布式文件系统,不过我主要讲的是关于其中的一个比较流行的 mogilefs 进行介绍,好了其他的不多说了,下面我们就开始吧。

什么是分布式文件系统?

什么是分布式文件系统(Distributed File System)?顾名思义,就是分布式 + 文件系统。它包含了 2 方面,从文件系统的客户端的角度来看,他就是一个标准的文件系统,提供了 API,由此可以进行文件的创建、删除、读写等操作;从内部来看的话,分布式文件系统则与普通的文件系统不同,它不在是本地的磁盘中,它的内容和目录都不是存储在本地磁盘中,而是通过网络传输到远程主机上,并且同一个文件存储在不只一台远程主机中,而是在一簇主机中进行分布式存储,协同提供服务。

MogileFS 设置 Memcached http://www.linuxidc.com/Linux/2012-03/56905.htm

在 MogileFS 中使用 Nginx http://www.linuxidc.com/Linux/2012-03/56904.htm

在开源分布式文件系统 MogileFS 中使用 Nginx http://www.linuxidc.com/Linux/2012-03/56573.htm

自定义 Nagios 监控 MogileFS 存储节点脚本 http://www.linuxidc.com/Linux/2011-12/49394.htm

  常见的分布式文件系统

      GFS:Google File System

      HDFS:适合存储大文件;

      TFS:在名称节点上将元数据存储于关系型数据中,文件数量不再受限于名称节点的内存空间;可以存储海量小文件;

      Lustre: 企业级应用,重量级;

      GlusterFS: 适用于存储少量大文件,流媒体,云

      MooseFS: 通用简便,适用于存储小文件,大文件也不错

      Mogilefs: 使用 Perl 语言,FastDFS

      FastDFS:在内存中存储

      Ceph:内核级别,支持 PB 级别存储

 

 

MogileFS

  MogileFS 是一个开源的分布式文件存储系统,由 LiveJournal 旗下的 DangaInteractive 公司开发。Danga 团队开发了包括 Memcached、MogileFS、Perlbal 等多个知名的开源项目。目前使用 MogileFS 的公司非常多,如日本排名先前的几个互联公司及国内的 yupoo(又拍)、digg、豆瓣、1 号店、大众点评、搜狗和安居客等,分别为所在的组织或公司管理着海量的图片。

 

MogileFS 的特性:

  1、应用层:用户空间文件系统,无须特殊的核心组件

  2、无单点:(tracker, mogstore, database(MySQL))

  3、自动文件复制:复制的最小单位不是文件,而 class;

  4、传输中立,无特殊协议:可以通过 NFS 或 HTTP 进行通信;

  5、比 RAID 好多了

  6、简单的命名空间:每个文件对应一个 key:用于 domain 定义名称空间

  7、不共享任何数据:

MogileFS 组件:

 

Tracker nodes:MogileFS 的核心,是一个调度器;服务进程为 mogilefsd; 职责:删除、复制、监控、查询等;

storge nodes:mogstored 进程: 数据存储的位置,通常是一个 HTTP(WebDAV)服务器,用来数据的创建、删除、获取;

Database nodes(MySQL): 用于为 tracker 存储元数据信息,mogileFS

 

实验:构建基于 Nginx+mogilefs 的分布式文件系统

实验拓扑图:

分布式文件系统之 MogileFS

总的实验步骤如下: 由于有些步骤连在一起做,所以做的时候可能并不是完全按照以下步骤进行:

安装 tracker:

  1、安装相关的包:

  MogileFS-Server-2.46-2.el6.noarch.rpm

  MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm

  perl-Net-Netmask-1.9015-8.el6.noarch.rpm

  MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm

  perl-Perlbal-1.78-1.el6.noarch.rpm

  2、授权数据库用户,并初始 mysql 数据库

  # mogdbsetup

  3、修改配置文件

  db_dsn = DBI:mysql:DBNAME:host=HOSTNAME

  4、启动 mogilefsd 进程

安装 mogstord:

  1、安装相关的包

  MogileFS-Server-2.46-2.el6.noarch.rpm

  MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm

  perl-Net-Netmask-1.9015-8.el6.noarch.rpm

  MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm

  perl-Perlbal-1.78-1.el6.noarch.rpm

  perl-IO-AIO

  2、准备存储设备

  挂载至某路径下,确认此路径下存在文件 devN

  此路径的属主和属组为 mogilefs.mogilefs

  3、修改配置文件 /etc/mogilefs/mogstored.conf

  docRoot=

  前面的挂载路径;

  配置 mogielfs:

  1、向 tracker 添加各 mogstored 主机

  mogadm –trackers=TRACKER_NODE host add

  2、向 tracker 添加各设备

  mogadm –trackers=TRACKER_NODE device add

  3、为 tracker 定义名称空间 domain

  mogadm –trackers=TRACKER_NODE domain add

  4、为 domain 添加一个或多个 class

  mogadm –trackers=TRACKER_NODE class add

    可同时副本的最少个数;

 

好了下面就开始安装了。

2 个 storage 节点都装上以下几个包

[root@localhost mogilefs]# ls    
MogileFS-Server-2.46-2.el6.noarch.rpm            MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm  perl-MogileFS-Client-1.14-1.el6.noarch.rpm  perl-Perlbal-1.78-1.el6.noarch.rpm    
MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm  MogileFS-Utils-2.19-1.el6.noarch.rpm            perl-Net-Netmask-1.9015-8.el6.noarch.rpm    
[root@localhost mogilefs]# yum install -y * perl-IO-AIO

各自创建存储目录(2 个节点分别为 dev{1,2})

第一个节点:

[root@www mog]# mkdir -pv /mogdata/data/dev1    
mkdir: created directory `/mogdata’    
mkdir: created directory `/mogdata/data’    
mkdir: created directory `/mogdata/data/dev1′

第二个节点:

[root@localhost mog]# mkdir -pv /mogdata/data/dev2    
mkdir: created directory `/mogdata’    
mkdir: created directory `/mogdata/data’    
mkdir: created directory `/mogdata/data/dev2′

修改文件夹权限

[root@www ~]# chown -R mogilefs.mogilefs /mogdata/data/

数据库授权

mysql 节点安装并启动 mysqld

[root@localhost mog]# yum install mysql mysql-server

[root@localhost mog]# service mysqld start

Please report any problems with the /usr/bin/mysqlbug script!

                                                          [OK]    
Starting mysqld:                                          [OK]

 

进入 mysql 进行授权

mysql> grant all on mogilefs.* to ‘moguser’@’172.16.%.%’ identified by ‘mogpass’;    
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;    
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to ‘root’@’172.16.%.%’ identified by ‘mageedu’;    
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;    
Query OK, 0 rows affected (0.00 sec)

 

OK,下面到 storage 端进行数据库初始化

分布式文件系统之 MogileFS

初始化完成可以在数据库中查看

分布式文件系统之 MogileFS

 

 

修改配置文件

注意 2 个节点中都要修改

[root@www mog]# vim /etc/mogilefs/mogilefsd.conf

分布式文件系统之 MogileFS

然后就可以启动服务了

[root@www mog]# service mogilefsd start    
Starting mogilefsd                                        [OK]

查看端口是否开启

分布式文件系统之 MogileFS

 

下面修改 mogstored 的配置文件并启动服务(2 个节点都要改)

[root@localhost mog]# vim /etc/mogilefs/mogstored.conf

分布式文件系统之 MogileFS

[root@www ~]# service mogstored start    
Starting mogstored                                        [OK]

查看端口是否启动

分布式文件系统之 MogileFS

 

添加节点

[root@www ~]# mogadm –trackers=172.16.6.20:7001 host add 172.16.6.20 –ip=172.16.6.20 –status=alive    
[root@www ~]# mogadm –trackers=172.16.6.20:7001 host add 172.16.6.30 –ip=172.16.6.30 –status=alive

查看是否添加成功

分布式文件系统之 MogileFS 

分布式文件系统之 MogileFS

 

添加设备

 

[root@www ~]# mogadm –trackers=172.16.6.20:7001,172.16.6.30:7001 device add 172.16.6.20 1    
[root@www ~]# mogadm –trackers=172.16.6.20:7001,172.16.6.30:7001 device add 172.16.6.30 2

查看是否添加成功

分布式文件系统之 MogileFS

发现刚刚的文件目录的权限没给。注: 修改权限的步骤我没写在这里,我放到了上面的修改权限

修改之后就 OK:

分布式文件系统之 MogileFS

 

创建 domain:实现名称空间

[root@www ~]# mogadm –trackers=172.16.6.20:7001,172.16.6.30:7001 domain add files

[root@www ~]# mogadm –trackers=172.16.6.20:7001,172.16.6.30:7001 domain add images

 

查看生成的 domain

分布式文件系统之 MogileFS

创建 class:复制文件的最小单位

分布式文件系统之 MogileFS

解释下这里的几个参数意思:

mindevcount: 最小复制文件的份数

replpolicy: 复制份数

hashtype: 采用的 hash 的类型

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-10/107519p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计15426字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中