成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Ceph高性能存儲(chǔ):Bcache介紹與使用

存儲(chǔ)
HDD一般具有較大的容量,并且可以實(shí)現(xiàn)良好的順序讀和寫(xiě)操作,但是在隨機(jī)寫(xiě)和讀時(shí)非常慢,因此它們的IOPS級(jí)別較低;SSD具有非常好的整體性能,尤其是較高的IOPS,因此隨機(jī)寫(xiě)入和讀取要比HDD更好,但是它們的容量卻很小。

 [[397701]]

本文轉(zhuǎn)載自微信公眾號(hào)「新鈦云服」,作者祝祥。轉(zhuǎn)載本文請(qǐng)聯(lián)系新鈦云服公眾號(hào)。

什么是Bcache?

HDD一般具有較大的容量,并且可以實(shí)現(xiàn)良好的順序讀和寫(xiě)操作,但是在隨機(jī)寫(xiě)和讀時(shí)非常慢,因此它們的IOPS級(jí)別較低;SSD具有非常好的整體性能,尤其是較高的IOPS,因此隨機(jī)寫(xiě)入和讀取要比HDD更好,但是它們的容量卻很小。

Bcache是Linux內(nèi)核塊設(shè)備層cache,支持多塊HDD使用同一塊SSD作為緩存盤(pán)。它讓SSD作為HDD的緩存成為了可能。因此采用SSD作為緩存,HDD作為數(shù)據(jù)存儲(chǔ)盤(pán),既解決了SSD容量太小,又解決了HDD運(yùn)行速度太慢的問(wèn)題。

圖片如今,一些SSD的順序讀寫(xiě)性能也比單個(gè)HDD盤(pán)要好,但無(wú)法與某些SAS的RAID進(jìn)行比較。盡管如此,SSD在隨機(jī)IO中表現(xiàn)仍然會(huì)更好。有一個(gè)可配置選項(xiàng)允許bcache也可以緩存順序的讀寫(xiě)。

將來(lái),將有可能在緩存設(shè)備上使用raid機(jī)制,以提高可靠性和性能。另外也可以通過(guò)與lvm的結(jié)合,提高容量與擴(kuò)展性。

Bcache緩存模式

“writeback”:

  • 最高性能的緩存模式。
  • 寫(xiě)入設(shè)備的數(shù)據(jù)首先寫(xiě)入ssd,然后異步復(fù)制到后端設(shè)備,在SSD上復(fù)制結(jié)束時(shí),寫(xiě)入就被視為完成。為了安全起見(jiàn),此處的機(jī)制始終確保在將數(shù)據(jù)完全寫(xiě)入后端設(shè)備(臟頁(yè))之前,不認(rèn)為任何數(shù)據(jù)是安全的,因此,如果在SSD上仍存在數(shù)據(jù)時(shí)斷電,則在下次啟動(dòng)時(shí),數(shù)據(jù)將被推回支撐設(shè)備。這是使bcache能夠和軟件Linux Raid與具有BBU的硬件Raid設(shè)備一樣安全。

“writethrough”:

  • 安全緩存模式。
  • 寫(xiě)入設(shè)備的數(shù)據(jù)將同時(shí)復(fù)制到ssd和HDD上,在HDD寫(xiě)入結(jié)束時(shí),寫(xiě)入才被視為完成。因此,這往往比“writeback”更為安全,但缺乏一些性能。

“writearound”:

  • 只讀緩存模式。
  • 寫(xiě)入設(shè)備的數(shù)據(jù)直接進(jìn)入HDD,而根本不寫(xiě)入SSD,因此不會(huì)對(duì)寫(xiě)有任何性能提升。第一次讀取此數(shù)據(jù)時(shí),將從HDD中讀取該數(shù)據(jù)。這樣做的好處是有更多空間用于緩存讀取,并減少了SSD的磨損。

“none” :

  • 停用緩存功能(但/dev/bcache設(shè)備仍然可用)

所有這些caching_modes都可以在運(yùn)行時(shí)進(jìn)行修改。通過(guò)以下的命令可以知道當(dāng)前的緩存模式:

  1. sudo cat /sys/block/bcache0/bcache/cache_mode  
  2. writethrough [writeback] writearound none 

更改cache_mode:

  1. sudo su - -c 'echo writethrough > /sys/block/bcache0/bcache/cache_mode'  
  2. sudo cat /sys/block/bcache0/bcache/cache_mode  
  3. [writethrough] writeback writearound none 

使用Bcache

Bcache可以在普通設(shè)備上使用,也可以在設(shè)備分區(qū)上使用。在本文中,我們將僅使用普通設(shè)備。

bcache需要的配置:

  • Bcache是從Linux-3.10開(kāi)始正式并入內(nèi)核主線的,因此,要使用Bcache,需要將內(nèi)核升級(jí)到3.10及以上版本才行。(本文使用ubuntu 20.04)
  • 固態(tài)硬盤(pán)
  • 普通hdd硬盤(pán)

如果您使用的是Ubuntu 20.04,則可以如下進(jìn)行測(cè)試。

系統(tǒng)更新,軟件包安裝:

  1. sudo apt-get update 
  2. sudo apt-get upgrade 
  3. sudo apt-get install bcache-tools 

確認(rèn)每塊磁盤(pán)的用途:

  • 系統(tǒng)將位于/dev/sda
  • hdd硬盤(pán)(稱為后端設(shè)備)將為/dev/sdb
  • ssd(稱為緩存設(shè)備)將為/dev/sdc。

在配置緩存之前,我們需要清理磁盤(pán)上的所有數(shù)據(jù)。

我們使用dd命令將磁盤(pán)的前4kB置0:

  1. sudo dd if=/dev/zero if=/dev/sdb bs=512 count=8 
  2. sudo dd if=/dev/zero if=/dev/sdc bs=512 count=8 
  3. wipefs -a /dev/sdb 
  4. wipefs -a /dev/sdc 

現(xiàn)在您可以創(chuàng)建bcache了:

  1. make-bcache -C /dev/sdc -B /dev/sdb 

您還可以設(shè)置一些配置標(biāo)志,即:

  1. make-bcache -C /dev/sdc -B /dev/sdb --discard --writeback 

參數(shù)說(shuō)明:

  • -C用于您的緩存設(shè)備(ssd)
  • -B用于您的后端設(shè)備(hdd)
  • --discard用于在ssd上使用TRIM,默認(rèn)情況下未激活。
  • --writeback使用緩存模式寫(xiě)回,默認(rèn)情況下它設(shè)置為直寫(xiě)。

如果操作系統(tǒng)在寫(xiě)入新數(shù)據(jù)之前就擦除了未使用的空間,而不是在寫(xiě)入時(shí)同時(shí)進(jìn)行擦除,則可以提高文件保存性能。這種做法就是 TRIM。TRIM 命令本質(zhì)上允許你的操作系統(tǒng)告訴驅(qū)動(dòng)器哪些區(qū)域的數(shù)據(jù)不再使用,以便擦除它們,加快驅(qū)動(dòng)器將來(lái)的寫(xiě)入,可以 SSD 的用戶提供更佳的體驗(yàn)。

在 Linux 中,fstrim 提供此功能,它可以為寫(xiě)入新數(shù)據(jù)而準(zhǔn)備驅(qū)動(dòng)器,并延長(zhǎng)驅(qū)動(dòng)器的使用壽命。由于在我使用的 Linux 發(fā)行版上 SSD 的 trim 不是自動(dòng)的,所以必須去調(diào)度該操作,否則 SSD 的性能會(huì)隨著時(shí)間的推移而降低。

現(xiàn)在,您能夠列出您的設(shè)備:

  1. ls /dev/bcache* 
  2. /dev/bcache0 

在此設(shè)備上創(chuàng)建新文件系統(tǒng):

  1. sudo mkfs.ext4 /dev/bcache0 

警告! 您無(wú)法在/dev/bcache0上創(chuàng)建新分區(qū),如果您需要在兩個(gè)ssd和sata設(shè)備中同時(shí)做多個(gè)bcache設(shè)備,則需要先對(duì)普通磁盤(pán)進(jìn)行分區(qū),并使用分區(qū)作為后端和緩存設(shè)備來(lái)創(chuàng)建bcache設(shè)備。

現(xiàn)在您可以掛載bcache設(shè)備:

  1. sudo mkdir /media/bcache 
  2. sudo mount /dev/bcache0 /media/bcache 

您還必須將其添加到fstab中:

  1. sudo su - -c “/dev/bcache0 /media/bcache ext4 rw 0 0 >> /etc/fstab” 

警告! 如果您有多個(gè)bcache設(shè)備,則需要使用UUID。您可以通過(guò)執(zhí)行以下操作來(lái)檢索bcache UUID:

  1. blkid /dev/bcacheX 

然后在/etc/fstab中用UUID=YOUR_UUID_GIVEN_BEFORE替換/dev /bcacheX。確保在下一次重啟服務(wù)器之前,該配置已經(jīng)配置完成

一些簡(jiǎn)單的性能測(cè)試

我創(chuàng)建了一個(gè)Ubuntu 20.04虛擬機(jī),該虛擬機(jī)僅使用openssh服務(wù)。此虛擬機(jī)在啟動(dòng)時(shí)設(shè)置為tar-gz根文件系統(tǒng),然后自動(dòng)關(guān)閉電源。

啟動(dòng)的虛擬機(jī)vm的數(shù)量與當(dāng)前CPU邏輯核數(shù)一樣多(12個(gè))。他們?cè)诰哂?GB內(nèi)存的主機(jī)系統(tǒng)上消耗了6GB內(nèi)存,而每個(gè)vm上的文件系統(tǒng)大小約為1.4GB,因此通常系統(tǒng)緩存效果不會(huì)顯得太重要(除非激活了共享頁(yè)面)。

測(cè)試分為兩個(gè)部分:

  • 將基礎(chǔ)鏡像復(fù)制n份,并同時(shí)啟動(dòng)n個(gè)vm,直到它們都關(guān)閉電源。
  • 同時(shí)啟動(dòng)n個(gè)虛擬機(jī),直到它們?nèi)繑嚯姟?/li>

當(dāng)測(cè)試檢查鏡像是否已經(jīng)存在時(shí),第一次運(yùn)行的時(shí)間要長(zhǎng)于下一個(gè)。

使用的啟動(dòng)命令:

  1. kvm -m 512 -nographics -drive if=virtio,file=${BASE}${BASE_IMAGE} -net nic -net user -k fr --kernel $BASE/vmlinuz --initrd $BASE/initrd --append "root=/dev/vda1 nomodeset" 

結(jié)果為(僅兩次運(yùn)行,可能需要更多運(yùn)行才能得出平均值):

HDD only:

12個(gè)vms在硬盤(pán)上啟動(dòng):real 42m34.324s user 18m33.683s sys 4m20.040s

12個(gè)vms重新啟動(dòng)硬盤(pán):real 36m20.788s user 17m49.306s sys 3m23.770s

SSD only:

12個(gè)vm在ssd上啟動(dòng):real 6m22.430s user 20m39.627s sys 3m11.735s

12個(gè)vms重新啟動(dòng)(ssd):real 3m35.279s user 19m21.430s sys 2m5.923s

Bcache writearound模式:

12個(gè)vms啟動(dòng):real 43m58.575s user 19m29.924s sys 4m39.586s

12個(gè)vms重啟:real 4m16.057s user 18m57.197s sys 2m8.818s

Bcache writethrough模式:

12個(gè)vms啟動(dòng):real 33m33.490s user 17m54.543s sys 3m56.084s

12個(gè)vms重啟:real 7m7.148s user 18m7.827s sys 2m26.736s

Bcache writeback模式:

12個(gè)vms啟動(dòng):real 21m37.536s user 17m4.371s sys 3m11.529s

12個(gè)vms重啟:real 3m58.942s user 18m30.382s sys 2m2.761s

恢復(fù)先前配置的bcache設(shè)備

加載模塊:

  1. sudo modprobe bcache 

在每次啟動(dòng)時(shí)加載模塊:

  1. sudo su - -c ‘echo bcache >> /etc/modules’ 

可選驗(yàn)證每個(gè)設(shè)備角色:

  1. sudo bcache-super-show -f /dev/sdb 
  2. sudo bcache-super-show -f /dev/sdc 

重新注冊(cè)bcache設(shè)備:

  1. sudo su - - c ‘echo /dev/sdb > /sys/fs/bcache/register’ 
  2. sudo su - - c ‘echo /dev/sdc > /sys/fs/bcache/register’ 

現(xiàn)在您必須能夠安裝它:

  1. sudo mount /dev/bcacheX /media/bcache 

刪除bcache

測(cè)試之后,您可能想要恢復(fù)資源,這是刪除bcache設(shè)備所需的操作:

Backup:

首先,您可能需要備份數(shù)據(jù),因?yàn)槟鷮h除所有內(nèi)容。

Umount:

如果您的設(shè)備已安裝,則現(xiàn)在更安全地進(jìn)行安裝。

  1. sudo umount -v /dev/bcache0 

Stopping the bcache:

  1. sudo su - -c "echo 1 >/sys/fs/bcache/......../unregister" 
  2. sudo su - -c "echo 1 >/sys/block/bcache0/bcache/stop" 
  3. sudo wipefs -a /dev/sdX_caching 
  4. sudo wipefs -a /dev/sdY_backing 

ceph 中的Bcache

目前,在Ceph中使用SSD的主要方法有兩種:緩存分層和OSD緩存。眾所周知,Ceph的緩存分層機(jī)制尚未成熟,策略更加復(fù)雜,IO路徑更長(zhǎng)。在某些IO場(chǎng)景中,它甚至可能導(dǎo)致性能下降,升級(jí)的粒度越大,也會(huì)帶來(lái)更多的負(fù)面影響。因此,在使用SSD時(shí),我們選擇加速OSD所在的塊設(shè)備。在Linux內(nèi)核塊層,SSD用于加速HDD塊設(shè)備。當(dāng)前,更成熟的解決方案是:閃存,enhancedIO,dm-cache,bcache等。

在這些開(kāi)放源代碼解決方案中,前三個(gè)高速緩存塊索引算法都相對(duì)相似,均基于哈希索引,并且主存儲(chǔ)數(shù)據(jù)塊到高速緩存塊使用組關(guān)聯(lián)映射方法。Bcache與其他方法之間的最大區(qū)別是,它使用相對(duì)標(biāo)準(zhǔn)的B +樹(shù)作為索引,并且命中率將大大提高。同時(shí),它在架構(gòu)設(shè)計(jì)中考慮了SSD本身的某些特性,在充分發(fā)揮SSD的性能的同時(shí),還保護(hù)了SSD的壽命,即它與SSD閃存介質(zhì)具有良好的親和力。

Bcache的內(nèi)部實(shí)現(xiàn)相對(duì)復(fù)雜,并且代碼復(fù)雜度遠(yuǎn)高于flashcache/enhancedIO等,并且已經(jīng)集成到內(nèi)核的主線中。在高版本內(nèi)核(4.8及更高版本)上,它仍然相對(duì)穩(wěn)定和可靠,但是在Ceph For OSD加速中,仍有一些問(wèn)題需要解決:

功能問(wèn)題:

SSD和HDD不支持熱插拔

從緩存池中卸載HDD時(shí),需要等待所有臟數(shù)據(jù)被刷新,這需要很長(zhǎng)時(shí)間

當(dāng)硬盤(pán)損壞時(shí),無(wú)法刪除SSD中相應(yīng)的臟數(shù)據(jù),從而浪費(fèi)空間

系統(tǒng)重啟后無(wú)法恢復(fù)精簡(jiǎn)閃存卷

性能問(wèn)題:

當(dāng)上層中的大量隨機(jī)寫(xiě)入IO充滿了緩存空間時(shí),您必須等待所有臟數(shù)據(jù)被刷新,然后才能繼續(xù)為寫(xiě)入IO提供緩存

當(dāng)GC線程運(yùn)行時(shí),它將導(dǎo)致業(yè)務(wù)IO的波動(dòng)

Bcache元數(shù)據(jù)緩存會(huì)占用大量?jī)?nèi)存。當(dāng)系統(tǒng)內(nèi)存不足時(shí),無(wú)法緩存大量的元數(shù)據(jù)。需要從SSD讀取它并影響性能

使用方式:

當(dāng)使用bcache加速ceph OSD時(shí),我們采用以下的方式:

為每個(gè)SSD創(chuàng)建一個(gè)緩存池,將相同數(shù)量的HDD附加到每個(gè)緩存池

從每個(gè)緩存池創(chuàng)建一個(gè)精簡(jiǎn)閃存卷,以將每個(gè)OSD的OMAP目錄分離到其中

日記可以獨(dú)立放置到SSD中,也可以從緩沖池中創(chuàng)建多個(gè)精簡(jiǎn)卷來(lái)寫(xiě)入日記

通過(guò)大量的測(cè)試和分析,我們使bcache在ceph的生產(chǎn)環(huán)境中能夠穩(wěn)定運(yùn)行,這不僅可以最大化SSD的性能,而且可以延長(zhǎng)SSD的使用壽命,節(jié)省用戶投資,并為客戶提供更多成本有效的混合存儲(chǔ)解決方案。

參考文章:

https://wiki.ubuntu.com/ServerTeam/Bcache

https://titanwolf.org/Network/Articles/Article?AID=4fc8cd53-c4a2-450b-a01f-e92240850241#gsc.tab=0

https://gist.github.com/mikulely/e2931b7cce388dbff006622a3eef7b42

 

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

2021-03-24 08:03:50

存儲(chǔ)Ceph運(yùn)維

2024-12-11 08:41:18

2017-07-20 09:36:39

高性能存儲(chǔ)Z-NAND

2023-01-03 07:57:27

2015-08-06 16:24:30

Ceph開(kāi)源存儲(chǔ)Docker

2015-07-09 13:19:17

Ceph分布式存儲(chǔ)性能調(diào)優(yōu)

2017-12-06 14:35:01

OpenStackCeph存儲(chǔ)

2018-05-22 08:37:02

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

2017-12-05 08:41:14

高性能存儲(chǔ)產(chǎn)品

2018-11-15 12:35:25

Ceph分布式存儲(chǔ)

2021-09-30 19:00:17

對(duì)象存儲(chǔ)Ceph

2019-08-27 15:00:09

MySQL數(shù)據(jù)庫(kù)存儲(chǔ)

2009-12-23 10:29:01

WPF應(yīng)用程序

2012-12-28 17:31:06

2023-08-23 10:16:47

日志系統(tǒng)

2023-03-21 08:01:44

Crimson硬件CPU

2025-02-05 12:09:12

2009-08-12 17:48:56

存儲(chǔ)高性能計(jì)算曙光

2017-05-25 10:50:16

Python高性能服務(wù)

2013-05-17 11:41:48

華為高性能存儲(chǔ)卡
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 精品香蕉一区二区三区 | 久久精品综合 | 麻豆毛片| 天天射天天干 | 久久久久久国产精品免费 | 日本成人二区 | 69堂永久69tangcom| 激情国产在线 | 日韩精品专区在线影院重磅 | 日韩中文电影 | 国产精品亚洲精品 | 九九精品在线 | 亚洲精品在线免费观看视频 | 91天堂| 久久精品中文字幕 | 久久午夜影院 | 日本精品视频一区二区三区四区 | 91激情视频 | 在线一区二区三区 | 日韩美香港a一级毛片免费 国产综合av | 中国一级特黄毛片大片 | 日韩精品网站 | 久久久做 | 亚洲一区二区三区在线 | 久久精品免费一区二区三 | 男人的天堂久久 | 日韩免 | 日韩淫片免费看 | 少妇一级淫片aaaaaaaaa | 精品网站999 | 成人一区二区三区 | 久久久久久久久久久久一区二区 | 亚洲在线一区二区 | 亚洲成人激情在线观看 | 天堂久久久久久久 | 亚洲精品一区二三区不卡 | 久久免费资源 | 国产综合网站 | 999视频在线播放 | 久久成人一区 | 综合二区|