您好,登錄后才能下訂單哦!
這篇文章主要介紹“GlusterFS擴(kuò)展屬性是什么”,在日常操作中,相信很多人在GlusterFS擴(kuò)展屬性是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”GlusterFS擴(kuò)展屬性是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
擴(kuò)展屬性是現(xiàn)代文件系統(tǒng)普遍支持,而又不容易被用戶發(fā)現(xiàn)的特性。
Glusterfs中DHT,AFT, stripe都廣泛使用了擴(kuò)展屬性即xattr。
xattr是一個(gè)key-value結(jié)構(gòu), 包括一個(gè)字符串key, 和一個(gè)二進(jìn)制的value。我們有g(shù)et/set/list xattr方法來(lái)操作它們。
在glusterfs中廣泛使用了這樣一個(gè)小伎倆: 當(dāng)set/get xattr的時(shí)候,會(huì)觸發(fā)gluster server的相關(guān)操作。例如:DHT中的 reblance代碼使用了一個(gè)特定的attr來(lái)觸發(fā)重新計(jì)算DHT layout的操作。
下面著重討論 DHT中的trusted.glusterfs.dht xattr和 AFR中的trusted.glusterfs.afr.* xattr
DHT功能的核心是一致性哈希(consistent hashing)。文件存放的地點(diǎn)取決于文件名的哈希值, 每個(gè)brick都有一個(gè)哈希值區(qū)間,文件名的哈希值的落在某brick的哈希值區(qū)間,文件就存放在該birck上。
而目錄有點(diǎn)不一樣,目錄在每個(gè)brick上都有。但是每個(gè)目錄的xattr trusted.glusterfs.dht都不一樣。因?yàn)樗鼈兯哂械墓^(qū)間不同。
當(dāng)lookup目錄的時(shí)候,我們需要收集這些xattr, 組成一個(gè)table。同時(shí)需要注意區(qū)間之間存在的空隙和重疊的問(wèn)題。
不難發(fā)現(xiàn),這種方法有嚴(yán)重的擴(kuò)展性(scalability)問(wèn)題, 每當(dāng)添加/刪除一個(gè)brick的時(shí)候,我們就要重新計(jì)算xattr中存放的哈希區(qū)間。
然而, AFR在使用attr方面,比DHT更加復(fù)雜。
比如一個(gè)叫test1的afr卷,由test1-client-0和test1-client-1兩個(gè)brick組成。 那么test1-client-0上的文件就會(huì)具有名為 trusted.afr.test1-client-1的xattr.
這是因?yàn)锳FR的目的就是為了從failure中恢復(fù)。所以在一個(gè)brick上的操作會(huì)在其他所有brick上的xattr中記錄,這樣當(dāng)副本數(shù)目多余2個(gè)時(shí)候很浪費(fèi)。:-/
在xattr中存放的是“等待操作的counter”,
操作分為三種類型:
數(shù)據(jù)操作– mostly writes but also e.g. truncates
元數(shù)據(jù)操作– e.g. chmod/chown/chgrp, and xattrs (yes, this gets recursive)
文件操作 – create, delete, rename, etc.
每次文件系統(tǒng)操作執(zhí)行前,都會(huì)首先對(duì)counter加1。
執(zhí)行完成后,再對(duì)counter 減一。
正常情況下,counter應(yīng)該回到0。入如果有節(jié)點(diǎn)中途出了問(wèn)題,counter不是0,那么我們就可以知道這個(gè)節(jié)點(diǎn)out of date, 并啟動(dòng)self-heal修復(fù)它。
那么可想而知,最嚴(yán)重的情況是 AFR兩個(gè)副本節(jié)點(diǎn)的counter都不是0, 我們將這種特殊情況稱為 "split brain"。 這時(shí)系統(tǒng)很難或者說(shuō)幾乎不可能自己恢復(fù)正常。
到此,關(guān)于“GlusterFS擴(kuò)展屬性是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。