A lott ta 'RAM ħielsa, NVMe Intel P4500 u kollox huwa estremament bil-mod - l-istorja taż-żieda bla suċċess ta' partizzjoni ta 'skambju

F'dan l-artikolu, se nitkellem dwar sitwazzjoni li seħħet reċentement ma 'wieħed mis-servers fis-sħaba VPS tagħna, li ħallietni stumped għal diversi sigħat. Ilni nikkonfigura u nissolvi l-problemi għal servers Linux għal madwar 15-il sena, iżda dan il-każ ma jidħol xejn fil-prattika tiegħi - għamilt diversi suppożizzjonijiet foloz u ddisprat ftit qabel ma stajt niddetermina b'mod korrett il-kawża tal-problema u ssolviha .

Preambolu

Aħna noperaw sħaba ta 'daqs medju, li nibnu fuq servers standard bil-konfigurazzjoni li ġejja - 32 core, 256 GB RAM u 4500TB PCI-E Intel P4 NVMe drive. Aħna nħobbu ħafna din il-konfigurazzjoni għaliex telimina l-ħtieġa li tinkwieta dwar l-overhead IO billi tipprovdi r-restrizzjoni korretta fil-livell tat-tip ta 'istanza VM. Minħabba NVMe Intel P4500 għandu prestazzjoni impressjonanti, nistgħu simultanjament nipprovdu kemm forniment sħiħ ta 'IOPS lill-magni kif ukoll ħażna ta' backup għal server backup b'żero IOWAIT.

Aħna wieħed minn dawk li jemmnu qodma li ma jużawx SDN iperkonverġenti u affarijiet oħra stylish, tal-moda, taż-żgħażagħ biex jaħżnu volumi VM, u nemmnu li aktar ma tkun sempliċi s-sistema, iktar ikun faċli biex issolviha l-problemi fil-kundizzjonijiet ta '"il-guru prinċipali marret lejn il-muntanji.” Bħala riżultat, aħna naħżnu volumi VM f'format QCOW2 f'XFS jew EXT4, li huwa skjerat fuq LVM2.

Aħna wkoll sfurzati nużaw QCOW2 mill-prodott li nużaw għall-orkestrazzjoni - Apache CloudStack.

Biex twettaq backup, nieħdu immaġni sħiħa tal-volum bħala snapshot LVM2 (iva, nafu li snapshots LVM2 huma bil-mod, iżda l-Intel P4500 jgħinna hawn ukoll). Aħna nagħmlu lvmcreate -s .. u bl-għajnuna dd aħna nibagħtu l-kopja ta 'backup lil server remot b'ħażna ZFS. Hawnhekk għadna kemmxejn progressivi - wara kollox, ZFS jista 'jaħżen id-dejta f'forma kkompressata, u nistgħu nirrestawrawha malajr billi tuża DD jew tikseb volumi VM individwali bl-użu mount -o loop ....

Tista', ovvjament, tneħħi mhux l-immaġni sħiħa tal-volum LVM2, iżda timmonta s-sistema tal-fajls fil- RO u kopja l-immaġini QCOW2 infushom, madankollu, konna ffaċċjati bil-fatt li XFS sar ħażin minn dan, u mhux immedjatament, iżda b'mod imprevedibbli. Aħna verament ma nħobbx meta l-hypervisor jospita "jwaħħal" f'daqqa fi tmiem il-ġimgħa, bil-lejl jew fil-vaganzi minħabba żbalji li mhumiex ċari meta se jseħħu. Għalhekk, għal XFS ma nużawx immuntar ta 'snapshot in RO biex jiġu estratti volumi, aħna sempliċiment nikkopja l-volum kollu LVM2.

Il-veloċità tal-backup għas-server tal-backup hija ddeterminata fil-każ tagħna mill-prestazzjoni tas-server tal-backup, li hija madwar 600-800 MB/s għal data inkompressibbli; limitatur ieħor huwa l-kanal 10Gbit/s li miegħu huwa konness is-server tal-backup lill-cluster.

F'dan il-każ, kopji ta' backup ta' 8 servers ta' hypervisor jittellgħu simultanjament fuq server backup wieħed. Għalhekk, is-subsistemi tad-disk u tan-netwerk tas-server tal-backup, li huma aktar bil-mod, ma jippermettux li s-subsistemi tad-disk tal-hosts tal-hypervisor jgħabbu żżejjed, peress li sempliċement mhumiex kapaċi jipproċessaw, ngħidu aħna, 8 GB/sec, li l-hosts tal-hypervisor jistgħu faċilment jipproduċi.

Il-proċess ta 'ikkupjar ta' hawn fuq huwa importanti ħafna għall-istorja ulterjuri, inklużi d-dettalji - bl-użu ta 'sewqan veloċi Intel P4500, bl-użu ta' NFS u, probabbilment, bl-użu ta 'ZFS.

Storja ta 'backup

Fuq kull node tal-hypervisor għandna partizzjoni żgħira SWAP ta’ 8 GB fid-daqs, u aħna "nroddu" n-nodu tal-hypervisor innifsu billi nużaw DD mill-immaġni ta' referenza. Għall-volum tas-sistema fuq is-servers, nużaw 2xSATA SSD RAID1 jew 2xSAS HDD RAID1 fuq kontrollur tal-ħardwer LSI jew HP. B'mod ġenerali, ma jimpurtana xejn x'hemm ġewwa, peress li l-volum tas-sistema tagħna jopera fil-modalità "kważi readonly", ħlief għal SWAP. U peress li għandna ħafna RAM fuq is-server u huwa 30-40% ħieles, ma naħsbux dwar SWAP.

Proċess ta 'backup. Dan il-kompitu jidher xi ħaġa bħal din:

#!/bin/bash

mkdir -p /mnt/backups/volumes

DIR=/mnt/images-snap
VOL=images/volume
DATE=$(date "+%d")
HOSTNAME=$(hostname)

lvcreate -s -n $VOL-snap -l100%FREE $VOL
ionice -c3 dd iflag=direct if=/dev/$VOL-snap bs=1M of=/mnt/backups/volumes/$HOSTNAME-$DATE.raw
lvremove -f $VOL-snap

Innota l- ionice -c3, fil-fatt, din il-ħaġa hija kompletament inutli għall-apparati NVMe, peress li l-Iskedatur IO għalihom huwa stabbilit bħala:

cat /sys/block/nvme0n1/queue/scheduler
[none] 

Madankollu, għandna numru ta 'nodi legacy b'RAIDs SSD konvenzjonali, għalihom dan huwa rilevanti, għalhekk qed jimxu AS IS. B'mod ġenerali, din hija biss biċċa kodiċi interessanti li tispjega l-inutilità ionice f'każ ta' konfigurazzjoni bħal din.

Oqgħod attent għall-bandiera iflag=direct għall- DD. Aħna nużaw IO dirett li jinjora l-cache tal-buffer biex nevitaw sostituzzjoni bla bżonn tal-buffers tal-IO meta naqraw. Madankollu, oflag=direct aħna ma għaliex iltqajna ma 'kwistjonijiet ta' prestazzjoni ZFS meta tużah.

Ilna nużaw din l-iskema b’suċċess għal diversi snin mingħajr problemi.

U mbagħad beda... Skoprejna li wieħed min-nodi ma kienx għadu sostnut, u dak ta 'qabel kien qed jaħdem b'IOWAIT mostruż ta' 50%. Meta ppruvajna nifhmu għaliex l-ikkupjar ma jseħħx, iltqajna mal-fenomenu li ġej:

Volume group "images" not found

Bdejna naħsbu dwar "it-tmiem wasal għall-Intel P4500," madankollu, qabel itfi s-server biex jissostitwixxi d-drajv, xorta kien meħtieġ li twettaq backup. Irranġajna LVM2 billi rrestawrajna l-metadejta minn backup LVM2:

vgcfgrestore images

Nedejna backup u rajna din il-pittura taż-żejt:
A lott ta 'RAM ħielsa, NVMe Intel P4500 u kollox huwa estremament bil-mod - l-istorja taż-żieda bla suċċess ta' partizzjoni ta 'skambju

Għal darb'oħra konna imdejjaq ħafna - kien ċar li ma nistgħux ngħixu hekk, peress li l-VPSs kollha kienu jbatu, li jfisser li aħna wkoll inbatu. Dak li ġara huwa kompletament mhux ċar - iostat wera IOPS pitiful u l-ogħla IOWAIT. Ma kien hemm l-ebda idea għajr "ejja nibdel NVMe", iżda ħarsa ħarsa eżatt fil-ħin.

Analiżi tas-sitwazzjoni pass pass

Rivista storika. Ftit jiem qabel, fuq dan is-server kien meħtieġ li jinħoloq VPS kbir b'128 GB RAM. Deher li kien hemm biżżejjed memorja, iżda biex inkunu fuq in-naħa sigura, allokajna 32 GB oħra għall-partizzjoni ta 'skambju. Il-VPS inħoloq, temm b'suċċess il-kompitu tiegħu u l-inċident intesa, iżda l-partizzjoni SWAP baqgħet.

Karatteristiċi tal-Konfigurazzjoni. Għas-servers kollha tas-sħab il-parametru vm.swappiness kien issettjat għal default 60. U SWAP inħoloq fuq SAS HDD RAID1.

X'ġara (skont l-edituri). Meta tagħmel back up DD ipproduċa ħafna dejta tal-kitba, li tqiegħdet fil-buffers tar-RAM qabel ma tikteb lill-NFS. Il-qalba tas-sistema, iggwidata mill-politika swappiness, kien qed imexxi ħafna paġni ta 'memorja VPS lejn iż-żona ta' tpartit, li kienet tinsab fuq volum HDD RAID1 bil-mod. Dan wassal biex IOWAIT jikber b'mod qawwi ħafna, iżda mhux minħabba IO NVMe, iżda minħabba IO HDD RAID1.

Kif ġiet solvuta l-problema. Il-partizzjoni ta 'skambju ta' 32GB kienet diżattivata. Dan ħa 16-il siegħa; tista' taqra separatament dwar kif u għaliex SWAP jintefa daqshekk bil-mod. Is-settings ġew mibdula swappiness għal valur ugwali għal 5 kollha fuq is-sħaba.

Kif seta’ dan ma jseħħx?. L-ewwelnett, jekk SWAP kien fuq apparat SSD RAID jew NVMe, u t-tieni, jekk ma kienx hemm apparat NVMe, iżda apparat aktar bil-mod li ma jipproduċix tali volum ta 'data - ironikament, il-problema seħħet minħabba li dak NVMe huwa mgħaġġel wisq.

Wara dan, kollox beda jaħdem bħal qabel - b'żero IOWAIT.

Sors: www.habr.com

Żid kumment