GNU/Linux >> Znalost Linux >  >> Linux

Nastavení Readahead pro LVM, Device-Mapper, Software Raid a Block Devices – co vyhraje?

Řešení 1:

Jak se nastavení RA přenese do řetězce virtuálních blokových zařízení?

Záleží. Předpokládejme, že jste uvnitř Xen domU a máte RA=256. Váš /dev/xvda1 je skutečný LV na dom0 viditelném pod /dev/dm1. Takže máte RA(domU(/dev/xvda1)) =256 a RA(dom0(/dev/dm1)) =512 . Bude to mít takový účinek, že jádro dom0 bude přistupovat k /dev/dm1 s jiným RA než jádro domU. Jak jednoduché.

Další situace nastane, pokud předpokládáme situaci /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

Nastavení /dev/md0 RA neovlivní /dev/sdX blockdevices.

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

Takže obecně podle mého názoru jádro přistupuje k blockdevice způsobem, který je skutečně nastaven. K jednomu logickému svazku lze přistupovat přes RAID (jehož je součástí) nebo zařízení mapující zařízení a každý s jiným RA, který bude respektován.

Odpověď tedy zní – nastavení RA je IMHO nepředáváno v řetězci blokových zařízení, ale bez ohledu na to, jaké je nastavení RA zařízení nejvyšší úrovně, bude použito pro přístup k základním zařízením

Překoná dm-0 vše, protože je to blokové zařízení nejvyšší úrovně, ke kterému skutečně přistupujete?

Pokud máte na mysli hluboké šíření slovem "trumf all" - podle mého předchozího komentáře si myslím, že můžete mít různé RA pro různá zařízení v systému.

Měl by lvchange -r dopad na zařízení dm-0 a nezobrazil by se zde?

Ano, ale toto je konkrétní případ. Předpokládejme, že máme /dev/dm0, což je /dev/vg0/blockdevice LVM. Pokud tak učiníte:

lvchange -r 512 /dev/vg0/blockdevice

/dev/dm0 se také změní, protože /dev/dm0 a /dev/vg0/blockdevice jsou přesně stejné blokové zařízení, pokud jde o přístup k jádru.

Předpokládejme však, že /dev/vg0/blockdevice je stejný jako /dev/dm0 a /dev/xvda1 v Xen domU, který jej používá. Nastavení RA pro /dev/xvda1 se projeví, ale dom0 uvidí, že má stále vlastní RA.

Co používáte, ekvivalentní velikosti sektoru výše k určení skutečné hodnoty předčítání pro virtuální zařízení:

Obvykle objevuji RA experimentováním s různými hodnotami a testováním pomocí hdparm.

Velikost pruhu pole RAID (pro md0)?

Stejné jako výše.

Hraje v tom roli FS (primárně mě zajímá ext4 a XFS)?

Jistě – toto je velmi velké téma. Doporučuji začít zde http://archives.postgresql.org/pgsql-performance/2008-09/msg00141.php

Řešení 2:

Znát odpověď obtížněji vysvětlitelnou, takže to učiním v příkladu. Řekněme, že kvůli tomu máte 3 bloková zařízení a nastavíte RA na řekněme 4 (4 * 512 bajtů) za předpokladu standardního sektoru. Pokud byste řekli použít schéma RAID-5 s použitím 3 disků, každé čtení, které by se i jen dotklo proužku na jedinečném disku, by zvýšilo RA o faktor, na který jste původně nastavili RA blokového zařízení. Pokud by tedy vaše čtení zabíralo přesně všechny 3 disky, pak by vaše efektivní RA byla 12*512 bajtů. K tomu může přispívat settin RA v různých úrovních, např. MD nebo LVM. Obecně platí, že pokud moje aplikace využívá RA, nastavím ji na nejvyšší možnou vrstvu, abych RA zbytečně neskládal. Potom spustím souborový systém na sektoru 2049 a posunu každý začátek sektoru na číslo dělitelné 8. Možná jsem úplně mimo, na co se ptáte, ale toto jsou moje 2¢.


Linux
  1. Co jsou speciální znaky a speciální soubory bloků v systému Unix?

  2. 5 bezplatný a otevřený software pro správu školy pro Linux

  3. Špatný IO kvůli objednání LUKS/Softwarový RAID/LVM?

  1. Linuxové pásky, co je la a m na konci páskových zařízení ve vývoji?

  2. Vytváření polí RAID na souborech namísto blokových zařízení

  3. Co je lepší LVM na RAID nebo RAID na LVM?

  1. Co znamená měřené spouštění a důvěryhodné spouštění pro Linux

  2. Gdomap a k čemu se používá?

  3. FreeCAD – 3D modelovací a návrhářský software pro Linux