HDD에 SSD를 캐시하기 위해 flashcache / bcache를 어떻게 설치하고 사용합니까? 설치 및 빌드 자신의 커널

나는 노력하고 있습니다 사람이 설치 및 빌드 자신의 커널 실행이 있는지 알고 싶어 flashcache 또는 Bcach 읽기 SSD 캐싱을?

어떻게 관리 했습니까?



답변

글쎄, 우리는 bcache 답변을 얻었지만 flashcache 답변은 얻지 못했습니다. 기존 설치가 이미 있으므로 flashcache를 선택했기 때문에 bcache는 문제가되지 않았습니다. 나에게도 설정하는 것이 더 쉬워 보였다. 커널 업그레이드를 할 때마다 DKMS 방법을 선택하여 모듈 / 도구를 다시 작성하는 데 걸리지 않았습니다.

이 단계는 Github의 README-DKMS 에 요약되어 있습니다.

모듈 구축

  1. 가장 먼저해야 할 일은 건물 전제 조건을 설치하는 것입니다.

    sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
    
  2. 그런 다음 소스를 빼십시오.

    git clone git://github.com/facebook/flashcache; cd flashcache
    
  3. 모듈을 빌드하고 설치하십시오.

    make -f Makefile.dkms
    

플래시 캐시 장치 만들기

(이 예제에서는 writeback caching (기본값)을 사용하지만 flashcache는 writearound 및 writethrough도 수행 할 수 있습니다)

비 루트 (/에 마운트되지 않은) 장치 캐싱

sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX fcache가 생성 된 장치 (/ dev / mapper / fcache) 인 경우 / dev / sdaX는 SSD 파티션 (또는 전체 디스크)이고 / dev / sdbX는 HDD 파티션입니다.

루트 장치 캐싱

루트 장치를 캐싱하는 경우 몇 가지 단계가 더 있습니다. 이 섹션에는 Ubuntu LiveCD / USB가 필요합니다.

  1. cd /path/to/flashcache/source

  2. make -f Makefile.dkms boot_conf

  3. /boot/grub/grub.cnf 및 / etc / fstab을 편집하여 / dev / mapper / fcache에서 부팅합니다 (이 단계가 실제로 필요한 것은 아니지만 믿습니다). 원래 루트 장치의 UUID를 기록해 두십시오.

  4. LiveCD / LiveUSB로 재부팅하십시오.

  5. 루트 장치를 마운트하십시오 : mount /dev/sda4 /mnt(/ dev / sda4는 내 리눅스 루트 파티션입니다)

  6. cd /mnt/path/to/flashcache/source

  7. sudo apt-get install dkms build-essential linux-headers-$(uname -r)

  8. make; sudo make install 실제 환경에서 전체 DKMS 설정을 수행 할 필요가 없습니다.

  9. 루트 장치 마운트 해제 sudo umount /mnt

  10. sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID] fcache가 생성 된 장치 (여기서는 / etc / fstab 및 /boot/grub/grub.cnf에 입력 한 것과 동일해야 함), / dev / sdbX는 SSD 파티션 (또는 전체 디스크)입니다. ) 및 [UUID]는 루트 파티션의 UUID입니다.

  11. 재부팅하십시오!

루트 장치 사용시주의 사항

플래시 캐시가 루트 장치에 사용될 때 사소한 불편은 grub-probe가 루트 장치를 감지하지 못하고 부트 메뉴를 엉망으로 만들어 두 개의 우분투 전체를 가질 수 있다는 것입니다. 그러나 make -f Makefile.dkms boot_conf위 의 단계는 플래시 캐시 장치를 감지하고 사용하는 initrd에 일부 스크립트를 설치하기 때문에 실제로 사용하는 것은 중요하지 않습니다 .


답변

기존 장치에서 bcache를 활성화하기위한 변환 도구가 있습니다 (공개 : 작성했습니다). 현재 배포판 설치 프로그램은 bcache 장치를 만드는 방법을 모르기 때문에 (새로 설치하는 경우 시작) 새로 설치를 진행하는 방법이기도합니다.

지침 은 README 에서 루트 파일 시스템을 bcache로 변환을 참조하십시오 blocks.

bcache는 Linux 3.10 이상을 필요로하며, Linux 3.0은 최신 버전이며 http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D 에서 수동으로 설치할 수 있습니다
(최신 태그 릴리스를 찾으십시오) , 현재 v3.11.5-saucy, 아키텍처와 일치하는 뎁을 설치하십시오).

bcache-toolsblocks설치할 수 있습니다 내 저장 PPA .


답변

사전 경고 : 기존 Ubuntu 설치에 bcache를 사용할 수 없습니다. 운영 체제에 SSD 캐싱이 필요한 경우 SSD 캐시를 설정할 수있는 향후 또는 특수 버전의 Ubuntu 설치 프로그램이 나올 때까지 기다려야합니다. 여기에서 Oli의 답변을보십시오 : bcache를 새로 설치해야합니까?

비 OS 데이터에 대한 bcache 드라이브를 원하는 다른 모든 사람 :

커널 메인 라인 PPA를 사용하여 13.04 이상을 사용하는 경우 가장 먼저 커널을 업그레이드하십시오. 이것을 사용하는 방법은 여기에서 찾을 수 있습니다 :

https://wiki.ubuntu.com/Kernel/MainlineBuilds

부팅 할 때 3.9 이상의 커널을 선택해야합니다. 그렇지 않으면 작동하지 않으며 드라이브가 사라집니다.

git 저장소에서 설치해야 할 시점에 bcache-tools를 설치하십시오.

git clone http://evilpiepirate.org/git/bcache-tools.git

bcache-tools데비안 용 패키지 를 관리하는 경우 알려 주시면이 질문이 업데이트됩니다. ( bcache-tools의 종속성이 구축 uuid-dev하고 libblkid-dev. 그들은이 설치되어 있어야합니다, 건설 bcache-tools.)

모든 도구가 준비되면 여기에서 가이드를 따라갈 준비가되었습니다.

http://atlas.evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt

이 안내서는 드라이브를 포맷하고 (SSD AND 하드 드라이브) bcache를 사용하여 새로운 장치 블록을 만들기 위해 함께 연결 하는 방법을 보여줍니다 . 지침이 혼란 스러우면 의견을 게시하고 단순화하여이 답변을 업데이트하겠습니다.


답변

나는 여기에 와서 새로운 커널을 설치할 때 어떤 일이 일어 났는지에 대해 언급 할 것이라고 생각했다. / home / 폴더 파티션에만 flashcache를 사용하고있었습니다. 새 커널을 설치하고 부팅하여 부팅하는 동안 중지했으며 / dev / mapper / home_cached를 찾을 수 없다고 말했으며이 메시지를받을 때 선택할 수있는 3 가지 옵션이 있으며 루트로 로그인하는 옵션을 선택합니다. 그것을 고치십시오. 먼저 플래시 캐시 모듈을로드하려고 시도했지만 찾을 수 없다고 말했습니다. 그래서 방금 설치 한이 새로운 커널을 위해 컴파일하고 설치해야한다고 생각했습니다. 나는 여전히 / flashcache / 폴더를 / root / 내에 위치 시켰으므로 CD에 넣고 실행했다.

make -f Makefile.dkms boot_conf

그때 나는 달렸다

make install

그런 다음 플래시 캐시 모듈을

modprobe flashcache

그런 다음 기존 플래시 캐시 장치를로드해야했습니다.

flashcache_load /dev/sdb1

그런 다음 홈 파티션을 마운트하십시오.

mount /home

그런 다음 명령 행에서 exit를 사용하여 root로 로그인하지 않고 종료하면 정상적으로 부팅됩니다. 다 했어요!