Yon anpil nan RAM gratis, NVMe Intel P4500 ak tout bagay trè dousman - istwa a nan adisyon a san siksè nan yon patisyon swap.

Nan atik sa a, mwen pral pale sou yon sitiyasyon ki te fèt dènyèman ak youn nan serveurs yo nan nwaj VPS nou an, ki te kite m 'twòp pandan plizyè èdtan. Mwen te konfigirasyon ak depanaj serveurs Linux pou apeprè 15 ane, men ka sa a pa anfòm nan pratik mwen an ditou - mwen te fè plizyè fo sipozisyon epi mwen te vin yon ti kras dezespere anvan mwen te kapab kòrèkteman detèmine kòz pwoblèm nan epi rezoud li. .

Preamble

Nou opere yon nwaj gwosè mwayen, ke nou bati sou sèvè estanda ak konfigirasyon sa a - 32 nwayo, 256 GB RAM ak yon 4500TB PCI-E Intel P4 NVMe kondwi. Nou vrèman renmen konfigirasyon sa a paske li elimine nesesite pou enkyete sou tèt IO lè li bay restriksyon ki kòrèk la nan nivo kalite egzanp VM. Paske NVMe Intel P4500 gen pèfòmans enpresyonan, nou ka ansanm bay tou de pwovizyon IOPS konplè nan machin ak depo backup nan yon sèvè backup ak zewo IOWAIT.

Nou se youn nan ansyen kwayan sa yo ki pa sèvi ak ipèrkonvèje SDN ak lòt bagay ki alamòd, élégance, jèn yo nan magazen volim VM, kwè ke sistèm nan pi senp, se pi fasil pou rezoud pwoblèm li nan kondisyon yo nan "gourou prensipal la te ale. nan mòn yo.” Kòm yon rezilta, nou estoke volim VM nan fòma QCOW2 nan XFS oswa EXT4, ki se deplwaye sou tèt LVM2.

Nou tou fòse yo sèvi ak QCOW2 pa pwodwi a nou itilize pou orchestration - Apache CloudStack.

Pou fè yon backup, nou pran yon imaj konplè sou volim nan kòm yon snapshot LVM2 (wi, nou konnen ke snapshots LVM2 yo ralanti, men Intel P4500 la ede nou soti isit la tou). Nou fè lvmcreate -s .. ak èd la dd nou voye kopi backup la nan yon sèvè aleka ak depo ZFS. Isit la nou toujou yon ti kras pwogresis - apre tout, ZFS ka estoke done nan fòm konprese, epi nou ka byen vit retabli li lè l sèvi avèk DD oswa jwenn volim VM endividyèl lè l sèvi avèk mount -o loop ....

Ou ka, nan kou, retire pa imaj la plen nan volim nan LVM2, men monte sistèm nan dosye nan RO epi kopye imaj yo QCOW2 tèt yo, sepandan, nou te fè fas ak lefèt ke XFS te vin move soti nan sa a, epi yo pa imedyatman, men nan yon fason enprevizib. Nou reyèlman pa renmen li lè hypervisor gen tout pouvwa a "bwa" toudenkou nan wikenn, nan mitan lannwit oswa nan jou ferye akòz erè ki pa klè lè yo pral rive. Se poutèt sa, pou XFS nou pa sèvi ak aliye snapshot nan RO pou ekstrè volim, nou tou senpleman kopye tout volim LVM2 la.

Vitès la nan backup nan sèvè a backup detèmine nan ka nou an pa pèfòmans nan sèvè a backup, ki se apeprè 600-800 MB / s pou done enkonpresib; yon limit plis se kanal la 10Gbit / s ak ki sèvè a backup konekte. nan grap la.

Nan ka sa a, kopi sovgad 8 sèvè ipèrvizè yo telechaje ansanm sou yon sèl sèvè backup. Se konsa, disk ak rezo subsystems nan sèvè backup la, yo te pi dousman, pa pèmèt subsystems yo ki gen kapasite nan lame ipèrvizè yo twò chaje, paske yo tou senpleman pa kapab trete, di, 8 GB / sec, ki gen tout pouvwa a hypervisor yo ka fasil. pwodui.

Pwosesis kopye pi wo a trè enpòtan pou istwa a plis, ki gen ladan detay yo - lè l sèvi avèk yon kondwi rapid Intel P4500, lè l sèvi avèk NFS epi, pwobableman, lè l sèvi avèk ZFS.

Sovgad istwa

Sou chak ne ipèvizè nou gen yon ti patisyon SWAP ki gen 8 GB nan gwosè, epi nou "woule" ne ipèvizè a tèt li lè l sèvi avèk DD soti nan imaj referans lan. Pou volim sistèm nan sou serveurs, nou itilize 2xSATA SSD RAID1 oswa 2xSAS HDD RAID1 sou yon kontwolè pyès ki nan konpitè LSI oswa HP. An jeneral, nou pa pran swen ditou sa ki anndan an, paske volim sistèm nou an opere nan mòd "prèske lekti sèlman", eksepte pou SWAP. Epi depi nou gen anpil RAM sou sèvè a epi li se 30-40% gratis, nou pa panse sou SWAP.

Pwosesis backup. Travay sa a sanble yon bagay tankou sa a:

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

Prete atansyon a ionice -c3, an reyalite, bagay sa a se konplètman initil pou aparèy NVMe, depi pwogramè IO pou yo mete kòm:

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

Sepandan, nou gen yon kantite nœuds eritaj ak RAID SSD konvansyonèl yo, pou yo sa a enpòtan, kidonk yo ap deplase. KÒM SE. An jeneral, sa a se jis yon moso enteresan nan kòd ki eksplike initilite a ionice nan ka yon konfigirasyon konsa.

Fè atansyon sou drapo a iflag=direct pou DD. Nou itilize IO dirèk kontoune kachèt tanpon pou evite ranplasman nesesè nan tanpon IO lè w ap li. Sepandan, oflag=direct nou pa fè sa paske nou te rankontre pwoblèm pèfòmans ZFS lè w ap itilize li.

Nou te itilize konplo sa a avèk siksè pandan plizyè ane san pwoblèm.

Apre sa, li te kòmanse... Nou te dekouvri ke youn nan nœuds yo pa t apiye ankò, epi youn nan anvan an te kouri ak yon IOWAIT kolosal nan 50%. Lè n ap eseye konprann poukisa kopye pa rive, nou te rankontre fenomèn sa a:

Volume group "images" not found

Nou te kòmanse reflechi sou "fen an rive pou Intel P4500 la," sepandan, anvan fèmen sèvè a ranplase kondwi a, li te toujou nesesè fè yon backup. Nou fikse LVM2 pa restore metadata ki soti nan yon backup LVM2:

vgcfgrestore images

Nou te lanse yon backup epi nou te wè penti lwil oliv sa a:
Yon anpil nan RAM gratis, NVMe Intel P4500 ak tout bagay trè dousman - istwa a nan adisyon a san siksè nan yon patisyon swap.

Ankò nou te tris anpil - li te klè ke nou pa t 'kapab viv konsa, paske tout VPS yo ta soufri, ki vle di nou ta soufri tou. Sa ki te pase a se konplètman klè - iostat te montre IOPS pitye ak IOWAIT ki pi wo a. Pa te gen okenn lide lòt pase "an pou ranplase NVMe," men yon insight ki te fèt jis nan tan.

Analiz de sitiyasyon an etap pa etap

Magazin istorik. Kèk jou pi bonè, sou sèvè sa a li te nesesè yo kreye yon gwo VPS ak 128 GB RAM. Te sanble gen ase memwa, men yo dwe sou bò a an sekirite, nou atribye ba yon lòt 32 GB pou patisyon an swap. VPS la te kreye, konplete avèk siksè travay li epi ensidan an te bliye, men patisyon SWAP la rete.

Karakteristik Konfigirasyon. Pou tout serveurs nwaj paramèt la vm.swappiness te mete nan default 60. Epi SWAP te kreye sou SAS HDD RAID1.

Kisa ki te pase (dapre editè yo). Lè fè bak DD pwodui yon anpil nan done ekri, ki te mete nan RAM tanpon anvan ekri nan NFS. Nwayo sistèm, gide pa politik swappiness, t ap deplase anpil paj memwa VPS nan zòn swap la, ki te chita sou yon volim ralanti HDD RAID1. Sa a te mennen nan IOWAIT ap grandi trè fò, men se pa akòz IO NVMe, men akòz IO HDD RAID1.

Ki jan pwoblèm nan te rezoud. Patisyon swap 32GB la te enfim. Sa a te pran 16 èdtan; ou ka li separeman sou kijan ak poukisa SWAP etenn konsa dousman. Anviwònman yo te chanje swappiness a yon valè egal a 5 toupatou nan nwaj la.

Ki jan sa te kapab pa rive?. Premyèman, si SWAP te sou yon SSD RAID oswa NVMe aparèy, ak dezyèmman, si pa te gen okenn aparèy NVMe, men yon aparèy pi dousman ki pa ta pwodwi tankou yon volim nan done - iwonilman, pwoblèm nan te rive paske sa a NVMe twò vit.

Apre sa, tout bagay te kòmanse travay tankou anvan - ak zewo IOWAIT.

Sous: www.habr.com

Add nouvo kòmantè