VPN u radnoj memoriji ne kazuje ništa o zapisima
tmpfs okruženje i tvrdnja o nikakvim zapisima dvije su različite tvrdnje. Pratite svakog zapisivača do njegova odredišta i prije nego što povjerujete provjerite swap i prosljeđivanje dnevnika.
VPN poslužitelj koji se podiže iz slike samo za čitanje i drži svoje radno stanje na tmpfsu stvaran je i koristan dizajn. Jednako ga je lako opisati kao onaj bez zapisa, što dizajn ne dokazuje. Mjesto pohrane određuje gdje kopija živi; prikupljanje i čuvanje određuju postoji li zapis uopće, a ponovno podizanje dotiče samo prvo. Razlikovati to dvoje jest cijeli pregled.
Počnite popisom svakog procesa koji može pisati stanje: demon, usluga autentifikacije, dnevnik, bilo koji nadzorni agent i upravljački alati.
Pohrana i prikupljanje dva su različita pitanja
Svaki zapisivač ima vlastito odredište i vlastito pravilo. VPN demon piše datoteke stanja, pozadina za autentifikaciju piše događaje računa, dnevnik prikuplja izlaz usluga, a nadzorni agent šalje metrike posve drugamo. Dizajn koji pri ponovnom podizanju učini da jedno od toga nestane nije rekao ništa o ostala tri. Pratite svakog zapisivača do njegova odredišta i zabilježite nalazi li se to odredište uopće na stroju.
Datoteke svojstvene aplikaciji, učitana dijagnostika i vanjske usluge traže isti tretman. Odsutnost poznatog lokalnog dnevnika ne dokazuje da zapisi o vezama ili računima ne postoje nigdje; dokazuje da još niste našli kamo idu.
tmpfs nije jamstvo
Linux tmpfs nije fizički RAM disk. Dokumentacija jezgre izričito navodi da se stranice mogu zapisati u swap kada to montiranje dopušta, pa tmpfs datoteka može doći na disk, a da je aplikacija nikada nije tamo kopirala. mount pokazuje je li u igri tmpfs podržan swapom, a drugi memorijski datotečni sustavi ponašaju se opet drukčije. Čitajte stvarne mogućnosti montiranja umjesto da pretpostavite da putanja pod /run znači hlapljivost.
Zatim popišite stvari koje preživljavaju ponovno podizanje na načine koje ljudi zaboravljaju: trajni gornji sloj, priključena pohrana, slike hibernacije, ispisi padova i infrastrukturne snimke cijeloga VM-a. Svaka je moguće odredište za stanje koje ste smatrali prolaznim. Taj popis treba provjeriti, a nije tvrdnja da svaki host ima sve navedeno.
Journald ima dva odredišta i prosljeđivač
Journald lijepo pokazuje tu podjelu. Hlapljiva pohrana drži zapise pod /run/log/journal, trajna pod /var/log/journal, a automatski način rada bira između njih; način koji je na snazi dolazi iz sustava koji radi, a ne iz opisa slike. Prelazak na hlapljivo ne briše ono što je već trajno zapisano. Prosljeđivanje je također zaseban kanal: čak i postavka pohrane koja lokalno ne drži ništa može predati poruke drugom cilju.
Pročitajte djelotvorni način rada iz samoga dnevnika ili njegove konfiguracijske datoteke, zatim odvojeno provjerite ciljeve prosljeđivanja, jer jedna postavka ne upravlja drugom.
Što mora preživjeti ponovno podizanje
Okruženje bez stanja podupire ponovljivu zamjenu i treba namjerne izvore za konfiguraciju, ovlaštenje i materijal za oporavak koji usluga ne može izmisliti. Izgubiti jedino radno stanje upisa ili opoziva kako bi lokalni zapisi nestali loša je trgovina, i česta. Odlučite što mora namjerno preživjeti, zatim provjerite da preživljava.
Isto razmišljanje vrijedi za operativne zapise. Odlučite koje događaje sigurnost i upravljanje uslugama doista traže, s obrazloženim opsegom i čuvanjem, a ostalo svedite na najmanju mjeru. Svođenje na najmanju mjeru nije isto što i isključivanje svake dijagnostike.
Usporedite djelotvornu konfiguraciju pohrane i prosljeđivanja s nekoliko bezopasnih događaja, zatim ponovno podignite ili zamijenite stroj i ponovno provjerite što je ostalo i odakle je usluga obnovila svoje stanje.