1. 程式人生 > >分散式檔案系統MFS的基本用法以及高可用實現

分散式檔案系統MFS的基本用法以及高可用實現

實驗主機環境(redhat 6.5 x86_64bit)

ip hostname softwares to install
192.168.1.8 cobbler1 mfs-master cgi-server keepalived
192.168.1.9 cobbler2 mfs-master cgi-server keepalived
192.168.1.10 cobbler3 chunkserver
192.168.1.11 cobbler4 chunkserver
192.168.1.12 cobbler5 mfs-client

實驗步驟

1.cobbler1,cobbler2安裝測試mfs-master 和 cgi-server
2.cobbler3,cobbler4安裝測試chunkserver
3.cobbler5安裝測試mfs-client
4.1.cobbler1,cobbler2安裝測試keepalived
5.cobbler1,cobbler2配置mfs高可用

1.cobbler1,cobbler2安裝測試mfs-master 和 cgi-server(兩臺主機操作相同)

安裝包本人已經上傳到百度雲盤,用到的rpm包如下:
這裡寫圖片描述

yum install moosefs-cgi-3.0.80-1.x86_64.rpm moosefs-cgiserv-3.0.80-1.x86_64.rpm moosefs-master-3.0.80-1.x86_64.rpm -y

啟動服務:

mfsmaster start
mfscgiserv start

做好本地解析
/etc/hosts#cobbler1

192.168.1.8 mfsmaster

這裡寫圖片描述

/etc/hosts#cobbler2

192.168.1.9 mfsmaster

這裡寫圖片描述

此時進入/var/lib/mfs 可以看到 moosefs 所產生的資料: 
.mfsmaster.lock 檔案記錄正在執行的 mfsmaster 的主程序 
metadata.mfs, metadata.mfs.back MooseFS 檔案系統的元資料 metadata 的映象 
changelog.*.mfs 是 MooseFS 檔案系統元資料的改變日誌(每一個小時合併到 metadata.mfs中一次) 
Metadata 檔案的大小是取決於檔案數的多少(而不是他們的大小)。changelog 日誌的大小是取決於每小時操作的數目,但是這個時間長度(預設是按小時)是可配置的

2.cobbler3,cobbler4安裝測試chunkserver(兩臺主機同步)

這裡寫圖片描述

yum install moosefs-chunkserver-3.0.80-1.x86_64.rpm -y#軟體安裝
mkdir /mnt/chunk123#建立儲存目錄,兩臺主機目錄要區分開
chown mfs.mfs /mnt/chunk123/ -R#修改目錄所有者
編輯配置檔案
[[email protected] ~]# sed -n '/#/!p' /etc/mfs/mfshdd.cfg
/mnt/chunk123

mfschunkserver start#啟動服務

做好解析之後訪問測試:
/etc/hosts#兩臺都做,可以指定mfsmaster為192.168.1.8或者192.168.1.9都可以,我這裡都指向了192.168.1.8

192.168.1.8 mfsmaster cobbler1

頁面訪問測試是否加入
這裡寫圖片描述

3.cobbler5安裝測試mfs-client

這裡寫圖片描述

yum install moosefs-client-3.0.80-1.x86_64.rpm -y

vim /etc/mfs/mfsmount.cfg#定義客戶端預設掛載
/mnt/mfs

vim /etc/hosts#做解析
192.168.1.8 mfsmaster cobbler1


mfsmount

這裡寫圖片描述
cd /mnt/mfs/

[[email protected] mfs]# ls#以下列出的為手動建立的目錄,用來做資料測試的
test1  test2

[[email protected] mfs]# pwd
/mnt/mfs

mfssetgoal -r 1 test1#設定此目錄下資料的備份數為1
mfssetgoal -r 2 test2#設定此目錄下資料的備份數為2

cp /etc/passwd test1
cp /etc/passwd test2

這裡寫圖片描述

根據上圖的結果可知cobbler4上存了兩份資料,分別來自test1和test2,我們去看一下:
這裡寫圖片描述

這裡寫圖片描述

4.1.cobbler1,cobbler2安裝測試keepalived

[[email protected] ~]# wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz
[[email protected] ~]# tar -zxf keepalived-1.3.5.tar.gz
[[email protected] ~]# cd keepalived-1.3.5
[[email protected] ~]# ./configure --prefix=/usr/local/keepalived --with-init=SYSV
[[email protected] ~]# make && make install
[[email protected] ~]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[[email protected] ~]# chmod +x /etc/init.d/keepalived
[[email protected] ~]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[[email protected] ~]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
[[email protected] ~]# ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/
[[email protected] ~]# scp -r /usr/local/keepalived/ cobbler2:/usr/local/

因為安裝目錄都scp到cobbler2上了,所以cobbler2上只需要執行以下操作即可:

    [[email protected] ~]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
    [[email protected] ~]# chmod +x /etc/init.d/keepalived
    [[email protected] ~]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
    [[email protected] ~]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
    [[email protected] ~]# ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

啟動服務看是否正常:#最好1和2都測試一下

[[email protected] ~]# /etc/init.d/keepalived start
Starting keepalived: 
[[email protected] ~]# ps -aux | grep keep
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root      15261  0.0  0.0  37344   988 ?        Ss   23:19   0:00 keepalived -D
root      15263  0.0  0.1  37344  1952 ?        S    23:19   0:00 keepalived -D
root      15264  0.0  0.1  37344  1388 ?        S    23:19   0:01 keepalived -D
root      20677  0.0  0.0 103272   880 pts/0    S+   23:55   0:00 grep keep

5.cobbler1,cobbler2配置mfs高可用

cobbler1上

[[email protected] ~]# cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
  notification_email {
    [email protected]
    }

notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id MFS_HA_MASTER#作為mfs高可用的MASTER
}

vrrp_script chk_mfs {                          
  script "/etc/keepalived/ifalived_mfsmaster.sh"#不斷執行的服務檢測指令碼
  interval 2
  weight 2
}

vrrp_instance VI_1 {
  state MASTER#MASTER身份
  interface eth1
  virtual_router_id 51
  priority 100#優先順序,初始一定要比BACKUP高
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass 1111
}
  track_script {
    chk_mfs#上面定義的指令碼呼叫
}
virtual_ipaddress {
    192.168.1.99/24
}
notify_master "/etc/keepalived/mfs-data-sync.sh "#當它成為master之後要執行的指令碼,自己可以定義
}

cobbler2和cobbler1的大體配置一致,需要修改三處
這裡寫圖片描述

服務監控指令碼(cobbler1和cobbler2一樣,要有執行許可權):
[[email protected] ~]# cat /etc/keepalived/ifalived_mfsmaster.sh

#!/bin/bash
STATUS=`ps -C mfsmaster --no-header | wc -l`
if [ $STATUS -eq 0 ]
then
mfsmaster start
sleep 3
   if [ `ps -C mfsmaster --no-header | wc -l ` -eq 0 ]
    then
        killall -9 mfscgiserv
        killall -9 keepalived
   fi
fi

配置結束,因為到這裡高可用算是搭建起來了,後面將通過VIP來進行master切換,所以修改以下解析(五臺主機都做)

/etc/hosts
192.168.1.99 mfsmater

啟動所有服務之後會看到VIP在keepalived 的 master主機上
這裡寫圖片描述

訪問頁面測試一下:
這裡寫圖片描述

因為在mfsmaster切換的時候可能會出現資料不同步的問題,所以我們需要寫個資料同步的指令碼來做這件事情:

[[email protected] ~]# cat /etc/keepalived/mfs-data-sync.sh

#!/bin/bash
STATUS=`ip addr|grep 192.168.1.99|awk -F" " '{print $2}'|cut -d"/" -f1`
if [ $STATUS == 192.168.1.99 ];then
   mfsmaster stop
   /bin/rm -f /var/lib/mfs/*
   /usr/bin/rsync -e "ssh -p22" -avpgolr 192.168.1.8:/var/lib/mfs/* /var/lib/mfs/
   /usr/sbin/mfsmetarestore -m
   mfsmaster -ai
   sleep 3
   echo "this server has become the master of MFS"
   if [ $STATUS != 192.168.1.99 ];then
   echo "this server is still MFS's slave"
   fi
fi

然後將這個指令碼路徑加到剛才keepalived配置的notify_master引數後面,這樣每次進行master切換之後都會執行資料同步,如:

notify_master "/etc/keepalived/mfs-data-sync.sh "#當它成為master之後要執行的資料同步指令碼

後面就可以通過在一邊終止掉keepalived程序來進行故障模擬然後觀察vip的漂移以及這個過程的檔案系統可訪問性測試高可用。

相關推薦

分散式檔案系統MFS基本用法以及可用實現

實驗主機環境(redhat 6.5 x86_64bit) ip hostname softwares to install 192.168.1.8 cobbler1 mfs-master cgi-server keepali

linux學習之搭建可用分散式檔案系統MFS

停止mfs [[email protected] ~]# umount /mnt/mfs/ [[email protected] chunk1]# mfschunkserver stop [[email protected] chunk1]# mfschunkserver sto

hadoop[4]-hdfs分散式檔案系統基本工作機制

一、Namenode 和 Datanode HDFS採用master/slave架構。一個HDFS叢集是由一個Namenode和一定數目的Datanodes組成。Namenode是一箇中心伺服器,負責管理檔案系統的名字空間(namespace)以及客戶端對檔案的訪問。叢集中的Datanode一般是一個節點一

分散式檔案系統MFS、Ceph、GlusterFS、Lustre的比較

原文:http://blog.csdn.net/metaxen/article/details/7108958 MooseFS(MFS) Ceph GlusterFS Lustre Metadata

分散式檔案系統MFS部署

MFS 簡介 MFS 即Moosefs ,是一款網路分散式檔案系統,是一個將資料分散在多臺伺服器上,然後通過網路掛載在客戶端,使客戶端能像使用本地硬碟一樣儲存資料。MFS也像其他類Unix檔案系統一樣,包含了層級結構(目錄樹),儲存檔案屬性(許可權,最後訪問,最後修改等),

【GlusterFS學習之一】:GlusterFS分散式檔案系統基本概念及搭建

最近因為工作的需要在接觸GlusterFS,在未來的一段時間之內應該都要與之打交道,剛剛接觸分散式檔案系統,對很多概念和機制都不是很清楚,通過一段時間的學習有一點淺顯的認識,那麼就把這段時間的瞭解到的

Notification的基本用法以及使用RemoteView實現自定義布局

解決 edi ngs 取消 ets lsp 過程 net tde Notification的作用 Notification是一種全局效果的通知,在系統的通知欄中顯示。既然作為通知,其基本作用有: 顯示接收到短消息、即時信息等 顯示客戶端的推送(廣告、優惠、新聞等)

Hadoop分散式檔案系統搭建以及基本操作

1. 環境搭建 jdk-1.8 jdk下載地址 export JAVA_HOME = /usr/lib/java/jdk1.7.0_21 export PATH =$JAVA_HOME/bin:$PATH hadoop-2.7.3 hadoop各個版本

如何搭建MFS分散式檔案系統(二)

chunkServer資料儲存節點上的操作記錄 1)關閉防火牆(selinux也要關閉,執行setenforce 0) [[email protected] ~]# /etc/init.d/iptables stop 2)建立mfs使用者和組 [[email protec

如何搭建MFS分散式檔案系統

1什麼是分散式檔案系統? 是一個具有容錯性的網路分散式檔案系統,它將資料分散存放在多個物理伺服器或單獨磁碟或分割槽上,確保一份資料 有多個備份副本,對於訪問MFS的客戶端或者使用者來說,整個分散式網路檔案系統叢集看起來就像一個資源一樣,也就是說呈現給使用者的是一個統一的資源。

Ubifs檔案系統和mkfs.ubifs以及ubinize工具的用法

  轉載地址:https://blog.csdn.net/wjjontheway/article/details/8977871 Ubifs產生背景:         無排序區塊影象檔案系統(Unsorted Block&nbs

【Fastdfs】Fastdfs分散式檔案系統的安裝部署使用,以及fastdfs連線池connectionpool編寫使用

環境:centos 7.X 預編譯安裝元件 yum install gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel libevent-dev git -y 以上安裝完,後續的各

ceph儲存分散式系統設計系列 -- 基本原理及可用策略

“分散式系統設計”系列第一篇文章,這篇文章主要介紹一些入門的概念和原理,後面帶來一些高可用、資料分佈的實踐方法!! ==> 分散式系統中的概念 ==> 分散式系統與單節點的不同 ==> 分散式系統特性 ==> 分散式系統設計策略 ==>

BigData_A_A_01-hdfs分散式檔案系統(2)可用

楔子 Hadoop 3 高可用搭建記錄 1 zookeeper叢集 zoo.cfg 檔案配置資料檔案位置等資訊 #其他使用預設 dataDir=/opt/data/zk server.1=had2:2888:3888 server.2=had3:2888:3

SeaweedFS 1.15 釋出,可擴分散式檔案系統

   SeaweedFS 1.15 已釋出,這是一個簡單且高度可擴充套件的分散式檔案系統,主要有兩個目標:儲存數十億的檔案和快速響應! 更新內容: weed filer, volume, HCFS 報告原始檔案大小 Hadoop client (HCFS)

Hadoop分散式檔案系統(HDFS)的基本命令

轉載於:https://blog.csdn.net/zhaojw_420/article/details/531616241、-help[cmd] 顯示命令的幫助資訊./hdfs dfs -help ls12、-ls(r) 顯示當前目錄下的所有檔案 -R層層循出文件夾./hd

Nginx服務搭建負載均衡,反向代理,快取加速,訪問分散式檔案系統可用

主配置檔案如下:[[email protected]~]#vim /usr/local/nginx/conf/nginx.conf server{ listen 8099               //埠號 location / {      autoindex on;      autoinde

mfs分散式檔案系統配置

MFS是什麼 MFS全稱MooseFS,是檔案管理系統的抽象層,將使用者的資料通過master之後,儲存在多個網路儲存節點上面,這個過程對於使用者來說時透明的,並且MFS具有很強大的網路容錯能力;MFS的特性 1.是一個通用的檔案系統,不需要商城應用軟體提供介面,直接可以進

centos7下MFS分散式檔案系統-實測沒問題!!!

實驗原理:MFS是一個具有容錯性的網路分散式檔案系統,它把資料分散在多個物理伺服器上,而呈現給使用者的則是一個統一的資源。實驗拓撲:192.168.80.181 Master server(主機名:www.aa.com)(元資料伺服器,在整個體系中負責管理檔案系統,維護元資料

Hadoop分散式檔案系統——HDFS概念以及hdfs讀寫資料

HDFS一流式資料訪問模式來儲存超大檔案,運行於商用硬體叢集上。 一、HDFS 的概念 1、資料塊: (1) 每個磁碟都有預設的資料塊大小,這是磁碟進行資料讀/寫的最小單位 (2) HDFS有資料塊的概念,預設是64M,hadoop2中是