ZFS

ZFS-vahemälu konfigureerimine suure kiirusega IO jaoks

ZFS-vahemälu konfigureerimine suure kiirusega IO jaoks

Vahemälu konfigureerimine oma ZFS-i basseinis

Kui olete meie eelmised postitused ZFS-i põhitõdesid läbinud, teate juba praegu, et see on kindel failisüsteem. See teeb kontrollsummad igale kettale kirjutatava andmeplokile ja olulised metaandmed, nagu kontrollsummad ise, on kirjutatud mitmesse erinevasse kohta. ZFS võib teie andmed kaotada, kuid on garanteeritud, et see ei anna teile kunagi valesid andmeid, nagu oleksid need õiged.

Suurem osa ZFS-i kogumi koondamisest tuleneb aluseks olevatest VDEV-idest. Sama kehtib ka salvestusbasseini jõudluse kohta. Nii lugemis- kui ka kirjutamisvõime võib tohutult paraneda, kui lisada kiireid SSD-sid või NVMe-seadmeid. Kui olete kasutanud hübriidplaate, kus SSD ja pöörlev ketas on ühendatud ühe riistvarana, siis teate, kui halvad on riistvarataseme vahemällu salvestamise mehhanismid. ZFS pole midagi sellist erinevate tegurite tõttu, mida me siin uurime.

Basseinis saab kasutada kahte erinevat vahemälu:

  1. ZFS Intent Log ehk ZIL KIRJUTAMISE puhverdamiseks.
  2. ARC ja L2ARC, mis on mõeldud READ-toiminguteks.

Sünkroonsed vs asünkroonsed kirjutised

Nagu enamik teisi failisüsteeme, üritab ZFS säilitada mälus olevate kirjutamisoperatsioonide puhvrit ja kirjutada selle seejärel kettadele, selle asemel, et kirjutada otse ketastele. Seda tuntakse kui asünkroonne kirjutada ja see annab korraliku jõudluse kasvu rakenduste jaoks, mis on tõrketaluv või kus andmete kadumine ei tee palju kahju. Operatsioonisüsteem lihtsalt salvestab andmed mällu ja ütleb kirjutamist taotlenud rakendusele, et kirjutamine on lõpule viidud. See on paljude operatsioonisüsteemide vaikekäitumine isegi ZFS-i käitamisel.

Fakt on aga see, et süsteemi rikke või voolukatkestuse korral lähevad kõik põhimälus olevad puhverdatud kirjad kaotsi. Nii et rakendused, mis soovivad jõudluse järjepidevust, saavad faile avada sünkroonne režiimis ja siis loetakse andmed kirjutatuks alles siis, kui need on kettal tegelikult olemas. Enamik andmebaase ja sellised rakendused nagu NFS toetuvad kogu aeg sünkroonsetele kirjutistele.

Võite määrata lipu: sünkroon = alati sünkroonseks muutmiseks kirjutatakse mis tahes andmekogumi vaikekäitumine.

$ zfs set sync = alati mypool / dataset1

Muidugi võite soovida head jõudlust, hoolimata sellest, kas failid on sünkroonrežiimis või mitte. Seal tuleb ZIL pildile.


ZFS Intent Log (ZIL) ja SLOG seadmed

ZFS-i kavatsuste logi viitab teie salvestusruumi osale, mida ZFS kasutab uute või muudetud andmete esmalt salvestamiseks, enne kui levitatakse need kogu peamises hoiuruumis, eemaldades kõik VDEV-id.

Vaikimisi on basseinist alati välja tõmmatud väike kogus salvestusruumi, et see toimiks nagu ZIL, isegi kui kasutate oma salvestamiseks vaid hunnikut pöörlevaid kettaid. Kuid saate paremini teha, kui teie käsutuses on väike NVMe või muud tüüpi SSD.

Väikest ja kiiret salvestusruumi saab kasutada eraldi kavatsuste logina (või SLOG-is), kus äsja saabunud andmed salvestatakse ajutiselt enne basseini suurimasse põhimällu viimist. Slog-seadme lisamiseks käivitage käsk:

$ zpool lisage paagilogi ada3

Kus paak on teie basseini nimi, logi on märksõna, mis käsib ZFS-il seadme töödelda ada3 SLOG-seadmena. Teie SSD seadme sõlm ei pruugi tingimata olla ada3, kasutage õiget sõlme nime.

Nüüd saate kontrollida oma basseini seadmeid, nagu allpool näidatud:

Teil võib endiselt olla mure, et püsimälus olevad andmed ebaõnnestuvad, kui SSD ebaõnnestub. Sellisel juhul võite kasutada mitut üksteise peegeldavat SSD-d või mis tahes RAIDZ-konfiguratsioonis.

$ zpool lisage paagi logipeegel ada3 ada4

Enamikel juhtudel on SLOG-seadme jaoks kõige sobivamad väikesed 16–64 GB tõesti kiire ja vastupidav välkmälu.


Adaptive Replacement Cache (ARC) ja L2ARC

Kui proovite lugeda toiminguid vahemällu, muutub meie eesmärk. Selle asemel, et tagada head tulemused ja usaldusväärsed tehingud, läheb ZFSi motiiv tuleviku ennustamisele. See tähendab, et vahemällu salvestatakse teave, mida rakendus vajaks lähitulevikus, ja samal ajal visatakse kõrvale teave, mida on vaja aja jooksul kõige kaugemale.

Selleks kasutatakse põhimälu osa andmete vahemällu salvestamiseks, mida kas hiljuti kasutati või andmetele juurde minnakse kõige sagedamini. Sealt tuleb ka termin Adaptive Replacement Cache (ARC). Lisaks traditsioonilisele lugemise vahemällu, kus vahemällu salvestatakse ainult kõige viimati kasutatud objektid, pöörab ARC tähelepanu ka sellele, kui sageli andmetele on juurde pääsenud.

L2ARC ehk 2. taseme ARC on ARC-i laiendus. Kui teil on spetsiaalne salvestusseade, mis toimiks teie L2ARC-na, salvestab see kõik andmed, mis pole ARC-is püsimiseks liiga olulised, kuid samal ajal on need andmed piisavalt kasulikud, et teenida kohta mälust aeglasemalt NVMe seade.

Seadme lisamiseks L2ARC-ks oma ZFS-i basseini käivitage käsk:

$ zpool lisage paagi vahemälu ada3

Kus paak on teie basseini nimi ja ada3 on teie L2ARC salvestusruumi seadme sõlme nimi.


Kokkuvõte

Pika loo lühendamiseks puhverdab operatsioonisüsteem kirjutamisoperatsioone sageli põhimällu, kui failid avatakse asünkroonses režiimis. Seda ei tohi segi ajada ZFS-i tegeliku kirjutamise vahemäluga ZIL.

ZIL on vaikimisi osa basseini püsimälust, kus andmed lähevad ajutiseks salvestamiseks enne nende nõuetekohast levitamist kõigis VDEV-ides. Kui kasutate SSD-d spetsiaalse ZIL-seadmena, on see tuntud kui SLOG. Nagu iga VDEV, võib ka SLOG olla peegli- või raidz-konfiguratsioonis.

Põhimällu salvestatud vahemälu on ARC. Kuid RAM-i piiratud suuruse tõttu saate alati lisada SSD kettale L2ARC, kus vahemällu jäävad asjad, mis ei mahu RAM-i.

League of Legendsi installimine Ubuntu 14-le.04
Kui olete League of Legends fänn, siis on see teile võimalus proovida League of Legendsit. Pange tähele, et LOL-i toetab PlayOnLinux, kui olete Linuxi...
Installige uusim OpenRA strateegiamäng Ubuntu Linuxi
OpenRA on tasuta / tasuta reaalajas strateegiamängumootor, mis loob uuesti Westwoodi varased mängud nagu klassikaline Command & Conquer: Red Alert. Ja...
Installige Linuxile uusim Dolphin Emulator for Gamecube & Wii
Dolphini emulaator võimaldab teil mängida valitud Gamecube & Wii mänge Linuxi personaalarvutites (PC). Vabalt saadaval oleva ja avatud lähtekoodiga m...