Pupọ ti Ramu ọfẹ, NVMe Intel P4500 ati ohun gbogbo lọra pupọ - itan-akọọlẹ ti afikun aṣeyọri ti ipin swap kan

Ninu àpilẹkọ yii, Emi yoo sọrọ nipa ipo kan ti o ṣẹlẹ laipe pẹlu ọkan ninu awọn olupin ti o wa ninu awọsanma VPS wa, eyiti o fi mi silẹ fun awọn wakati pupọ. Mo ti n tunto ati laasigbotitusita awọn olupin Linux fun ọdun 15, ṣugbọn ọran yii ko baamu iṣe mi rara - Mo ṣe ọpọlọpọ awọn arosinu eke ati ni ireti diẹ ṣaaju ki Mo ni anfani lati pinnu deede idi ti iṣoro naa ki o yanju rẹ. .

Preamble

A n ṣiṣẹ awọsanma alabọde, eyiti a kọ sori awọn olupin boṣewa pẹlu iṣeto ni atẹle - awọn ohun kohun 32, Ramu 256 GB ati awakọ 4500TB PCI-E Intel P4 NVMe kan. A fẹran iṣeto ni gaan nitori pe o ṣe imukuro iwulo lati ṣe aibalẹ nipa IO lori oke nipa ipese ihamọ to pe ni ipele iru apẹẹrẹ VM. Nitori NVMe Intel P4500 ni iṣẹ ṣiṣe iwunilori, a le pese ni nigbakannaa ipese IOPS ni kikun si awọn ẹrọ ati ibi ipamọ afẹyinti si olupin afẹyinti pẹlu IOWAIT odo.

A jẹ ọkan ninu awọn onigbagbọ atijọ ti ko lo SDN hyperconverged ati awọn aṣa miiran, asiko, awọn ohun ọdọ lati tọju awọn iwọn VM, ni igbagbọ pe eto ti o rọrun, rọrun lati yanju rẹ ni awọn ipo ti “ guru akọkọ ti lọ. sí àwọn òkè.” Bi abajade, a tọju awọn iwọn VM ni ọna kika QCOW2 ni XFS tabi EXT4, eyiti a gbe lọ si oke LVM2.

A tun fi agbara mu lati lo QCOW2 nipasẹ ọja ti a lo fun orchestration - Apache CloudStack.

Lati ṣe afẹyinti, a ya aworan ni kikun ti iwọn didun bi aworan LVM2 (bẹẹni, a mọ pe awọn aworan aworan LVM2 lọra, ṣugbọn Intel P4500 ṣe iranlọwọ fun wa nibi paapaa). A ṣe lvmcreate -s .. ati pẹlu iranlọwọ dd a fi ẹda afẹyinti ranṣẹ si olupin latọna jijin pẹlu ibi ipamọ ZFS. Nibi a tun ni ilọsiwaju diẹ - lẹhinna, ZFS le tọju data ni fọọmu fisinuirindigbindigbin, ati pe a le mu pada ni iyara ni lilo DD tabi gba kọọkan VM iwọn didun lilo mount -o loop ....

O le, dajudaju, yọkuro kii ṣe aworan kikun ti iwọn didun LVM2, ṣugbọn gbe eto faili naa sinu RO ati daakọ awọn aworan QCOW2 funrararẹ, sibẹsibẹ, a dojuko pẹlu otitọ pe XFS di buburu lati eyi, kii ṣe lẹsẹkẹsẹ, ṣugbọn ni ọna airotẹlẹ. A ko fẹran rẹ gaan nigbati awọn agbalejo hypervisor “duro” lojiji ni awọn ipari ose, ni alẹ tabi ni awọn isinmi nitori awọn aṣiṣe ti ko han nigbati wọn yoo ṣẹlẹ. Nitorinaa, fun XFS a ko lo iṣagbesori aworan inu RO lati jade awọn iwọn didun, a nìkan da gbogbo LVM2 iwọn didun.

Iyara ti afẹyinti si olupin afẹyinti ni ipinnu ninu ọran wa nipasẹ iṣẹ ti olupin afẹyinti, eyiti o jẹ nipa 600-800 MB / s fun data ti ko ni idiyele; opin diẹ sii ni ikanni 10Gbit / s pẹlu eyiti a ti sopọ olupin afẹyinti. si iṣupọ.

Ni idi eyi, awọn ẹda afẹyinti ti awọn olupin hypervisor 8 ni a gbejade ni nigbakannaa si olupin afẹyinti kan. Nitorinaa, disiki ati awọn ọna ṣiṣe nẹtiwọọki ti olupin afẹyinti, ti o lọra, ko gba laaye awọn eto disiki ti awọn ogun hypervisor lati apọju, nitori wọn ko ni anfani lati ṣiṣẹ, sọ, 8 GB / iṣẹju-aaya, eyiti awọn ogun hypervisor le ni irọrun. mu jade.

Ilana didaakọ ti o wa loke jẹ pataki pupọ fun itan siwaju, pẹlu awọn alaye - lilo awakọ Intel P4500 iyara kan, ni lilo NFS ati, boya, lilo ZFS.

Itan afẹyinti

Lori oju ipade hypervisor kọọkan a ni ipin SWAP kekere ti 8 GB ni iwọn, ati pe a “yiyi” oju ipade hypervisor funrararẹ ni lilo DD lati aworan itọkasi. Fun iwọn eto lori olupin, a lo 2xSATA SSD RAID1 tabi 2xSAS HDD RAID1 lori LSI tabi oludari ohun elo HP. Ni gbogbogbo, a ko bikita ni gbogbo ohun ti o wa ninu, nitori iwọn didun eto wa nṣiṣẹ ni ipo “fere kika nikan”, ayafi fun SWAP. Ati pe niwon a ni ọpọlọpọ Ramu lori olupin ati pe o jẹ 30-40% ọfẹ, a ko ronu nipa SWAP.

Afẹyinti ilana. Iṣẹ yii dabi iru eyi:

#!/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

san ifojusi si ionice -c3Ni otitọ, nkan yii jẹ asan patapata fun awọn ẹrọ NVMe, niwọn igba ti oluṣeto IO fun wọn ti ṣeto bi:

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

Bibẹẹkọ, a ni nọmba awọn apa isunmọ pẹlu awọn RAID SSD aṣa, fun wọn eyi jẹ pataki, nitorinaa wọn nlọ. BI O SE. Lapapọ, eyi jẹ nkan ti koodu ti o nifẹ ti o ṣalaye asan ionice ni irú ti iru iṣeto ni.

San ifojusi si asia iflag=direct fun DD. A nlo IO taara ti o kọja kaṣe ifipamọ lati yago fun rirọpo ti ko wulo ti awọn buffer IO nigba kika. Sibẹsibẹ, oflag=direct a ko nitori a ti sọ alabapade ZFS iṣẹ oran nigba lilo o.

A ti nlo ero yii ni aṣeyọri fun ọpọlọpọ ọdun laisi awọn iṣoro.

Ati lẹhinna o bẹrẹ... A ṣe awari pe ọkan ninu awọn apa ko ṣe afẹyinti mọ, ati pe eyi ti tẹlẹ nṣiṣẹ pẹlu IOWAIT ibanilẹru ti 50%. Nigbati o n gbiyanju lati loye idi ti didakọ ko waye, a pade iṣẹlẹ atẹle:

Volume group "images" not found

A bẹrẹ si ronu nipa “ipari ti de fun Intel P4500,” sibẹsibẹ, ṣaaju pipa olupin lati rọpo awakọ naa, o tun jẹ pataki lati ṣe afẹyinti. A ṣe atunṣe LVM2 nipa mimu-pada sipo metadata lati afẹyinti LVM2 kan:

vgcfgrestore images

A ṣe ifilọlẹ afẹyinti ati rii kikun epo yii:
Pupọ ti Ramu ọfẹ, NVMe Intel P4500 ati ohun gbogbo lọra pupọ - itan-akọọlẹ ti afikun aṣeyọri ti ipin swap kan

Lẹẹkansi a ni ibanujẹ pupọ - o han gbangba pe a ko le gbe bii eyi, nitori gbogbo awọn VPS yoo jiya, eyiti o tumọ si pe awa yoo jiya paapaa. Ohun ti o ṣẹlẹ jẹ koyewa patapata - iostat ṣe afihan IOPS alaanu ati IOWAIT ti o ga julọ. Ko si awọn imọran miiran ju “jẹ ki a rọpo NVMe,” ṣugbọn oye kan waye ni akoko kan.

Onínọmbà ti awọn ipo igbese nipa igbese

Iwe irohin itan. Awọn ọjọ diẹ sẹyin, lori olupin yii o jẹ dandan lati ṣẹda VPS nla kan pẹlu 128 GB Ramu. O dabi ẹnipe iranti ti o to, ṣugbọn lati wa ni apa ailewu, a pin 32 GB miiran fun ipin swap. A ṣẹda VPS, ni ifijišẹ pari iṣẹ-ṣiṣe rẹ ati pe iṣẹlẹ naa ti gbagbe, ṣugbọn ipin SWAP wa.

Iṣeto ni Awọn ẹya ara ẹrọ. Fun gbogbo awọn olupin awọsanma paramita vm.swappiness ti ṣeto si aiyipada 60. Ati SWAP ti ṣẹda lori SAS HDD RAID1.

Kini o ṣẹlẹ (gẹgẹ bi awọn olootu). Nigbati o n ṣe afẹyinti DD ṣe ọpọlọpọ awọn data kikọ, eyiti a gbe sinu awọn buffers Ramu ṣaaju kikọ si NFS. Eto mojuto, itọsọna nipasẹ eto imulo swappiness, n gbe ọpọlọpọ awọn oju-iwe ti iranti VPS si agbegbe swap, eyiti o wa lori iwọn didun HDD RAID1 ti o lọra. Eyi yori si IOWAIT dagba pupọ, ṣugbọn kii ṣe nitori IO NVMe, ṣugbọn nitori IO HDD RAID1.

Bawo ni a ṣe yanju iṣoro naa. Ipin swap 32GB jẹ alaabo. Eyi gba wakati 16; o le ka ni lọtọ nipa bii ati idi ti SWAP ṣe paarọ laiyara. Awọn eto ti yipada swappiness si iye dogba si 5 lori gbogbo awọsanma.

Bawo ni eyi ko ṣe le ṣẹlẹ?. Ni akọkọ, ti SWAP ba wa lori SSD RAID tabi ẹrọ NVMe, ati keji, ti ko ba si ẹrọ NVMe, ṣugbọn ẹrọ ti o lọra ti kii yoo ṣe iru iwọn didun data - ni ironu, iṣoro naa ṣẹlẹ nitori pe NVMe yara ju.

Lẹhin iyẹn, ohun gbogbo bẹrẹ lati ṣiṣẹ bi iṣaaju - pẹlu IOWAIT odo.

orisun: www.habr.com

Fi ọrọìwòye kun