ZFS

Конфигуриране на ZFS кеш за високоскоростен IO

Конфигуриране на ZFS кеш за високоскоростен IO

Конфигуриране на кеш паметта във вашия ZFS пул

Ако сте преминали през предишните ни публикации за основите на ZFS, вече знаете, че това е стабилна файлова система. Той изпълнява контролни суми за всеки блок данни, записвани на диска и важни метаданни, като самите контролни суми, се записват на множество различни места. ZFS може да загуби вашите данни, но гарантирано никога няма да ви върне грешни данни, сякаш са правилните.

По-голямата част от резервирането за ZFS пул идва от основните VDEV. Същото важи и за производителността на пула за съхранение. Ефективността на четене и запис може значително да се подобри чрез добавяне на високоскоростни SSD или NVMe устройства. Ако сте използвали хибридни дискове, където SSD и въртящият се диск са в комплект като един хардуер, тогава знаете колко лоши са механизмите за кеширане на хардуерно ниво. ZFS не е нищо подобно поради различни фактори, които ще изследваме тук.

Има два различни кеша, които пулът може да използва:

  1. ZFS Intent Log, или ZIL, за буфериране на WRITE операции.
  2. ARC и L2ARC, които са предназначени за READ операции.

Синхронни срещу асинхронни писания

ZFS, както повечето други файлови системи, се опитва да поддържа буфер от операции за запис в паметта и след това да го записва на дисковете, вместо директно да го записва на дисковете. Това е известно като асинхронен пише и дава прилични печалби от производителността за приложения, които са устойчиви на грешки или където загубата на данни не нанася големи щети. ОС просто съхранява данните в паметта и казва на приложението, поискало записването, че записването е завършено. Това е поведението по подразбиране на много операционни системи, дори когато се изпълнява ZFS.

Фактът обаче остава фактът, че в случай на повреда на системата или загуба на захранване, всички буферирани записи в основната памет се губят. Така че приложенията, които желаят последователност в производителността, могат да отварят файлове в синхронен режим и тогава данните се считат за записани само след като действително са на диска. Повечето бази данни и приложения като NFS разчитат непрекъснато на синхронни записи.

Можете да зададете флага: синхронизиране = винаги да направи синхронни записва поведението по подразбиране за даден набор от данни.

$ zfs зададе синхронизация = винаги mypool / набор от данни1

Разбира се, може да пожелаете да имате добра производителност, независимо дали файловете са в синхронен режим. Това е мястото, където ZIL влиза в картината.


ZFS Intent Log (ZIL) и SLOG устройства

ZFS Intent Log се отнася до част от вашия пул за съхранение, който ZFS използва за първо съхраняване на нови или модифицирани данни, преди да ги разпространи в основния пул за съхранение, като се премахне във всички VDEV.

По подразбиране от басейна винаги се изрязва малко количество съхранение, което да действа като ZIL, дори когато използвате само куп въртящи се дискове за вашето хранилище. Можете обаче да се справите по-добре, ако имате малко NVMe или друг вид SSD на ваше разположение.

Малкото и бързо съхранение може да се използва като отделен дневник за намерения (или SLOG), където новопристигналите данни ще се съхраняват временно, преди да бъдат изхвърлени в по-голямото основно хранилище на пула. За да добавите устройство със слог, изпълнете командата:

$ zpool добавяне на дневник на резервоара ada3

Където резервоар е името на вашия басейн, дневник е ключовата дума, която казва на ZFS да третира устройството ada3 като SLOG устройство. Възможно е възелът на устройството на SSD да не е непременно ada3, използвайте правилното име на възел.

Сега можете да проверите устройствата във вашия басейн, както е показано по-долу:

Все още може да се притеснявате, че данните в енергонезависимата памет ще се провалят, ако SSD откаже. В този случай можете да използвате множество SSD, които се отразяват взаимно или във всяка RAIDZ конфигурация.

$ zpool добави огледало за дневник на резервоара ada3 ada4

За повечето случаи на употреба, малките 16GB до 64GB наистина бързо и трайно флаш памет са най-подходящите кандидати за SLOG устройство.


Кеш за адаптивна подмяна (ARC) и L2ARC

Когато се опитваме да кешираме операциите за четене, нашата цел се променя. Вместо да се уверим, че получаваме добри резултати, както и надеждни транзакции, сега мотивът на ZFS преминава към прогнозиране на бъдещето. Това означава кеширане на информацията, която дадено приложение ще изисква в близко бъдеще, като същевременно се изхвърлят тези, които ще са необходими най-напред във времето.

За да направите това, част от основната памет се използва за кеширане на данни, които или са били използвани наскоро, или данните са достъпни най-често. Оттам идва и терминът Adaptive Replacement Cache (ARC). В допълнение към традиционното кеширане на четене, където се кешират само най-скоро използваните обекти, ARC също така обръща внимание на това колко често се осъществява достъп до данните.

L2ARC или ARC от ниво 2 е разширение на ARC. Ако имате специално устройство за съхранение, което да действа като вашият L2ARC, то ще съхранява всички данни, които не са твърде важни, за да останат в ARC, но в същото време тези данни са достатъчно полезни, за да заслужат място в по-бавното от паметта Устройство NVMe.

За да добавите устройство като L2ARC към вашия ZFS пул, изпълнете командата:

$ zpool добавете кеш за резервоар ada3

Където резервоар е името на вашия басейн и ada3 е името на възела на устройството за вашето L2ARC хранилище.


Обобщение

Накратко, операционната система често буферира операции за запис в основната памет, ако файловете се отварят в асинхронен режим. Това не трябва да се бърка с действителния кеш за запис на ZFS, ZIL.

По подразбиране ZIL е част от енергонезависимото съхранение на пула, където данните отиват за временно съхранение, преди да бъдат разпространени правилно във всички VDEV. Ако използвате SSD като специално ZIL устройство, то е известно като SLOG. Както всеки VDEV, SLOG може да бъде в огледална или raidz конфигурация.

Кешът за четене, съхраняван в основната памет, е известен като ARC. Въпреки това, поради ограничения размер на RAM, винаги можете да добавите SSD като L2ARC, където неща, които не могат да се поберат в RAM, се кешират.

Добавете жестове на мишката към Windows 10, като използвате тези безплатни инструменти
През последните години компютрите и операционните системи значително се развиха. Имаше време, когато потребителите трябваше да използват команди за на...
Контролирайте и управлявайте движението на мишката между множество монитори в Windows 10
Двоен дисплей на мишката ви позволява да контролирате и конфигурирате движението на мишката между множество монитори, като забавя движенията му близо ...
WinMouse ви позволява да персонализирате и подобрите движението на показалеца на мишката на компютър с Windows
Ако искате да подобрите функциите по подразбиране на показалеца на мишката, използвайте безплатна програма WinMouse. Той добавя още функции, за да ви ...