亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 7905 | 回復(fù): 5
打印 上一主題 下一主題

DRBD技術(shù)特點(diǎn) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-02-19 11:39 |只看該作者 |倒序?yàn)g覽
DRBD技術(shù)特點(diǎn)

    在這里列舉了DRBD的所有技術(shù)特點(diǎn),也正是因?yàn)樗羞@些特點(diǎn),因此在生產(chǎn)環(huán)境中應(yīng)用比較廣泛,也正是有這些特點(diǎn)DRBD也得到了進(jìn)一步的發(fā)展。在了解和使用DRBD技術(shù)之前有必要認(rèn)識(shí)它的技術(shù)特點(diǎn)。

2.1. 單主模式

    單主模式,在一個(gè)集群內(nèi)一個(gè)資源在任何給定的時(shí)間內(nèi)僅有一個(gè)primary角色,由于這種模式保證了在任何一個(gè)時(shí)刻只能有一個(gè)集群節(jié)點(diǎn)來操作數(shù)據(jù),因此這種模式能夠使用任何常規(guī)的文件系統(tǒng)(例如 ext3、ext4、XFS等)

    部署在單主模式下DRBD實(shí)際上是一種常規(guī)的HA結(jié)構(gòu),即具有故障轉(zhuǎn)移功能的高可用集群方式。

2.2. 雙主模式

    在雙主模式下,對(duì)于一個(gè)資源,在任何給定的時(shí)刻該集群都有兩個(gè)primary節(jié)點(diǎn),換句話說DRBD的兩個(gè)節(jié)點(diǎn)此時(shí)都為primary角色。

由于使用了雙主節(jié)點(diǎn),那么并發(fā)訪問也就成為了可能,因此這種模式需要使用共享集群文件系統(tǒng),以便使用分布式鎖管理器(DLM),例如GFS和OCFS2系統(tǒng)。

    對(duì)于使用負(fù)載均衡的集群來說,部署雙主模式是首先的方法,采用負(fù)載均衡的集群能夠在這個(gè)兩個(gè)DRBD節(jié)點(diǎn)上提供并發(fā)數(shù)據(jù)訪問。這種模式在默認(rèn)情況下是禁用的,因此要想使用這種模式那么就必須在DRBD的配置文件中明確的啟用這種模式。

    參考“雙主模式”部分,以便在指定的資源中啟用雙主模式。

2.3. 復(fù)制數(shù)據(jù)傳輸模式

    DRBD支持3個(gè)絕然不同的復(fù)制模式,允許使用3個(gè)不同程度的同步復(fù)制,換句話說就是DRBD提供了3種不同級(jí)別的復(fù)制協(xié)議。

        協(xié)議 A,異步(Asynchronous)復(fù)制協(xié)議。在這種復(fù)制方式中,在本地寫操作完成之后,并且發(fā)往對(duì)點(diǎn)的復(fù)制數(shù)據(jù)包已經(jīng)進(jìn)入本地TCP發(fā)送緩存后,那么本地寫操作在primary節(jié)點(diǎn)上的操作被認(rèn)為是完成了。在這種模式下,如果出現(xiàn)故障轉(zhuǎn)移,那么數(shù)據(jù)可能將會(huì)丟失,處于備用節(jié)點(diǎn)的數(shù)據(jù)在故障轉(zhuǎn)移之后數(shù)據(jù)始終沒有改變,那么最近更新、主節(jié)點(diǎn)崩潰之前的數(shù)據(jù)將會(huì)被丟失。

協(xié)議A最常使用在遠(yuǎn)距離復(fù)制的環(huán)境中,在使用這種方式時(shí)會(huì)和DRBD代理組合使用,主要用于搭建災(zāi)難恢復(fù)的有效解決方案,參考“使用DRBD代理實(shí)現(xiàn)遠(yuǎn)距離復(fù)制”。

        協(xié)議 B,內(nèi)存同步(semi-synchronous)復(fù)制協(xié)議。在這種協(xié)議下,當(dāng)本地磁盤寫操作完成,并且復(fù)制數(shù)據(jù)已經(jīng)到達(dá)了對(duì)點(diǎn),那么本地寫操作就認(rèn)為在primary節(jié)點(diǎn)上的寫操作被認(rèn)為是寫完成。通常在這種方式下,如果出現(xiàn)故障轉(zhuǎn)移時(shí)不會(huì)有數(shù)據(jù)丟,然而萬一兩個(gè)節(jié)點(diǎn)同時(shí)出現(xiàn)掉電,存放在內(nèi)存中的數(shù)據(jù)沒有及時(shí)的寫入磁盤,那么這將會(huì)使得primary節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)將會(huì)出現(xiàn)不可挽回的破會(huì),最近在primary節(jié)點(diǎn)上寫入的數(shù)據(jù)可能將會(huì)被丟失。

        協(xié)議 C,同步(Synchronous)復(fù)制協(xié)議。僅在本地和遠(yuǎn)程磁盤寫操作已經(jīng)確認(rèn)被寫入,本地寫操作在primary節(jié)點(diǎn)上的寫操作才被認(rèn)為是寫完成。因此,在這個(gè)數(shù)據(jù)復(fù)制模式中,單個(gè)節(jié)點(diǎn)損壞是不會(huì)丟失數(shù)據(jù)的。如果兩個(gè)節(jié)點(diǎn)(或者是它們的存儲(chǔ)子系統(tǒng))同時(shí)發(fā)生了不可挽回的損壞,那么在這種復(fù)制協(xié)議下數(shù)據(jù)將會(huì)被丟失。

        到目前為止,在DRBD技術(shù)最常用的復(fù)制協(xié)議就是協(xié)議C。

    選擇部署哪一種復(fù)制協(xié)議將會(huì)影響兩個(gè)因素:數(shù)據(jù)保護(hù)和反應(yīng)時(shí)間。相比之下吞吐量在很大程度上不依賴于所選擇的協(xié)議。

2.4. 多種傳輸復(fù)制數(shù)據(jù)的協(xié)議

    DRBD的復(fù)制和同步結(jié)構(gòu)中支持多種套接字,也就是說在底層的傳輸協(xié)議上支持多種傳輸協(xié)議:

        IPv4上的TCP 協(xié)議:這是最常用的執(zhí)行方式,并且也是DRBD默認(rèn)的方式,可以用在任何使用IPv4的系統(tǒng)上;

        IPv6上的TCP協(xié)議:對(duì)于復(fù)制和同步,在配置為標(biāo)準(zhǔn)的TCP套接字時(shí),DRBD也可以使用IPv6網(wǎng)絡(luò)協(xié)議,在語義和性能上相當(dāng)于IPv4,只是使用了不同的地址格式;

        SDP協(xié)議:這種方式是BSD格式的套接字,用于兼容RDMA(Remote Direct Memory Access)方式,例如 InfiniBand。

        DDP作為OFED堆棧的一部分對(duì)于大多數(shù)當(dāng)前的發(fā)布版本來說都是有效的。SDP使用了IPv4格式的IP地址。采用InfiniBand互相連接,SDP將會(huì)為DRBD提供一個(gè)高吞吐、低延時(shí)的復(fù)制網(wǎng)絡(luò)。

        SuperSockets協(xié)議:這種方式使用單一的、高效的和具有兼容RDMA(Remote Direct Memory Access)的集成電路,它替代了TCP/IP堆棧部分。DRBD使用這種類型的套接字在復(fù)制中延時(shí)將非常低,SuperSockets必須運(yùn)行在特定的硬件上,當(dāng)前唯一的提供商就是Dolphin互聯(lián)網(wǎng)解決方案(Dolphin Interconnect Solutions)。

2.5. 有效地同步策略

    同步、重新同步完全不同于設(shè)備復(fù)制,復(fù)制發(fā)生在任何向處于primary角色資源的寫事件;而同步發(fā)生在primary節(jié)點(diǎn)和secondary節(jié)點(diǎn)之間,因此從這一點(diǎn)看來產(chǎn)生寫入的時(shí)間和階段都不同,但是總體上來說,它卻會(huì)影響整個(gè)設(shè)備。如果復(fù)制連接由于某種原因(可能是primary失敗,也可能是secondary節(jié)點(diǎn)失敗,或者是復(fù)制連接的失敗)被中斷,那么同步就是必須的了。從這個(gè)意義上將同步是高效的,但是DRBD不會(huì)按照順序它們被原始寫入的順序同步修改的塊,而是按照線性順序。因此可能會(huì)帶來以下結(jié)果:

        由于幾個(gè)連續(xù)寫操作的塊在同步時(shí)僅是一次性的寫入同步,因此數(shù)據(jù)寫入速度非常迅速;

        由于塊同步會(huì)依據(jù)原本磁盤上塊的分布,因此與同步伴隨的也會(huì)有很少的磁盤尋址;

        在同步中,處于備用節(jié)點(diǎn)上的存儲(chǔ)的數(shù)據(jù)可能部分?jǐn)?shù)據(jù)已經(jīng)過期,或者可能有些數(shù)據(jù)已經(jīng)更新,這種狀態(tài)稱為狀態(tài)不一致;

    處于同步的DRBD,活動(dòng)節(jié)點(diǎn)上提供的服務(wù)不會(huì)被中斷,因?yàn)橥綍?huì)在后臺(tái)進(jìn)行。

盡管如此,但是數(shù)據(jù)不一致的節(jié)點(diǎn)通常不能夠投入使用,然而,當(dāng)DRBD與LVM集成的使用中,那么在同步之前將會(huì)自動(dòng)的創(chuàng)建LVM快照,這種方式確保了DRBD對(duì)點(diǎn)有效數(shù)據(jù)的拷貝。

2.5.1. 可變的同步速率

    在可變的同步速率中,這也是默認(rèn)的方式,DRBD會(huì)檢測(cè)用于同步網(wǎng)絡(luò)的有效的帶寬,然后將其和進(jìn)入前臺(tái)應(yīng)用程序輸入/輸出的流量做比較,然后再在這個(gè)基于完全控制回路中選擇一個(gè)適當(dāng)?shù)耐剿俾省?br />
    在“可變同步速率的配置”部分,講述了關(guān)于可變速率同步的配置建議。

2.5.2. 鎖定同步速率

    在鎖定同步速率的方式下,每秒鐘運(yùn)送到同步對(duì)點(diǎn)的數(shù)據(jù)量,也就是同步速率,可以設(shè)置為一個(gè)具體的值,或者說是設(shè)置了一個(gè)靜態(tài)上限。通過這個(gè)限制值,那么就可以計(jì)算出給定運(yùn)送數(shù)據(jù)數(shù)量的時(shí)間值:

             tsync=D/R  

    在這個(gè)公式中:

        tsync表示希望(或者是必須)使用同步的時(shí)間;

        D表示需要同步數(shù)據(jù)的總量,這個(gè)數(shù)量是不可改變的,因?yàn)樗碇鴳?yīng)用程序修改數(shù)據(jù)的總量,這是沒法控制的;

        R 表示同步的速率,在有效的帶寬范圍和I/O子系統(tǒng)內(nèi)這是一個(gè)可以支配的值,換句話說就是這個(gè)值將會(huì)受到同步網(wǎng)絡(luò)帶寬和I/O子系統(tǒng)因素的影響;

    因此,在指定同步速率時(shí),可以借助這個(gè)公式,在這個(gè)公式中只有D在一定條件下是固定不變的,而tsync和R將會(huì)成反比,即:

              D=tsync*R

    正是因?yàn)檫@個(gè)關(guān)系,那么在設(shè)置R的時(shí)候要考慮到需要使用的tsync就可以了。

2.5.3. 基于校驗(yàn)和的復(fù)制

    對(duì)于DRBD的同步算法使用數(shù)據(jù)摘要(也就是常說的校驗(yàn)和)會(huì)一步增強(qiáng)同步數(shù)據(jù)的性能。

    在使用基于校驗(yàn)和的同步中,DRBD在同步數(shù)據(jù)之前會(huì)讀取磁盤上是的數(shù)據(jù)塊,并且會(huì)對(duì)在當(dāng)前磁盤上找到的內(nèi)容計(jì)算哈希值,然后會(huì)比較這個(gè)哈希值,就是說一臺(tái)計(jì)算機(jī)的哈希值與對(duì)點(diǎn)計(jì)算機(jī)上同一個(gè)扇區(qū)的哈希值比較,如果哈希值匹配,那么將會(huì)忽略重新寫入數(shù)據(jù),而不是蠻力的強(qiáng)制全部同步。。

    在DRBD的disconnected模式下,重新寫入一個(gè)扇區(qū)的內(nèi)容時(shí),這種方式可以顯著的縮短同步數(shù)據(jù)所使用的時(shí)間。

2.6. 延時(shí)同步復(fù)制數(shù)據(jù)

在復(fù)制鏈路發(fā)生擁擠時(shí),如果DRBD配置適當(dāng),那么在這種情況下DRBD會(huì)暫停復(fù)制。在這種模式中,primary點(diǎn)會(huì)“搶”在secondary節(jié)點(diǎn)之前——換句話說就是會(huì)臨時(shí)出現(xiàn)暫時(shí)不同步,但是仍將會(huì)在secondary節(jié)點(diǎn)上留下一個(gè)一致的拷貝。當(dāng)帶寬適當(dāng)時(shí),復(fù)制將會(huì)自動(dòng)重新開始,復(fù)制也將會(huì)在后臺(tái)進(jìn)行。

    暫時(shí)不同步的典型情景是出現(xiàn)在使用可變帶寬的情況下,例如通過共享連接實(shí)現(xiàn)的數(shù)據(jù)中心或者云存儲(chǔ)。

2.7. 在線設(shè)備驗(yàn)證

在線設(shè)備驗(yàn)證能夠使得用戶在兩個(gè)節(jié)點(diǎn)之間以一種高效的方式進(jìn)行塊對(duì)快的完整性檢測(cè)。注意,這里說的高效指的是高效的使用網(wǎng)絡(luò)帶寬,并且這種校驗(yàn)不會(huì)以任何方式破壞冗余。在線驗(yàn)證是一個(gè)資源密集型操作,它會(huì)很明顯的影響CPU使用率。

2.8. 復(fù)制流量的完整性檢測(cè)

DRBD可以選擇使用加密消息摘要算法,例如MD5、SHA-1或者CRC-32C,執(zhí)行端到端的數(shù)據(jù)完整性檢測(cè)。這些消息摘要加密算法不是DRBD提供的,而是有Linux內(nèi)核加密API提供,DRBD僅僅是調(diào)用使用它們。因此DRBD能夠使用linux內(nèi)核提供的任何有效的摘要算法。

    如果啟用了這個(gè)功能,那么DRBD會(huì)對(duì)每一個(gè)被復(fù)制到對(duì)點(diǎn)的數(shù)據(jù)塊都產(chǎn)生一個(gè)消息摘要,對(duì)點(diǎn)會(huì)使用這個(gè)消息摘要校驗(yàn)復(fù)制的數(shù)據(jù)包。如果被復(fù)制的數(shù)據(jù)塊不能夠被正確的驗(yàn)證,那么它將會(huì)請(qǐng)求對(duì)點(diǎn)重新發(fā)送復(fù)制數(shù)據(jù)塊。

    這種方式保護(hù)了出錯(cuò)的源數(shù)據(jù),如果出現(xiàn)沒有被檢測(cè)到的出錯(cuò)數(shù)據(jù)包,那么在復(fù)制進(jìn)程中將會(huì)出現(xiàn)“腐化”的數(shù)據(jù):

        位錯(cuò)誤("位翻轉(zhuǎn)"發(fā)生在發(fā)送數(shù)據(jù)的節(jié)點(diǎn)主存(也就是內(nèi)存)和網(wǎng)絡(luò)接口(也就是網(wǎng)卡)之間,這種錯(cuò)誤通常數(shù)據(jù)沒有通過校驗(yàn)和檢查就被發(fā)到網(wǎng)卡;

        位錯(cuò)誤("位翻轉(zhuǎn)"同樣會(huì)發(fā)生在接收數(shù)據(jù)對(duì)點(diǎn)的網(wǎng)卡到內(nèi)存之間,同樣是由于TCP校驗(yàn)和丟棄;

        由于競(jìng)爭或者是網(wǎng)卡固件及驅(qū)動(dòng)的缺陷等任何形式造成的數(shù)據(jù)不完整問題;

        在兩個(gè)節(jié)點(diǎn)之間由于網(wǎng)絡(luò)組建進(jìn)行的數(shù)據(jù)重組產(chǎn)生的位錯(cuò)誤或者是注入了無用的數(shù)據(jù),如果是使用了直接連接,也就是背靠背的連接,那么則不會(huì)有這種情況產(chǎn)生;

    圖    解:



2.9. 腦裂通知和自動(dòng)恢復(fù)

    腦裂產(chǎn)生于以下情況:由于集群節(jié)點(diǎn)之間的網(wǎng)絡(luò)連接臨時(shí)失敗,造成這個(gè)失敗的原因可能是集群管理軟件或者是人為的干涉。發(fā)生腦裂之后,節(jié)點(diǎn)之間變?yōu)闊o連接,兩個(gè)節(jié)點(diǎn)都會(huì)切換為primary。這是一種潛在有害狀態(tài),由于在這種狀態(tài)下,無論對(duì)哪一個(gè)節(jié)點(diǎn)上的數(shù)據(jù)修改不能夠被復(fù)制到對(duì)點(diǎn),這樣的結(jié)果是兩個(gè)節(jié)點(diǎn)將會(huì)產(chǎn)生“分歧”,而且不能夠合并。

    當(dāng)DRBD檢測(cè)到腦裂發(fā)生時(shí),DRBD允許設(shè)置自動(dòng)發(fā)送腦裂通知(通過電子郵件或者其它方法)。發(fā)生了腦裂情況,推薦使用手工恢復(fù)腦裂情況,然而為了從根本上解決問題,在某些情況下使用自動(dòng)處理DRBD腦裂情況也是必要的。解決DRBD腦裂造成的數(shù)據(jù)不一致有以下4個(gè)模式:

        丟棄對(duì)較新的Primary節(jié)點(diǎn)上的修改:在這種模式下當(dāng)網(wǎng)絡(luò)連接重新建立后并且發(fā)現(xiàn)了腦裂,DRBD將會(huì)拋棄在自動(dòng)切換到primary角色資源上運(yùn)行期間的所有數(shù)據(jù)修改;

        丟棄對(duì)較老的Primary節(jié)點(diǎn)上的修改:在這種模式下,DRBD將會(huì)首先丟棄最先切換為primary角色資源上運(yùn)行期間修改的數(shù)據(jù);

        丟棄對(duì)較少的Primary節(jié)點(diǎn)上的修改:在這種模式下,DRBD將會(huì)檢測(cè)兩個(gè)節(jié)的修改記錄,對(duì)于修改記錄較少的點(diǎn)將會(huì)被丟棄;

        在發(fā)生腦裂后如果一個(gè)節(jié)點(diǎn)沒有任何更變,那么可以從另一節(jié)點(diǎn)完美恢復(fù):在這種模式下,如果其中一個(gè)節(jié)點(diǎn)在腦裂期間沒進(jìn)行過修改,那么DRBD將會(huì)簡單的優(yōu)美的恢復(fù)數(shù)據(jù)并且聲明腦裂已經(jīng)解決。注意,這種情況是相當(dāng)不太可能的。

是否能夠使用自動(dòng)腦裂恢復(fù),在很大程度上依賴于具體的應(yīng)用,F(xiàn)在考慮一個(gè)例子,在DRBD上運(yùn)行一個(gè)數(shù)據(jù)庫,如果這是一個(gè)Web應(yīng)用訪問的數(shù)據(jù)庫,那么對(duì)于丟棄較少修改是可以的,與之相比,如果它是一個(gè)運(yùn)行在金融業(yè)務(wù)下的數(shù)據(jù)庫,那么無論是在什么事件下產(chǎn)生的腦裂,都必須通過手動(dòng)恢復(fù)。因此,在啟用自動(dòng)恢復(fù)腦裂之前要仔細(xì)考慮應(yīng)用程序的需要。

2.10. 支持磁盤刷新

    在本地塊設(shè)備(例如 硬盤驅(qū)動(dòng)器或者是RAID邏輯磁盤)啟用了磁盤寫緩存時(shí),在達(dá)到易失緩存的限制時(shí)系統(tǒng)負(fù)責(zé)將緩存的的數(shù)據(jù)全部寫入驅(qū)動(dòng)器?刂浦圃焐谭Q之為回寫模式(write-back mode),與該模式相對(duì)的為直接寫入模式(write-through mode),就是用戶寫入的數(shù)據(jù)不會(huì)進(jìn)入易失存儲(chǔ)緩存,而是直接寫入磁盤。如果突然的掉電發(fā)生在回寫模式下,那么這意味著可能會(huì)導(dǎo)致數(shù)據(jù)(為什么說是可能,因?yàn)榭赡艿綦姷乃查g沒有數(shù)據(jù)在易失存儲(chǔ)緩存中存在),就是說在回寫模式中,由于存儲(chǔ)在易失存儲(chǔ)緩存中的數(shù)據(jù)因?yàn)闆]有及時(shí)的寫入磁盤而丟失數(shù)據(jù)。

    為了避免這種情況的發(fā)生,DRBD使用了磁盤刷新(disk flush)。磁盤刷新是一個(gè)寫操作,就是說,它可以有效的將數(shù)據(jù)寫入到磁盤,而不是緩存,DRBD為寫操作使用了磁盤刷新,包括數(shù)據(jù)復(fù)制和數(shù)據(jù)的元數(shù)據(jù)。事實(shí)上,DRBD在它認(rèn)為有必要的環(huán)境中回避了使用寫緩存這個(gè)機(jī)制,例如在 活動(dòng)日志更新或者對(duì)于不明確實(shí)施寫入緩存在寫入磁盤依賴的情況下。這意味著面對(duì)電源的失敗又增加了一個(gè)額外的可靠性保護(hù)。

    重要的是理解DRBD能夠使用磁盤刷新(這里需要明確一下,僅當(dāng)它們的上層,有就是后臺(tái)設(shè)備支持磁盤刷新),對(duì)于大多數(shù)SCSI和STAT磁盤啟動(dòng)器大多數(shù)內(nèi)核都適當(dāng)?shù)闹С执疟P刷新,Linux軟RAID(md)為RAID-1所有組成RAID-1的磁盤驅(qū)動(dòng)器也支持了磁盤刷新,同樣對(duì)于映射設(shè)備(例如 LVM2, dm-raid及多路徑)也支持了磁盤刷新機(jī)制。

電池支持寫緩存(BBWC)的控制器使用了電池支持易失存儲(chǔ)器,在這種設(shè)備上,當(dāng)?shù)綦娭蠡謴?fù)供電時(shí),刷新控制器會(huì)刷新所有在電池支的持緩存中等待寫入磁盤的數(shù)據(jù),這樣就確保了所有提交到了易失存儲(chǔ)上的數(shù)據(jù)能夠被確實(shí)傳輸?shù)椒(wěn)定的存儲(chǔ)器上,也就是這里說的磁盤設(shè)備上。當(dāng)運(yùn)行在DRBD設(shè)備上層的驅(qū)動(dòng)器能夠接受禁用磁盤刷新,那么為了提供DRBD的寫性能可能會(huì)禁用磁盤刷新。


2.11. 磁盤錯(cuò)誤處理策略

    如果DRBD節(jié)點(diǎn)上的后端塊設(shè)備(也就是主機(jī)上的磁盤)失敗,那么DRBD可以將錯(cuò)誤傳遞到上層(通常也就是操作系統(tǒng)層面),也可以屏蔽上層的I/O錯(cuò)誤。

    下面來了解一下這兩種策略:

        傳遞I/O錯(cuò)誤:DRBD被配置為傳遞I/O錯(cuò)誤,如果任何在低級(jí)設(shè)備上發(fā)生的此類錯(cuò)誤那么都將會(huì)被傳遞到上層的I/O層。在這種方式下,錯(cuò)誤將會(huì)由上層處理,這種方式很有可能會(huì)導(dǎo)致文件系統(tǒng)將其掛載為只讀系統(tǒng)。使用這個(gè)策略不保證服務(wù)能夠繼續(xù)提供,因此對(duì)于大多數(shù)用戶來說也不推薦使用這種策略。

        屏蔽I/O錯(cuò)誤:DRBD配置為分離底層I/O錯(cuò)誤。如果在底層發(fā)生第一個(gè)低級(jí)的I/O錯(cuò)誤,DRBD將會(huì)分離底層I/O錯(cuò)誤。在發(fā)生I/O錯(cuò)誤錯(cuò)誤而被屏蔽時(shí),DRBD將會(huì)“透明”(就是說用戶或者說用戶應(yīng)用程序不會(huì)感覺到錯(cuò)誤的存在)的通過網(wǎng)絡(luò)從對(duì)點(diǎn)的塊設(shè)備操作數(shù)據(jù)。從發(fā)生故障被屏蔽錯(cuò)誤時(shí)起,DRBD將會(huì)運(yùn)行在無盤模式下,并且所有的I/O子請(qǐng)求操作、讀和寫,都將會(huì)在對(duì)點(diǎn)的磁盤上,在這種模式下性能會(huì)受到影響,但是服務(wù)不會(huì)中斷,在方便的時(shí)候可以將Primary切換到對(duì)點(diǎn)。

2.12. 處理過期數(shù)據(jù)的策略

    DRBD需要區(qū)分?jǐn)?shù)據(jù)不一致(inconsistent)和過期數(shù)據(jù)(outdated data)。

不一致的數(shù)據(jù)是不能夠被訪問的,并且也不能夠以任何的方式使用這種數(shù)據(jù)。在這樣的節(jié)點(diǎn)上,部分?jǐn)?shù)據(jù)已經(jīng)過時(shí),而部分?jǐn)?shù)據(jù)為新更新的數(shù)據(jù),或者是無法確定是過期數(shù)據(jù)或者是新數(shù)據(jù)。這種情況的數(shù)據(jù)比較常見的就是處于當(dāng)前正在進(jìn)行數(shù)據(jù)同步的節(jié)點(diǎn),例如:

[root@s69 ~]# cat /proc/drbd
version: 8.2.1 (api:86/proto:86-87)
GIT-hash: 318925802fc2638479ad090b73d7af45503dd184 build by root@s69, 2012-04-20 01:50:18
0: cs:SyncSource strimary/Secondary ds:UpToDate/Inconsistent C r---
    ns:80896 nr:0 dw:0 dr:80896 al:0 bm:4 lo:0 pe:0 ua:0 ap:0
        [>...................] sync'ed:  0.1% (1907055/1907134)M
        finish: 53:26:36 speed: 10,112 (10,112) K/sec
        resync: used:0/31 hits:5051 misses:5 starving:0 dirty:0 changed:5
        act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
[root@s69 ~]#

   
    在這種情況下,設(shè)備上的文件系統(tǒng)不能被掛載,甚至不能進(jìn)行自動(dòng)文件系統(tǒng)檢測(cè)。

相比之下過期數(shù)據(jù)是指處于secondary節(jié)點(diǎn)的數(shù)據(jù)是一致的,但是不再和primary節(jié)點(diǎn)同步了。這種情況將可能發(fā)生在任何復(fù)制鏈路中,有可能是暫時(shí)的,也有可能是永久的。一個(gè)過期的、被斷開的secondary節(jié)點(diǎn)上的數(shù)據(jù)被認(rèn)為是干凈的數(shù)據(jù),但是它反映了該節(jié)點(diǎn)在某一時(shí)刻的狀態(tài),為了避免服務(wù)使用過期數(shù)據(jù),因此DRBD不允許提升一個(gè)處于過期數(shù)據(jù)狀態(tài)的資源為Primary角色。

DRBD有一個(gè)允許外部應(yīng)用程序在網(wǎng)絡(luò)一發(fā)生中斷之后就使得secondary節(jié)點(diǎn)數(shù)據(jù)過時(shí)的接口,因此DRBD將會(huì)拒絕將該節(jié)點(diǎn)切換為Primary節(jié)點(diǎn),阻止了應(yīng)用程序使用過期數(shù)據(jù),這個(gè)接口是一個(gè)通用接口,其它集群管理應(yīng)用程序可以很容易的使用它。當(dāng)一個(gè)過期的資源重新建立其復(fù)制連接時(shí),那么它的過期標(biāo)志將自動(dòng)清除。

2.13. 三路復(fù)制

    首先需要說明的是從8.3.0開始提供了這個(gè)功能,換句話說就是8.3.0之前的版本不提供這個(gè)功能。

    在使用DRBD的3路復(fù)制技術(shù)時(shí),DRBD將會(huì)在一個(gè)已經(jīng)存在的兩個(gè)節(jié)點(diǎn)的集群上添加第3個(gè)節(jié)點(diǎn),并且將數(shù)據(jù)復(fù)制到這個(gè)節(jié)點(diǎn)上,實(shí)現(xiàn)3路復(fù)制,也就是做一個(gè)備份節(jié)點(diǎn),換句話說,第3個(gè)節(jié)點(diǎn)就是用來實(shí)現(xiàn)備份和用于災(zāi)難恢復(fù)的目的。這個(gè)類型的配置一般來說要使用“使用DRBD代理實(shí)現(xiàn)遠(yuǎn)距離復(fù)制”技術(shù)。

    圖    解:



    從圖中可以看到,三路復(fù)制的技術(shù)是在已經(jīng)存在的DRBD資源頂層再加出一層,就是說在原有的基礎(chǔ)之上再添加一個(gè)堆疊的DRBD資源,以便讓它來保存環(huán)境中的生產(chǎn)數(shù)據(jù)。

    也就是說,在3路復(fù)制中由以前的兩層結(jié)構(gòu)變?yōu)楝F(xiàn)在的三層結(jié)構(gòu)。

    在堆疊資源的復(fù)制中使用了異步復(fù)制方式(就是DRBD的A協(xié)議),而在生產(chǎn)數(shù)據(jù)復(fù)制中卻使用的是同步復(fù)制方式(也就是C協(xié)議)。

    對(duì)于3路復(fù)制中生產(chǎn)數(shù)據(jù)和備份節(jié)點(diǎn)數(shù)據(jù)同步有兩種選擇:

        持久同步:在這種方式中,3路復(fù)制將會(huì)持久不斷的被復(fù)制,第3個(gè)節(jié)點(diǎn)將會(huì)持久不斷的從生產(chǎn)集群節(jié)點(diǎn)上同步更新數(shù)據(jù),以便及時(shí)的將生成環(huán)境中的數(shù)據(jù)備份到備用服務(wù)器上;

        定時(shí)同步:3路復(fù)制的另一個(gè)選擇,那就是臨時(shí)復(fù)制,換句話說就是經(jīng)要求復(fù)制,在這種情況下,生成環(huán)境中的集群和備份節(jié)點(diǎn)一般處于斷開狀態(tài),按照一定的規(guī)律進(jìn)行同步生產(chǎn)環(huán)境的數(shù)據(jù),例如可以通過運(yùn)行定時(shí)任務(wù)來完成同步(就是通過crontab來完成);

2.14. 使用DRBD代理實(shí)現(xiàn)遠(yuǎn)距離復(fù)制

    首先需要說明的是從8.2.7開始提供了這個(gè)功能,換句話說就是8.2.7之前的版本不提供這個(gè)功能。

    DRBD的協(xié)議A是一個(gè)異步傳輸協(xié)議,但是寫應(yīng)用程序在套接字輸出緩存滿了那么就將會(huì)被阻塞了,發(fā)生這種情況后,寫應(yīng)用程序?qū)⒉坏貌坏却钡侥承⿺?shù)據(jù)盡可能的通過“窄”帶寬(這種情況一般屬于不穩(wěn)定網(wǎng)絡(luò),例如 共享級(jí)別的網(wǎng)絡(luò)設(shè)施)

    通常情況下(這里指的是在內(nèi)部局域網(wǎng)環(huán)境下),網(wǎng)絡(luò)帶寬有效的使用受到寫帶寬的限制(這里指的是向磁盤寫入的速度),而遠(yuǎn)程復(fù)制則相反,寫的速度(這里指的是平均值)受到了網(wǎng)絡(luò)連接中有效的帶寬限制。如果數(shù)據(jù)適合有限的套接字輸出緩存,那么寫并發(fā)能夠被文雅的處理?梢酝ㄟ^DRBD的緩存代理機(jī)制能夠減輕這種情況,DRBD代理將會(huì)把從primary節(jié)點(diǎn)的接受到改變的數(shù)據(jù)放置在它的緩存中。

DRBD代理緩存大小可以自由配置,僅受到地址空間大小和有效物理內(nèi)存的限制。另外還有一個(gè)可選的功能,在DRBD代理中可以配置壓縮和解壓縮傳輸中的數(shù)據(jù),壓縮和解壓縮DRBD的數(shù)據(jù)包可能稍微會(huì)增加延時(shí),然而在帶寬連接成為限制因素時(shí),壓縮和解壓縮用去的時(shí)間與未使用壓縮解壓縮相比在總體性能上卻有了增益。

    在多核SMP系統(tǒng)中要使用壓縮和解壓縮,它能使用多個(gè)CPU內(nèi)核。實(shí)際上如果是CPU資源不緊張的情況下,無論網(wǎng)絡(luò)狀況如何使用壓縮和解壓縮機(jī)制總是沒錯(cuò)的,遠(yuǎn)程復(fù)制至少可以節(jié)約帶寬。

    實(shí)際上,對(duì)于大多數(shù)大的是I/O數(shù)據(jù)塊進(jìn)行壓縮是非常正確的,為此有效的減少對(duì)帶寬的使用,也就是增加了網(wǎng)絡(luò)帶寬,在情況好的時(shí)候甚至可以使用DRBD的協(xié)議B和C。

    需要說明的一點(diǎn)是DRBD代理僅是DRBD產(chǎn)品家族的一個(gè)部分,并沒有以開源的license形式提供。如果需要那么可以聯(lián)系sales@linbit.com 或者 sales_us@linbit.com,就是說要收費(fèi)。

2.15. 基于“運(yùn)送”的復(fù)制

    基于“運(yùn)送”的復(fù)制,也就是眾所周知的磁盤“運(yùn)送”(這種方法在使用RAID-1時(shí)很容易實(shí)現(xiàn)),就是說在送往遠(yuǎn)程節(jié)點(diǎn)裝置的磁盤上已經(jīng)預(yù)置了要同步的數(shù)據(jù),將存儲(chǔ)數(shù)據(jù)的介質(zhì)本身運(yùn)送到遠(yuǎn)程節(jié)點(diǎn),這種方法適合的環(huán)境為:

        需要復(fù)制的數(shù)據(jù)量相當(dāng)大(可能大于幾百個(gè)G);

        被復(fù)制的數(shù)據(jù)變化量較;

        兩個(gè)節(jié)點(diǎn)間的網(wǎng)絡(luò)帶寬有限;

    在這些環(huán)境中,即使遇到其中的一條,那么DRBD將會(huì)需要一個(gè)很長的初始化設(shè)備同步過程(可能需要幾天或者幾個(gè)星期,如果真的需要幾個(gè)星期,那么甚至就失去了備份的意義),基于運(yùn)送的同步,允許用戶將數(shù)據(jù)“種子”預(yù)置在遠(yuǎn)程裝置上,這樣便會(huì)徹底降低了初始化同步數(shù)據(jù)的時(shí)間。

2.16. 浮動(dòng)對(duì)點(diǎn)

    首先需要說明的是從8.3.2開始提供了這個(gè)功能,換句話說就是8.3.2之前的版本不提供這個(gè)功能。

    在特殊的情況下,需要將DRBD的對(duì)點(diǎn)配置為浮動(dòng)對(duì)點(diǎn),在浮動(dòng)對(duì)點(diǎn)設(shè)置中,DRBD不再將對(duì)點(diǎn)指定為一個(gè)特定的主機(jī)名稱(而常規(guī)的配置中使用的是主機(jī)名稱),取而代之是使用了浮動(dòng)IP地址,在這種配置中,DRBD通過IP地址來標(biāo)識(shí)對(duì)點(diǎn),而不是使用主機(jī)名稱。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2013-05-16 15:09 |只看該作者
這么好的文章居然沒人支持?

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2015-12-28 10:53 |只看該作者
linsie 發(fā)表于 2013-05-16 15:09
這么好的文章居然沒人支持?


確實(shí)好文章!

求職 : Linux運(yùn)維
論壇徽章:
19
CU大;照
日期:2013-03-13 15:15:0815-16賽季CBA聯(lián)賽之山東
日期:2016-10-31 10:40:10綜合交流區(qū)版塊每日發(fā)帖之星
日期:2016-07-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-02-08 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-01-15 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-15 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-10 06:20:00黃金圣斗士
日期:2015-11-24 10:45:10IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-09-01 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-07-30 09:40:012015年亞洲杯之巴勒斯坦
日期:2015-05-05 10:19:03
4 [報(bào)告]
發(fā)表于 2016-02-05 17:27 |只看該作者
雙主模式如何實(shí)現(xiàn),如何在其上部署并發(fā)ORACLE數(shù)據(jù)庫系統(tǒng)吶。哈哈

求職 : Linux運(yùn)維
論壇徽章:
19
CU大;照
日期:2013-03-13 15:15:0815-16賽季CBA聯(lián)賽之山東
日期:2016-10-31 10:40:10綜合交流區(qū)版塊每日發(fā)帖之星
日期:2016-07-06 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-02-08 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-01-15 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-15 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-10 06:20:00黃金圣斗士
日期:2015-11-24 10:45:10IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-09-01 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-07-30 09:40:012015年亞洲杯之巴勒斯坦
日期:2015-05-05 10:19:03
5 [報(bào)告]
發(fā)表于 2016-02-05 17:29 |只看該作者
雙主能不能多講講吶。呵呵

論壇徽章:
221
15-16賽季CBA聯(lián)賽之吉林
日期:2017-12-11 12:51:59黑曼巴
日期:2019-04-12 13:40:0515-16賽季CBA聯(lián)賽之廣東
日期:2019-04-23 10:41:1215-16賽季CBA聯(lián)賽之遼寧
日期:2019-05-06 13:03:2815-16賽季CBA聯(lián)賽之山西
日期:2019-05-09 10:56:5815-16賽季CBA聯(lián)賽之青島
日期:2019-05-17 13:57:0515-16賽季CBA聯(lián)賽之新疆
日期:2019-06-10 13:39:0515-16賽季CBA聯(lián)賽之天津
日期:2019-07-08 15:04:4519周年集字徽章-19
日期:2019-08-27 13:31:2619周年集字徽章-19
日期:2019-08-27 13:31:2619周年集字徽章-周
日期:2019-09-06 18:46:4715-16賽季CBA聯(lián)賽之天津
日期:2019-02-27 11:24:07
6 [報(bào)告]
發(fā)表于 2016-02-22 13:22 |只看該作者
參考學(xué)習(xí)一下
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP