Voglio sapere se c'è qualcuno che ha provato a installare ed eseguire il proprio kernel compilato con flashcache o bcache per la 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 cache SSD?
Come sei riuscito a farlo?
Risposte:
Bene, abbiamo una risposta bcache ma nessuna risposta flashcache. Ho scelto flashcache perché avevo già un'installazione esistente, quindi bcache era fuori discussione. Anche a me è sembrato più facile installarlo. Ho scelto il metodo DKMS in modo da non essere bloccato a ricostruire il modulo / gli strumenti ogni volta che ho ricevuto un aggiornamento del kernel.
Questi passaggi sono descritti in README-DKMS su Github.
Costruire il modulo
La prima cosa da fare è installare i prerequisiti di costruzione:
sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
Quindi afferrare la fonte:
git clone git://github.com/facebook/flashcache; cd flashcache
Compilare e installare i moduli:
make -f Makefile.dkms
Creazione di un dispositivo flashcache
(In questo esempio utilizzo la cache di writeback - impostazione predefinita - ma flashcache può eseguire anche writeearound e writeethrough)
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 partizione SSD (o l'intero disco) e / dev / sdbX è la partizione HDD.
Memorizzazione nella cache del dispositivo root
Ci sono alcuni altri passaggi se si memorizza nella cache il dispositivo di root. Per questa sezione è necessario un LiveCD / USB Ubuntu.
cd /path/to/flashcache/source
make -f Makefile.dkms boot_conf
Modifica /boot/grub/grub.cnf e / etc / fstab per eseguire l'avvio da / dev / mapper / fcache (non credo che questo passaggio sia davvero necessario, ma dice a). Assicurati di annotare l'UUID del dispositivo root originale.
Riavviare con LiveCD / LiveUSB.
Monta il tuo dispositivo root: mount /dev/sda4 /mnt
(/ dev / sda4 è la mia partizione root 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 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 inserito in / etc / fstab e /boot/grub/grub.cnf, nel mio caso era fcache), / dev / sdbX è la partizione SSD (o l'intero disco ) e [UUID] è l'UUID della partizione di root.
Reboot!
Avvertenze quando si utilizza il dispositivo radice
Un piccolo fastidio quando si usa flashcache per il dispositivo root è che grub-probe non riesce a rilevare il dispositivo root e può rovinare il menu di avvio in modo da avere due desideri di Ubuntu. Ma non dovrebbe importare quale usi in tutta la realtà poiché il make -f Makefile.dkms boot_conf
passaggio precedente installa alcuni script nel tuo initrd che rileveranno e utilizzeranno il dispositivo flashcache.
linux /boot/vmlinuz-3.19.0-51-lowlatency root=UUID=0a540b91-5990-4df0-bc99-5d6e2cd3fed6 ro recovery nomodeset
in linux /boot/vmlinuz-3.19.0-51-lowlatency root=/dev/mapper/fcache ro recovery nomodeset
(cioè, modifica il parametro root =)
Esiste uno strumento di conversione per abilitare bcache su un dispositivo esistente (divulgazione: l'ho scritto). È anche la strada da percorrere per nuove installazioni, poiché gli attuali installatori di distro non sanno come creare dispositivi bcache (nel qual caso: iniziare installando sull'HDD).
Vedere la conversione del file system di root in bcache nel fileblocks
README per istruzioni.
bcache richiede Linux 3.10 o più recente, che è impertinente, e può essere installato manualmente da
http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D (cercare la versione con tag più recente , attualmente v3.11.5-saucy
e installa i debs che corrispondono alla tua architettura).
bcache-tools
e blocks
può essere installato dal mio ppa di archiviazione .
/
, /home
, /usr/
, ...) mentre il sistema è in funzione (come maintboot è rotto). In alternativa, è possibile utilizzare una chiavetta USB live, installarla blocks
e utilizzarla per convertire i dischi. Tuttavia, questo strumento funziona solo su tabelle di partizione MBR e GPT primarie e richiede 1 MiB di spazio extra prima di ogni partizione.
Avviso precedente: bcache non può essere utilizzato per l'installazione di Ubuntu esistente. Se hai bisogno della cache SSD per il tuo sistema operativo, dovresti aspettare una versione futura o speciale del programma di installazione di Ubuntu che potrebbe impostare la cache SSD. Vedi questa risposta di Oli qui: bcache richiede una nuova installazione?
Per tutti coloro che desiderano un'unità bcache per dati non OS:
La prima cosa da fare è aggiornare il kernel se si utilizza la versione 13.04 o precedente utilizzando il PPA della linea principale del kernel. Le istruzioni per l'uso sono disponibili qui:
https://wiki.ubuntu.com/Kernel/MainlineBuilds
Assicurati di selezionare il kernel 3.9 o superiore all'avvio o non funzionerà e il tuo disco scomparirà.
Installa bcache-tools, al momento dovrai installare dal repository git:
git clone http://evilpiepirate.org/git/bcache-tools.git
Se riesci a bcache-tools
creare pacchetti per debian, faccelo sapere e questa domanda verrà aggiornata per te. ( bcache-tools
Le dipendenze di build sono uuid-dev
e libblkid-dev
. Devono essere installate, per compilare bcache-tools
.)
Dopo aver installato tutti gli strumenti, sei pronto per provare a seguire la guida qui:
http://atlas.evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt
Questa guida mostra come formattare le unità (SSD E disco rigido) 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 delle semplificazioni.
ho pensato di venire qui e commentare cosa mi è successo quando ho installato un nuovo kernel. Stavo usando flashcache solo per la mia partizione / home / cartella. Ho installato un nuovo kernel, avviato in esso e si è arrestato durante l'avvio e ha 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 tenta di risolverlo. Prima ho provato a caricare il modulo flashcache e mi ha detto che non riusciva a trovarlo. Quindi ho pensato che avrei dovuto compilare e installarlo per questo nuovo kernel che ho appena installato. avevo ancora la cartella / flashcache / all'interno di / root / quindi l'ho inserita e funzionata
make -f Makefile.dkms boot_conf
poi ho corso
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 semplicemente la mia partizione home con
mount /home
quindi uscire dall'accesso come root con exit dalla riga di comando e dovrebbe continuare ad avviarsi normalmente. tutto fatto!