歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> VMware下CentOS6.8配置GFS文件系統,centos6.8gfs

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

日期:2017/3/3 18:08:26   编辑:學習Linux

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

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


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

    http://xxxxxx/Linuxjc/1171554.html TechArticle

    Copyright © Linux教程網 All Rights Reserved