Portál AbcLinuxu, 30. dubna 2025 12:41

NFS sync a Btrfs

19.2.2013 19:49 | Přečteno: 1097× | Za vším hledej Linux | poslední úprava: 19.2.2013 21:24

Pokud provozujete bezdiskový linux nad NFS, tak vás možná zaujme výsledek mého posledního testování.

Je tomu zhruba půl roku, co jsem přepracoval naše virtualizační prostředí pro diskless použití. Všechno funguje k naprosté spokojenosti, až na jedinou věc. Tou je brutálně pomalý zápis na disk v prostředí virtuálních strojů. Příčina je známa. Na tyto adresáře totiž nelze aplikovat parametr async.

U asynchronního přenosu dat na server by se totiž mohlo stát, že by v případě jeho kolapsu virtuál mohl ztratit kritické soubory, aniž by to zjistil. Synchronní přenos, kdy virtuální systém čeká až mu přijde potvrzení, že byly data skutečně uloženy na disk toto vylučuje.

I když by se to mohlo zdát kritické. Ve skutečnosti s tím žádný problém není. Data se kterými servery pracují jsou většinou v databázi a upload souborů na server bývá obvykle stejně omezen propustností linky na straně klienta. Jediná situace, kdy se to opravdu výrazně projevuje, je aktualizace a instalace v prostředí virtualizovaného systému. To však lze obejít tím, že se tyto operace provedou přes chroot na straně serveru, kde se toto zpomalení neprojeví.

Nicméně některé stroje používají uživatelé, co nemají přístup na NFS server a taková aktualizace virtuálu je pro ně utrpením. Zákonitě se tedy ptají, proč to je tak příšerně pomalé. Zkoušel jsem tedy nějak tento problém řešit, ale bohužel bez výraznějšího úspěchu. I když ale ne tak docela.

S překvapením jsem zjistil, že úpravy, které provedli vývojáři Btrfs v kódu, pro podporu NFS zhruba 3x zrychlují zápis oproti ext3, ext4 či reiserfs. Zcela konkrétně - rozbalení zdrojáků pro kernel 3.7.6 trvalo nad ext4 224 minut, zatím co nad btrfs, ze stejného diskového pole "pouhých" 68 minut.

Rozdělený modul nfs od jádra 3.6

A také jsem narazil ještě na jednu záludnost. Jádra verze >= 3.6 nemají pouze jeden modul pro NFS, ale každá verze má svůj. Je tedy třeba je také přibalit do ramdisku.

VDE

Používáte-li virtuální VDE switche, tak možná pro vás může být důležitá také informace, že nepodporují jumbo frame. Podle toho co jsem zatím vyšťáral je to tím, že VDE používá sokety a ty mají maximální velikost MTU omezenou na 1500

Nicméně je-li používán synchronní režim NFS, nemá pro urychlení přenosu použití jumbo frames víceméně žádný význam.

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.