GNU/Linux >> Tutoriels Linux >  >> Linux

Paramètres de lecture anticipée pour LVM, Device-Mapper, Software Raid et Block Devices - qu'est-ce qui gagne ?

Solution 1 :

Comment le paramètre RA est-il transmis dans la chaîne de périphériques de bloc virtuel ?

Ça dépend. Supposons que vous êtes à l'intérieur de Xen domU et que RA=256. Votre /dev/xvda1 est le LV réel sur le dom0 visible sous /dev/dm1. Vous avez donc RA(domU(/dev/xvda1)) =256 et RA(dom0(/dev/dm1)) =512 . Cela aura un tel effet que le noyau dom0 accédera à /dev/dm1 avec un autre RA que le noyau de domU. C'est aussi simple que ça.

Une autre situation se produira si nous supposons la situation /dev/md0(/dev/sda1,/dev/sda2).

blockdev --report | grep sda
rw   **512**   512  4096          0   1500301910016   /dev/sda
rw   **512**   512  4096       2048      1072693248   /dev/sda1
rw   **512**   512  4096    2097152   1499227750400   /dev/sda2
blockdev --setra 256 /dev/sda1
blockdev --report | grep sda
rw   **256**   512  4096          0   1500301910016   /dev/sda
rw   **256**   512  4096       2048      1072693248   /dev/sda1
rw   **256**   512  4096    2097152   1499227750400   /dev/sda2

La configuration de /dev/md0 RA n'affectera pas les périphériques de bloc /dev/sdX.

rw   **256**   512  4096       2048      1072693248   /dev/sda1
rw   **256**   512  4096    2097152   1499227750400   /dev/sda2
rw   **512**   512  4096          0      1072627712   /dev/md0

Donc, généralement, à mon avis, le noyau accède au blockdevice de la manière qui est réellement définie. Un volume logique est accessible via RAID (dont il fait partie) ou périphérique devicemapper et chacun avec un autre RA qui sera respecté.

Donc, la réponse est - le paramètre RA n'est IMHO pas transmis dans la chaîne de blocs de périphériques, mais quel que soit le paramètre RA de périphérique de niveau supérieur, il sera utilisé pour accéder aux périphériques constitutifs

Est-ce que dm-0 l'emporte sur tout parce que c'est le périphérique de bloc de niveau supérieur auquel vous accédez réellement ?

Si vous voulez dire propagation profonde par "tout l'emporter" - conformément à mon commentaire précédent, je pense que vous pouvez avoir différents RA pour différents appareils du système.

Lvchange -r aurait-il un impact sur le périphérique dm-0 et ne s'afficherait-il pas ici ?

Oui mais c'est un cas particulier. Supposons que nous ayons /dev/dm0 qui est le /dev/vg0/blockdevice de LVM. Si vous le faites :

lvchange -r 512 /dev/vg0/blockdevice

le /dev/dm0 changera également car /dev/dm0 et /dev/vg0/blockdevice est exactement le même périphérique de bloc en ce qui concerne l'accès au noyau.

Mais supposons que /dev/vg0/blockdevice est identique à /dev/dm0 et /dev/xvda1 dans Xen domU qui l'utilise. Le réglage du RA de /dev/xvda1 prendra effet mais dom0 verra toujours son propre RA.

Qu'utilisez-vous, équivalent à la taille de secteur ci-dessus, pour déterminer la valeur de lecture anticipée réelle pour un périphérique virtuel :

Je découvre généralement RA en expérimentant différentes valeurs et en le testant avec hdparm .

La taille de bande du RAID (pour md0) ?

Comme ci-dessus.

Le FS joue-t-il un rôle (je suis principalement intéressé par ext4 et XFS) ?

Bien sûr - c'est un sujet très vaste. Je vous recommande de commencer ici http://archives.postgresql.org/pgsql-performance/2008-09/msg00141.php

Solution 2 :

Connaître la réponse plus difficile à expliquer, donc je vais le faire dans l'exemple. Supposons que vous ayez 3 périphériques de bloc et que vous réglez votre RA sur 4 (4 * 512 octets) en supposant un secteur standard. Si vous deviez utiliser un schéma RAID-5 en utilisant les 3 disques, toute lecture qui toucherait même une bande sur un disque unique aggraverait le RA par le facteur que vous avez initialement défini sur le périphérique de bloc RA. Donc, si votre lecture s'étendait exactement sur les 3 disques, votre RA effective serait de 12*512 octets. Cela peut être aggravé par settin RA dans les différents niveaux, par exemple MD ou LVM. En règle générale, si mon application bénéficie de RA, je la place sur la couche la plus élevée possible afin de ne pas aggraver inutilement la RA. Je démarre ensuite le système de fichiers sur le secteur 2049 et décale chaque début de secteur sur un nombre divisible par 8. Je suis peut-être loin de ce que vous demandez, mais c'est mon 2 ¢.


Linux
  1. Qu'est-ce qu'un caractère spécial et un bloc de fichiers spéciaux dans un système Unix ? ?

  2. Qu'est-ce qu'une alternative XPerf pour Linux et Mac OS X ?

  3. Mauvaise IO due à la commande LUKS/Software RAID/LVM ?

  4. Création de matrices RAID sur des fichiers au lieu de périphériques de bloc

  5. Quel est le meilleur LVM sur RAID ou RAID sur LVM ?

4 raisons de choisir Linux pour l'art et le design

Les pires distributions Linux pour les débutants [et quoi choisir]

Qu'est-ce qu'une base de données distribuée et à quoi servent les systèmes de données distribués ?

Les 30 meilleurs logiciels de comptabilité et de finance pour Linux Desktop

20 meilleures stations de travail audio numériques (DAW) et logiciels DJ pour Linux

20 meilleurs logiciels de chiffrement de disque et de fichier pour Linux Desktop