Linux使用bcache 將SSD加速硬盤

前言

在Linux下,使用SSD為HDD加速,目前較為成熟的方案有:flashcache,enhanceIO,dm-cache,bcache等,多方面比較以后最終選擇了bcache。 bcache 是一個 Linux 內核塊層超速緩存。它允許使用一個或多個高速磁盤驅動器(例如 SSD)作為一個或多個速度低得多的硬盤的超速緩存。bcache 支持直寫和寫回,不受所用文件系統的約束。默認情況下,它只超速緩存隨機讀取和寫入,這也是 SSD 的強項。它還適合用于臺式機、服務器和高端儲存陣列。CentOS和Ubuntu都可以使用bcache。bcache是在3.10以后的版本加入mainline的,因此需要3.10以上的內核版本。但是筆者使用Centos 7在3.10.0的內核上進行配置時,發現無法生成相應的配置文件節點,測試過程中使用4.3.3版的內核。

主要功能:

1,可以使用單個超速緩存設備來超速緩存任意數量的后備設備。在運行時可以掛接和分離已裝入及使用中的后備設備。

2,在非正常關機后恢復 - 只有在超速緩存與后備設備一致后才完成寫入。

3,SSD 擁塞時限制傳至 SSD 的流量。

4,高效的寫回實施方案。臟數據始終按排序順序寫出。

5,穩定可靠,可在生產環境中使用。

Bcache通過make-bcache命令完成bcache的創建,需要安裝相關的工具包bcache-tools。

我們通過編譯安裝 (Github)

https://github.com/g2p/bcache-tools/archive/refs/tags/v1.0.8.tar.gz

這是最新的v1.0.8,如果要查看其他版本請訪問

Tags · g2p/bcache-tools · GitHub

下載源碼(我這里使用了github鏈接代理加速)

wget https://github.moeyy.xyz/https://github.com/g2p/bcache-tools/archive/refs/tags/v1.0.8.tar.gz

解壓源碼壓縮包

 tar -zxvf v1.0.8.tar.gz 

安裝依賴

yum install libblkid-devel -y

編譯安裝?

如果沒有make命令請自行安裝軟件包

make && make install

?格式化硬盤分區

應用硬盤到bcache模式之前需要將目標分區格式化為bcache,這一步會破壞磁盤分區中所有數據。方法和信息如下

# 如果磁盤是第一次使用,或完全是空的,第一步通常不用執行,這一步市為了擦除分區文件信息,如果掛載也要先卸載,否則會出現device busy的問題
wipefs -a /dev/sdb /dev/sdc

創建cache 也就是我們的SSD的分區作為緩存

緩存參數意義:

-B: 設置backing device
-C: 設置cache device
-w: block size (hard sector size of SSD),默認是2K,可使用--block=4K代替
-b: bucket size,可以使用--bucket=1M代替
make-bcache -C /dev/sdc1

查看下

[root@master ~]# bcache-super-show /dev/sdc1
sb.magic		ok
sb.first_sector		8 [match]
sb.csum			C322F881FE092899 [match]
sb.version		0 [cache device]dev.label		(empty)
dev.uuid		d3834fdd-d31d-4347-9da3-31064cae77ac
dev.sectors_per_block	1
dev.sectors_per_bucket	1024
dev.cache.first_sector	1024
dev.cache.cache_sectors	20968448
dev.cache.total_sectors	20969472
dev.cache.ordered	no
dev.cache.discard	no
dev.cache.pos		0
dev.cache.replacement	0 [lru]cset.uuid		0609854c-f083-408b-8ea6-f90d4afd60c6

創建backend


接著創建被加速的backend?

make-bcache -B /dev/sdb

這快硬盤就是我們的HDD 機械硬盤

查看下

[root@master ~]# bcache-super-show /dev/sdb
sb.magic		ok
sb.first_sector		8 [match]
sb.csum			C71B7848F1913A17 [match]
sb.version		1 [backing device]dev.label		(empty)
dev.uuid		da958760-83c8-4d05-9789-f8b371bd62aa
dev.sectors_per_block	1
dev.sectors_per_bucket	1024
dev.data.first_sector	16
dev.data.cache_mode	0 [writethrough]
dev.data.cache_state	0 [detached]cset.uuid		9a492f33-f28d-41f8-8cb1-3cfd93d07885

注冊

echo /dev/sdb > /sys/fs/bcache/register
echo /dev/sdc1 > /sys/fs/bcache/register

設備綁定

往backend附加cache

此處附加的uuid,是在上面查詢到的cache的uuid

echo d3834fdd-d31d-4347-9da3-31064cae77ac > /sys/block/bcache0/bcache/attach

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719848.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719848.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719848.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flink 面試題總結及答案

基礎 state的分類 key state和operate state state 的重分布 Flink狀態管理詳解:Keyed State和Operator List State深度解析 - 掘金 checkpoint 和save point https://zhuanlan.zhihu.com/p/79526638 flink job 的容錯策略 如果在沒有持續消息輸出的情況下&…

19.AUTOSAR MCAL分析(一):Microcontroller Driver

目錄 1. MCAL概述 2. Microcontroller Drivers 2.1 MCU Drivers 2.2 GPT Driver 2.3 WatchDog Driver 2.4 CoreTest 3.小結 <

【短時交通流量預測】基于單層BP神經網絡

課題名稱&#xff1a;基于單層BP神經網絡的短時交通流量預測 版本時間&#xff1a;2023-04-27 代碼獲取方式&#xff1a;QQ&#xff1a;491052175 或者 私聊博主獲取 模型簡介&#xff1a; 城市交通路網中交通路段上某時刻的交通流量與本路段前幾個時段的交通流量有關&…

Android 自定義組件

在 Android 開發中&#xff0c;有時我們需要創建自定義的 UI 組件以滿足特定的需求&#xff0c;這就是 Android 自定義組件的用途。在這篇博客中&#xff0c;我們將介紹如何創建和使用自定義組件&#xff0c;并以一個標題欄組件為例進行說明。 什么是自定義組件&#xff1f; …

【CSP試題回顧】201312-3-最大的矩形

CSP-201312-3-最大的矩形 解題思路 1. 遍歷所有可能的矩形高度&#xff1a; 通過遍歷所有矩形高度來找到最大的矩形&#xff0c;即對每個可能的高度 it&#xff08;從直方圖中的最小高度到最大高度 heightMax&#xff09;&#xff0c;代碼將嘗試找到在這個高度或以上的最長連…

軟件測試相關介紹

什么是軟件測試&#xff1f; 軟件測試&#xff1a;使用技術手段驗證軟件是否滿足使用需求 軟件測試是指通過運行、評估和驗證軟件系統的過程&#xff0c;以確定其是否滿足預期的需求和質量標準。它是軟件開發生命周期中的一個重要環節&#xff0c;旨在發現和修復潛在的缺陷和…

前端錯誤 “TypeError Cannot read properties of undefined (reading ‘xxx‘)

前端錯誤 “TypeError: Cannot read properties of undefined (reading ‘xxx‘) 原因分析及解決 情況一&#xff1a; 出現該錯誤的原因是因為你花括號中的某些屬性未定義。極大可能是因為你寫錯了屬性名稱 情況二&#xff1a; 異步請求獲取數據時&#xff0c;語句可能寫錯&…

Linux操作系統——進程信號

1.信號的概念 生活當中哪些場景算信號呢&#xff1f;比如說你晚上調了個鬧鐘&#xff0c;然后第二天早上你聽到了鬧鐘響了你就知道該起床了&#xff0c;這種機制就叫做信號機制。在生活中我們的信號是非常非常多的&#xff0c;比如說有&#xff1a;紅綠燈&#xff0c;下課鈴聲…

Java中多線程的各種姿勢

在Java中&#xff0c;多線程編程是一種強大的并發編程技術&#xff0c;可以讓你同時執行多個任務。Java提供了多種方式來創建和管理線程。以下是Java中給多線程使用的一些主要方法&#xff1a; 繼承Thread類&#xff1a; 創建一個新的類繼承自Thread類。覆蓋run()方法以定義線程…

爬蟲案例一

首先我舉一個案例比如豆瓣電影排行榜 (douban.com)這個電影&#xff0c;首先我們進去檢查源代碼 說明源代碼有&#xff0c;說明是服務器渲染&#xff0c;可以直接那html 但是返回的結果是空&#xff0c;所以我們需要在頭里面加上User-Agent 然后可以看到有返回的結果&#xff0…

Docker快速集成minio

拉取鏡像&#xff08;默認最新的&#xff09; docker pull minio/minio創建配制和數據映射文件夾&#xff08;用于將容器內的配置和數據映射到本地&#xff09; 這邊的路徑可以修改成自己想要的文件夾 mkdir -p /data/minio/{config,data}啟動容器 (這邊啟動容器要保證本地映…

什么是SpringCloud,有哪些組件?

spring Cloud 是基于spring boot的分布式系統開發工具,它提供了一系列開箱即用的,針對分布式系統開發的特性和組件。用于幫助開發人員快速構建和管理云原生應用程序。 Spring Cloud 的主要目標是解決分布式系統中的常見問題,例如服務發現,負載均衡,配置管理,斷路器,消息總…

c++筆記—— AutoBuffer類(opencv)

自動分配緩沖區類 Automatically Allocated Buffer Class. 這個類用于函數和方法中的臨時緩沖區。如果臨時緩沖區通常很小&#xff08;幾K的內存&#xff09;&#xff0c;但其大小取決于參數&#xff0c;則在堆棧上創建一個小的固定大小數組&#xff0c;并在足夠大時使用它是有…

LabVIEW起重機工作參數遠程監測系統

LabVIEW起重機工作參數遠程監測系統 隨著起重機技術的持續發展&#xff0c;對其工作參數的實時監控需求日益增加。設計了一個基于LabVIEW和TBox的起重機工作參數遠程監測系統&#xff0c;能夠實現起重機工作參數的實時采集、傳輸、解析和顯示&#xff0c;有效提升起重機的性能…

python--開心篇--print--多種多樣的print輸出

文章目錄 名言輸出繞口令輸出《水滸傳》中的梁山好漢輸出軌道交通充值信息輸出對聯字符畫輸出長春地鐵1號線運行圖模擬12306查詢界面模擬企業網站登錄界面 名言 print("& "*15) print("& &") print("& …

發現了一個超級好用的上網神器!但是不知道在哪里有賣······隨身WiFi好評推薦,隨身WiFi好用嗎?

這兩天到一個小地方出差&#xff0c; 走到一個奶茶店附近&#xff0c; 突然老板打電話說一個緊急文件需要我處理&#xff0c; 說實話有點崩潰&#xff0c; 前不著村后不著店的&#xff0c; 我去哪里找網絡辦公 辛虧奶茶店的小姐姐聽到了&#xff0c; 讓我在她店里&#x…

wy的leetcode刷題記錄_Day81

wy的leetcode刷題記錄_Day81 聲明 本文章的所有題目信息都來源于leetcode 如有侵權請聯系我刪掉! 時間&#xff1a;2024-3-4 前言 目錄 wy的leetcode刷題記錄_Day81聲明前言232. 用棧實現隊列題目介紹思路代碼收獲 138. 隨機鏈表的復制題目介紹思路代碼收獲 141. 環形鏈表題…

SUSE 配置防火墻策略

一.獲取目前訪問的接口 suse12sp3 # netstat -tunlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:8005 0.0.0.0:* …

【Bugs】class path resource [xxx.xml] cannot be opened because it does not exist

報錯&#xff1a; 關鍵報錯信息&#xff1a; class path resource [scope.xml] cannot be opened because it does not exist完整報錯信息&#xff1a; 2024-03-01 14:26:58 866 [main] DEBUG org.springframework.context.support.ClassPathXmlApplicationContext - Refres…

Ubuntu的apt、apt-get和apt-cache命令

原文&#xff1a;apt 和 apt-get 之間有什么區別&#xff1f; https://aws.amazon.com/cn/compare/the-difference-between-apt-and-apt-get/ 陳拓轉載&#xff0c;2023/11/23&#xff0c;添加了舉例。 apt 和 apt-get 之間有什么區別&#xff1f; apt 和 apt-get 都是命令行…