自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ceph 中的寫入放大

存儲 存儲架構(gòu)
了解數(shù)據(jù)和工作負(fù)載是確定 Ceph 集群構(gòu)建的關(guān)鍵部分。了解整個(gè)數(shù)據(jù)的平均文件大小將使您能夠避免這種極高的寫入放大。 當(dāng)然,這并不總是這樣的。通常,在單個(gè)集群中往往會存在各種大小的文件。

介紹

圖片圖片

Ceph 是一個(gè)開源的分布式存儲系統(tǒng),設(shè)計(jì)初衷是提供較好的性能、可靠性和可擴(kuò)展性。 Ceph 獨(dú)一無二地在一個(gè)統(tǒng)一的系統(tǒng)中同時(shí)提供了對象、塊、和文件存儲功能。 Ceph 消除了對系統(tǒng)單一中心節(jié)點(diǎn)的依賴,實(shí)現(xiàn)了無中心結(jié)構(gòu)的設(shè)計(jì)思想。

我們知道Ceph為了保障數(shù)據(jù)的可靠性,存放數(shù)據(jù)通常是三副本策略(另有EC策略)。那么無論是data,metadata,journal都是三份。因此在應(yīng)用端寫入一個(gè)IO,在ceph內(nèi)部實(shí)際上會額外產(chǎn)生許多內(nèi)部IO,不同的存儲后端差異很大。 Ceph提供了FileStore、KStore和BlueStore三種存儲后端以供選擇,那么以FileStore為例,來看看13X的寫放大的來由。FileStore中ceph的數(shù)據(jù)被存放在XFS或者ZFS等本地文件系統(tǒng)中。這些文件系統(tǒng)本身又會記錄日志(FS journal),以及還有它自己的元數(shù)據(jù)(FS metadata)。

在設(shè)計(jì)存儲基礎(chǔ)結(jié)構(gòu)時(shí),為了防止故障,保證一定的冗余度是非常有必要的。但是,冗余伴隨著存儲效率的降低,這也會增加您的成本。對于大型基礎(chǔ)設(shè)施,每 TB 成本的差異可能會導(dǎo)致總存儲成本顯著提高。因此,Ceph 中的糾刪碼非常有吸引力。 糾刪碼類似于基于奇偶校驗(yàn)的 RAID 陣列。為每個(gè)對象創(chuàng)建許多數(shù)據(jù)塊 (K) 和奇偶校驗(yàn)塊 (M)。另一方面,副本只是創(chuàng)建給定對象的其他副本,類似于鏡像 RAID 陣列。這通常意味著糾刪碼比副本具有更高的存儲效率,計(jì)算公式為 k/(k+m)。 例如,以 6+2 為例,您將獲得 75% 的存儲效率——在記錄的總 8 個(gè)區(qū)塊中,有 6 個(gè)數(shù)據(jù)塊。與三個(gè)副本相比,您將有 33% 的效率,總共 3 個(gè)記錄的塊中有 1 個(gè)數(shù)據(jù)塊。

寫入放大

正常來說,Ceph 都沒啥問題,除了一個(gè)經(jīng)常被忽視的問題:寫入放大。 數(shù)據(jù)存儲中的最小分配大小本質(zhì)上是一段數(shù)據(jù)可以寫入的最小單位。在 Pacific Ceph 之前,此值默認(rèn)為 64kb。此最小分配單元會給某些工作負(fù)載帶來問題,尤其是那些對小文件進(jìn)行操作的工作負(fù)載。

案例

4% 存儲效率示例如下圖:

圖片圖片

為了更直觀一點(diǎn),讓我們考慮一個(gè)傳入寫入為 16kb 的 4+2 糾刪碼池。 在上面的示例中,單個(gè) 16K 寫入最終會放大 24 倍的大小,因?yàn)槊總€(gè)塊至少需要以 64K 的速度寫入磁盤。這導(dǎo)致此特定對象的總存儲效率為 ~4%。如果您的工作負(fù)載主要由 16K 對象組成,那么這可能會很快抵消您的 EC 配置文件提供的任何優(yōu)勢。下面是使用相同文件大小的 3 副本示例。

圖片圖片

如上圖所示,在此特定工作負(fù)載中,3 Replica 實(shí)際上比 4+2 糾刪碼池的存儲效率更高。這表明規(guī)則總是有例外。從理論上講,當(dāng)存儲效率是最高優(yōu)先級時(shí),應(yīng)使用糾刪碼,但根據(jù)您的數(shù)據(jù)集,這可能會發(fā)生巨大變化。

寫入放大重要的用例

當(dāng)然,即使按照小文件工作負(fù)載標(biāo)準(zhǔn),16K 文件也很小,單單一篇文章的大小就 100K 左右。另外,一些可能存在寫入放大問題的場景是:

  • AI training 人工智能訓(xùn)練
  • audio editing 音頻編輯
  • log storing/aggregation 日志存儲/聚合
  • scientific computing 科學(xué)計(jì)算

結(jié)論

了解數(shù)據(jù)和工作負(fù)載是確定 Ceph 集群構(gòu)建的關(guān)鍵部分。了解整個(gè)數(shù)據(jù)的平均文件大小將使您能夠避免這種極高的寫入放大。 當(dāng)然,這并不總是這樣的。通常,在單個(gè)集群中往往會存在各種大小的文件。在這種情況下,只需確定數(shù)據(jù)的位置即可。例如,如果單個(gè)目錄樹擁有大部分小文件,則可以將副本池固定到該特定樹,而具有較大文件大小的其余數(shù)據(jù)仍保留在糾刪碼上。 如前所述,當(dāng)您的最小分配大小太大時(shí),寫入放大會更加普遍,這就是為什么較新版本的 Ceph(如 Pacific 和 Quincy)默認(rèn)為 4K 而不是 64K 的原因。在較新的集群或最小分配大小修改的 Octopus 集群中,寫入放大的問題要小得多,因此,我們在后續(xù)的集群部署前,需要認(rèn)真考慮一下。

責(zé)任編輯:武曉燕 來源: 新鈦云服
相關(guān)推薦

2015-05-18 13:58:32

CephBufferlist分布式文件系統(tǒng)

2015-05-20 10:05:10

Ceph分布式文件系統(tǒng)序列化

2023-11-03 11:56:34

2010-07-01 14:05:43

SNMPMIB

2017-11-27 09:11:42

SSDceph應(yīng)用

2011-09-08 14:16:12

Node.js

2019-10-10 08:00:00

LinuxWindows分區(qū)

2011-09-08 17:50:34

Windows7放大鏡

2023-02-28 08:00:24

2018-05-22 08:37:02

Ceph存儲存儲系統(tǒng)

2017-12-06 14:35:01

OpenStackCeph存儲

2017-02-22 10:06:11

UbuntuCeph存儲

2012-05-30 10:43:47

jQuery

2018-04-12 08:37:27

2023-03-16 08:01:43

CephWeb

2018-08-02 08:42:57

分布式存儲Ceph

2019-03-26 15:46:50

Kernel bypaCeph云計(jì)算

2023-01-15 17:11:44

Rust

2015-08-21 19:01:12

2019-01-09 10:18:05

大數(shù)據(jù)人工智能機(jī)器學(xué)習(xí)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號