分布式存儲 Mogilefs 部署

MogileFS是一個開源的分布式存儲的解決方案,主要工作組件由三部分組成:
Tracker節點:生成映射表存儲于DB,并用于接收客戶端請求,通過查詢數據庫對客戶端提供后端所存儲的真實文件位置
DB節點:主要存儲數據的元數據信息,可以理解為客戶端來獲取數據文件時提供的Key和真實存在存儲里面的文件名的對照表
Storage節點:用于存儲文件的節點。
工作流程,tracker收到客戶端的請求,tracker通過查詢DB節點,將客戶端所請求的文件,對應Storage存儲的位置在返回給客戶端,客戶端在通過拿到的文件名以及文件位置,再去Storage上查找。

實驗環境:

兩臺centos7 其中1臺配置nginx+tracker+db+storage節點,另外一臺只提供Storage。

安裝:

由perl語言開發,未被收錄到base和epel源中,這里我們采取在cpan上安裝。

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

先安裝這一堆玩意,以便讓cpan能正確安裝mogilefs

安裝完成后直接執行

cpan MogileFS::Server

分布式存儲 Mogilefs 部署

這里一路回車,然后知道箭頭前兩處,提示是否自動搜索cpan站點,一定要選no 不然得等死,第二個箭頭繼續n 他提示是否提供一些站點我們自行選擇,也可以yes根據提示慢慢選,但是我這里no掉了,下面叫你輸入cpan站點,用的163的cpan鏡像站點,這樣安裝會比較快,然后又是一路回車

接著開始安裝,可以看到他還會自動解決一些依賴關系

分布式存儲 Mogilefs 部署

分布式存儲 Mogilefs 部署

安裝完成過后看到已經有了關于mogilefs的命令了 其中mogilefsd是tracker的啟動命令,mogstored是存儲節點的啟動命令 mogdbsetup是為我們初始化數據庫的。

然后執行

cpan MogileFS::Utils 

安裝mogilefs的管理工具

接著,我們去安裝數據庫,并且授權一個賬號可以訪問,就不演示了。

分布式存儲 Mogilefs 部署

使用mogdbsetup –help可以看到支持的選項

注意 這里我只簡單給了兩個參數,默認會使用root用戶連接localhost去創建數據庫,應該也會創建用戶之前授權白做了,因此如果數據庫單獨提供,并且root有密碼,按上圖的參數寫全即可

接著幾個Y 就可以創建成功了,接著連入數據庫看到給我們驗證是否初始化。

分布式存儲 Mogilefs 部署

接著提供一個配置文件

分布式存儲 Mogilefs 部署

配置文件中提供的指令就不解釋了,基本能見名之意,這里需要提一下,需要注意兩點:

1、mogilefsd 不能以root用戶運行,所以要su到另一個用戶啟動(至于具體為啥,我去找了,沒找到解釋的,應該還是出于安全考慮吧,把權限控制到最小,畢竟生產環境中如果能不用root用戶運行的進程我們都應該不用root運行)

2、mogilefsd啟動時可以用類似–daemon=1 db_user= 。。。來啟動,完全可以不需要配置文件啟動的,另外這里只提供了一些基本的配置指令,具體可以去https://github.com/mogilefs/MogileFS-Server/tree/master/conf  了解。

然后提供storge的配置文件 并啟動服務

分布式存儲 Mogilefs 部署

這里提供了一個http的訪問接口為7500,7501為tracker檢測后端健康狀態的端口,docroot就是我們真是存放數據的位置了。

記得先提供這么一個路徑,否則會啟動不了,接著去配置第二臺storage節點就不演示了和第一個節點一樣(創建的目錄名需要修改一下,在tracker是以全局看的,所有主機的存儲節點應該標識唯一)。

分布式存儲 Mogilefs 部署

添加兩個主機

分布式存儲 Mogilefs 部署

添加兩個主機上的設備,這里的設備你可以理解為就是數據存儲的位置

分布式存儲 Mogilefs 部署

出問題了,識別不了空間!?。?!

分布式存儲 Mogilefs 部署

可以了,這里出的問題是啥呢~ 看下面兩張圖就清楚了

分布式存儲 Mogilefs 部署

分布式存儲 Mogilefs 部署

分別是兩個節點上的~ 看出來了么~~ 

一個主機我是修改了stroge配置文件,一個是我在原有目錄上在此新建了一個目錄。

由此可見,創建dev目錄的位置 需要在docroot指的位置下才行~~~~~~~

接著我們就可以嘗試上傳文件了~

分布式存儲 Mogilefs 部署

添加一個域 并列出域的列表。域又是什么呢,你可以理解為之前我們做的添加完設備后,在tracker主機上后,(從tracker主機上看,給了他一個很大的磁盤,它拿來后自己分了區~,可以表明每個域存放內容,比如windows上我們常用的 D盤拿來裝游戲 E盤拿來裝電影~~)上圖的class又是啥呢,他是整個復制環節的最小復制單位,我們可以通過定義他來修改在每一個storage節點上個文件存儲的份數,我們這里就不沒必要設置他了。mindevcount代表存儲的最小份數 2份 ,replpolicy 存儲策略 多主機存儲、hashtype哈希類型 沒有

接著我們測試的話基本設置就完了,現在來提一下我們上面用到的命令 mogadm

分布式存儲 Mogilefs 部署

使用mogadm –help 可以看到許多的子命令,并且后面會有描述,那具體每個命令怎么使用,我們就可以以下圖的示例獲取了

分布式存儲 Mogilefs 部署

現在我們就來上傳一個文件看看吧~

分布式存儲 Mogilefs 部署

此次試驗失敗告終。 兩個節點都可以上傳文件,但始終都只保存一份。

在發現這個問題過后,做了如下檢測

1、授權文件目錄(想來應該不是這個問題 因為本來就能分開存放,只是不能復制)

2、兩個節點存儲目錄相同

3、看進程發現replicate進程只有一個,以為一個進程只能寫一個節點,事實證明錯誤的想法

4、修改存儲份數

5、另起了一個mogilefsd進程,相同問題

6、新建域,新建class

7、時間同步

8、兩節點間可以通過以mogadm host命名的域名訪問

9、終極辦法。。。重啟。。。


問題依舊(怎么會沒日志!?。。。W上資料好少,全是安裝,配置的,還都是馬哥提供的rpm包,不得不吐槽下。

空了準備換centos6+cpan安裝,如果還有問題就嘗試用馬哥提供的RPM包了。

另外哪位大神遇到過這問題啊,指點一下。

原創文章,作者:N24_Ghost,如若轉載,請注明出處:http://www.www58058.com/70466

(0)
N24_GhostN24_Ghost
上一篇 2017-03-04
下一篇 2017-03-05

相關推薦

  • linux篩選數據和用戶基本操作

    linux篩選數據的基本操作 列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。   [root@localhost script]# who   chenjianhang tty1      …

    Linux干貨 2016-10-17
  • linux中的管道符

    管道符 less只能看文件 但是這樣做會產生一個垃圾文件ls.txt,所以下面我們就會需要用到管道符 |只將傳遞正確結果傳遞給 而使用這兩種方法可以傳遞正確和錯誤的結果[root@localhost ~]# ls /etc/passwd /cpp/passwd 2>&1|less   ,  (2>&1…

    2017-07-22
  • shell四劍客之sed

    概述 Stream EDitor, 行編輯器 sed是一種流編輯器,它一次處理一行內容。處理時,把 當前處理的行存儲在臨時緩沖區中,稱為“模式空間”( pattern space),接著用sed命令處理緩沖區中的內容 ,處理完成后,把緩沖區的內容送往屏幕。接著處理下一 行,這樣不斷重復,直到文件末尾。文件內容并沒有改變 ,除非你使用重定向存儲輸出。Sed主要…

    Linux干貨 2016-08-15
  • Linux的哲學思想和文件系統

    Linux的哲學思想 Linux是一個自由的操作系統,其內部也有著自己獨特的一些特定的規則,就是我們所說的關于Linux的哲學思想。 Linux系統的哲學思想 1.一切皆文件:Linux系統把幾乎所有的系統資源全部都抽象為文件形式,包括硬件設備,甚至通信的接口都是以文件形式存在的。 2.Linux系統是由許許多多的小程序組成的,這些小程序的功能性單一,組合這…

    Linux干貨 2016-11-01
  • shell腳本編程基礎之二(if、case、for、while、until、continue、break語句使用)

    在shell腳本編程中,我們可以根據命令的狀態結果,判斷要不要執行下一步,但是有時候要判斷的問題不止一個,甚至對問題本身都要做判斷;同時問題的結果有時也不止一個,這時要借助簡單的邏輯與和邏輯或,就顯得很無力;要完成復雜的任務,需要借助一定的流程控制:順序執行、選擇執行、循環執行、同時在腳本執行過程中,有用戶交互輸入的需; if語句 case語句 for語句 …

    Linux干貨 2016-08-21
  • 時間、screen、echo等——Linux基本命令(5)

    1.     時間 (1)查詢時間: date          +%F  年月日          +%T  時分秒  &nbs…

    2017-07-13

評論列表(4條)

  • 馬哥教育
    馬哥教育 2017-03-13 23:30

    雖然文章中實驗失敗了,但還是給個~~最后的總結很好~有時間再來一次~~加油!

  • yhy1271927580
    yhy1271927580 2017-05-03 23:23

    為什么會出現Malformed config file (line 2) at /usr/local/share/perl5/MogileFS/Config.pm line 136, line 2. 錯誤,啟動mogilefsd的時候就總是這樣,請問碰到了這個問題嗎

    • N24_Ghost
      N24_Ghost 2017-05-04 09:50

      @yhy1271927580
      看提示應該是你啟動的時候配置文件指的是這個文件,但是這個文件的 136和第二行有錯誤。

    • yhy1271927580
      yhy1271927580 2017-05-04 14:08

      @N24_Ghost遇到了跟你一樣的問題,我檢查了目錄權限,mogs用戶可以寫入數據,請求你的這個問題解決了嗎

欧美性久久久久