1. 程式人生 > >GlusterFS 分散式儲存

GlusterFS 分散式儲存

一、GlusterFS概述;

概述:GlusterFS(Google File System)是一個開源的分散式檔案系統,Gluster 藉助 TCP/IP 網 絡將儲存資源分散儲存在網路的不同節點,在通過匯聚為客戶端提供統一的資源訪問,在存 儲方面具有很強大的橫向擴充套件能力,通過擴充套件不同的節點可以支援 PB 級別的儲存容量; Bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、DB、NB

特點:

擴充套件性與高效能:通過 Scale-out 架構可以增加儲存節點的方式來提高容量和效能(磁碟、 計算、I/O 資源都可以獨立增加),Gluster 彈性雜湊(Elastic Hash)解決了 Gluster 服務對元 資料伺服器的依賴,Gluster 採用彈性雜湊演算法來確定資料在 chunk 節點中的分佈情況,無 須元資料伺服器,實現了儲存的橫向擴充套件,改善了元資料伺服器節點的壓力以及單點故障;

高可用性:GlusterFS 通過配置不同型別的卷,可以對資料進行自動複製(類似於 RAID1), 即使某節點故障,也不影響資料的訪問;

通用性:GlusterFS 沒有設定獨立的私有資料檔案系統,而是採用以往的 ext4、ext3 等,數 據可以通過傳統的磁碟訪問方式被客戶端所訪問;

彈性卷管理:GlusterFS 通過將資料儲存在邏輯捲上,邏輯卷從邏輯儲存池進行獨立邏輯劃 分,邏輯儲存池可以線上進行增加和刪除,不會導致業務中斷,邏輯卷的數量可以根據實際 需求進行自行增加和縮減;

二、GlusterFS儲存架構;

專業術語:

Brick(儲存塊):儲存池中節點對外提供儲存服務的目錄; Volume(邏輯卷):一個邏輯卷時一組 Brick 的集合,卷是資料儲存的邏輯裝置,類似 LVM 中的邏輯卷,大部分 GlusterFS 管理操作都是在邏輯捲上進行的; FUSE(使用者空間檔案系統):是一個核心模組,使用者自行建立掛載的的檔案系統; VFS(介面):核心空間對使用者空間提供的訪問磁碟的介面; Glusterd(後臺管理程序):在儲存叢集中的每個節點上都要執行;

三、GlusterFS工作原理;資料訪問程:

1. 首先是在客戶端,使用者通過 glusterfs 的 mount point 來讀寫資料, 對於使用者來說, 叢集 系統的存在對使用者是完全透明的, 使用者感覺不到是操作本地系統還是遠端的集群系統。

2.  使用者的這個操作被遞交給 本地 linux 系統的 VFS 來處理。

3. VFS 將資料遞交給 FUSE 核心檔案系統:在啟動 glusterfs 客戶端以前, 需要想系統註冊 一個實際的檔案系統 FUSE,如上圖所示,該檔案系統與 ext3 在同一個層次上面,ext3 是對 實際的磁碟進行處理,而 fuse 檔案系統則是將資料通過/dev/fuse 這個裝置檔案遞交給了 glusterfs client 端。所以我們可以將 fuse 檔案系統理解為一個代理。

4. 資料被 fuse 遞交給 Glusterfs client 後,client 對資料進行一些指定的處理(所謂的指定, 是按照 client  配置檔案據來進行的一系列處理, 我們在啟動 glusterfs  client   時 需 要 指 定 這 個 文 件 , 其 默 認 位 置 :/etc/glusterfs/client.vol)。

5. 在 glusterfs client 的處理末端,通過網路將資料遞交給 Glusterfs Server,並且將資料寫入 到伺服器所控制的儲存裝置上。

四、GlusterFS卷的型別;分散式卷、條帶卷、複製卷、分散式條帶卷、分散式複製卷、條帶複製卷、分散式條帶復制卷;

1. 分散式卷

分散式卷是 GlusterFS 的預設卷,在建立卷時,預設選項是建立分散式卷。在該模式下,並 沒有對檔案進行分塊處理,檔案直接儲存在某個 Server 節點上。由於使用本地檔案系統, 所以存取效率並沒有提高,反而會因為網路通訊的原因而有所降低,另外支援超大型檔案也 會有一定的難度,因為分散式卷不會對檔案進行分塊處理,一個檔案要麼在 Server1 上,要 麼在 Serve2 上,不能分塊同時存放在 Sever1 和 Server2 上;

特點:

檔案分佈在不同的伺服器,不具備冗餘性; 更容易且廉價地擴展卷的大小; 單點故障會造成資料丟失; 依賴底層的資料保護;

建立方法:

[[email protected] ~]# gluster volume create dis-volume server1:/dir1 server2:/dir2 Creation of dis -volume has been successful

Please start the volume to access data

2.條帶卷

Stripe 模式相當於 RAIDO,在該模式下,根據偏移量將檔案分成 N 塊,輪詢地儲存在每個 Brick Server 節點。節點把每個資料塊都作為普通檔案存入本地檔案系統中,通過擴充套件屬性記錄總 塊數(Stripe-count) 和每塊的序號(Stripe-index),在配置時指定的條帶數必須等於卷中 Brick  所包含的儲存伺服器數,在儲存大檔案時,效能尤為突出,但是不具備冗餘性;

特點:

資料被分割成更小塊分佈到塊伺服器群中的不同; 分佈減少了負載且更小的檔案提高了存取速度; 沒有資料冗餘;

建立方法:

[[email protected] ~]# gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2

create of Stripe -volume has been successful please start the volume to access data

3.複製卷

也稱為 AFR(AutGilePepliatio)相當於 RAD1,即同一檔案儲存一份或多份副本。每個節點上 儲存相同的內容和目錄結構。複製模式因為要儲存副本,所以磁碟利用率較低,複製卷時, 複製數必須等於卷中 Brick 所包含的儲存伺服器數,複製卷具備冗餘性,即使一個節點損壞, 也不影響資料的正常使用;

特點:

卷中所有的伺服器均儲存一個完整的副本; 卷的副本數量可由客戶建立的時候決定; 最少保證兩個塊伺服器或更多伺服器; 具備冗餘效果;

建立方法:

[[email protected] ~]# gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2

create of rep -volume has been successful please start the volume to access data

4.分散式條帶卷分散式條帶卷兼顧分散式卷和條帶卷的功能,可以理解成為大型的條帶卷,主要用於大檔案 訪問處理,建立一個分散式條帶,卷最少需要 4 臺伺服器;

建立方法:

[[email protected] ~]# gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4

create of dis-stripe has been successful please start the volume to access data

上述命令建立了一個名為 dis-stripe 的分散式條帶卷,配置分散式條帶卷時,卷中 Brick 所包

含的儲存伺服器必須是條帶數的倍數(大於等於 2 倍),如上述命令,Brick 的數量為 4,條 帶數為 2;

5.分散式複製卷分散式複製卷兼顧分散式卷和複製卷的功能,可以理解成為大型的複製卷,主要用於冗餘的 場景下,建立一個分散式複製卷,最少需要 4 塊 brick;

建立方法:

[[email protected] ~]# gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4

create of dis-rep has been successful please start the volume to access data

6.條帶複製卷

條帶複製卷兼顧了條帶卷和複製卷兩者的優點,相當於 RADI 10,用於儲存效率高,備份冗 餘的場景下,建立條帶複製卷,最少需要四個 brick;

建立方法:

[[email protected] ~]# gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4

create of test-volume has been successful please start the volume to access data

7.分散式條帶複製卷分散式條帶複製卷將分佈條帶資料在複製卷叢集。為了獲得最佳效果,可以選擇使用分佈在 高併發的條帶複製卷環境下並行訪問非常大的檔案和效能是至關重要的;

五、案例:搭建Gluster分散式檔案系統;案例環境:

系統型別

IP 地址

主機名

所需軟體

Centos 7.4 1708 64bit

192.168.100.101

data1.linuxfan.cn

glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

Centos 7.4 1708 64bit

192.168.100.102

data2.linuxfan.cn

glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

Centos 7.4 1708 64bit

192.168.100.103

data3.linuxfan.cn

glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

Centos 7.4 1708 64bit

192.168.100.104

client.linuxfan.cn

glusterfs glusterfs-fuse

案例步驟:

Ø 配置主機之間的解析(在此所有主機配置相同,在此只列舉 data1 節點的配置);

Ø 在所有 data 節點上安裝 GlusterFS(在此所有主機配置相同,在此只列舉 data1 節點的 配置);

Ø 在 data1 節點上進行建立叢集,其他節點會同步配置;

Ø 在多個 data 節點建立資料儲存的位置;

Ø 在 data1 節點建立資料儲存的卷(複製卷),其他節點會同步配置;

Ø 在 client 客戶端節點上安裝 gluster 客戶端工具並測試掛載;

Ø client 客戶端節點測試存放檔案;

Ø 擴充套件:Gluster 的管理命令;

Ø 配置主機之間的解析(在此所有主機配置相同,在此只列舉data1節點的配置);

[[email protected] ~]# cat <<END >>/etc/hosts 192.168.100.101 data1.linuxfan.cn

        1. data2.linuxfan.cn
        2. data3.linuxfan.cn
        3. client.linuxafn.cn END

[[email protected] ~]# ping data1.linuxfan.cn -c 2 ##ping 命令進行測試

PING data1.linuxfan.cn (192.168.100.101) 56(84) bytes of data.

64 bytes from data1.linuxfan.cn (192.168.100.101): icmp_seq=1 ttl=64 time=0.062 ms 64 bytes from data1.linuxfan.cn (192.168.100.101): icmp_seq=2 ttl=64 time=0.040 ms

Ø 在所有data節點上安裝GlusterFS(在此所有主機配置相同,在此只列舉data1節點的配置);

[[email protected] ~]# yum -y install centos-release-gluster ## 安裝 gluster  包的 

yum 源

[[email protected] ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma [[email protected] ~]# systemctl start glusterd

[[email protected] ~]# systemctl enable glusterd

Created symlink from /etc/systemd/system/multi-user.target.wants/glusterd.service to

/usr/lib/systemd/system/glusterd.service. [[email protected] ~]# netstat -utpln |grep glu

tcp 0 0   0.0.0.0:24007 0.0.0.0:* LISTEN

1313/glusterd

[[email protected] ~]# netstat -utpln |grep rpc

tcp

0

0

0.0.0.0:111

0.0.0.0:*

LISTEN

1311/rpcbind

udp

0

0

0.0.0.0:111

0.0.0.0:*

1311/rpcbind

udp

0

0

0.0.0.0:634

0.0.0.0:*

1311/rpcbind

Ø data1節點上進行建立叢集,其他節點會同步;

[[email protected] ~]# gluster peer probe  data1.linuxfan.cn ##新增本機節點 peer probe: success. Probe on localhost not needed

[[email protected] ~]# gluster peer probe data2.linuxfan.cn ##新增 data2 節點

peer probe: success.

[[email protected] ~]# gluster peer probe data3.linuxfan.cn ##新增 data3 節點 peer probe: success.

[[email protected] ~]# gluster peer status ##檢視 gluster 集

群狀態

Number of Peers: 2

Hostname: data2.linuxfan.cn

Uuid:  a452f7f4-7604-4d44-8b6a-f5178a41e308

State: Peer in Cluster (Connected)

Hostname: data3.linuxfan.cn

Uuid:  b08f1b68-3f2c-4076-8121-1ab17d1517e1

State: Peer in Cluster (Connected)

Ø 在多個data節點建立資料儲存的位置;

[[email protected] ~]# mkdir /data [[email protected] ~]# gluster volume info No volumes present

Ø data1節點建立資料儲存的卷(複製卷),其他節點會同步配置;

[[email protected] ~]# gluster volume create rep-volume replica 3 transport tcp data1.linuxfan.cn:/data data2.linuxfan.cn:/data  data3.linuxfan.cn:/data force ##建立複製卷,名稱如 上

volume create: rep-volume: success: please start the volume to access data [[email protected] ~]# gluster volume info

Volume Name: rep-volume Type: Replicate

Volume ID: ac59612b-e6ce-46ce-85a7-74262fb722b2 Status: Created

Snapshot Count: 0

Number of Bricks: 1 x 3 = 3 Transport-type: tcp

Bricks:

Brick1: data1.linuxfan.cn:/data Brick2: data2.linuxfan.cn:/data Brick3: data3.linuxfan.cn:/data Options Reconfigured: transport.address-family: inet nfs.disable: on performance.client-io-threads: off

[[email protected] ~]# gluster volume start rep-volume ##啟動該卷

volume start: rep-volume: success

Ø client客戶端節點上安裝gluster客戶端工具並測試掛載;

[[email protected] ~]# yum install -y glusterfs glusterfs-fuse

[[email protected] ~]# mount -t glusterfs data1.linuxfan.cn:rep-volume /mnt/ [[email protected] ~]# ls /mnt/

[[email protected] ~]# df -hT |tail -1

data1.linuxfan.cn:rep-volume  fuse.glusterfs 19G 2.0G 17G 11% /mnt

Ø client 客戶端節點測試存放檔案;

[[email protected] ~]# touch /mnt/{1..10}.file

[[email protected] ~]# dd if=/dev/zero of=/mnt/1.txt bs=1G count=1 [[email protected] ~]# ls /mnt/

10.file 1.file 1.txt 2.file 3.file 4.file 5.file 6.file 7.file 8.file 9.file [[email protected] ~]# du -sh /mnt/1.txt

1.0G /mnt/1.txt

Ø 擴充套件:Gluster的管理命令;

Gluster Gluster Gluster

peer status

peer probe name peer detach name

##檢視所有的節點資訊

##新增節點

##刪除節點

Gluster Gluster

volume create xxx volume info

##建立卷

##檢視卷資訊

相關推薦

GlusterFS分散式儲存系統

一,分散式檔案系統理論基礎 1.1 分散式檔案系統出現 計算機通過檔案系統管理,儲存資料,而現在資料資訊爆炸的時代中人們可以獲取的資料成指數倍的增長,單純通過增加硬碟個數來擴充套件計算機檔案系統的儲存容量的方式,已經不能滿足目前的需求。 分散式檔案系統可以有效解決資料的儲存和管理難題,將固定於某

關於 Kubernetes 中的 Volume 與 GlusterFS 分散式儲存

容器中持久化的檔案生命週期是短暫的,如果容器中程式崩潰宕機,kubelet 就會重新啟動,容器中的檔案將會丟失,所以對於有狀態的應用容器中持久化儲存是至關重要的一個環節;另外很多時候一個 Pod 中可能包含多個 Docker 映象,在 Pod 內資料也需要相互共享,Kubernetes  中 Pod 也可以增

Glusterfs 分散式儲存安裝部署

Glusterfs 分散式儲存部署 是儲存當中可以選擇的一種 現在很多虛擬化 雲端計算都在用軟體儲存 例如 ceph Glusterfs 等等 今天我們部署一下Glusterfs環境 GlusterFs安裝 環境資訊:          Gluster

Glusterfs 分散式儲存系統配置

在伺服器叢集中,為了同步更新APP內容,利用Glusterfs分散式儲存功達到相同的APP只更新一次,其他機器同步更新試驗環境:Vmware Fusion3.1.1 CentOS 5.51.安裝#yum -y install glusterfs-cluster gluster

GlusterFS 分散式儲存

一、GlusterFS概述; 概述:GlusterFS(Google File System)是一個開源的分散式檔案系統,Gluster 藉助 TCP/IP 網 絡將儲存資源分散儲存在網路的不同節點,在通過匯聚為客戶端提供統一的資源訪問,在存 儲方面具有很強大的橫向擴充套件

分散式儲存系統GlusterFS最新版本安裝

GlusterFS已經被Red Hat收購了,成為其企業級解決方案的一部分。GlusterFS最近釋出了多個新版本,尤其是建立了新的GlusterD 2架構,開始原廠支援Kubernetes,不過目前還沒有達到Heketi的可用性。GlusterFS也升級到了版本5。因為Ubuntu 18.04內建

glusterfs分散式儲存)部署

glusterfs(分散式儲存)是企業中的主流部署形式 準備: 將所有節點寫入: 192.168.1.21 server1 192.168.1.111 server2, 將節點的hostname名字改成對應的server glusterfs資料盤需要和系統盤隔

CentOS 7.3 分散式儲存Glusterfs部署使用(二)

Glusterfs_Client: 一、配置hosts cat <<EOF> /etc/hosts 127.0.0.1 localhost localhost.localdom

分散式儲存系統GlusterFS初體驗

轉自 https://my.oschina.net/kisops/blog/151073   過去一直以為GlusterFS和GFS為同一個東西,真是慚愧。昨天一同事用到才發現它是個好東西!     安裝很簡單,在所有儲存伺服器上執行: yum -y install g

談Elasticsearch下分散式儲存的資料分佈

  對於一個分散式儲存系統來說,資料是分散儲存在多個節點上的。如何讓資料均衡的分佈在不同節點上,來保證其高可用性?所謂均衡,是指系統中每個節點的負載是均勻的,並且在發現有不均勻的情況或者有節點增加/刪除時,能及時進行調整,保持均勻狀態。本文將探討Elasticsearch的資料分佈方法,

Nginx反代Mogilefs分散式儲存示例

一、分散式儲存系統簡介   隨著資訊科技不斷的發展,給我們帶來便利的同時,不斷增加的資料量級、資訊之間的連線關聯越來越複雜、資料訪問的併發量日益增加對I/O的要求越來越高、資料型別越來越複雜等難題也成為資訊科技繼續高速發展亟需解決的難題。分散式儲存系統的出現在很大程度上解決了以上大部分難題。   分散式儲

關於分散式儲存,這是你應該知道的(圖文詳解)(關於儲存的一些好文轉載--1)

轉自:http://stor.51cto.com/art/201711/556946.htm 關於分散式儲存,這是你應該知道的(圖文詳解) 前言 分散式儲存存在的風險,其實就是因為“共享”、“大資料量”、“高效能”和X86伺服器+廉價的磁碟為載體之間的矛盾所產生的,不是有些讀者說的“資料

關於分散式儲存,你需要知道的真相

很多人可能對分散式儲存耳熟能詳,但是,大多數人對其概念或者知識點卻瞭解得都過於分散,看了很多卻“只見樹木,不見森林”,學了很多往往只能“知其然,卻不能知其所以然”。因此,有必要對分散式儲存的概念、問題和矛盾進行一下分析和解讀。 為什麼需要分散式儲存? 很多人可能從來沒

分散式儲存系統的最佳實踐:系統發展路徑

分散式儲存系統從整體架構的角度看大同小異,實現起來卻困難重重。自主研發的 分散式儲存系統往往需要兩到三年才能逐步成熟起來,其中的難點在於如何把系統做穩定。系統開發過程中涉及架構設計、關鍵演算法實現、質量控制、團隊成員成長、線上運維、應用合作等,任何一個環節出現問題都可能導致整個專案失敗。本文章介紹通用分散式儲

分散式儲存-ceph原理

一、ceph核心元件:   Ceph提供了RADOS、OSD、MON、Librados、RBD、RGW和Ceph FS等功能元件,但其底層仍然使用RADOS儲存來支撐上層的那些元件;   核心元件:Ceph OSD,Ceph Monitor,

Linux叢集儲存——day4——Ceph分散式儲存搭建、OSD塊儲存、COW快照、RBD儲存映象

Ceph的專有名詞 OSDs 儲存裝置 Monitors 叢集監控元件 MDSs 存放檔案系統的元資料 部署Ceph分散式儲存  

分散式儲存原理

一、HDFS原理 當HDFS叢集啟動之時,DataNode會向NameNode傳送資訊,包括Block儲存位置,DataNode地址。 Client向NameNode彙報當前上傳檔案的資訊(Block數量、檔案上傳時間、檔案許可權、擁有著)。 2.1 Client將大檔案切

IPFS方得社群周歡:web3.0時代的分散式儲存暢想 | 鏈茶訪

鏈茶訪是鏈茶館新開闢的區塊鏈專案報道專欄,每週會對一個專案團隊進行專訪,鏈茶館將挖掘不同專案的閃光點,講述區塊鏈開發者的創業故事,為各位區塊鏈同儕提供最新的專案資訊與行業動向。      鏈茶館今天採訪了IPFS方得社群創始人周歡,該社群目前有4萬用戶,貢獻全網90%IPFS的原創文章,是全

資料庫 分散式儲存

分散式儲存: 分散式儲存是一種資料儲存技術,通過網路使用企業中的每臺機器上的磁碟空間,並將這些分散的儲存資源構成一個虛擬的儲存裝置,資料分散的儲存在企業的各個角落。   分散式儲存系統,是將資料分散儲存在多臺獨立的裝置上。傳統的網路儲存系統採用集中的儲存伺服器存放所有資料,儲存

大資料技術 分散式儲存 HDFS原理

大資料基礎知識 一、什麼是大資料 短時間內快速產生的海量的多種多樣的有價值的資料。 大資料的技術: 1、分散式儲存: 2、分散式計算: 1)分散式批處理: 當資料積累一定的時間後(假設一個月),進行統一的處理。 2)分散式流處理 分散式流處理是一個實時