flashcache
페이지 정보
작성자 조희승 댓글 0건 조회 12,370회 작성일 13-06-27 17:55본문
flashcache_create -v -p back fc1 /dev/ssd1 /dev/hdd1
flashcache_load ssd_devname [cachedev]
// cachedev 필요없음. 리부팅시 flashcache_load로 로딩
flashcache_destroy ssd_devname
dmsetup remove
destroy전에 먼저 remove할 것
dmsetup status
dmsetup table
flashcache facebook
Using flash cahce with a SSD (/dev/sda) and a hardrive to spedd up access.
I suggest to use SSD drive with SLC memory instead off MLC as using a ssd as a cahce drive is expenisve in read/writa and te SSD as a limit. Intel SSD 313 (http://www.intel.com/content/www/us/en/solid-state-drives/solid-state-drives-313-series.html) are specially done for this.
#! flashcache
#
#
usefull documents reference :
# https://github.com/facebook/flashcache
# http://www.gerrit-tamboer.net/using-flashcache-to-speed-up-your-io-on-ubuntu-12-04/
# https://github.com/facebook/flashcache/wiki/QuickStart-Recipe-for-Ubuntu-11.10
# https://github.com/facebook/flashcache/blob/master/doc/flashcache-sa-guide.txt
# https://github.com/facebook/flashcache/blob/master/README-DKMS
#
# http://www.gerrit-tamboer.net/using-flashcache-to-speed-up-your-io-on-ubuntu-12-04/
# https://github.com/facebook/flashcache/wiki/QuickStart-Recipe-for-Ubuntu-11.10
# https://github.com/facebook/flashcache/blob/master/doc/flashcache-sa-guide.txt
# https://github.com/facebook/flashcache/blob/master/README-DKMS
#
# step 1 - Clonning Git Repository
apt-get install git-core
#> mkdir -p ~/Build/ ; cd ~/Build/
#> git clone https://github.com/facebook/flashcache.git
Cloning into 'flashcache'...
remote: Counting objects: 914, done.
remote: Compressing objects: 100% (357/357), done.
remote: Total 914 (delta 631), reused 831 (delta 553)
Receiving objects: 100% (914/914), 252.91 KiB | 199 KiB/s, done.
Resolving deltas: 100% (631/631), done.
Cloning into 'flashcache'...
remote: Counting objects: 914, done.
remote: Compressing objects: 100% (357/357), done.
remote: Total 914 (delta 631), reused 831 (delta 553)
Receiving objects: 100% (914/914), 252.91 KiB | 199 KiB/s, done.
Resolving deltas: 100% (631/631), done.
# Step 2a - Building
# install building tools
sudo apt-get install git build-essential dkms linux-headers-`uname -r` uuid-dev
cd flashcache
sudo make -f Makefile.dkms all boot_conf
sudo make -f Makefile.dkms all boot_conf
# Step 2b - Installation
sudo make install
cat <<EOF>>/etc/sysctl.conf
###################################################################
# FlashCache
#
# disable writing dirty cache data at shutdown (do this only if you really trust FC)
# dev.flashcache.fast_remove = 1
#
# change the reclaim policy from FIFO to LRU" >>/etc/sysctl.conf
dev.flashcache.reclaim_policy = 1
#
# Writeback
# do not write "stale" data to disk until evicted due to lack of space
#dev.flashcache.fallow_delay = 0
#
EOF
# Step 3 - Init
sudo modprobe flashcache
sudo echo "flashcache" >> /etc/modules
sudo echo "flashcache" >> /etc/modules
# Verification :
dmesg | tail
....................
[159671.822040] flashcache: flashcache-1.0 initialized
....................
[159671.822040] flashcache: flashcache-1.0 initialized
#
lsmod |grep flashcache
flashcache 82901 0
lsmod |grep flashcache
flashcache 82901 0
# Step 4 - montage volume simple DATA/Home
# Find the UUID of the volume you want to cache:
ls -la /dev/disk/by-uuid/
ls -la /dev/disk/by-uuid/
#### Home drive
sudo umount /home/yoyo
sudo flashcache_create -v -p back filecache_home /dev/sda2 /dev/disk/by-uuid/c85a514b-0a7d-4c4c-8af6-dcea99ed773c
sudo umount /home/yoyo
sudo flashcache_create -v -p back filecache_home /dev/sda2 /dev/disk/by-uuid/c85a514b-0a7d-4c4c-8af6-dcea99ed773c
vi /etc/fstab
# Comment out the line with the device you want to cache
# Add a new line for the flashcache similar this:
# Comment out the line with the device you want to cache
# Add a new line for the flashcache similar this:
# /home/yoyo/ was on /dev/sda5 during installation
# UUID=c85a514b-0a7d-4c4c-8af6-dcea99ed773c /home reiserfs defaults 0 2
/dev/mapper/filecache_data /home/yoyo reiserfs defaults 0 2
# UUID=c85a514b-0a7d-4c4c-8af6-dcea99ed773c /home reiserfs defaults 0 2
/dev/mapper/filecache_data /home/yoyo reiserfs defaults 0 2
#Step 5 - check
~# sudo dmsetup status
filecache_data: 0 325122048 flashcache stats:
reads(2775), writes(37)
read hits(3), read hit percent(0)
write hits(11) write hit percent(29)
dirty write hits(0) dirty write hit percent(0)
replacement(0), write replacement(0)
write invalidates(0), read invalidates(0)
pending enqueues(0), pending inval(0)
metadata dirties(37), metadata cleans(0)
metadata batch(3) metadata ssd writes(34)
cleanings(0) fallow cleanings(0)
no room(0) front merge(0) back merge(0)
disk reads(2772), disk writes(0) ssd reads(3) ssd writes(2843)
uncached reads(0), uncached writes(0), uncached IO requeue(0)
uncached sequential reads(0), uncached sequential writes(0)
pid_adds(0), pid_dels(0), pid_drops(0) pid_expiry(0)
filecache_data: 0 325122048 flashcache stats:
reads(2775), writes(37)
read hits(3), read hit percent(0)
write hits(11) write hit percent(29)
dirty write hits(0) dirty write hit percent(0)
replacement(0), write replacement(0)
write invalidates(0), read invalidates(0)
pending enqueues(0), pending inval(0)
metadata dirties(37), metadata cleans(0)
metadata batch(3) metadata ssd writes(34)
cleanings(0) fallow cleanings(0)
no room(0) front merge(0) back merge(0)
disk reads(2772), disk writes(0) ssd reads(3) ssd writes(2843)
uncached reads(0), uncached writes(0), uncached IO requeue(0)
uncached sequential reads(0), uncached sequential writes(0)
pid_adds(0), pid_dels(0), pid_drops(0) pid_expiry(0)
~# sudo dmsetup table
filecache_data: 0 325122048 flashcache conf:
ssd dev (/dev/sda3), disk dev (/dev/disk/by-uuid/45e71c47-a88f-4493-8b1a-e5bfcf7562b0) cache mode(WRITE_BACK)
capacity(14092M), associativity(512), data block size(4K) metadata block size(4096b)
skip sequential thresh(0K)
total blocks(3607552), cached blocks(2132154), cache percent(59)
dirty blocks(11), dirty percent(0)
nr_queued(0)
Size Hist: 4096:61231
ssd dev (/dev/sda3), disk dev (/dev/disk/by-uuid/45e71c47-a88f-4493-8b1a-e5bfcf7562b0) cache mode(WRITE_BACK)
capacity(14092M), associativity(512), data block size(4K) metadata block size(4096b)
skip sequential thresh(0K)
total blocks(3607552), cached blocks(2132154), cache percent(59)
dirty blocks(11), dirty percent(0)
nr_queued(0)
Size Hist: 4096:61231
# Step 6 - startup script to write data on exit
cat <<EOF>/etc/init.d/unflashcache
#! /bin/sh
### BEGIN INIT INFO
# Provides: unflashcache
# Required-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:
# Default-Stop: 0 6
# Short-Description: Unload flashcache module and fs.
### END INIT INFO
PATH=/sbin:/bin
. /lib/init/vars.sh
. /lib/lsb/init-functions
do_stop () {
echo Unload cachedev
umount /data
dmsetup remove cachedev
rmmod flashcache
}
case "$1" in
start)
# No-op
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
do_stop
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
EOF
#! /bin/sh
### BEGIN INIT INFO
# Provides: unflashcache
# Required-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:
# Default-Stop: 0 6
# Short-Description: Unload flashcache module and fs.
### END INIT INFO
PATH=/sbin:/bin
. /lib/init/vars.sh
. /lib/lsb/init-functions
do_stop () {
echo Unload cachedev
umount /data
dmsetup remove cachedev
rmmod flashcache
}
case "$1" in
start)
# No-op
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
do_stop
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
EOF
chmod 755 /etc/init.d/unflashcache
update-rc.d unflashcache start 39 0 6 .
update-rc.d unflashcache start 39 0 6 .
# ################
# Step 7 - on root drive
sudo vi /etc/fstab
# Comment out the line with the device you want to cache
# Add a new line for the flashcache similar this:
# / was on /dev/sda1 during installation
#UUID=a8da2c39-109c-4be9-b70a-74d5720f30df / btrfs defaults,subvol=@ 0 1
/dev/mapper/filecache_root / btrfs defaults,subvol=@ 0 1
# Comment out the line with the device you want to cache
# Add a new line for the flashcache similar this:
# / was on /dev/sda1 during installation
#UUID=a8da2c39-109c-4be9-b70a-74d5720f30df / btrfs defaults,subvol=@ 0 1
/dev/mapper/filecache_root / btrfs defaults,subvol=@ 0 1
#Edit your /boot/grub/grub.cfg to change the root device to the flashcache device you intend to use.
- Boot off a live CD like the Ubuntu desktop installer.
- mount the partition with flashcache compiled
mount /dev/disk/by-uuid/c85a514b-0a7d-4c4c-8af6-dcea99ed773c /mnt
cd /mnt/yoyo/Build/flashcache
# install binary
make install
modprobe flashcache
# create root flashcache
- mount the partition with flashcache compiled
mount /dev/disk/by-uuid/c85a514b-0a7d-4c4c-8af6-dcea99ed773c /mnt
cd /mnt/yoyo/Build/flashcache
# install binary
make install
modprobe flashcache
# create root flashcache
flashcache_create -v -p back filecache_root /dev/sda1 /dev/disk/by-uuid/a8da2c39-109c-4be9-b70a-74d5720f30df
#if ok
reboot
######
# Step 8 - if needed
## Removing Flashcache from a Boot Volume
## Removing Flashcache from a Boot Volume
# First, ensure that dev.flashcache.fast_remove = 0 and reboot to minimize potential lost data
# Edit fstab
vi /etc/fstab
# Comment out the flashcache line and un-comment the original device line
# Edit fstab
vi /etc/fstab
# Comment out the flashcache line and un-comment the original device line
# Reboot to recovery mode (hold left shift during boot)
# Mount / using the non-flashcache drive
mount -o relatime /dev/md0 /
# Remove the FC device mapper device
dmsetup remove fc-md
dmsetup remove fc-md
# Remove FC special SSD signature (change /dev/sdb with whatever your FC device is)
flashcache_destroy /dev/sdb
flashcache_destroy /dev/sdb
# Done, continue booting normally
exit
exit
# remove module
dkms remove -m flashcache -v $(git describe --always --abbrev=12) --all
댓글목록
등록된 댓글이 없습니다.