Linux LVM2 -testausta muistitikuilla

Viikonloppuna hackasin hieman Linuxin LVM2:n kanssa. LVM2 tarkoittaa ”Logical Volume Management version 2” eli loogisia taltioita. LVM2 on korvaamaton työkalu hallitsemaan ns. pinottuja lohkolaitteita. LVM2 mahdollistaa näköisvedokset (snapshot), datan peilauksen (RAID1-10), pysyvän levyvälimuistin ja kryptauksen. Halusin kokeilla, olisiko järkevää käyttää USB3-muistitikkua hitaan kovalevyn pysyvänä välimuistina (lvmcache). Syy tähän kokeiluun oli se, että sain haltuuni käsittämättömän halvat kappaleet SanDisk Ultra 32GB -muistitikkuja. Molemmat maksoivat yhteensä vain 20 euroa. Kumpikin tikku lukee luvatut huimat +100 megatavua sekunnissa, ja tarjous alkoi vaikuttaa liian hyvältä, kunnes testasin tikkujen kirjoitusnopeuden: surkeat 5–30 Mt/s.

En saanut kirjoitusnopeutta paranemaan millään keinolla. Lisäksi huomasin, että tikku on ikävästi FAT32-misoptimoitu eli tikun alussa on noin 2–32 Mt hyvin nopeaa flashmuistia ja loput tikusta on hitaampaa kirjoittaa. Satunnaisluku- ja -kirjoitusnopeudet olivat myös huonot. SanDiskin tikku löi myös heti hanskat pöytään, jos tikun meni osioimaan uudelleen fdiskillä. Kirjoitusnopeus putosi alle puoleen alkuperäisestä, kun tein näin.  Lisäksi mikäli ensimmäisellä osiolla ei ollut oikeaa FAT32-tiedostojärjestelmää, nopeus kärsi myös hieman.

Olen ottanut tavaksi testata kaikki USB-muistitikut ja SD-muistikortit Linuxilla flashbench- sekä dd-ohjelmalla. Flashbench auttaa löytämään kokeellisesti flashmuistien erase-block- koon sekä sen, kuinka monta Allocation Groupia voi olla auki yhtaikaa. Tarkemmin asiasta löytyy osoitteesta https://wiki.linaro.org/WorkingGroups/KernelArchived/Projects/FlashCardSurvey
Käytännössä flashmuistit pystyvät oikeasti kirjoittamaan nopeasti vain erase-block-kokoja, mikä on kahdesta kahdeksaan megatavun luokkaa.

Varsinainen LVM2-cachen luonti on varsin helppo operaatio, kun tiedostojärjestelmä on jo valmiina LVM2:n päällä. Koska USB-tikkuja on kaksi, ajattelin kokeilla myös LVM2-raid0- tilaan tällä kertaa, jotta välimuistin nopeus paranisi hieman.
USB3-RAID0 luodaan seuraavasti. Ensin tavalliset USB-tikkujen osiot alustetaan LVM2- fyysisiksi taltioiksi:

# pvcreate alustaa osion LVM2 fyysiseksi taltioksi ja tuhoaa kaiken datan osiolta.
pvcreate /dev/sde1 /dev/sdf1
# vgextend lisää fys-taltiot voluumiryhmän ’vghyper’ nippuun.
vgextend vghyper /dev/sde1 /dev/sdf1

Ole siis erittäin tarkkana, mitä annat pvcreatelle argumentiksi. Voit tarkistaa, että kirjoitat oikean lohkolaitteen lsblk-komennolla.

lvcreate on laaja komento joka luo loogisia taltioita. –type määrittää, mitä joukkoa LVM2:n () toiminoista käytetään: tässä tapauksessa raid0. Ensimmäiseksi luodaan pieni raid0 usb3CacheMeta -taltio ja toinen suurempi usb3Cache alla olevilla komennoilla. -stripesize-optio on hyvin tärkeä: 2 M:n blokki koko saatiin testaamalla flashbenchilla sekä muutamalla kokeiluyrityksellä. Eli kun raid0-pakkaan kirjoitetaan tai luetaan, vaihdetaan levyä 2 Mt:n välein.

lvcreate –-type raid0 –-stripes 2 –-stripesize 2M -L32M -n usb3CacheMeta vghyper /dev/sde1 /dev/sdf1
# lopuksi varsinainen radi0 cache-data ’usb3Cache’ taltio:
lvcreate –-type raid0 –-stripes 2 –-stripesize 2M -L8G -n usb3Cache vghyper /dev/sde1 /dev/sdf1

Tässä vaiheessa on hyvä testata dd-ohjelmalla usb3-raid0 /dev/mapper/vghyper-usb3Cache-taltion nopeutta, että kaikki toimii OK.

dd if=/dev/zero of=/dev/mapper/vghyper-usb3Cache bs=4M status=progress

dd:n antoi noin +35 Mt/s kirjoitusnopeudeksi, mikä tarkoittaa että USB3-RAID0 toimii. Vaihtamalla if=/dev/mapper/vghyper-usbCache ja of=/dev/null lukunopeus oli noin +200Mt/s luokkaa.

Varsinainen pysyvän levyvälimuistin toteuttaminen on vain kaksi komentoa:

lvconvert –-type cache-pool –poolmetadata vghyper/usb3CacheMeta vghyper/usb3Cache
lvconvert –-type cache –-cachepool vghyper/usb3Cache vghyper/ArchDataTwo

Ensimmäinen komento luo itse LVM2-cachen ja toinen linkittää usb3Cachen ArchDataTwo taltioon. Ihmeellisintä tässä on se, että Linuxin LVM2 sallii vghyper/ArchDataTwo-taltion olevan käytössä, kun kyseiset komennot ajetaan – ei tarvitse irrottaa taltioita tai käynnistää uudelleen konetta.

LVM2-levyvälimuistin liittäminen taltioon ei näy heti. Kestää jonkun aikaa riippuen siitä, kuinka paljon taltiolta luetaan tai kirjoitetaan, että data päätyy LVM2-levyvälimuistiin. Lisäksi USB-tikkujen ongelmana on surkea kirjoitusnopeus, joten lvmcache saattaa jättää datan levylle tai välimuisti voi itse asiassa jopa hidastaa järjestelmää, kuten tässä tarinassa kävi. Huomasin lisäksi, että cachetetulle ArchDataTwo-osiolle kirjoitettaessa saattoi järjestelmä ajoittain pysähtyä kokonaan odottamaan USB3-tikkujen tokenemista.

Kokeilin myös nopeuttaa datan päätymistä välimuistiin komennolla:

dmsetup message /dev/mapper/vghyper-ArchDataTwo 0 migration_threshold 32

Oikeasti LVM2-levyvälimuisti luodaan sisäiselle SSD-levypakalle, joka on vähintään raid1-peilattu ja lvconvert-komennolle annetaan lisäparametri ”–cachemode writeback”
LVM2 + ArchLinux myös muistaa tämän kokoonpanon ja USB3+LVM2+RAID0+Cache+Data-laitepino kasataan seuraavan käynnistyksen yhteydessä automaattisesti.

Jarmo Tiitto

VIIMEISIN ARTIKKELI

PiKa Puhtaus – oppeja digimarkkinoinnista ja helpotusta arkeen 

25.03.2024 |

PiKa Puhtaus Oy on vuonna 2011 perustettu siivouspalveluja tarjoava yritys. PiKa Puhtaus tarjoaa koti-, toimitila- … LUE LISÄÄ…

Miten voin hyödyntää Microsoft Copilottia – työkaverina tekoäly

21.03.2024 |

Microsoft Copilot on tekoälyavustaja, joka voi auttaa säästämään aikaa ja tehostamaan työtä. Se on digitaalinen … LUE LISÄÄ…

Kadonneen datan arvet – Varmuuskopioinnilla vältyt katastrofilta

15.03.2024 |

Varmuuskopiotko tarpeelllisia? Turhaa ajan haaskausta, lisää kustannuksia, ohjelmien asennusta, vaivannäköä, ei meille kuitenkaan mitään satu … LUE LISÄÄ…

PK-yrityksen tuet ja rahoitus vuonna 2024

02.02.2024 |

Kaupallinen yhteistyö Sortter Oy Vuonna 2024 yrityksille on tarjolla useita eri rahoituskanavia ja tukimuotoja. Yritystuella … LUE LISÄÄ…

Sähköpostimarkkinointi ohjelma yrityksille – ActiveCampaign

28.12.2023 |

Yrityksille suunnatut sähköpostimarkkinointi ohjelmat tarjoavat monipuolisia työkaluja kampanjoiden suunnitteluun, toteuttamiseen ja seurantaan. Tässä kirjoituksessa tarkastelemme … LUE LISÄÄ…

Kesäharjoittelijana

07.07.2023 |

Hei vaan! Olen Laura, opiskelen Ingmanedu Kulttuurialan ammattiopistossa Media-alan ja kuvallisen ilmaisun perustutkintoa. Etsin itselleni … LUE LISÄÄ…

Verkkokaupan saavutettavuus mahdollistaa shoppailun kaikille asiakasryhmille

31.05.2023 |

Verkkokaupan saavutettavuus tarkoittaa, että verkkokauppa on suunniteltu niin, että kaikki käyttäjät voivat käyttää sitä yhtä … LUE LISÄÄ…

Saavutettavuus verkkoympäristössä

15.05.2023 |

Kaikilla on varmasti ollut hetkiä, jolloin on tarvinnut apuvälineitä tai muiden ihmisten apua pärjätäkseen päivittäisissä … LUE LISÄÄ…