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

分布式文件系统之MogileFS

461次阅读
没有评论

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

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7960732
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
免费领取huggingface的2核16G云服务器,超简单教程

免费领取huggingface的2核16G云服务器,超简单教程

免费领取 huggingface 的 2 核 16G 云服务器,超简单教程 前言 HuggingFace.co...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...