為什么軟碟通寫入只有一個g,linux ssd硬盤做緩存,linux系統中ssd當塊設備緩存

 2023-10-01 阅读 22 评论 0

摘要:原理為什么軟碟通寫入只有一個g、寫操作先緩存到ssd硬盤上,然后通過一定策略寫到普通硬盤上;讀操作熱點數據可以緩存到ssd硬盤上,提高讀取數據的速度。linux格式化u盤為exFAT格式、軟件 ssd 緩存開源軟件主要有bcache ,flashcachebcache 需要編譯

原理

為什么軟碟通寫入只有一個g、寫操作先緩存到ssd硬盤上,然后通過一定策略寫到普通硬盤上;

讀操作熱點數據可以緩存到ssd硬盤上,提高讀取數據的速度。

linux格式化u盤為exFAT格式、軟件 ssd 緩存開源軟件主要有bcache ,flashcache

bcache 需要編譯最新的內核,要求比較高,配置比較復雜,目前主要用于測試環境;

flashcache 是facebook內部使用的ssd cache軟件,開源出來供大家使用,目前有人編譯出rhel6的rpm包,在centos6上可以直接安裝使用。

本次初步測試了flashcache

測試環境

sdc為 ssd 硬盤??? ?160G*4 raid 10?? ??用fio測試 4k 寫iops為 5433

sdb為 普通sas硬盤 146G*2 raid? 1?? ?用fio測試 4k 寫iops為 447

初步簡單測試結果:

4k 隨機寫可以達到 5014

4k隨機讀可以達到45874

flashcache安裝配置方法

安裝

yum install flashcache-utils kmod-flashcache

配置:

用sdc 做sdb的緩存

flashcache_create -p back? cachedev /dev/sdc /dev/sdb

cachedev cachedev, ssd_devname /dev/sdc, disk_devname /dev/sdb cache mode WRITE_BACK

block_size 8, md_block_size 8, cache_size 0

Flashcache metadata will use 1192MB of your 24016MB main memory

可以用3種方式:

Writethrough - safest, all writes are cached to ssd but also written to disk

immediately.? If your ssd has slower write performance than your disk (likely

for early generation SSDs purchased in 2008-2010), this may limit your system

write performance.? All disk reads are cached (tunable).

數據同時寫到ssd和普通硬盤

Writearound - again, very safe, writes are not written to ssd but directly to

disk.? Disk blocks will only be cached after they are read.? All disk reads

are cached (tunable).

數據同時繞過ssd,直接寫到普通硬盤

Writeback - fastest but less safe.? Writes only go to the ssd initially, and

based on various policies are written to disk later.? All disk reads are

cached (tunable).

數據先寫到ssd,隨后寫到普通硬盤

查看

flashstat

======================================================================================================

Flashstat: a tool for flashcache status per second

Version? : 0.3

======================================================================================================

SSD Device:?? /dev/sdc???????? Disk Device:?? /dev/sdb????????? Cache Mode: WRITE_BACK

Capacity:??? 303998M????????? Block Size:???????? 4K???? Meta Block Size:????? 4096b

Total Blocks:?? 77823488??? ???Cached Blocks:????????? 9????? Cached Percent:????????? 0

Set Numbers:??????? 512??????? Dirty Blocks:????????? 0?????? Dirty Percent:????????? 0

cache_all:????????? 1????? reclaim_policy:?????? FIFO??? dirty_thresh_pct:???????? 20

max_clean_ios_set:????????? 2 max_clean_ios_total:????????? 4???? skip_seq_thresh:???????? 0K

======================================================================================================

time? read/s write/s diskr/s diskw/s? ssdr/s? ssdw/s uread/s uwrit/s metaw/s clean/s? repl/s wrepl/s?? hit%? whit% dwhit%

03-13 14:51:20?????? 0?????? 0?????? 0?????? 0?????? 0?????? 0?????? 0?????? 0?????? 0?????? 0?????? 0?????? 0?? 0|10??? 0|0??? 0|0

fdisk -l /dev/mapper/cachedev? 可以看到一個設備

Disk /dev/mapper/cachedev: 146.8 GB, 146778685440 bytes

255 heads, 63 sectors/track, 17844 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x0002da0a

Device Boot????? Start???????? End????? Blocks?? Id? System

使用:

可以當一個塊設備來使用,劃分vg lv

pvcreate /dev/mapper/cachedev

Physical volume "/dev/mapper/cachedev" successfully created

vgcreate ssdcachetest /dev/mapper/cachedev

Volume group "ssdcachetest" successfully created

lvcreate -L 100G -n ssdcache_test_lv1 ssdcachetest

Logical volume "ssdcache_test_lv1" created

刪除

dmsetup? remove cachedev

flashcache_destroy /dev/sdc

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/107684.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息