日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Gluster FS 部署复制卷与常用命令 常见问题解决

發(fā)布時(shí)間:2023/12/4 40 生活家
生活随笔 收集整理的這篇文章主要介紹了 Gluster FS 部署复制卷与常用命令 常见问题解决 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在 liunx 下部署Gluster FS分布式文件系統(tǒng),以及Gluster FS遇到的一些問題解決,常用命令

概述

Gluster FS 是一個(gè)開源分布式文件系統(tǒng),具有強(qiáng)大的橫向擴(kuò)展能力,可支持?jǐn)?shù)PB存儲(chǔ)容量和數(shù)千客戶端,通過Infiniband RDMA 或Tcp/Ip 方式將許多廉價(jià)的x86 主機(jī),通過網(wǎng)絡(luò)互聯(lián)成一個(gè)并行的網(wǎng)絡(luò)文件系統(tǒng)。具有可擴(kuò)展性、高性能、高可用性等特點(diǎn)。

Gluster FS采用可堆疊的用戶空間設(shè)計(jì),如圖所示:

什么是分布式文件系統(tǒng)

簡(jiǎn)單的說,分布式文件系統(tǒng)就是將固定于某個(gè)點(diǎn)的某個(gè)文件系統(tǒng),擴(kuò)展到任意多個(gè)地點(diǎn)/多個(gè)文件系統(tǒng),眾多的節(jié)點(diǎn)組成一個(gè)文件系統(tǒng)網(wǎng)絡(luò)。通過網(wǎng)絡(luò)進(jìn)行節(jié)點(diǎn)間的通信和數(shù)據(jù)傳輸。你無需關(guān)心數(shù)據(jù)是存儲(chǔ)在哪個(gè)節(jié)點(diǎn),或是從哪個(gè)節(jié)點(diǎn)讀取數(shù)據(jù)。

Gluster FS 卷類型

部署

安裝Gluster FS

此處為安裝單機(jī)流程,安裝集群請(qǐng)參考 搭建復(fù)制卷

搜索可用安裝版本

yum search centos-release-gluster

指定 Glusterfs 6 版本(根據(jù)自己要求選擇安裝版本)

yum -y install centos-release-gluster6.noarch

安裝 服務(wù)端 + 客戶端

yum install -y glusterfs*

只安裝客戶端

yum install -y glusterfs-fuse.x86_64

查看版本(如果只有客戶端無法使用該命令)

glusterfs -V

啟動(dòng)服務(wù)

service glusterd start

添加開機(jī)啟動(dòng)

systemctl enable glusterd.service

搭建復(fù)制卷

參考 centos7下glusterFs 分布式文件系統(tǒng)環(huán)境搭建
參考 CentOS7安裝GlusterFS

以上兩個(gè)參考已經(jīng)很詳細(xì)了,你也可以自行搜索文章教程,關(guān)鍵字 (CentOS7、GlusterFS、復(fù)制卷)

以下是自行總結(jié)的步驟

開放通信端口

Linux 有兩種防火墻(firewall、iptables ),請(qǐng)確定自己使用的是什么類型防火墻再放行端口

firewall 防火墻

# 通信端口
firewall-cmd --zone=public --add-port=49152/tcp--permanent
firewall-cmd --zone=public --add-port=24007:24011/tcp--permanent
firewall-cmd --zone=public --add-port=38465:38485/tcp--permanent

重新載入

firewall-cmd --reload

查看防火墻規(guī)則

firewall-cmd --list-ports 

iptables 防火墻

iptables -A INPUT -p tcp --dport 49152 -j ACCEPT
iptables -A INPUT -p tcp --dport 24007:24011 -j ACCEPT
iptables -A INPUT -p tcp --dport 38465:38485 -j ACCEPT
iptables -A INPUT -p tcp --dport 111 -j ACCEPT

保存規(guī)則

service iptables save  

查看防火墻規(guī)則

iptables -L -n

安裝Gluster FS

集群環(huán)境與角色

name ip
node-2 172.16.10.2
node-3 172.16.10.3
node-4 172.16.10.4
client 172.16.10.50
  • 安裝 Gluster FS Server (node-2、3、4都需執(zhí)行以下命令)

    # 搜索可用安裝版本
    yum search centos-release-gluster
    # 指定 Glusterfs 6 版本(根據(jù)自己要求選擇安裝版本)
    yum -y install centos-release-gluster6.noarch
    # 安裝 服務(wù)端 + 客戶端 (可以選擇不安裝客戶端)
    yum install -y glusterfs*
    # 查看版本
    glusterfs -V
    # 啟動(dòng)服務(wù)
    service glusterd start
    # 添加開機(jī)啟動(dòng)
    systemctl enable glusterd.service
    
  • 安裝 Gluster FS Client (在 client 執(zhí)行以下命令,Client 需與 Server 版本一致)

    # 搜索可用安裝版本
    yum search centos-release-gluster
    # 指定 Glusterfs 6 版本(根據(jù)自己要求選擇安裝版本)
    yum -y install centos-release-gluster6.noarch
    # 只安裝客戶端
    yum install -y glusterfs-fuse.x86_64
    

增加集群節(jié)點(diǎn)

  • 關(guān)閉防火墻 or 開放端口

    • 開放端口參考 開放通信端口
    • 或者關(guān)閉每一臺(tái)機(jī)器的防火墻
    # firewalld
    systemctl stop firewalld.service
    systemctl disable firewalld.service
    # or iptables
    systemctl stop iptables.service
    systemctl disable iptables.service
    
  • 添加節(jié)點(diǎn)

    在node-2上執(zhí)行,將node-3、node-4加入集群

    gluster peer probe 172.16.10.2
    gluster peer probe 172.16.10.3
    gluster peer probe 172.16.10.4
    
  • 在node-1上看集群節(jié)點(diǎn)狀態(tài)

    [root@172.16.10.2 db]# gluster peer status
    Number of Peers: 2Hostname: 172.16.10.3
    Uuid: d8d232f-e5fb-4752-b40d-b0103afrf8ea
    State: Peer in Cluster (Connected)Hostname: 172.16.10.4
    Uuid: ff3gg732-ae12-4b6c-4rfb-65fd7886588c
    State: Peer in Cluster (Connected)# 如果節(jié)點(diǎn) State 顯示的不是 (Connected) 則添加節(jié)點(diǎn)未成功,需排查兩個(gè)節(jié)點(diǎn)之間通信是否正常,可以ping 測(cè)試
    

創(chuàng)建網(wǎng)絡(luò)卷

  • 創(chuàng)建數(shù)據(jù)存儲(chǔ)目錄(在三個(gè)節(jié)點(diǎn)都執(zhí)行 node-2、3、4)

    mkdir -p /home/hotgv1
    
  • 創(chuàng)建復(fù)制卷三節(jié)點(diǎn)模式

    # 語法
    gluster volume create 卷名稱 replica 節(jié)點(diǎn)數(shù)量 節(jié)點(diǎn)IP:目錄... force
    # 示例
    gluster volume create hotgv1 replica 3 172.16.10.2:/home/hotgv1 172.16.10.3:/home/hotgv1 172.16.10.4:/home/hotgv1 force
    
  • 查看卷信息

    # 卷信息
    gluster volume info
    
  • 啟動(dòng)卷

    gluster volume start hotgv1
    
  • 查看卷狀態(tài)

    gluster volume statusStatus of volume: hotgv1
    Gluster process                             TCP Port  RDMA Port  Online  Pid
    ------------------------------------------------------------------------------
    Brick 172.16.10.2:/home/hotgv1              49152     0          Y       6283
    Brick 172.16.10.3:/home/hotgv1              49152     0          Y       6216
    Brick 172.16.10.4:/home/hotgv1              49152     0          Y       6232# online Y | N  表示節(jié)點(diǎn)是否在線
    

性能調(diào)優(yōu)

  • 性能調(diào)優(yōu)(可選操作步驟)

    # 啟用卷配額
    gluster volume quota hotgv1 enable
    # 限制 hotgv1中 / (既總目錄) 最大使用 100GB 空間 
    gluster volume quota hotgv1 limit-usage / 100GB
    # 設(shè)置 cache 大小(此處要根據(jù)實(shí)際情況,如果設(shè)置太大可能導(dǎo)致后面客戶端掛載失敗) 
    gluster volume set hotgv1 performance.cache-size 512MB
    # 開啟 異步,后臺(tái)操作 
    gluster volume set hotgv1 performance.flush-behind on
    # 設(shè)置 io 線程 32 
    gluster volume set hotgv1 performance.io-thread-count 32
    # 設(shè)置 回寫 (寫數(shù)據(jù)時(shí)間,先寫入緩存內(nèi),再寫入硬盤) 
    gluster volume set hotgv1 performance.write-behind on# 查看調(diào)優(yōu)后的卷信息
    gluster volume info
    

掛載網(wǎng)絡(luò)卷

  • 設(shè)置ip白名單

    # 僅白名單IP才能掛載客戶端訪問卷 *通配符
    gluster volume set hotgv1 auth.allow 172.16.10.50,172.16.10.*,
    
  • 掛載卷(在 client 172.16.10.50 執(zhí)行)

    # 創(chuàng)建數(shù)據(jù)訪問掛載點(diǎn)
    mkdir -p /mnt/hotgv1
    # 掛載卷
    mount -t glusterfs IP:卷名 掛載點(diǎn)目錄
    # 例 1
    mount -t glusterfs 172.16.10.2:hotgv1 /mnt/hotgv1
    # 例 2 不要記錄掛載日志
    mount -t glusterfs -o log-level=NONE 172.16.10.2:hotgv1 /mnt/hotgv1# df 命令檢查掛載狀態(tài)
    df -h# 掛載失敗 檢查卷白名單、測(cè)試節(jié)點(diǎn)之間通信Ping、防火墻
    

測(cè)試卷工作

  • 測(cè)試卷工作 (在 client 172.16.10.50 執(zhí)行)

    # 往該目錄寫入文件,隨后查看gluster服務(wù)器的存儲(chǔ)情況 
    time dd if=/dev/zero of=/mnt/hotgv1/hello bs=100M count=1
    
  • 查看卷節(jié)點(diǎn)文件是否同步

    # 172.16.10.2
    ll /home/hotgv1
    # 172.16.10.3
    ll /home/hotgv1
    # 172.16.10.4
    ll /home/hotgv1
    

常見問題

遇到問題,建議先排查錯(cuò)誤日志,90%的問題都可以找到原因

cd /var/log/glusterfs/

節(jié)點(diǎn)

  • 新增節(jié)點(diǎn)到集群后,集群其余節(jié)點(diǎn)無法感知新增節(jié)點(diǎn)狀態(tài),或者新增節(jié)點(diǎn)無法同步數(shù)據(jù),通信等情況

    參考 開放通信端口

  • 故障節(jié)點(diǎn)重新上線

    當(dāng)執(zhí)行 gluster volume status 命令發(fā)現(xiàn)有節(jié)點(diǎn) Online 狀態(tài)為 N,該情況一般為網(wǎng)絡(luò)通信故障導(dǎo)致節(jié)點(diǎn)狀態(tài)為掉線,解決方法:

    • 重啟掉線節(jié)點(diǎn) glusterfs程序,使其重新上線 service glusterd restart
    • 排查掉線節(jié)點(diǎn)防火墻
    • 如果仍然無法成功上線 參考 故障節(jié)點(diǎn)排除方案
  • 故障節(jié)點(diǎn)排除(非復(fù)制卷,慎用)

    ? 如果重啟節(jié)點(diǎn)仍然無法解決 節(jié)點(diǎn)掉線

    1. 備份故障節(jié)點(diǎn)目錄 /var/lib/glusterd 中的 glusterd.info 文件 與 peers 文件夾
    2. stop gluster 服務(wù) 刪除 /var/lib/glusterd 目錄下的所有文件
    3. 啟動(dòng) gluster 服務(wù) 將備份的 glusterd.info文件與 peers 文件夾覆蓋到 /var/lib/glusterd 中
    4. 重啟 gluster 服務(wù)

掛載

  • 掛載點(diǎn)異常處理方法

    • 當(dāng)掛載點(diǎn) 出現(xiàn) 掛載點(diǎn)傳輸未建立

      ??? ? ? ? ? ? /mnt/hotgv1
      

      這種情況是掛載目標(biāo)節(jié)點(diǎn)掉線,導(dǎo)致掛載點(diǎn)崩潰,通常帶來 無法訪問、寫入網(wǎng)絡(luò)卷等問題

      處理方法:卸載掛載點(diǎn) 重新掛載

      # 卸載掛載點(diǎn)(當(dāng)出現(xiàn)此情況時(shí)通常無法使用該命令卸載)
      umount /mnt/hotgv1cn # 使用此命令卸載
      fusermount-glusterfs -uz /mnt/hotgv1# 重新掛載
      mount -t glusterfs 172.16.10.2:hotgv1 /mnt/hotgv1
      

      該情況一般 伴隨網(wǎng)絡(luò)卷有部分節(jié)點(diǎn)掉線

      # 使用此命令排查卷健康狀態(tài)  每個(gè)節(jié)點(diǎn)都執(zhí)行一遍
      gluster volume status# 發(fā)現(xiàn)存在掉線節(jié)點(diǎn),可嘗試重啟服務(wù)解決,如果掉線節(jié)點(diǎn)自身參考卷狀態(tài)正常,而其它節(jié)點(diǎn)無法連接掉線節(jié)點(diǎn),可排查防火墻原因

注意事項(xiàng)

集群角色

  • Brick 表示是集群節(jié)點(diǎn),集群節(jié)點(diǎn)只能讀取文件,不支持向卷中寫入數(shù)據(jù)或者改變數(shù)據(jù),如果向節(jié)點(diǎn)目錄寫入數(shù)據(jù),并不會(huì)同步到集群中。
  • Client 即 mount 掛載點(diǎn),該目錄下對(duì)文件操作,都會(huì)被同步到卷中所有節(jié)點(diǎn),支持都集群中的文件讀寫。
  • Volume 即 網(wǎng)絡(luò)卷,由多個(gè)節(jié)點(diǎn)組成,不同的網(wǎng)絡(luò)卷模式,工作原理也不同。

網(wǎng)絡(luò)卷維護(hù)

  • 定期查看網(wǎng)絡(luò)卷健康狀態(tài),及時(shí)處理故障節(jié)點(diǎn)
  • 添加集群哨兵,監(jiān)控掛載點(diǎn)狀態(tài),一但掛載點(diǎn)下線,網(wǎng)絡(luò)卷就無法訪問與存儲(chǔ),可實(shí)現(xiàn)多掛載點(diǎn)模式,防止單點(diǎn)故障。
  • 同一臺(tái)服務(wù)器不僅可以作為節(jié)點(diǎn),也可以做掛載點(diǎn),同一臺(tái)服務(wù)器可以承擔(dān)多個(gè)網(wǎng)絡(luò)卷的節(jié)點(diǎn)組成,自行考慮性能與存儲(chǔ)

常用命令

參考 Glusterfs的常用命令

服務(wù)器節(jié)點(diǎn)

# 查看所有節(jié)點(diǎn)信息,顯示時(shí)不包括本節(jié)點(diǎn)
gluster peer status            
# 添加節(jié)點(diǎn)
gluster peer probe   NODE-NAME
# 移除節(jié)點(diǎn),需要提前將該節(jié)點(diǎn)上的brick移除
gluster peer detach  NODE-NAME 

Glusterd 服務(wù)

# 啟動(dòng)glusterd服務(wù)
/etc/init.d/glusterd start
# 關(guān)閉glusterd服務(wù)
/etc/init.d/glusterd stop
# 查看glusterd服務(wù)
/etc/init.d/glusterd status

卷管理

# 創(chuàng)建卷# <1> 復(fù)制卷# 語法:
gluster volume create NEW-VOLNAME [replica COUNT] [transport tcp | rdma | tcp, rdma] NEW-BRICK
# 示例1:
gluster volume create test-volume replica 2 transport tcp server1:/exp1/brick server2:/exp2/brick# <2>條帶卷# 語法:
gluster volume create NEW-VOLNAME [stripe COUNT] [transport tcp | rdma | tcp, rdma] NEW-BRICK...
# 示例:
gluster volume create test-volume stripe 2 transport tcp server1:/exp1/brick server2:/exp2/brick# <3>分布式卷# 語法:  
gluster volume create NEW-VOLNAME [transport tcp | rdma | tcp, rdma] NEW-BRICK
# 示例1:
gluster volume create test-volume server1:/exp1/brick server2:/exp2/brick
# 示例2:
gluster volume create test-volume transport rdma server1:/exp1/brick server2:/exp2/brick server3:/exp3/brick server4:/exp4/brick# <4>分布式復(fù)制卷# 語法: 
gluster volume create NEW-VOLNAME [replica COUNT] [transport tcp | rdma | tcp, rdma] NEW-BRICK...
# 示例: 
gluster volume create test-volume replica 2 transport tcp server1:/exp1/brick server2:/exp2/brick server3:/exp3/brick server4:/exp4/brick# <5>分布式條帶卷# 語法:
gluster volume create NEW-VOLNAME [stripe COUNT] [transport tcp | rdma | tcp, rdma] NEW-BRICK...
# 示例:
gluster volume create test-volume stripe 2 transport tcp server1:/exp1/brick server2:/exp2/brick server3:/exp3/brick server4:/exp4/brick# <6>條帶復(fù)制卷# 語法:
gluster volume create NEW-VOLNAME [stripe COUNT] [replica COUNT] [transport tcp | rdma | tcp, rdma] NEW-BRICK...
# 示例:
gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1/brick server2:/exp2/brick server3:/exp3/brick server4:/exp4/brick# 啟動(dòng)卷
gluster volume start test-volume
# 停止卷
gluster volume stop test-volume
# 刪除卷 先停止卷后才能刪除
gluster volume delete test-volume
# 查看卷
# 列出集群中的所有卷
gluster volume list   
# 查看集群中的卷信息
gluster volume info [all]
# 查看集群中的卷狀態(tài)
gluster volume status [all]gluster volume status  [detail| clients | mem | inode | fd]# 配置卷
gluster volume set <VOLNAME> <OPTION> <PARAMETER># 擴(kuò)展卷
gluster volume add-brick <VOLNAME> <NEW-BRICK>
# 注意,如果是復(fù)制卷或者條帶卷,則每次添加的Brick數(shù)必須是replica或者stripe的整數(shù)倍。# 收縮卷
# 先將數(shù)據(jù)遷移到其它可用的Brick,遷移結(jié)束后才將該Brick移除: 
gluster volume remove-brick  start 
# 在執(zhí)行了start之后,可以使用status命令查看移除進(jìn)度: 
gluster volume remove-brick  status 
# 不進(jìn)行數(shù)據(jù)遷移,直接刪除該Brick: 
gluster volume remove-brick  commit 
# 注意,如果是復(fù)制卷或者條帶卷,則每次移除的Brick數(shù)必須是replica或者stripe的整數(shù)倍。# 遷移卷
# 使用start命令開始進(jìn)行遷移: 
gluster volume replace-brick  start 
# 在數(shù)據(jù)遷移過程中,可以使用pause命令暫停遷移: 
gluster volume replace-brick  pause 
# 在數(shù)據(jù)遷移過程中,可以使用abort命令終止遷移: 
gluster volume replace-brick  abort 
# 在數(shù)據(jù)遷移過程中,可以使用status命令查看遷移進(jìn)度: 
gluster volume replace-brick  status 
# 在數(shù)據(jù)遷移結(jié)束后,執(zhí)行commit命令來進(jìn)行Brick替換: 
gluster volume replace-brick  commit # 重新均衡卷
# 不遷移數(shù)據(jù): 
gluster volume rebalance  lay-outstart 
gluster volume rebalance  start 
gluster volume rebalance  startforce 
gluster volume rebalance  status 
gluster volume rebalance  stop 

Brick管理

# 添加Brick
gluster volume add-brick test-volume 192.168.1.{151,152}:/mnt/brick2# 刪除Brick
# 若是副本卷,則移除的Bricks數(shù)是replica的整數(shù)倍
gluster volume remove-brick test-volume 192.168.1.{151,152}:/mnt/brick2 start
# 在執(zhí)行開始移除之后,可以使用status命令進(jìn)行移除狀態(tài)查看。
gluster volume remove-brick test-volume 192.168.1.{151,152}:/mnt/brick2 status#使用commit命令執(zhí)行Brick移除,則不會(huì)進(jìn)行數(shù)據(jù)遷移而直接刪除Brick,符合不需要數(shù)據(jù)遷移的用戶需求。
gluster volume remove-brick test-volume 192.168.1.{151,152}:/mnt/brick2 commit# 替換Brick
# 任務(wù):把192.168.1.151:/mnt/brick0 替換為192.168.1.151:/mnt/brick2# <1>開始替換
gluster volume replace-brick test-volume 192.168.1.:/mnt/brick0 ..152:/mnt/brick2 start
# 異常信息:volume replace-brick: failed: /data/share2 or a prefix of it is already part of a volume 
# 說明 /mnt/brick2 曾經(jīng)是一個(gè)Brick。具體解決方法
rm -rf /mnt/brick2/.glusterfssetfattr -x trusted.glusterfs.volume-id /mnt/brick2
setfattr -x trusted.gfid  /mnt/brick2# 如上,執(zhí)行replcace-brick卷替換啟動(dòng)命令,使用start啟動(dòng)命令后,開始將原始Brick的數(shù)據(jù)遷移到即將需要替換的Brick上。# <2>查看是否替換完
gluster volume replace-brick test-volume 192.168.1.151:/mnt/brick0 ..152:/mnt/brick2 status# <3>在數(shù)據(jù)遷移的過程中,可以執(zhí)行abort命令終止Brick替換。
gluster volume replace-brick test-volume 192.168.1.151:/mnt/brick0 ..152:/mnt/brick2 abort# <4>在數(shù)據(jù)遷移結(jié)束之后,執(zhí)行commit命令結(jié)束任務(wù),則進(jìn)行Brick替換。使用volume info命令可以查看到Brick已經(jīng)被替換。
gluster volume replace-brick test-volume 192.168.1.151:/mnt/brick0 .152:/mnt/brick2 commit# 此時(shí)我們?cè)偻?/sf/data/vs/gfs/rep2上添加數(shù)據(jù)的話,數(shù)據(jù)會(huì)同步到 192.168.1.152:/mnt/brick0和192.168.1.152:/mnt/brick2上。而不會(huì)同步到 192.168.1.151:/mnt/brick0 上。 

文件系統(tǒng)擴(kuò)展屬性

#獲取文件擴(kuò)展屬性
getfattr -d -m . -e hex filename
getfattr -d -m "trusted.afr.*" -e hex filename

如果一句話反過來就必然不成立,那就根本沒必要把這句話放進(jìn)文檔。—— Bob Martin

總結(jié)

以上是生活随笔為你收集整理的Gluster FS 部署复制卷与常用命令 常见问题解决的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。