web-dev-qa-db-fra.com

Flashcache sur Xubuntu 13.04

Tout d'abord, je ne suis pas sur l'utilisation de flashcache, et tout ce que je publierai ici étudiera à ce sujet.

J'ai un Asus K56CM, un i5 avec 500 Go de HD et 24 Go de SSD pour le cache. Dans Windows 8, le système d'exploitation par défaut, utilise Expresscache pour mettre en cache le disque dur dans le SSD.

Je veux faire la même chose dans Xubuntu, et j'ai vu Flashcache comme la meilleure façon de le faire.

J'ai suivi plusieurs manuels, mais je perds quelque chose.

La table des partitions est:

sda      8:0    0 465,8G  0 disk 

├─sda1   8:1    0   5,9G  0 part [SWAP]
├─sda2   8:2    0 117,2G  0 part /
└─sda3   8:3    0 342,7G  0 part /home

sdb      8:16   0  22,4G  0 disk 

├─sdb1   8:17   0   250M  0 part /boot/efi
├─sdb2   8:18   0   5,9G  0 part 
└─sdb3   8:19   0  16,3G  0 part 

SDA est un disque dur et SDB est un SSD

Dans SDB2, j'utilise gdisk pour Intel Rapid Boot, et je veux mettre en cache/home dans SDB3.

La procédure pas à pas que j'ai suivie est ( http://nitocris.over-blog.net/article-flash-cache-as-home-or-root-on-ubuntu-109792445.html ):

 - apt-get install git-core
 - mkdir -p ~/Build/ ; cd ~/Build/
 - git clone https://github.com/facebook/flashcache.git
 - Sudo apt-get install git build-essential dkms linux-headers-`uname -r` uuid-dev
 - cd flashcache
 - Sudo make -f Makefile.dkms all boot_conf
 - Sudo make install
 - Sudo modprobe flashcache
 - Sudo echo "flashcache" >> /etc/modules
 - dmesg | tail

Et Flashcache est maintenant installé. Mais mon problème est quand je crée le lien flashcache.

Je prends l'UUID de SDA3 et fais le flashcache_Create sur SDB3:

- umount /home
- flashcache_create -p back home_cached /dev/sdb3 /dev/disk/by-uuid/XXX-XXX (the ID)

Et puis, je modifie le FSTAB, commentant le montage/home et ajoutant:

- /dev/mapper/home_cached /home     reiserfs defaults        0       2

Tout va bien, mais maintenant, quand je redémarre le système,/home n'est pas monté ... et je ne sais pas pourquoi ...

De l'aide?

Merci!

PD: désolé pour mon anglais, je suis espagnol: S

EDIT: Ok, j'ai la solution. Flashcache doit être créé à chaque redémarrage, j'ai donc créé un script à exécuter au démarrage. Je l'ai décrit ici: http://ubuntuforums.org/showthread.php?t=2179297

3
EirisDG

J'ai eu le même problème; Je suis venu avec ce fichier conf upstart qui trouvera tous les lecteurs flashcache et les charger, puis définir les paramètres sysctl pour les lecteurs, puis les monter. Si vous ajoutez d'autres lecteurs, il vous suffit de les ajouter à/etc/fstab et de vous assurer qu'ils ont l'option nobootwait dans le quatrième champ, par ex.

/ dev/mapper/export/export ext4 nobootwait 0 1

Voici le fichier, qui devrait aller dans /etc/init/flashcache.conf:

# flashcache - Set up flashcache devices and mount them

description "Set up flashcache devices and mount them on boot"

start on mounted

task

console output

script
    # Load any flashcache devices and get them ready to mount, then set sysctl settings.

    PATH=/sbin:/bin:/usr/bin

    # Load up any flashcache devices
    for P in /dev/disk/by-id/*; do
        if flashcache_load $P 2>/dev/null; then
        echo "Loaded flashcache device from $P"
        fi
    done

    # Now look through all WRITE_BACK devices and set the sysctl settings
    for d in $(dmsetup table | grep 'cache mode(WRITE_BACK)' | Perl -pe 's@.*ssd dev \(/dev/disk/by-id/(.*?)\), disk dev \(/dev/disk/.*?/(.*?)\).*@$1+$2@'); do
        # disable writing dirty cache data at shutdown
        sysctl -w dev.flashcache.$d.fast_remove=1
        # change reclaim policy from FIFO to LRU
        sysctl -w dev.flashcache.$d.reclaim_policy=1
        # do not write "stale" data to disk until evicted due to lack of space
        sysctl -w dev.flashcache.$d.fallow_delay=0
    done

end script
2
user3324033

Faire référence à:
Comment installer et utiliser flashcache/bcache pour mettre en cache le disque dur sur le SSD?

Il y a 2 cas pour faire/configurer votre flashcache:

  1. Mettre en cache votre périphérique racine, ou
  2. Mise en cache d'un non-root (non monté à /) dispositif
0
jemin