HDD에 SSD를 캐시하기 위해 flashcache / bcache를 어떻게 설치하고 사용합니까?


52

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

어떻게 관리 했습니까?


좋은 질문. 내 답변 중 일부 ( 1 , 2 ) 에서 플래시 캐시를 제안하고 있습니다. 보인다 다음 DM-캐시, 작업에 대한 도구를. 또한 Ubuntu / Linux 용 Intel Smart Response 의 대안을 찾고있는 모든 사람들과 관련이 있습니다.
gertvdijk

Tooo는 인텔 SRT의 대안으로보고있었습니다. 여기 의 아치 위키 는 몇 마디로 마음이 희미하지 않다고 말합니다. 문제는 내가 일과 놀이 모두를 위해 내 유일한 PC에서 가지고 놀려고 계획하고 있다는 것입니다. 그래서 여기에 방법을 얻기를 바랐습니다. VM에서 우분투를 실행하고 테스트 할 SSD (파일 기반)의 디스크에 하나의 드라이브 (파일 기반)를 가질 수 있다고 생각하십니까? 다음에 갈 의향이 있습니다 :)
kapad

좋은 질문이지만 VM을 테스트 베드로 사용하는 답변은 완전한 것으로 간주됩니까? 많은 사람들이 실제로 이에 응답하는 데 필요한 하드웨어를 가지고 있지 않습니다.
RobotHumans 2013

4
이미 Flashcache를 사용해 보셨습니까? gerrit-tamboer.net/...
재스민

4
dm-cache 는 이제 안정적인 3.9 Linux 커널 릴리스로 병합되었습니다. 나는이 26 투표 질문에 대답이 가치가 있다고 생각합니다. :)
gertvdijk

답변:


10

글쎄, 우리는 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에 일부 스크립트를 설치하기 때문에 실제로 사용하는 것은 중요하지 않습니다 .


2
적어도 raring에는 flashcache-dkms 및 flashcache-utils 용 패키지가 있음을 알았습니다. 설치는 어떻게 변경됩니까?
ivant

아 진짜? 나는 눈치 채지 못했다. Raring도 실행하고 있지만 Git 리포지토리에서 설치했습니다. 패키지를 살펴 봐야하지만 처음 몇 섹션을 건너 뛰어 루트 장치 부팅 프로세스를 계속 수행 할 수 있다고 상상할 수 있습니다.
척 R

1
ubuntu 13.10의 flashcache-dkms 패키지에는 플래시 캐시 모듈 및 바이너리가 initramfs에 포함되어 있지 않으므로 루트를 플래시 캐시하면 부팅 할 수 없습니다. 버그를 만들었습니다 : bugs.launchpad.net/ubuntu/+source/flashcache/+bug/1290148 위에서 설명한대로 소스에서 flashcache를 빌드했으며 다음 체인을 부팅 할 수있었습니다. sda7-> flashcache-> dm- crypt-> lvm-> ext4. 플래시 캐시 dev를 / etc / crypttab에 추가하고 update-initramfs -u
Martin Vysny

grub 파일에 대한 변경 사항이 포함 된 주석을 추가 할 수 있습니다.
kapad

grub.cfg를 더 이상 수정하지 않습니다. 필요하지 않은 것 같습니다. 그러나 다음과 같이 변경합니다 : linux /boot/vmlinuz-3.19.0-51-lowlatency root=UUID=0a540b91-5990-4df0-bc99-5d6e2cd3fed6 ro recovery nomodesetto linux /boot/vmlinuz-3.19.0-51-lowlatency root=/dev/mapper/fcache ro recovery nomodeset(즉, root = 매개 변수 변경)
Chuck R

12

기존 장치에서 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 .


1
이 도구는 현재 (15.04) 버전의 우분투에서 손상되었습니다. github.com/g2p/maintboot/issues/1github.com/g2p/blocks/issues/13
Jean Jordaan

실제로 도구 자체는 현재 고장 나지 않았습니다 (350GB 하드 드라이브에서 어제 테스트 됨). 그러나 현재 버전은 시스템 디스크 (변환 할 수 없습니다 /, /home, /usr/시스템이 실행되는 동안 (maintboot가 고장으로) ...을). 다른 방법으로 라이브 USB 스틱을 사용하여 설치 blocks하고 디스크를 변환하는 데 사용할 수 있습니다. 그러나이 도구는 기본 MBR 및 GPT 파티션 테이블에서만 작동하며 각 파티션 앞에 1MiB의 추가 공간이 필요합니다.
ntninja

5

사전 경고 : 기존 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를 사용하여 새로운 장치 블록을 만들기 위해 함께 연결 하는 방법을 보여줍니다 . 지침이 혼란 스러우면 의견을 게시하고 단순화하여이 답변을 업데이트하겠습니다.


커널 3.9를 실행하는 시동 디스크를 만든 다음 bcache 드라이브를 만들고이 드라이브 위에 우분투를 설치할 수 있습니까?
kapad

kapad-가능해야하지만 부팅 할 때 우분투 설치에 올바른 드라이버가 있는지 확인해야하며 grub이 찾을 수 있도록 bcache 외부에서 부팅해야합니다.
Martin Owens -doctormo-

2

나는 여기에 와서 새로운 커널을 설치할 때 어떤 일이 일어 났는지에 대해 언급 할 것이라고 생각했다. / 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로 로그인하지 않고 종료하면 정상적으로 부팅됩니다. 다 했어요!


이것이 여전히 작동하는지 궁금하다면, 스위칭을 끝내고 더 이상 flashcache를 사용하지 않았습니다. 내부 펌웨어로 인해 64GB SSD (Linux 커널은 32GB라고 생각합니다)에 아치를 설치했습니다. 나는 이것이 일부 스팀 게임의 캐싱 드라이브로 유익하다는 것을 알 수 있습니다.
기술 전문가 우부
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.