ZFS

Konfiguriranje ZFS predmemorije za IO velike brzine

Konfiguriranje ZFS predmemorije za IO velike brzine

Konfiguriranje predmemorije na vašem ZFS spremištu

Ako ste prošli naše prethodne postove o osnovama ZFS-a, do sada znate da je ovo robustan datotečni sustav. Izvodi kontrolne sume na svakom bloku podataka koji se zapisuju na disk, a važni metapodaci, poput samih kontrolnih suma, zapisuju se na više različitih mjesta. ZFS može izgubiti vaše podatke, ali zajamčeno vam nikada neće vratiti pogrešne podatke, kao da su ispravni.

Većina suvišnosti za ZFS spremište dolazi iz temeljnih VDEV-ova. Isto vrijedi i za performanse spremišta. I izvedba čitanja i pisanja može se znatno poboljšati dodavanjem SSD-ova velike brzine ili NVMe uređaja. Ako ste koristili hibridne diskove gdje su SSD i okretan disk u paketu kao jedan hardverski komad, tada znate koliko su loši mehanizmi za predmemoriranje hardverske razine. ZFS nije ništa slično zbog različitih čimbenika koje ćemo ovdje istražiti.

Postoje dvije različite predmemorije koje bazen može koristiti:

  1. ZFS Intent Log, ili ZIL, za spremanje WRITE operacija.
  2. ARC i L2ARC koji su namijenjeni READ operacijama.

Sinkroni vs asinhroni zapisi

ZFS, kao i većina drugih datotečnih sustava, pokušava održavati međuspremnik operacija upisivanja u memoriju, a zatim ga zapisati na diskove, umjesto da ga izravno zapiše na diskove. Ovo je poznato kao asinkroni write i daje pristojne dobitke u performansama za aplikacije koje su otporne na kvarove ili kod kojih gubitak podataka ne donosi veliku štetu. OS jednostavno pohranjuje podatke u memoriju i govori aplikaciji koja je zatražila pisanje da je pisanje dovršeno. Ovo je zadano ponašanje mnogih operativnih sustava, čak i kada se izvodi ZFS.

Međutim, ostaje činjenica da se u slučaju kvara sustava ili gubitka napajanja gube svi međuspremnici u glavnu memoriju. Tako aplikacije koje žele dosljednost u izvedbi mogu otvoriti datoteke u sinkroni način i tada se smatra da su podaci zapisani tek kad su zapravo na disku. Većina baza podataka i aplikacija poput NFS-a oslanjaju se na sinkrono upisivanje cijelo vrijeme.

Možete postaviti zastavicu: sinkronizacija = uvijek radi sinkronog upisivanja zadanog ponašanja za bilo koji zadani skup podataka.

$ zfs set sync = uvijek mypool / set podataka1

Naravno, možda ćete željeti imati dobre performanse bez obzira jesu li datoteke u sinkronom načinu rada. Tu ZIL dolazi na scenu.


ZFS Intent Log (ZIL) i SLOG uređaji

ZFS Intent Log odnosi se na dio vašeg spremišta za pohranu koji ZFS prvo koristi za pohranu novih ili modificiranih podataka, prije nego što ih raširi po glavnom spremištu, uklanjajući se kroz sve VDEV-ove.

Prema zadanim postavkama iz bazena se uvijek izvadi mala količina pohrane koja djeluje poput ZIL-a, čak i kada za pohranu koristite samo hrpu okretajućih diskova. Međutim, možete to učiniti bolje ako imate na raspolaganju mali NVMe ili bilo koju drugu vrstu SSD-a.

Mala i brza pohrana može se koristiti kao zasebni dnevnik namjera (ili SLOG), gdje bi se novopridošli podaci privremeno pohranili prije nego što se isprazne u veću glavnu pohranu bazena. Da biste dodali slog uređaj, pokrenite naredbu:

$ zpool dodaj zapisnik spremnika ada3

Gdje tenk je naziv vašeg bazena, zapisnik je ključna riječ koja govori ZFS-u da tretira uređaj ada3 kao SLOG uređaj. Čvor uređaja vašeg SSD-a ne mora nužno biti ada3, koristite ispravno ime čvora.

Sada možete provjeriti uređaje u svom bazenu kao što je prikazano dolje:

Još uvijek se možete brinuti da podaci u trajnoj memoriji neće uspjeti ako SSD ne uspije. U tom slučaju možete koristiti više SSD-ova koji se međusobno zrcale ili u bilo kojoj RAIDZ konfiguraciji.

$ zpool dodaj zrcalo dnevnika spremnika ada3 ada4

Za većinu slučajeva korištenja, malo brze i izdržljive flash memorije od 16 GB do 64 GB najprikladniji su kandidati za SLOG uređaj.


Prilagodljiva zamjenska predmemorija (ARC) i L2ARC

Pri pokušaju predmemoriranja operacija čitanja, naš se cilj mijenja. Umjesto da osiguramo dobru izvedbu, kao i pouzdane transakcije, sada se motiv ZFS-a prebacuje na predviđanje budućnosti. To znači, pohranjivanje podataka koje bi neka aplikacija trebala u bliskoj budućnosti, istovremeno odbacivanje onih koji će biti potrebni najdalje u vremenu.

Da bi se to učinilo, dio glavne memorije koristi se za predmemoriranje podataka koji su nedavno korišteni ili se podacima pristupa najčešće. Otuda dolazi pojam Adaptive Replacement Cache (ARC). Uz tradicionalno predmemoriranje čitanja, gdje se predmemoriraju samo nedavno korišteni objekti, ARC također obraća pažnju na to koliko često se pristupilo podacima.

L2ARC ili ARC razine 2 produžetak je ARC-a. Ako imate namjenski uređaj za pohranu koji će djelovati kao vaš L2ARC, on će pohraniti sve podatke koji nisu previše važni da biste ostali u ARC-u, ali istodobno su ti podaci dovoljno korisni da zasluže mjesto u sporiji memoriji od memorije NVMe uređaj.

Da biste dodali uređaj kao L2ARC u svoj ZFS spremište, pokrenite naredbu:

$ zpool dodaj spremnik spremnika ada3

Gdje tenk je ime vašeg bazena i ada3 je naziv čvora uređaja za vašu pohranu L2ARC.


Sažetak

Da skratim, operativni sustav često sprema operacije pisanja u glavnu memoriju ako su datoteke otvorene u asinkronom načinu. To se ne smije zamijeniti sa ZFS-ovom stvarnom predmemorijom pisanja, ZIL.

ZIL je prema zadanim postavkama dio trajnog spremišta spremišta gdje podaci odlaze na privremeno spremanje prije nego što se pravilno prošire po svim VDEV-ovima. Ako SSD koristite kao namjenski ZIL uređaj, poznat je pod nazivom SLOG. Kao i svaki VDEV, SLOG može biti u zrcalnoj ili raidz konfiguraciji.

Predmemorija za čitanje, pohranjena u glavnoj memoriji, poznata je kao ARC. Međutim, zbog ograničene veličine RAM-a, uvijek možete dodati SSD kao L2ARC, gdje se stvari koje ne mogu stati u RAM spremaju u predmemoriju.

Instalirajte najnoviji Dolphin Emulator za Gamecube i Wii na Linux
Dolphin Emulator omogućuje vam igranje odabranih Gamecube i Wii igara na Linux osobnim računalima (PC). Dolphin Emulator je slobodno dostupan i emula...
Kako koristiti GameConqueror Cheat Engine u Linuxu
Članak pokriva vodič o korištenju GameConqueror varalice u Linuxu. Mnogi korisnici koji igraju igre na sustavu Windows često koriste aplikaciju "Cheat...
Najbolji emulatori igraće konzole za Linux
Ovaj će članak navesti popularni softver za emulaciju igraće konzole dostupan za Linux. Emulacija je sloj kompatibilnosti softvera koji oponaša hardve...