VMware下CentOS6.8配置GFS文件系統

来源:http://www.cnblogs.com/ygqygq2/archive/2016/11/09/6049346.html
-Advertisement-
Play Games

1.GFS介紹 GFS簡要說明,它有兩種: 1. Google文件系統:GFS是GOOGLE實現的是一個可擴展的分散式文件系統,用於大型的、分散式的、對大量數據進行訪問的應用。它運行於廉價的普通硬體上,但可以提供容錯功能。它可以給大量的用戶提供總體性能較高的服務。欲瞭解更多,可以訪問:http:// ...


1.GFS介紹

GFS簡要說明,它有兩種:

1. Google文件系統:GFS是GOOGLE實現的是一個可擴展的分散式文件系統,用於大型的、分散式的、對大量數據進行訪問的應用。它運行於廉價的普通硬體上,但可以提供容錯功能。它可以給大量的用戶提供總體性能較高的服務。欲瞭解更多,可以訪問:http://baike.baidu.com/item/GFS/1813072

2. Redhat 的GFS(Global File System)

GFS(Global File System)自己以本地文件系統的形式出現。多個Linux機器通過網路共用存儲設備,每一臺機器都可以將網路共用磁碟看作是本地磁碟,如果某台機器對 某個文件執行了寫操作,則後來訪問此文件的機器就會讀到寫以後的結果。可以根據對性能或是可擴展性,或者以經濟性多個原則進行不同方案的部署。

GFS 主要組件,集群捲管理,鎖管理,集群管理,圍欄和恢復,集群配置管理。

本文主要介紹Redhat的GFS系統。

REDHAT CLUSTER SUITEWITH GFS :

RHCS(REDHAT CLUSTER SUITE)是一款能夠提供高性能、高可靠性、負載均衡、高可用性的集群工具集,一個集群通常有兩個或兩個以上的電腦(稱為“節點”或”成員“)共同執行一個任務。

RHCS主要組件:

  • 集群架構:

提供一個基本功能使節點作為集群工作在一起:配置文件管理,成員關係管理,鎖管理和柵設備。

  • 高可用性管理:

提供節點失敗轉移服務,當一個節點失敗後將服務轉移到另一個節點上。

  • 集群管理工具:

通過配置和管理工具來配置和管理Red Hat集群。

  • Linux Virtual Server (LVS)

LVS提供一個基於IP的負載均衡功能,通過LVS可以將客戶請求均勻的分配到集群節點上。

其它Red Hat集群組件:

  • Cluster Logical Volume Manager (CLVM)

提供邏輯捲管理集群存儲。

  • 集群管理器:

CMAN是一個分散式集群管理器(DLM),它運行在每一個集群節點上,CMAN通過監視集群節點提供一個法定節點數(quorum),當集群 中有多於一半的節點處於活躍狀態時,此時符合法定節點數,集群繼續可用,當只有有一半或少於一半的節點處於活躍狀態是則已達到不到法定節點數,此時整個集 群變得不可用。CMAN通過監控集群中節點來確定各節點的成員關係,當集群中的成員關係發生改變,CMAN會通架構中其它組件來進行相應的調整。

  • DLM鎖管理:

分散式鎖管理器,它運行在所有的集群節點上,鎖管理是一個公共的基礎結構,為集群提供一種共用集群資源的管理機制,GFS通過鎖管理器使用鎖機制來同步訪問文件系統元數據,CLVM通過鎖管理器來同步更新數據到LVM捲和捲組。

  • 數據的完整保證:

RHCS 通過 Fence設備從共用存儲切斷失效節點的I/O以保證數據的完整性。當CMAN確定一個節點失敗後,它在集群結構中通告這個失敗的節點(組播),fenced進程會將失敗的節點隔離,以保證失敗節點不破壞共用數據。

REDHAT集群配置系統:

集群配置文件:(/etc/cluster/cluster.conf) 是一個XML文件,用來描述下麵的集群特性。

集群名稱:列出集群名稱、集群配置文件版本和一個隔離時間,隔離相應時間當一個新節點加入或從集群中隔離時。

集群:列出集群中的每一個節點,指定節點名稱,節點ID,法定投票數,和柵模式。

fence設備:定義fence設備。

管理資源:定義創建集群服務需要的資源。管理資源包括失敗轉移域,資源和服務。

2.GFS搭建

設置環境如下,兩節點操作共用文件:

  • 192.168.10.11 test01
  • 192.168.10.12 test02
  • OS:CentOS6.8 64位
  • VMware共用磁碟一塊

以下操作如非特別註明,則需要在所有的節點上執行。

2.1配置網路

編輯hosts文件,使兩節點間可通過主機名訪問:

# more /etc/hosts
127.0.0.1   localhost localhost.localdomain
::1         localhost localhost.localdomain
192.168.10.11 test01
192.168.10.12 test02

    2.2安裝集群文件系統相關的軟體包

    使用yum安裝軟體包:

    # yum install cman openais gfs* kmod-gfs lvm2* rgmanager system-config-cluster scsi-target-utils cluster-snmp

    上述軟體包有眾多的依賴包會被安裝或更新,為避免出現意外情況,建議軟體包安裝後重啟。

    2.3配置iptables

    允許test01和test02相互通信

    test01配置文件/etc/sysconfig/iptables添加:

    -A INPUT -s 192.168.10.12 -j ACCEPT

    test02配置文件/etc/sysconfig/iptables添加:

    -A INPUT -s 192.168.10.11 -j ACCEPT

    2.4修改相關配置

    修改/etc/sysconfig/selinux中selinux=disabled

    修改lvm邏輯捲配置:

    # vi /etc/lvm/lvm.conf

    將locking_type = 1,改為locking_type = 3,允啟用同時讀寫。

    修改fallback_to_local_locking=0,以禁止回寫,避免導致裂腦。

    2.5生成集群配置文件

    [root@test02 ~]# ccs_tool create GFSmail
    [root@test02 ~]# ccs_tool addfence meatware fence_manual
    [root@test02 ~]# ccs_tool lsfence
    Name             Agent
    meatware         fence_manual
    [root@test02 ~]# ccs_tool addnode -n 11 -f meatware test01
    [root@test02 ~]# ccs_tool addnode -n 12 -f meatware test02
    [root@test02 ~]# ccs_tool lsnode
    Cluster name: GFSmail, config_version: 4
    Nodename                        Votes Nodeid Fencetype
    test01                      1   11    meatware
    test02                      1   12    meatware
    [root@test02 ~]#
    [root@test02 ~]# rsync -avz /etc/cluster/cluster.conf root@test01
    sending incremental file list
    cluster.conf
    sent 307 bytes  received 31 bytes  676.00 bytes/sec
    total size is 557  speedup is 1.65
    [root@test02 ~]#
    [root@test02 data]# cat /etc/cluster/cluster.conf
    <?xml version="1.0"?>
    <cluster name="GFSmail" config_version="4">
    
      <clusternodes>
      <clusternode name="test01" votes="1" nodeid="11"><fence><method name="single"><device name="meatware"/></method></fence></clusternode><clusternode name="test02" votes="1" nodeid="12"><fence><method name="single"><device name="meatware"/></method></fence></clusternode></clusternodes>
    
      <fencedevices>
      <fencedevice name="meatware" agent="fence_manual"/></fencedevices>
    
      <rm>
        <failoverdomains/>
        <resources/>
      </rm>
    </cluster>

    而後可以執行ccs_config_validate命令檢查配置文件是否合法。

    2.6創建集群存儲

    先手動啟動cman和clvmd命令,以便監控集群捲的中存儲設備的狀態:

    # service cman start
    
    # service clvmd start
    
    # service rgmanager start

    以下操作在節點1端執行:

    創建物理捲和捲組和邏輯捲:

    [root@test01 ~]# pvcreate /dev/sdb
    
      Physical volume "/dev/sdb" successfully created
    
    [root@test01 ~]# vgcreate mailcluster /dev/sdb
    
      Clustered volume group "mailcluster" successfully created
    
    [root@test01 ~]# pvs
    
      PV         VG          Fmt  Attr PSize   PFree
    
      /dev/sda2  vg_mail     lvm2 a--u 199.41g    0
    
      /dev/sdb   mailcluster lvm2 a--u   4.00t 4.00t
    
    [root@test01 ~]# lvcreate -n maildata -l 100%FREE mailcluster
    
      Logical volume "maildata" created.
    
    [root@test01 ~]# lvs
    
      LV       VG          Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
    
      maildata mailcluster -wi-a-----   4.00t
    
      home     vg_mail     -wi-ao----  80.00g
    
      root     vg_mail     -wi-ao---- 115.41g
    
      swap     vg_mail     -wi-ao----   4.00g
    
    [root@test01 ~]#

    2.7在新建的邏輯捲上創建gfs2文件系統:

    [root@test01 ~]# mkfs.gfs2 -j 2 -p lock_dlm -t GFSmail:maildata /dev/mapper/mailcluster-maildata
    
    This will destroy any data on /dev/mapper/mailcluster-maildata.
    
    It appears to contain: symbolic link to `../dm-3'
    
    Are you sure you want to proceed? [y/n] y
    
    Device:                    /dev/mapper/mailcluster-maildata
    
    Blocksize:                 4096
    
    Device Size                4096.00 GB (1073740800 blocks)
    
    Filesystem Size:           4096.00 GB (1073740798 blocks)
    
    Journals:                  2
    
    Resource Groups:           8192
    
    Locking Protocol:          "lock_dlm"
    
    Lock Table:                "GFSmail:maildata"
    
    UUID:                      50e12acf-6fb0-6881-3064-856c383b51dd
    
    [root@test01 ~]#

    對於mkfs.gfs2命令來說,我們所使用的參數功能如下:

    -p:用來指定gfs的鎖機制,一般情況下會選擇lock_dlm;

    -j:指定journal個數(可加入節點數),一般情況下應留有冗餘,否則後期還得再調整;

    查看journals:# gfs2_tool journals /home/coremail/var

    增加journals:# gfs2_jadd -j 1 /home/coremail/var  ##增加一個journals

    -t:格式為ClusterName:FS_Path_Name

    ClusterName:應與前面cluster.conf中指定的集群名稱相同(上文為:GFSmail);

    FS_Path_Name:這個塊設備mount的路徑(上文為:maildata);

    最後一個參數是指定邏輯捲的詳細路徑;

    2.8GFS掛載

    創建目錄:

    [root@test01 ~]# mkdir /home/coremail/var

    將剛剛創建的邏輯捲加入到/etc/fstab文件中,使其開機自動映射:

    [root@test01 ~]# echo "/dev/mapper/mailcluster-maildata  /home/coremail/var            gfs2    defaults,noatime,nodiratime,noquota        0 0" >> /etc/fstab

    啟動gfs2服務:

    [root@test01 ~]# /etc/init.d/gfs2 start

    節點2端執行:

    操作前可以先執行pvs,lvs命令,看看是否能夠正常顯示節點1端創建的物理捲和邏輯捲信息,如果看不到(先嘗試lvscan),則說明並未使用共用存儲,或者配置有異常,仍然需要排查,需要等問題解決後,再執行下列的命令。

    [root@test02 ~]# mkdir /home/coremail/var
    
    [root@test02 ~]# echo "/dev/mapper/mailcluster-maildata  /home/coremail/var            gfs2    defaults,noatime,nodiratime,noquota        0 0" >> /etc/fstab
    
    [root@test02 ~]# /etc/init.d/gfs2 start

    執行# clustat可以查詢各成員節點的狀態。

    [root@test02 ~]# clustat
    
    Cluster Status for GFSmail @ Thu Nov  3 23:17:24 2016
    
    Member Status: Quorate
    
     Member Name                                       ID   Status
    
     ------ ----                                       ---- ------
    
     test01                                         11 Online
    
     test02                                         12 Online, Local
    
    [root@test02 ~]#

    2.9在所有節點操作,配置服務的自動啟動,這樣就不必擔心伺服器重啟了:

    # chkconfig --add cman
    
    # chkconfig --add clvmd
    
    # chkconfig --add gfs2
    
    # chkconfig --add rgmanager
    
    # chkconfig --level 345 cman on
    
    # chkconfig --level 345 clvmd on
    
    # chkconfig --level 345 gfs2 on
    
    # chkconfig --level 345 rgmanager on

    參考資料:https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/6/html/Global_File_System_2/ch-overview-GFS2.html


    您的分享是我們最大的動力!

    -Advertisement-
    Play Games
    更多相關文章
    • 在ubuntu中啟動eclipse報錯:(Eclipse:15978): GLib-GIO-CRITICAL **: g_dbus_connection_get_unique_name: assertion 'G_IS_DBUS_CONNECTION (connection)' failed。 出現 ...
    • ...
    • Shipyard 是一個基於 Web 的 Docker 管理工具,支持多 host,可以把多個 Docker host 上的 containers 統一管理;可以查看 images,甚至 build images;並提供 RESTful API 等等。 Shipyard 要管理和控制 Docker ...
    • more\less:翻頁命令 more:翻頁的形式查看文件內容。該命令可作為管道命令。 翻頁過程可使用的鍵: 空格(space):向下翻頁; 回車(Enter):向下翻一行; b:往回翻,只限,但管道命令時無效。 q:立刻離開more。 less:比more更方便翻頁,能向上翻頁。可作為管道命令。 ... ...
    • 基本命令的講解 主要內容介紹 1、LINUX操作系統安裝及初始化配置(熟悉);2、LINUX操作系統目錄組成結構及文件級增刪改查操作(重點);3、LINUX操作系統用戶、許可權管理(重點);4、開源軟體及LINUX下軟體包的管理(重點);5、LINUX操作系統磁碟管理(瞭解);6、LINUX操作系統網 ...
    • 一、系統以及軟體的準備 系統及編譯安裝包的下載地址:http://pan.baidu.com/s/1jIjqinc 密碼:ghc2 說明:由於centos6.5是分捲壓縮的,且壓縮為三個壓縮包,所以請下載三個壓縮包,並放於同一文件夾中,解壓CentOS-6.5-x86_64-bin-DVD.zip即 ...
    • docker部署環境:CentOS release 6.5 (Final) Docker配置文件:/etc/sysconfig/docker 重要參數解釋: -H 表示Docker Daemon綁定的地址 -H unix:///var/run/docker.sock -H tcp://0.0.0.0 ...
    • 一、Linux操作系統簡介 1、Linux系統定義:Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統 2、Linux系統運行穩定,主要用於伺服器。 3、Linux系統用戶分為: a、系統用戶root:提示符# b、 ...
    一周排行
      -Advertisement-
      Play Games
    • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
    • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
    • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
    • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
    • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
    • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
    • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
    • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
    • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
    • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...