mogilefs简单使用

架构

在这里插入图片描述
mogilefs包含了三个节点,tracker、database和storage

  • tracker是mogilefs功能的实现,它相当于一个调度器,用户发来请求后,由tracker通过放database来查询用户想要访问数据的元数据,然后在返回给用户真正的uri。用户再次请求真正的uri。
  • database是存储mogilefs的元数据,tracker来管理和操作。
  • storage node是存储节点,所有的存储文件都是在这个机器上。

其它术语

  • Domain:一个mogilefs可以有多个domain,用来存放不同文件,不同Domain内,同一个Domain内key必须唯一,key可以相同。 每一个存储节点称为一个主机host,一个主机上可以有多个存储设备dev(单独的硬盘),每个设备都有ID号,Domain+Fid用来定位文件。
  • class:文件属性管理,定位文件存储在不同设备上的份数。 一个domain内有多个class,是最小复制单元,而不是文件。 class决定了把数据放在哪几个服务器上
    找文件的时候,通过domain加fileid来查找。

*device:一个存储节点,可以有多个 device, 就是用来存放文件的目录(比较挂载的目录),每个设备都有一个设备 id,需要在 mogstored 的配置文件中的 docroot 配置的项目 指定的目录下面创建相应的设备的目录,目录名为 docroot/devid,设备是不能删除的.只能将其设备的状态的值置为dead,当一个设备 dead 之后,就真的 dead了,里面的数据也无法恢复了,且这个dead了的设备的 id 也不能再用.

mogilefs的安装

主机功能
11.2.3.63tracker,database,mogstored
11.2.3.25mogstored

由于网上已经停止了对mogilefs的更新,所有的包都停留在centos6上。 下面是在centos7上演示

1)安装各种依赖包

yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perl-YAML perl-Time-HiRes```

2)安装mogilefs服务的包

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201213024848869.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0NTY0MzY2,size_16,color_FFFFFF,t_70)



```bash
yum install -y *.rpm

3)安装数据库

yum install -y mariadb-server

4)为数据库创建用户


MariaDB [(none)]> GRANT ALL  ON *.* TO 'ydong'@'11.2.%.%' IDENTIFIED BY 'centos'; 
Query OK, 0 rows affected (0.00 sec)

此种方式创建的用户权限太大,可以专门创建一个用户只对mogilefs表有效

5)生成mogilefs库

[root@localhost ~]# mogdbsetup --dbhost=127.0.0.1 --dbuser=ydong --dbpass=centos --dbport=3306 --dbname=mogilefs

This will attempt to setup or upgrade your MogileFS database.
It won't destroy existing data.
Run with --help for more information.  Run with --yes to shut up these prompts.

Continue? [N/y]: y

Create/Upgrade database name 'mogilefs'? [Y/n]: y   是否生成mogilefs库

Grant all privileges to user 'ydong', connecting from anywhere, to the mogilefs database 'mogilefs'? [Y/n]: y  是否支持远程连接

6)配置tracker

daemonize = 1 ##设置为1表示启动为守护进程 
db_dsn = DBI:mysql:mogilefs:host=127.0.0.1 db_user = username db_pass = password ##配置数据库连接相关信息 
listen = 127.0.0.1:7001 ##mogilefs监听地址,监听在127.0.0.1表示只允许从本机登录进行管理 
query_jobs = 10 ##启动多少个查询工作线程
delete_jobs = 1 ##启动多少个删除工作线程 
replicate_jobs = 5 ##启动多少个复制工作线程 
reaper_jobs = 1 ##启动多少个用于回收资源的线程 
maxconns = 10000 ##存储系统的最大连接数. 
httplisten = 0.0.0.0:7500 ##可通过http访问的服务端口 
mgmtlisten = 0.0.0.0:7501 ##mogilefs的管理端口 
docroot = /var/mogdata ##该项决定了数据的在storage上存储的实际位置,建议使用的是一个单独挂载使用的磁盘

7)启动tracker,mogilefs不用在root用户下启动 需要切到mogilefs用户运行

[root@localhost ~]# mogilefsd -h
Unknown option: h
mogilefsd cannot be run as root

bash-4.2$ systemctl start mogilefsd

8)配置mogstored

[root@localhost ~]# cat /etc/mogilefs/mogstored.conf
maxconns = 10000
httplisten = 0.0.0.0:7500
mgmtlisten = 0.0.0.0:7501
docroot = /data/mogilefs   #数据存放的目录。此目目录需要以mogilefs用户来访问

[root@localhost ~]# mkdir /data/mogilefs -p
[root@localhost ~]# chown -R mogilefs.mogilefs /data/
[root@localhost ~]# ll /data/
总用量 0
drwxr-xr-x 2 mogilefs mogilefs 6 12月 13 03:22 mogilefs

9)启动mogstored节点

[root@localhost ~]# mogstored -c /etc/mogilefs/mogstored.conf --daemon

10)将存储节点加入到tracker中

[root@localhost ~]# mogadm host add  11.2.3.63 --status=alive

显示tracker中的host
[root@localhost ~]# mogadm host list
11.2.3.63 [1]: alive
  IP:       11.2.3.63:7500

修改tracker的host
[root@localhost ~]# mogadm host modify  11.2.3.63 --status=down
[root@localhost ~]# mogadm host list
11.2.3.63 [1]: down
  IP:       11.2.3.63:7500

11)添加存储设备(device)。也就是mogstored里面docroot指定的目录供存储设备使用。在该目录里建目录使用 dev + ID 这种格式,记的所有系统中 ID 不能重复.也必须和配置文件中的路径一样

[root@localhost ~]# mkdir /data/mogilefs/dev1
[root@localhost ~]# chown -R mogilefs.mogilefs /data/mogilefs/

[root@localhost ~]# mogadm device add 11.2.3.63 1
[root@localhost ~]# mogadm device list
11.2.3.63 [1]: alive
                    used(G)    free(G)   total(G)  weight(%)
   dev1:   alive      5.209     44.767     49.976        100


12)添加别的存储节点(11.2.3.25)。 按照1、2、8步骤安装

mogstored -c /etc/mogilefs/mogstored.conf --daemon

13)在tracker中添加


[root@localhost ~]# mogadm host list
11.2.3.63 [1]: alive
  IP:       11.2.3.63:7500

11.2.3.25 [2]: down
  IP:       11.2.3.25:7500

14)为第二个节点添加设备

在11.2.3.25中创建dev2的目录
[root@localhost ~]# ll /data/mogilefs/
总用量 0
drwxr-xr-x 3 mogilefs mogilefs 37 12月 13 03:47 dev2

[root@localhost ~]# mogadm device list
11.2.3.63 [1]: alive
                    used(G)    free(G)   total(G)  weight(%)
   dev1:   alive      5.209     44.767     49.976        100

11.2.3.25 [2]: alive
                    used(G)    free(G)   total(G)  weight(%)
   dev2:   alive      4.014     45.962     49.976        100

15)在tracker中建域

[root@localhost ~]# mogadm domain add imgs 
[root@localhost ~]# mogadm domain add files
[root@localhost ~]# mogadm domain list
 domain               class                mindevcount   replpolicy   hashtype
-------------------- -------------------- ------------- ------------ -------
 files                default                   2        MultipleHosts() NONE   

 imgs                 default                   2        MultipleHosts() NONE   

class:复制文件的最小单位 (最大为64M,如果一个单文件超出此大小将拆分为多个class存储)。在一个域中,可以有多个类,主要是用来控制复制单元的,类是用来做属性管理的,类是比域 domain 低一个级别,可以定义一个文件存储在不同 device 中的份数.一个文件必须通过 domain,class 和 key 才能找出来.我们可以给不同的重要程度的文件,不同热度的文件,来分别用类来控制份数.
mindevcount:表示最小的份数

16)上传文件

[root@localhost ~]# mogupload --trackers=127.0.0.1 --domain=files --key='/fstab' --file='/etc/fstab'

key:http访问的url  
file:本地文件

17)查询文件

[root@localhost ~]# mogfileinfo --tracker=127.0.0.1 --domain=files --key='/fstab'
- file: /fstab
     class:              default
  devcount:                    1
    domain:                files
       fid:                    2
       key:               /fstab
    length:                  541
 - http://11.2.3.25:7500/dev2/0/000/000/0000000002.fid
.fid的文件就是web访问的路径

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值