摘要:機(jī)器配置主機(jī)名地址說明存儲(chǔ)節(jié)點(diǎn)存儲(chǔ)節(jié)點(diǎn)測(cè)試掛載的機(jī)器格式化和掛載磁盤主要目的就是將磁盤格式化為,作為的底層存儲(chǔ)文件系統(tǒng)個(gè)節(jié)點(diǎn)都需要執(zhí)行注意這個(gè)示例是以作為數(shù)據(jù)磁盤。
以 Docker 為代表的容器技術(shù)在云計(jì)算領(lǐng)域正扮演著越來(lái)越重要的角色,甚至一度被認(rèn)為是虛擬化技術(shù)的替代品。企業(yè)級(jí)的容器應(yīng)用常常需要將重要的數(shù)據(jù)持久化,方便在不同容器間共享。為了能夠持久化數(shù)據(jù)以及共享容器間的數(shù)據(jù),Docker 提出了 Volume 的概念。單機(jī)環(huán)境的數(shù)據(jù)卷難以滿足 Docker 集群化的要求,因此需要引入分布式文件系統(tǒng)。目前開源的分布式文件系統(tǒng)有許多,例如 GFS,Ceph,HDFS,F(xiàn)astDFS,GlusterFS 等。
應(yīng)用場(chǎng)景正常安裝環(huán)境下云幫需要一個(gè)分布式文件系統(tǒng),社區(qū)版默認(rèn)使用NFS作為共享存儲(chǔ),如果你的環(huán)境中有分布式文件存儲(chǔ)系統(tǒng),需要使用dc-ctl set storage --mode custom 命令安裝存儲(chǔ)管理服務(wù),然后再將你系統(tǒng)中的分布式存儲(chǔ)掛載到 /grdata 目錄。GlusterFS 支持文件接口, Ceph 支持塊,文件,對(duì)象接口
本文的應(yīng)用場(chǎng)景主要針對(duì)云幫如何使用GlusterFS,后期會(huì)介紹云幫如何支持塊存儲(chǔ)。
GlusterFS是一個(gè)開源的分布式文件系統(tǒng),它可以將分散的存儲(chǔ)空間聚合在一起,形成一個(gè)虛擬的存儲(chǔ)池。它支持橫向擴(kuò)展(Scale-Out),可通過增加存儲(chǔ)節(jié)點(diǎn)來(lái)提升整個(gè)系統(tǒng)的容量或性能,存儲(chǔ)容量可擴(kuò)展至PB級(jí)。這一擴(kuò)展機(jī)制是目前的存儲(chǔ)技術(shù)熱點(diǎn),能有效應(yīng)對(duì)容量、性能等存儲(chǔ)需求。GlusterFS除了支持分散存儲(chǔ)(Distributed,將不同的文件放在不同的存儲(chǔ)節(jié)點(diǎn))之外,還支持鏡像存儲(chǔ)(Replicated,同一個(gè)文件存放在兩個(gè)以上的存儲(chǔ)節(jié)點(diǎn)) 和分片存儲(chǔ)(Stripped,將一個(gè)文件分劃分為多個(gè)固定長(zhǎng)度的數(shù)據(jù),分散存放在所有存儲(chǔ)節(jié)點(diǎn)),其總體架構(gòu)如下所示:
安裝GlusterFS 至少需要2個(gè)節(jié)點(diǎn),在本例中我們成為gfs01,gfs02,
需要這兩臺(tái)機(jī)器可以通過網(wǎng)絡(luò)互相連接
兩個(gè)節(jié)點(diǎn)的系統(tǒng)中必須包含2塊磁盤,假設(shè)sda作為系統(tǒng)盤,那么sdb則作為GlusterFS的存儲(chǔ)盤
注意:GlusterFS會(huì)將集群的動(dòng)態(tài)配置信息存放到 /var/lib/glusterd文件中,需要確保這個(gè)文件可以寫入,否則集群可能會(huì)發(fā)生問題,甚至下線,因此,需要確保系統(tǒng)某有足夠的空間,不要讓磁盤寫滿。
機(jī)器配置
主機(jī)名 | IP地址 | 說明 |
---|---|---|
gfs01 | 172.16.0.151 | 存儲(chǔ)節(jié)點(diǎn)01 |
gfs02 | 172.16.0.150 | 存儲(chǔ)節(jié)點(diǎn)01 |
client | 172.16.0.152 | 測(cè)試掛載的機(jī)器 |
主要目的就是將磁盤格式化為xfs,作為glusterfs的底層存儲(chǔ)文件系統(tǒng).
(2個(gè)節(jié)點(diǎn)都需要執(zhí)行): 注意: 這個(gè)示例是以/dev/sdb作為數(shù)據(jù)磁盤。
如果是Debian/Ubuntu系統(tǒng)可能沒有mkfs.xfs命令,需要手動(dòng)執(zhí)行安裝
apt-get install -y xfsprogs
mkfs.xfs -i size=512 /dev/sdb mkdir -p /grdata echo "/dev/sdb /grdata xfs defaults 1 2" >> /etc/fstab mount -a && mount
命令執(zhí)行完成后,你可以看到 /dev/sdb被掛載到了 /grdata 目錄下。
root@gfs01:~# df -h ... /dev/sdb 97M 5.2M 92M 6% /grdata安裝Glusterfs
Debian8
#add GPG key wget -O - http://download.gluster.org/pub/gluster/glusterfs/3.8/LATEST/rsa.pub | apt-key add - #add source echo deb http://download.gluster.org/pub/gluster/glusterfs/3.8/LATEST/Debian/jessie/apt jessie main > /etc/apt/sources.list.d/gluster.list #update package apt-get update #install apt-get install -y glusterfs-server
CentOS
yum install centos-release-gluster38 yum makechche yum install glusterfs-server
Ubuntu 14
sudo apt-get install software-properties-common sudo add-apt-repository ppa:gluster/glusterfs-3.8 sudo apt-get update sudo apt-get install glusterfs-server啟動(dòng)GlusterFS管理服務(wù)
service glusterfs-server start service glusterfs-server status
service glusterd start service glusterd status glusterd.service - LSB: glusterfs server Loaded: loaded (/etc/rc.d/init.d/glusterd) Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS) CGroup: name=systemd:/system/glusterd.service ├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid ├ 19304 /usr/sbin/glusterfsd --xlator-option georep-server.listen-port=24009 -s localhost... └ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/...配置信任池(trusted pool)
在gfs01執(zhí)行
gluster peer probe gfs02
注意: 當(dāng)使用主機(jī)名時(shí),需要確保兩臺(tái)機(jī)器之間都設(shè)置了主機(jī)名(ip也可以)。
查看狀態(tài)
# gluster peer status Number of Peers: 1 Hostname: gfs02 Uuid: c191b17b-ab9d-4b15-a70d-dcc92be067c9 State: Peer in Cluster (Connected)
注意:一旦存儲(chǔ)池建立之后,只有池中的信任成員可以添加新的節(jié)點(diǎn),新服務(wù)器不能從外部加入到已經(jīng)存在的池
#### 邏輯卷問題
邏輯卷由一個(gè)或多個(gè)存儲(chǔ)塊(Brick)組成,每個(gè)存儲(chǔ)塊對(duì)應(yīng)存儲(chǔ)池中的一個(gè)目錄。
GlusterFS的基本類型有三個(gè),分別是分散存儲(chǔ)(Distributed,將不同的文件放在不同的存儲(chǔ)塊)、鏡像存儲(chǔ)(Replicated,同一個(gè)文件存放在兩個(gè)以上的存儲(chǔ)塊,相當(dāng)于RAID1) 和分片存儲(chǔ)(Striped,將一個(gè)文件分劃分為多個(gè)固定長(zhǎng)度的數(shù)據(jù),分散存放在所有存儲(chǔ)塊,相當(dāng)于RAID0)。另外Distributed也可以跟Replicated和Striped組合形成新的類型。
這里簡(jiǎn)單介紹一些基本卷
###### distribute volume 分布式卷
基于 Hash 算法將文件分布到所有 brick server,只是擴(kuò)大了磁盤空間,不具備容錯(cuò)能力。由于distribute volume 使用本地文件系統(tǒng),因此存取效率并沒有提高,相反會(huì)因?yàn)榫W(wǎng)絡(luò)通信的原因使用效率有所降低,另外本地存儲(chǔ)設(shè)備的容量有限制,因此支持超大型文件會(huì)有一定難度。
###### stripe volume 條帶卷
類似 RAID0,文件分成數(shù)據(jù)塊以 Round Robin 方式分布到 brick server 上,并發(fā)粒度是數(shù)據(jù)塊,支持超大文件,大文件的讀寫性能高。
###### replica volume 復(fù)制卷
文件同步復(fù)制到多個(gè) brick 上,文件級(jí) RAID1,具有容錯(cuò)能力,寫性能下降,讀性能提升。Replicated 模式,也稱作 AFR(Auto File Replication),相當(dāng)于 RAID1,即同一文件在多個(gè)鏡像存儲(chǔ)節(jié)點(diǎn)上保存多份,每個(gè) replicated 子節(jié)點(diǎn)有著相同的目錄結(jié)構(gòu)和文件,replica volume 也是在容器存儲(chǔ)中較為推崇的一種
gfs01和gfs02都需要執(zhí)行
#這里跳過,已經(jīng)建立了 mkdir -p /grdata/
隨便在一臺(tái)機(jī)器上執(zhí)行
root@gfs01:~# gluster volume create gv0 replica 2 gfs01:/grdata/ gfs02:/grdata/ volume create: gv0: success: please start the volume to access data # 使用Replicated的方式,建立一個(gè)名為gv0的卷(Volume),存儲(chǔ)塊(Brick)為2個(gè),分別為gfs01:/grdata和gfs02:/grdata。
啟用邏輯卷
root@gfs01:~# gluster volume start gv0 volume start: gv0: success
查看邏輯卷狀態(tài),確認(rèn)狀態(tài)為 “Started”
root@gfs01:~# gluster volume info Volume Name: gv0 Type: Replicate Volume ID: fde79f7d-294b-4eea-ac95-73bba9f24435 Status: Started Snapshot Count: 0 Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: 172.16.0.151:/grdata Brick2: 172.16.0.150:/grdata Options Reconfigured: transport.address-family: inet performance.readdir-ahead: on nfs.disable: on
注意:如果存儲(chǔ)卷沒有啟動(dòng),需要/var/log/glusterfs 目錄查看日志,文件通常是 glusterfs-glusterd.vol.log
相關(guān)命令1.創(chuàng)建信任存儲(chǔ)池(如要?jiǎng)?chuàng)建一個(gè)包含3個(gè)服務(wù)器的存儲(chǔ)池,則需要從第一個(gè)服務(wù)器server1中把另外兩個(gè)服務(wù)器加入存儲(chǔ)池中) # gluster peer probe server2 Probe successful # gluster pool peer server3 Probe successful 2.查看存儲(chǔ)池狀態(tài) # gluster peer status Number of Peers: 2 Hostname: 172.16.0.151 Uuid: 86bd7b96-1320-4cd5-b3e1-e537d06dd5f7 State: Peer in Cluster (Connected) Hostname: 172.16.0.150 Uuid: c191b17b-ab9d-4b15-a70d-dcc92be067c9 State: Peer in Cluster (Connected) 3.從存儲(chǔ)池移除服務(wù)器 # gluster peer detach 172.16.0.150 Detach successful 4.邏輯卷管理 gluster volume delete/stop/start 邏輯卷名(gv0) 5.邏輯卷中新增存儲(chǔ)塊(操作存儲(chǔ)塊后都需要執(zhí)行g(shù)luster volume rebalance gv0 start重建數(shù)據(jù)) gluster volume add-brick/remove-brick gv0 gfs03:/grdata測(cè)試GlusterFS存儲(chǔ)卷
在這一步中,我們使用client這臺(tái)機(jī)器來(lái)掛載GlusterFS的存儲(chǔ)卷進(jìn)行測(cè)試。這臺(tái)機(jī)器需要安裝GlusterFS的client端程序,這里我們只使用client機(jī)器進(jìn)行掛載和文件讀寫測(cè)試。
# 安裝GlusterFS client程序 ### CentOS / RHEL ### yum install -y glusterfs-client ### Ubuntu / Debian ### apt-get install -y glusterfs-client # 將GlusterFS 存儲(chǔ)卷掛載到/mnt mount -t glusterfs 172.16.0.151:/gv0 /grdata df -h 172.16.0.151:/gv0 97M 5.4M 92M 6% /grdata # 確認(rèn)掛載結(jié)果 mount -t fuse.glusterfs 172.16.0.151:/gv0 on /grdata type fuse.glusterfs (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=131072) # 重啟自動(dòng)掛載 在/etc/fstab 172.16.0.151:/grdata /grdata glusterfs defaults,_netdev 0 0 # 將/var/log/messages復(fù)制到存儲(chǔ)卷,循環(huán)執(zhí)行100次 for i in `seq -w 1 100`; do cp -rp /var/log/messages /grdata/copy-test-$i; done
先檢查掛載點(diǎn)
ls -lA /mnt | wc -l
可以看到 100個(gè)文件,在每個(gè)存儲(chǔ)節(jié)點(diǎn)查看掛載點(diǎn)信息
ls -lA /grdata
因?yàn)閯?chuàng)建卷gv0的時(shí)候使用的是鏡像存儲(chǔ)(Replicated),所以在gv0上寫入的文件應(yīng)該同時(shí)出現(xiàn)在兩個(gè)服務(wù)器的/grdata目錄上,你可以看到每臺(tái)機(jī)器都有100個(gè)文件,如果集群不是復(fù)制模式,每臺(tái)機(jī)器的存儲(chǔ)文件應(yīng)該各50
END到這里關(guān)于GlusterFS介紹就到這里了。那么云幫如何配置呢,很簡(jiǎn)單第一步
dc-ctl set storage --mode custom,接著按照如上的操作將系統(tǒng)中的分布式存儲(chǔ)掛載到 /grdata 目錄即可。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/26902.html
摘要:初步理解如果最近打電話給武漢的小伙伴,他說信號(hào)不好,那么相信我,他肯定不是真的信號(hào)不好,也不是不想和你說話,而是他可能在冰箱里。。。 初步理解 如果最近打電話給武漢的小伙伴,他說信號(hào)不好,那么相信我,他肯定不是真的信號(hào)不好,也不是不想和你說話,而是他可能在冰箱里。。。武漢的天氣從來(lái)都是喜怒無(wú)常的,是吧,屌絲氣十足,今年也是絲毫看不出有任何逆襲的跡象和可能性,當(dāng)然咱也沒必要去操那個(gè)心;好...
摘要:從最大的同性社交平臺(tái)獲取數(shù)據(jù)好了,言歸正傳,回到題目。烏云密布的爬蟲百度網(wǎng)盤這件事,是我不想看到的,這類安全問題的一個(gè)共同特點(diǎn)用戶自身確實(shí)存在問題。 本文作者:夏之冰雪,i春秋簽約作家 《我在百度網(wǎng)盤上看到上萬(wàn)條車主個(gè)人信息,企業(yè)、政府高官信息、各種數(shù)據(jù)庫(kù)和無(wú)窮無(wú)盡的盜版》,一時(shí)間,這篇文章就火了,火爆程度另百度猝不及防。 其實(shí)呢,這事真不能全怪百度,畢竟用戶分享出去了。之所以引起這么...
摘要:從現(xiàn)在開始,養(yǎng)成寫技術(shù)博客的習(xí)慣,或許可以在你的職業(yè)生涯發(fā)揮著不可忽略的作用。如果想了解更多優(yōu)秀的前端資料,建議收藏下前端英文網(wǎng)站匯總這個(gè)網(wǎng)站,收錄了國(guó)外一些優(yōu)質(zhì)的博客及其視頻資料。 前言 寫文章是一個(gè)短期收益少,長(zhǎng)期收益很大的一件事情,人們總是高估短期收益,低估長(zhǎng)期收益。往往是很多人堅(jiān)持不下來(lái),特別是寫文章的初期,剛寫完文章沒有人閱讀會(huì)有一種挫敗感,影響了后期創(chuàng)作。 從某種意義上說,...
摘要:從現(xiàn)在開始,養(yǎng)成寫技術(shù)博客的習(xí)慣,或許可以在你的職業(yè)生涯發(fā)揮著不可忽略的作用。如果想了解更多優(yōu)秀的前端資料,建議收藏下前端英文網(wǎng)站匯總這個(gè)網(wǎng)站,收錄了國(guó)外一些優(yōu)質(zhì)的博客及其視頻資料。 前言 寫文章是一個(gè)短期收益少,長(zhǎng)期收益很大的一件事情,人們總是高估短期收益,低估長(zhǎng)期收益。往往是很多人堅(jiān)持不下來(lái),特別是寫文章的初期,剛寫完文章沒有人閱讀會(huì)有一種挫敗感,影響了后期創(chuàng)作。 從某種意義上說,...
摘要:已經(jīng)超出本地存儲(chǔ)限定大小可進(jìn)行超出限定大小之后的操作,如下面可以先清除記錄,再次保存面試官一波素質(zhì)三連對(duì)于只是會(huì)使用的同學(xué)來(lái)說,肯定是不得其解的。 最近面試的時(shí)候關(guān)于html5API總會(huì)被問到localStorage的問題, 對(duì)于一般的問題很簡(jiǎn)單,無(wú)非就是 localStorage、sessionStorage和cookie這三個(gè)客戶端緩存的區(qū)別 localStorage的API,g...
閱讀 3261·2021-11-18 10:02
閱讀 1463·2021-10-12 10:08
閱讀 1264·2021-10-11 10:58
閱讀 1279·2021-10-11 10:57
閱讀 1178·2021-10-08 10:04
閱讀 2133·2021-09-29 09:35
閱讀 783·2021-09-22 15:44
閱讀 1283·2021-09-03 10:30