참고 :
http://www.linux-mag.com/id/7839/ - bcache 와 flashcache 에 대한 이론 설명
http://download.synology.com/download/ds/userguide/Synology_SSD_Cache_White_Paper.pdf - synology ssd 활용
1.bache (kernel 3.10 부터 포함이란다.)
기본 사이트에서 받은 kernel 모듈은 커널 3.2 기반이라 3.8을 사용하는 나로써는 왠지 문제가 될것 같았다.
https://gist.github.com/terrorobe/4128237 - Build bcache debian kernel (데비안 커널에서 bcache 설치)
http://bcache.evilpiepirate.org/ - bcache 공식 사이트
http://www.accelcloud.com/2012/04/18/linux-flashcache-and-bcache-performance-testing/ - Linux flashcache and bcache performance testing
http://pommi.nethuis.nl/ssd-caching-using-linux-and-bcache/ - SSD caching using Linux and bcache, 하드웨어 구성(harddisk 용량속도에 따른 ssd 용량) , Benchmark 정리도 있음, attach deattch 설명도 잘 되어 있음
https://wiki.archlinux.org/index.php/Bcache - bcache archlinux wiki 사용법
https://gist.github.com/TheAnonymous/5787963 - bcache tutorial (bcache 가 포함된 리눅스 커널 3.10 을 컴파일함 - redhat 계열) , 추가로 실행 스크립트 도 작성되어 있다.
http://habrahabr.ru/post/182372/ - bcache 커널 모듈 컴파일 방법
http://www.spinics.net/lists/linux-bcache/msg00581.html - bcache 제어 방법 (예를 들어 stop, 상태보기)
http://www.linux-mag.com/id/7847/ - bache 벤치마킹 자료 (bcache 스케줄 방식에 따른 자료)
2. dm-cache
http://blog.kylemanna.com/linux/2013/06/30/ssd-caching-using-dmcache-tutorial/ - ssd caching using dm-cache tutorial
3. Flashcache
http://www.sebastien-han.fr/blog/2012/11/15/make-your-rbd-fly-with-flashcache/ - MAKE YOUR RBD FLY WITH FLASHCACHE
4. 커널 컴파일
block cache 종류 |
dm-cache (by Redhat - in the 3.9 Kernel, so it should be in ubuntu 13.10) Flashcache (developed and used by facebook) Bcache (developed and used by Google ) EnhanceIO (by STEC; based on Flashcache) |
BCACHE
특징 :sequential I/O 에 대해서는 캐시가 적용되지 않는다. random I/O 에서만 캐시가 적용된다.
BCACHE 설치 - Ubuntu (커널 3.10에 bcache 포함됨) |
# 커널 3.10 에 bcache 가 포함되어있다. 커널 3.10을 받아 컴파일한다. $ apt-get install build-essential libncurses5-dev $ cd /usr/src $ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.tar.xz $ tar xvf linux-3.10.tar.xz $ cp /boot/config-`uname -r` .config $ make oldconfig $ make-kpkg clean $ make-kpkg --initrd kernel_image kernel_headers kernel_source modules_image $ cd .. $ dpkg -i * .deb $ reboot # ubuntu kernel 을 패키지로 설치하는 방법도 있다. http://kernel.ubuntu.com/~kernel-ppa/mainline/ 여기가서 원하는 커널 버전을 받는다. linux-header-..._all.deb linux-headers-..._i386(amd64).deb linux-image-..._i386(amd64).deb 32bit면 i386, 64bit면 amd 64 받으면 된다. 위의 3개의 패키지를 다 받아야 한다. $ sudo dpkg -i linux-header-..._all.deb $ sudo dpkg -i linux-headers-..._amd64.deb $ sudo dpkg -i linux-image-..._amd64.dev 3개의 패키지를 다 설치한다. 귀찮으면 sudo dpkg -i linux* 설치후 재부팅한다. $ sudo reboot 재부팅후 kernel 버전 확인 한다. $ uname -a |
BCACHE-TOOL 설치 |
# bcache-tools 는 bcache 유틸이다. # bcache-tools 다운로드 $ git clone http://evilpiepirate.org/git/bcache-tools.git $ cd bcache-tools # bcache-tools 를 컴파일하기 위해서는 uuid.h 가 필요하다. libuuid , uuid-dev 설치하자. $ make $ make install |
BCACHE 사용하기 자세한 사항은 공식문서 참조 |
# 가정한다. #backing device 포맷 #cache device 포맷 (옵션으로 -w4k -b1M --writeback 을 주어도 된다.) #하나의 cache 블럭디바이스에 여러개의 backing 디바이스로 구성하고 싶다면 #backing/cache device 등록 - udev 없이 수동 등록하는 것이다. 패스해도됨 #위의 결과 /dev/bcache<N> 디바이스가 생성된다. (예를들어 /dev/bcache0) #backing device 상태보기 #attach , 만약 상태가 no cache 라면 cache set과 attach 시켜야한다. #bcache 세트 보기 # 정확하게는 아니지만 이런식으로 현재 세트의 Block deivce 와 cache device를 알수 있다. #cache mode를 변경할때, 기본값은 write through 이다. 하지만 속도 측면에서 write back 이 빠르다. #scheduler 변경 ( #cache device block_size 변경(하드웨어 섹터 크기와 똑같이 하는 것이 좋다고 한다.) #cache device bucket size 변경 (기본값은 512k) #cache #bache 디바이스를 포맷하고 mount 하여 사용할 수 있다. #재부팅후 bcache 디바이스가 등로만 되어있고 backing 디바이스가 활성화되지 않는다면 bcache 디바이스를 생성되지 않는다. backing 디바이스가 활성화 중인지 확인하고 활성화 되지 않고 있다면 강제로 활성화 시키면 된다. backing 디바이스가 활성화 되는 순간 bcache 디바이스는 생성된다. #bcache 는 sequential I/O에 대해서는 캐시하지 않는다. 하지만 만약 벤치마킹이나 sequential I/O 에 대해서도 캐시하고 싶다면 이 기능을 끄면된다. # 다시 기본값(4 MB)으로 돌리고 싶다면 ## backing device 제어, 모니터링 #cache mode 확인 #cache mode 변경(예는 writeback 으로 변경) #bacache 동작중인지 확인(결과가 1이면 동작중, 0이면 정지중, /sys/block/bcache0 폴더 자체가 없다면 backing, caching device 가 등록자체가 안된것이다.) #bcache 일시 중지 #bcache 완전 중지 (중지시 /dev/bcache 디바이스가 사라진다.) 완전 중지보다는 detach 후 정지 시키는 것이 좋다. #bcache 중지 시킨후(/dev/bcache 사라진후) 다시 구동시킬때 (cache device 인지 backing device 인지는 make-bcache 명령으로 포맷팅시 구별되므로 문제 없다.) # dirty data(backing device 에 동기화 되지 않은 데이터) 확인 #bcache 에 등록한 블럭 디바이스의 uuid 확인 ## Backing device stats |
'학습자료(~2017) > 리눅스' 카테고리의 다른 글
[linux] MTU, 점보프레임 (0) | 2013.07.30 |
---|---|
[linux] 커널 특정 모듈만 컴파일하기 (0) | 2013.07.09 |
[Linux] IPMI (0) | 2013.07.02 |
[Linux] apt-fast (apt-get wrapper), 저장소 변경 - apt-get 의 속도를 높이자. (0) | 2013.07.01 |
[iSCSI] iSCSI 관련 링크 모음 (0) | 2013.07.01 |