Le 2021-11-15 12:27, Frédéric Dumas a écrit :
Bonjour à tous,

quelques questions à propos de bcache.


Je l’installe sur cette configuration matérielle:

backend device /dev/sda = RAID6 hardware avec stripe size de 1024Ko
cache device /dev/md0 = RAID1 software avec deux P3700

Le device /dev/bcache0 est créé avec ces paramètres :

# make-bcache --data-offset 1024k --bucket 2048k --writeback --bdev /dev/sda4 --cache /dev/md0


Le cache est bien attaché à son backend device:

# lsblk
NAME           SIZE FSTYPE      TYPE  MOUNTPOINT
sda            7.3T             disk
├─sda1        1007K             part
├─sda2         512M vfat        part
├─sda3        31.5G LVM2_member part
│ └─pve-root   7.8G ext4        lvm   /
└─sda4         7.2T bcache      part
  └─bcache0    7.2T             disk
sr0           1024M             rom
nvme0n1      745.2G             disk
└─md0        745.1G bcache      raid1
  └─bcache0    7.2T             disk
nvme1n1      745.2G             disk
└─md0        745.1G bcache      raid1
  └─bcache0    7.2T             disk



Questions:

(1) Quel est le erase block size sur le P3700 ? Je n’ai pas trouvé
dans les specs Intel.
Mon seul indice, c’est un message d’un développeur sur la liste LKML.
    La valeur 2048k donnée à l'option --bucket est-elle correcte ?

(2) stride width = "stripe width » et aussi "stripe size" ?

    Extrait de la doc bcache:

    > If your backing device is RAID based, then be sure to align this
by a multiple
    > of your stride width using bcache make –data-offset.

L’option --data-offset attend-elle bien la valeur (dans mon cas 1024k)
   du stripe width de la grappe RAID6 ?


Voilà un plus long extrait de la doc bcache:

Backing device alignment

The default metadata size in bcache is 8k. If your backing device is RAID based, then be sure to align this by a multiple of your stride width using bcache make –data-offset. If you intend to expand your disk array in the future, then multiply a series of primes by your raid stripe size to get the disk multiples that you would like.


For example: If you have a 64k stripe size, then the following offset would provide alignment for many common RAID5 data spindle counts:

64k * 2*2*2*3*3*5*7 bytes = 161280k


Source:
https://www.kernel.org/doc/html/latest/admin-guide/bcache.html#troubleshooting-performance


(3) Dernière question: quand j’intègre le device /dev/bcache0 à LVM,
ça passe mais avec des erreurs:

# pvcreate /dev/bcache0
  Error reading device /dev/bcache0 at 7965015146496 length 4.
  bcache_invalidate: block (0, 0) still held
  bcache_abort: block (0, 0) still held
  Error reading device /dev/bcache0 at 7965015248896 length 4.
  Error reading device /dev/bcache0 at 7965015259648 length 24.
  Error reading device /dev/bcache0 at 7965015260160 length 512.
  scan_dev_close /dev/bcache0 no DEV_IN_BCACHE set
  scan_dev_close /dev/bcache0 already closed
  Error reading device /dev/bcache0 at 7965015146496 length 4.
  bcache_invalidate: block (0, 0) still held
  bcache_abort: block (0, 0) still held
  Error reading device /dev/bcache0 at 7965015248896 length 4.
  Error reading device /dev/bcache0 at 7965015259648 length 24.
  Error reading device /dev/bcache0 at 7965015260160 length 512.
  Physical volume "/dev/bcache0" successfully created.

Google reste muet sur « Error reading device /dev/bcache0 at », au
moins pour moi.

La définition du VG donne un retour similaire:

# vgcreate vms /dev/bcache0
  Error reading device /dev/bcache0 at 7965015146496 length 4.
  bcache_invalidate: block (3, 0) still held
  bcache_abort: block (3, 0) still held
  Error reading device /dev/bcache0 at 7965015248896 length 4.
  Error reading device /dev/bcache0 at 7965015259648 length 24.
  Error reading device /dev/bcache0 at 7965015260160 length 512.
  Error reading device /dev/bcache0 at 7965015146496 length 4.
  bcache_invalidate: block (0, 0) still held
  bcache_abort: block (0, 0) still held
  Error reading device /dev/bcache0 at 7965015248896 length 4.
  Error reading device /dev/bcache0 at 7965015259648 length 24.
  Error reading device /dev/bcache0 at 7965015260160 length 512.
  Volume group "vms" successfully created



La création d’un LV dans ce VG ne renvoie par contre aucune erreur.


Si quelqu’un a une hypothèse ?
Merci!

--
Frédéric Dumas
f.du...@ellis.siteparc.fr

Hello,

Je ne connaissais pas bcache avant ton mail.
Pourquoi ne pas avoir utiliser lvm-cache ? Ca m'étonnerait que tu ais le genre de message d'erreur que tu as avec...

Sinon j'ai l'impression que tu n'as pas créé comme il faut la partie bcache si j'en suis ce qui est indiqué ici :
https://fedoraproject.org/wiki/QA:Testcase_bcache-tools_home_on_bcache_(LVM)

Make /dev/sda4 a bcache backing device: make-bcache -B /dev/sda4
Make /dev/sdb1 a bcache caching device: make-bcache -C /dev/sdb1
Retrieve the cset.uuid from your /dev/sdb1 caching device: bcache-super-show /dev/sdb1 Attach /dev/sdb1 to /dev/bcache0: echo <cset.uuid> > /sys/block/bcache0/bcache/attach
Now you have a bcache device: /dev/bcache0

Mais je ne suis absolument pas un spécialiste du sujet...

Cordialement,


--
Jean-Yves LENHOF
_______________________________________________
Liste de diffusion du FRsAG
http://www.frsag.org/

Répondre à