Cloudflare-ontwikkelaars werken aan patches om schijfversleuteling op Linux te versnellen

Cloudflare

De Cloudflare-ontwikkelaars hebben vrijgegeven informatie over het werk dat ze doen om de prestaties van de schijfversleuteling in de Linux-kernel te optimaliseren, waarvan ze vermelden dat ze deze hebben voorbereid patches voor de dm-crypt en Crypto API-subsystemen.

Hiermee, de synthetische test mocht de bandbreedte voor lezen en schrijven verdubbelen, evenals de latentie halveren. Bij het testen op echte machines werd de overhead van codering teruggebracht tot bijna het niveau dat wordt waargenomen bij het werken met een schijf zonder gebruik van gegevenscodering.

Interesse in het verbeteren van codering gegevens op schijf het is omdat Cloudflare dm-crypt gebruikt om gegevens te coderen op stations die worden gebruikt om inhoud op een CDN te cachen. Dm-crypt werkt op blokapparaatniveau en versleutelt I / O-verzoeken om leesverzoeken te schrijven en te ontsleutelen, en fungeert als een laag tussen het blokapparaat en het bestandssysteemstuurprogramma.

Om prestaties te evalueren dm-crypt met behulp van het flexibele I / O-testpakket, sHij heeft de snelheid gemeten van het werken met versleutelde partities en niet versleuteld op een RAM-schijf in RAM om fluctuaties in schijfprestaties te elimineren.

Voor niet-versleutelde partities bleven de lees- en schrijfprestaties op 1126 MB / s, maar toen versleuteling was ingeschakeld, daalde de snelheid 7 keer tot 147 MB ​​/ s.

In het begin het gebruik van inefficiënte algoritmen werd vermoed in het cryptografische systeem van de kernel. Maar de tests gebruikten het snellere aes-xts-algoritme met 256 coderingssleutels, waarvan de prestaties bij het uitvoeren van de "cryptsetup-benchmark" meer dan twee keer hoger zijn dan het resultaat dat werd verkregen bij het testen van de RAM-schijf.

dm-crypte

experimenten met dm-crypt-vlaggen het aanpassen van de prestaties werkte niet: Toen de vlag –perf-same_cpu_crypt werd gebruikt, nam de prestatie zelfs af tot 136 MB / s, en wanneer de vlag –perf-submit_from_cpu_cpus werd gebruikt, werd deze slechts verhoogd tot 166 MB / s.

Een diepere analyse van de logica van werk toonde aan dat dm-crypt niet zo eenvoudig is zoals het lijkt.

Wanneer een schrijfverzoek wordt ontvangen van de FS-controller, verwerkt dm-crypt het niet onmiddellijk, maar plaatst het in plaats daarvan in de "kcryptd" -wachtrij, die niet onmiddellijk wordt begrepen, maar wanneer er een goede tijd is. Vanuit de wachtrij wordt het verzoek voor codering naar de Linux Crypto API gestuurd.

Bij het eerst lezen, dm-crypt-wachtrijen "kcryptd_io" een verzoek om gegevens van het apparaat te ontvangen. Na na verloop van tijd zijn de gegevens beschikbaar en ze staan ​​in de wachtrij "kcryptd" voor ontsleuteling.

Kcryptd stuurt een verzoek naar de Linux Encryption API, die de informatie asynchroon ontsleutelt. Verzoeken gaan niet altijd door alle wachtrijen, maar in het ergste geval schrijfverzoek wordt tot 4 keer op wachtrijen ingesteld en het leesverzoek tot 3 keer. Elke treffer in de wachtrij leidt tot vertragingen, die de belangrijkste reden zijn voor een aanzienlijke afname van de prestaties van dm-crypt.

Gezien het feit dat moderne schijven sneller en slimmer zijn geworden, is het systeem voor de toewijzing van bronnen in de Linux-kernel herzien en sommige subsystemen zijn opnieuw ontworpenHebben Cloudflare-technici een nieuwe bedrijfsmodus toegevoegd aan dm-crypt, waardoor het gebruik van extra wachtrijen en asynchrone oproepen overbodig is geworden.

De modus wordt mogelijk gemaakt door een aparte "force_inline" -vlag en neemt dm-crypt in de vorm van een eenvoudige proxy die inkomende verzoeken versleutelt en ontsleutelt. De interactie met de Crypto API is geoptimaliseerd door een expliciete keuze aan versleutelingsalgoritmen Ze werken in synchrone modus en gebruiken geen aanvraagwachtrijen.

Bij het testen van de belasting op echte servers vertoonde de nieuwe implementatie prestaties die zeer dicht bij de configuratie lagen die zonder codering werkt, en de opname van codering op servers met Cloudflare-cache had geen invloed op de reactiesnelheid.

In de toekomstCloudflare is van plan om de voorbereide patches over te brengen naar de hoofd Linux-kernel, maar daarvoor moeten ze worden aangepast, omdat ze zijn geoptimaliseerd voor een bepaalde belasting en niet alle toepassingsgebieden bestrijken.

bron: https://blog.cloudflare.com


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.