Come installare e utilizzare flashcache / bcache per memorizzare in cache l'HDD su SSD?

51

Voglio sapere se c'è qualcuno che ha provato a installare ed eseguire il proprio kernel compilato con flashcache o bcache per la memorizzazione nella cache SSD?

Come sei riuscito a farlo?

    
posta kapad 06.02.2013 - 21:56

4 risposte

10

Bene, abbiamo una risposta bcache ma nessuna risposta flashcache. Ho scelto flashcache perché avevo già un'installazione esistente, quindi bcache era fuori questione. A me è sembrato più semplice anche l'installazione. Ho scelto il metodo DKMS per non rimanere bloccato durante la ricostruzione del modulo / degli strumenti ogni volta che ho ottenuto un aggiornamento del kernel.

Questi passaggi sono descritti in README-DKMS su Github.

Creazione del modulo

  1. La prima cosa che fai è installare i prerequisiti dell'edificio:

    sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
    
  2. Quindi impiglia la sorgente:

    git clone git://github.com/facebook/flashcache; cd flashcache
    
  3. Costruisci e installa i moduli:

    make -f Makefile.dkms
    

Creazione di un dispositivo flashcache

(In questo esempio io uso il caching writeback - il default - ma flashcache può anche scrivere writea e writethrough)

Memorizzazione nella cache di un dispositivo non root (non montato su /)

sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX Dove fcache è il dispositivo creato (/ dev / mapper / fcache), / dev / sdaX è la parzione SSD (o intero disco) e / dev / sdbX è la partizione HDD.

Memorizzazione nella cache del dispositivo root

Ci sono altri passaggi se stai memorizzando nella cache il tuo dispositivo di root. Avrai bisogno di un LiveCD / USB Ubuntu per questa sezione.

  1. cd /path/to/flashcache/source

  2. make -f Makefile.dkms boot_conf

  3. Modifica /boot/grub/grub.cnf e / etc / fstab per avviare da / dev / mapper / fcache (non credo che questo passaggio sia realmente necessario, ma a quanto dice). Assicurati di annotare l'UUID del tuo dispositivo root originale.

  4. Riavvia con LiveCD / LiveUSB.

  5. Monta il tuo dispositivo di root: mount /dev/sda4 /mnt (/ dev / sda4 è la mia partizione di root di Linux)

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

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

  8. make; sudo make install Non è necessario eseguire l'intera configurazione DKMS nell'ambiente live

  9. Smonta il dispositivo di root sudo umount /mnt

  10. sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID] Dove fcache è il dispositivo creato (dovrebbe essere lo stesso che hai messo in / etc / fstab e /boot/grub/grub.cnf, nel mio caso era fcache), / dev / sdbX è la partizione SSD (o intero disco) e [UUID] è l'UUID della partizione di root.

  11. Reboot!

Avvertenze sull'uso del dispositivo root

Una piccola seccatura quando si usa flashcache per il dispositivo di root è che grub-probe non riesce a rilevare il dispositivo di root e può rovinare il menu di avvio in modo da avere due entrate Ubuntu. Ma, non dovrebbe importare quale si utilizza in tutta la realtà poiché il passo make -f Makefile.dkms boot_conf sopra installa alcuni script nel tuo initrd che rileveranno e utilizzeranno il dispositivo flashcache.

    
risposta data Chuck R 29.06.2013 - 23:36
12

C'è uno strumento di conversione per abilitare bcache su un dispositivo esistente (divulgazione: l'ho scritto). È anche la soluzione ideale per nuove installazioni, dal momento che gli attuali installatori di distro non sanno come creare dispositivi bcache (nel qual caso: inizia con l'installazione sull'HDD).

Vedi conversione del tuo filesystem di root in bcache nel blocks README per istruzioni.

bcache richiede Linux 3.10 o successivi, che è in sapiente e può essere installato manualmente da link (cerca la versione taggata più recente, attualmente v3.11.5-saucy , e installa i deb che corrispondono alla tua architettura).

bcache-tools e blocks possono essere installati da mio spazio di archiviazione .

    
risposta data Gabriel 01.09.2013 - 16:05
5

Avviso preliminare: bcache non può essere usato per la tua installazione Ubuntu esistente. Se hai bisogno del caching SSD per il tuo sistema operativo, dovresti aspettare una versione futura o speciale del programma di installazione di Ubuntu che possa configurare la tua cache SSD. Leggi questa risposta di Oli qui: Bcache richiede una nuova installazione?

Per tutti gli altri che desiderano un'unità bcache per i dati non del sistema operativo:

La prima cosa da fare è aggiornare il tuo kernel se usi il 13.04 o precedente usando il PPA del kernel principale. Le istruzioni per l'utilizzo di questo possono essere trovate qui:

link

Assicurati di selezionare il kernel 3.9 o successivo all'avvio o non funzionerà e l'unità scomparirà.

Installa bcache-tools, nel momento in cui dovrai installare dal repository git:

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

Se riesci a impacchettare bcache-tools per debian, faccelo sapere e questa domanda verrà aggiornata per te. (Le dipendenze di build di bcache-tools sono uuid-dev e libblkid-dev . Devono essere installate, per creare bcache-tools .)

Una volta che hai tutti gli strumenti in atto, sei pronto per provare a seguire la guida qui:

link

Questa guida mostra come formattare le unità (disco rigido E SSD) e quindi collegarle insieme per creare un nuovo blocco dispositivo utilizzando bcache. Pubblica un commento se trovi le istruzioni confuse e aggiornerò questa risposta con le semplificazioni.

    
risposta data Martin Owens -doctormo- 07.05.2013 - 05:43
2

Pensavo che sarei venuto qui a commentare ciò che mi era successo quando ho installato un nuovo kernel. Stavo usando flashcache solo per la mia partizione / home / cartella. Ho installato un nuovo kernel, ci ho avviato e mi sono fermato durante l'avvio e ho detto che non riusciva a trovare / dev / mapper / home_cached, ci sono 3 scelte che hai quando ricevi questo messaggio e scelgo l'opzione per accedere come root e provare a risolverlo Ho prima tentato di caricare il modulo flashcache e ho detto che non riusciva a trovarlo. Quindi ho pensato di doverlo compilare e installare per questo nuovo kernel che ho appena installato. Avevo ancora la cartella / flashcache situata in / root / così ho inserito cd in esso ed eseguito

make -f Makefile.dkms boot_conf

poi ho eseguito

make install

quindi ho caricato il modulo flashcache con

modprobe flashcache

poi ho dovuto solo caricare il mio dispositivo flashcache esistente che era

flashcache_load /dev/sdb1

quindi monta la mia partizione home con

mount /home

quindi esci dall'accesso come root con exit sulla riga di comando e dovrebbe continuare l'avvio normalmente. tutto fatto!

    
risposta data Ubu the Tech Guru 11.01.2014 - 06:30

Leggi altre domande sui tag