Одакле расте диск VPN сервера и како га ограничити
Раст дневника, преименовани inode и journal без границе изгледају као један пун диск. Измерите темпо, ограничите писца и проверите границу после поновног покретања.
Тунел престаје да прихвата везе, услуга се двапут поново покреће, а затим се у њеном дневнику ништа не појављује. Та тишина је траг, јер је диск напунио управо дневник и демон нема где да запише грешку коју чекате. Свака дуготрајна услуга може доћи у то стање, а брисање директоријума названог logs то ретко поправља. Трајно решење је знати које је складиште нарасло, коме припада политика његовог чувања и да ли је писац заиста ослободио простор.
Пронађите складиште које је нарасло и темпо којим је расло
Почните са два броја која се лако забораве: слободни блокови и слободни inode. Датотечни систем може да пријави много простора и ипак одбије упис јер нема више inode, а то се дешава када услуга ствара по једну датотеку на сесију. Затражите оба очитавања на истом волумену, јер се одговори могу разићи истог поподнева. Урадите то док је домаћин здрав, да бројеви описују нормалан рад, а не испад.
df -h /var
df -i /varЗатим припишите раст власнику. Сопствена бројка потрошње journal-а обухвата само journal и никада неће видети демон који пише на путању из своје конфигурационе датотеке.
journalctl --disk-usageРаст током времена каже више од било ког појединачног мерења. Остављен укључен ниво за отклањање грешака, петља поновних покушаја која бележи сваки покушај или датотека снимања коју нико није зауставио: свако од тога може изгледати обично у једном тренутку и забрињавајуће сат касније. Узмите једно мерење, сачекајте заузет период, узмите друго и поделите са интервалом. Темпо који можете да наведете претвара капацитет у одлуку, а не у пожар.
Шта ротација ради са отвореном датотеком
Датотека дневника је име које показује на inode, а простор се враћа тек када се затвори последњи отворени руковалац. Преименујте датотеку и писац наставља да пуни исти inode; избришите је и писац наставља да пуни inode без икаквог имена. Због тог стања реченица „избрисао сам датотеку, а диск је остао пун“ описује датотечне дескрипторе, а не покварен датотечни систем. Поновно покретање писца или избор начина ротације који поново отвара датотеку враћа блокове.
lsof +L1 | headПолитика припада компоненти која пише датотеку. Journal намеће сопствена ограничења складиштења из своје конфигурационе датотеке, док се услуга заснована на датотекама обично ослања на logrotate, било са правилом стварања и сигналом за поновно отварање, било са начином скраћивања на месту када писац не може поново да отвори. Прво потврдите одлуку без икаквих промена:
logrotate -d /etc/logrotate.confГде граница припада и колико велика треба да буде
Поставите границу тамо где је писац конфигурисан, а не на тачки монтирања. Квота на целом волумену штити домаћина, али не каже која услуга прва пада, а глобална скрипта за чишћење обично брише доказе потребне следећем инциденту. Граница journal-а, број ротација са максималном величином и чување на нивоу апликације свако ограничава једног произвођача. Заједно ограничавају укупно; појединачно је свако нагађање.
Одредите величину границе према року чувања који можете да браните, а не према слободном простору. Ако је за преглед потребна недеља покушаја повезивања, journal мора да држи недељу при најзаузетијем очекиваном темпу, а тај темпо је број измерен раније.
Дневник за отклањање грешака је привремени режим са забележеним временом почетка, а не план складиштења. Држите питање приватности у истој одлуци, јер дневници веза носе адресе и идентификаторе. Дуже чување је такође избор обраде података и треба да га донесе неко ко познаје оба ограничења.
Проверите границу после поновног покретања
Промена чувања која траје до следећег поновног покретања није промена. Поново покрените писца, потврдите да ново ограничење важи и проверите да ротација и даље ради након тога. За journal, једно поновно покретање и једно очитавање потрошње одговарају на оба питања:
systemctl restart systemd-journald
journalctl --disk-usageЗа услугу засновану на датотекама, покрените ротацију једном ручно и потврдите да је датотека замењена и дескриптор поново отворен. Писац који држи стари руковалац пролази површну проверу и пада следећи пут када се волумен напуни. Гледајте слободан простор током теста, јер датотека која се смањила док се простор није вратио значи да се стари inode још држи.
Упоредите следеће очитавање са овим
Вратите се после недељу дана и упоредите темпо раста са забележеним. Одговарајући темпо значи да граница држи и да је оптерећење стабилно; удвостручен темпо значи да се нешто променило, а корисно питање је шта. Прво прочитајте садржај дневника због поновљених грешака, јер је петља поновних покушаја истовремено симптом и узрок обима. Затим проверите све ново омогућено, укључујући нивое за отклањање грешака укључене током инцидента и никада искључене.
Држите резервне копије ван истог волумена или прихватите да један пун диск носи копију са собом. Копија записана на домаћина који штити није план опоравка, а њено чување тражи сопствени одговор.
Запишите шта се чува, где, колико дуго и ко то уклања. Та реченица је резултат и једини део овог посла који преживљава следеће поновно покретање.