Maison  >  Article  >  Opération et maintenance  >  Exemple de tutoriel pour configurer le module bcache

Exemple de tutoriel pour configurer le module bcache

零下一度
零下一度original
2017-07-17 11:35:523264parcourir

1. Prérequis : Le module bcache doit être configuré dans le noyau

1.1 Vérifier

- S'il existe dans le noyau : vérifiez si le répertoire /sys/fs/bcache existe. Si cela ne signifie pas qu'il n'y a pas de bcache dans le noyau

- s'il existe en tant que fichier. module du noyau : vérifiez /lib/modules/<$version> Le répertoire /kernel/drivers/md/bcache existe-t-il ? S'il n'existe pas, cela signifie qu'il n'y a pas de module noyau bcache

- Si il n'y a pas de bcache après avoir vérifié les deux étapes ci-dessus, cela signifie que le noyau n'est pas configuré pour compiler bcache. Vous devez en configurer et en compiler un nouveau vous-même (vous devez faire attention à la version lors du téléchargement du noyau, le). la fonction bcache n'est disponible qu'en 3.10 et versions ultérieures)

1.2 Compiler le nouveau noyau

$ wget ""                    $ rpm2cpio ./kernel-3.10.0-514.el7.src.rpm | cpio -idmv    //提取rpm包内容,获取内核:linux-3.10.0-514.el7.tar.xz$ make menuconfig        //内核配置     Device Drivers 
         ->Multiple devices driver support (RAID and LVM)             -><*> Block device as cache
$ make bzImage (V=1)     //编译内核$ make modules        //编译内核模块$ make modules_install      //拷贝内核模块的.ko文件到/lib/modules下$ make install              //拷贝initrd和bzImage到boot目录下,并修改开机启动配置文件$ reboot                    //重启,根据菜单选择对应内核版本进入


2. Compilez et installez

//获取bcache-tools工具(以下两个网址任选其一)$ git clone http://evilpiepirate.org/git/bcache-tools.git$ git clone https://github.com/g2p/bcache-tools.git//安装前需要两个依赖包pkg-config和libblkid-dev$ yum -y install pkg-config libblkid-dev//编译安装bcache-tools$ make$ make install

3. Méthode de déploiement

3.1 Créer un périphérique bcache

$ -bcache -C <cache-device> -B <backing device>--B     -C     -     -b    结果:有几个backing device就会对应生成几个/dev/
  
 <br>

exemple : les tailles de bloc et de compartiment par défaut de 512 B et 128 Ko sont utilisées. La taille du bloc doit correspondre à la taille du secteur des périphériques de support, qui sera généralement de 512. ou 4k. La taille du compartiment doit correspondre à la taille du bloc d'effacement du périphérique de mise en cache dans le but de réduire l'amplification d'écriture. Par exemple, en utilisant un disque dur avec 4k de secteurs et un SSD avec une taille de bloc d'effacement de 2 Mo, cette commande ressemblerait à

# make-bcache --block 4k --bucket 2m -C /dev/sdy

3.2 Ajouter un périphérique de support

 - 1. Créer un périphérique de support

  $ make-bcache -B <backing-device>
  结果:生成对应的设备/dev/bcache<n>
- 2. Attacher le périphérique back-end

  $  -la /sys/fs/bcache          $  <CSET-UUID> > /sys/block/bcache<n>/bcache/
  
 <br>

3.3 Supprimer le périphérique back-end

- 1. détacher le périphérique de support

  $  -la /sys/fs/bcache/          $  <CSET-UUID> > /sys/block/bcache<n>/bcache/

- 2. Supprimer le périphérique backend

  $   > /sys/block/bcache<N>/bcache/

3.4 Ajouter un périphérique de cache

 -1 Créer un périphérique de cache

 
  $ make-bcache -C <cache device>  结果:在/sys/fs/bcache目录下生成对应的CACHE SET UUID
  注意:有可能设备本身有残余数据,需要使用wipefs清理掉
  $ wipefs -a /dev/sda

- 2. Attacher, associé au périphérique bcache

  $ echo <CSET-UUID> > /sys/block/bcache<n>/bcache/attach
  解释:通过后端设备attach缓存设备,cache device才能开始缓存,backing   device才能被缓存

3.5 Supprimer le périphérique de cache

Condition préalable : assurez-vous qu'aucun périphérique de sauvegarde ne l'utilise (peut être consulté via lsblk)

Explication : - L'existence du périphérique de cache peut être comprise grâce au jeu de cache uuid correspondant au répertoire /sys/fs/bcache
- Après désenregistrement de l'uuid Ce périphérique de cache est considéré comme supprimé

$ echo 1 > /sys/fs/bcache/<cache set uuid>/unregister
结果:再看/sys/fs/bcache目录下就没有这个cache设备的uuid了

3.6 Formatez bcache et montez-le en utilisant

$ mkfs.xfs /dev/bcache<n>            //格式化设备为xfs文件系统$ mount /dev/bcache<n>  /mnt       //挂载设备到/mnt目录进行访问


4. Fonctionnement

4.1 Afficher l'état de fonctionnement

$ cat /sys/block/bcache<n>/bcache/state
  • pas de cache : le périphérique de sauvegarde n'attache aucun périphérique de mise en cache (cela signifie que toutes les E/S sont transmises directement au périphérique de sauvegarde [mode pass-through]).

  • clean : tout va bien, le cache est propre.

  • dirty : Cela signifie que tout est bien configuré et que la réécriture est activée, le cache est sale.

  • incohérent : Vous rencontrez un problème car le périphérique d'arrière-plan n'est pas synchronisé avec le périphérique de cache.

4.2 Vérifier la quantité de données mises en cache

$ cat /sys/block/bcache<n>/bcache/dirty_data

4.3 Afficher/définir le mode cache

// 设置缓存模式(默认writethrough)$ echo <cache mode> > /sys/block/bcache<N>/bcache/cache_mode// 查看缓存模式$ cat /sys/block/bcache<N>/bcache/cache_mode
 [writethrough]    writeback        writearound    none

4.4 Imprimer les informations sur l'appareil

$ bcache-super-show /dev/sd<n>

4.5 Les informations de configuration

  • le périphérique de sauvegarde se trouve dans le répertoire /sys/block/bcache/bcache/

  • le périphérique de cache se trouve dans le répertoire /sys/fs/bcache//

Modifications apportées aux informations de configuration dans /sys sont temporaires Oui, le redémarrage l'invalidera. Si vous souhaitez définir la configuration actuelle au démarrage, vous devez créer un fichier de configuration de conf dans /etc/tmpfile.d/, par exemple /etc/tmpfile.d/my-bcache.conf :

w /sys/block/bcache0/bcache/sequential_cutoff - - - - 1
w /sys/block/bcache0/bcache/cache_mode - - - - writeback
(Pour définir, de manière persistante, le coupure séquentielle pour bcache0 à 1 Mo et réécriture)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn