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?
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?
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
La prima cosa che fai è installare i prerequisiti dell'edificio:
sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
Quindi impiglia la sorgente:
git clone git://github.com/facebook/flashcache; cd flashcache
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.
cd /path/to/flashcache/source
make -f Makefile.dkms boot_conf
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.
Riavvia con LiveCD / LiveUSB.
Monta il tuo dispositivo di root: mount /dev/sda4 /mnt
(/ dev / sda4 è la mia partizione di root di Linux)
cd /mnt/path/to/flashcache/source
sudo apt-get install dkms build-essential linux-headers-$(uname -r)
make; sudo make install
Non è necessario eseguire l'intera configurazione DKMS nell'ambiente live
Smonta il dispositivo di root sudo umount /mnt
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.
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.
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 .
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:
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:
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.
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!
Leggi altre domande sui tag kernel ssd hard-drive cache bcache