mogilefs는 사용하기 쉽습니다.

모길 레프

건축물

여기에 사진 설명 삽입
mogilefs는 3 개의 노드, 트래커, 데이터베이스 및 스토리지를 포함합니다.

  • Tracker는 mogilefs 기능을 구현 한 것으로, 스케줄러와 동일하며 사용자가 요청을 보낸 후 사용자가 데이터베이스를 통해 접근하고자하는 데이터의 메타 데이터를 조회 한 후 실제 URI를 사용자에게 반환합니다. 사용자는 실제 URI를 다시 요청합니다.
  • 데이터베이스는 mogilef의 메타 데이터를 저장하고 트래커는이를 관리하고 운영합니다.
  • 스토리지 노드는 스토리지 노드이며 모든 저장된 파일은이 시스템에 있습니다.

기타 용어

  • Domain: mogilef는 서로 다른 파일을 저장하는 데 사용되는 여러 도메인을 가질 수 있습니다. 다른 도메인에서는 동일한 도메인의 키가 고유해야하며 키가 동일 할 수 있습니다. 각 스토리지 노드를 호스트 호스트라고합니다. 호스트에는 여러 스토리지 디바이스 dev (개별 하드 디스크)가있을 수 있습니다. 각 디바이스에는 ID 번호가 있으며 Domain + Fid는 파일을 찾는 데 사용됩니다.
  • class: 파일 속성 관리, 다른 장치에 저장된 파일의 사본 수를 찾습니다. 도메인에는 파일이 아니라 가장 작은 복사 단위 인 여러 클래스가 있습니다. 클래스는 데이터를 저장할 서버를 결정
    하며 파일을 찾을 도메인과 파일 ID를 통해 검색합니다.

* device: 스토리지 노드에는 파일을 저장하는 데 사용되는 디렉토리 인 여러 장치가있을 수 있습니다 (마운트 된 디렉토리 비교). 각 장치에는 장치 ID가 있으며 mogstored 구성 파일의 docroot 구성 항목에 지정해야합니다. 디렉토리 생성 디렉토리 이름은 docroot / devid입니다. 장치는 삭제할 수 없습니다. 장치 상태 값을 dead로만 설정할 수 있습니다. 장치가 죽은 경우 실제로 죽은 상태입니다. 내부 데이터 복원 할 수 없으며 죽은 장치의 ID를 더 이상 사용할 수 없습니다.

mogilefs 설치

주최자 풍모
11.2.3.63 추적기, 데이터베이스, mogstored
11.2.3.25 mogstored

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) 트래커 구성

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) 추적기를 시작합니다. mogilefs는 루트 사용자로 시작할 필요가 없으며 실행하려면 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) 추적기에 스토리지 노드 추가

[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) 저장 장치 (장치)를 추가합니다. 즉, 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) 트래커 추가


[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) 트래커에서 도메인 구축

[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访问的路径

여기에 사진 설명 삽입

추천

출처blog.csdn.net/qq_44564366/article/details/108439891