hot-warm-cold 캐싱에 LVMCache 또는 BCache 사용

hot-warm-cold 캐싱에 LVMCache 또는 BCache 사용

나는 최근에 SLC SSD, QLC SSD, 4TB HDD의 세 가지 다른 드라이브로 현재 데비안 컴퓨터를 재구성했습니다. 저는 다른 유틸리티를 시도해 보았고 lvmcache서로 다른 캐싱 수준에 대해 두 개의 SSD를 활용하는 다중 계층 캐싱 솔루션을 만들 수 있는지 궁금했습니다.

내 유토피아의 구조는 다음과 같습니다.

  • SLC SSD(가장 빠르고 가장 안정적임): 자주 쓰고 읽는 파일을 위한 핫 캐시
  • QLC SSD(빠르고 우수한 안정성): 자주 쓰지 않고 읽지 않는(아마도 더 큰) 파일을 위한 핫 캐시
  • HDD(Slow, High Reliability): 자주 쓰거나 읽지 않는 파일을 위한 콜드 스토리지

lvmcachebcache불행하게도 이러한 종류의 구성을 허용하는 다중 계층 캐싱 기능은 국내(또는 다른 곳)에서 많이 발견되지 않았습니다 .

lvmcachebcache이렇게 구성이 가능한가요 ? 그렇지 않다면 이 구성을 달성하기 위한 다른 솔루션이 있습니까?

답변1

이 솔루션은 두 가지를 모두 사용합니다.dm-cacheSLC(핫) 및 QLC(웜) SSD의 경우bcache장치(HDD/콜드) 지원용.

#!/bin/bash

# Step 1: Set up dm-cache
# Create the cache device with the SLC SSD as the fastest tier
sudo dmsetup create slc_cache --table "0 $(blockdev --getsz /dev/slc_ssd) cache /dev/slc_ssd /dev/slc_ssd_metadata"

# Create the cache device with the QLC SSD as the slower tier
sudo dmsetup create qlc_cache --table "0 $(blockdev --getsz /dev/qlc_ssd) cache /dev/qlc_ssd /dev/qlc_ssd_metadata"

# Step 2: Create bcache device
# Create the backing device using the HDD
sudo make-bcache -B /dev/hdd

# Format the bcache device
sudo mkfs.ext4 /dev/bcache0

# Step 3: Configure bcache
# Attach the dm-cache devices to the bcache device
sudo echo "slc_cache" > /sys/block/bcache0/bcache/add_cache
sudo echo "qlc_cache" > /sys/block/bcache0/bcache/add_cache

# Register the bcache device as a caching device
sudo echo "writeback" > /sys/block/bcache0/bcache/cache_mode

# Register the bcache device as the backing device for the cache devices
sudo echo "/dev/bcache0" > /sys/block/slc_cache/bcache/backing_dev
sudo echo "/dev/bcache0" > /sys/block/qlc_cache/bcache/backing_dev

# Mount the bcache device
sudo mkdir /mnt/cached_hdd
sudo mount /dev/bcache0 /mnt/cached_hdd

# Update /etc/fstab to mount the bcache device on boot
echo "/dev/bcache0 /mnt/cached_hdd ext4 defaults 0 0" | sudo tee -a /etc/fstab

관련 정보