mogilefs簡單使用
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.63 | tracker,database,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)配置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訪問的路徑
相關文章
- 分散式檔案系統之MogileFS的安裝使用分散式
- Nginx反代MogileFS叢集Nginx
- git簡單使用Git
- OpenFeign簡單使用
- jq 簡單使用
- Quartz 簡單使用quartz
- LinqPad簡單使用
- kvm簡單使用
- 簡單使用 rocketmqMQ
- Badger簡單使用
- Drozer簡單使用
- Github 簡單使用Github
- kustomize簡單使用
- apijson簡單使用APIJSON
- 簡單使用autossh
- BootStrapValidate 簡單使用boot
- GCDAsyncSocket 簡單使用GC
- gorm 簡單使用GoORM
- JPTabBar簡單使用tabBar
- prometheus 簡單使用及簡單 middleware 開發Prometheus
- Kdevelop的簡單使用和簡單除錯dev除錯
- Sentinel簡單使用(1)
- Docker簡單使用MySQLDockerMySql
- RocketMQ的簡單使用MQ
- Disruptor-簡單使用
- python - Counter簡單使用Python
- OD的簡單使用
- Flatbuffer的簡單使用
- docker的簡單使用Docker
- SXSSFWorkbook的簡單使用
- butterfly簡單使用教程
- peewee的簡單使用
- LayUi的簡單使用UI
- elastic APM 簡單使用AST
- Vue簡單的使用Vue
- 簡單使用rpm命令
- MacDroid使用簡單教程~Mac
- uuid的簡單使用UI