VPN runtime u RAM-u ne govori ništa o dnevnicima
tmpfs runtime i tvrdnja da nema dnevnika su dvije različite tvrdnje. Prati svakog zapisivača do njegovog odredišta i provjeri swap i prosljeđivanje dnevnika prije nego povjeruješ.
VPN server koji se podiže s imagea samo za čitanje i drži svoje radno stanje na tmpfsu stvarni je i koristan dizajn. Lako ga je opisati i kao onaj bez dnevnika, što dizajn ne dokazuje. Mjesto pohrane određuje gdje kopija živi; prikupljanje i čuvanje određuju postoji li zapis uopće, a ponovno pokretanje dotiče samo prvo. Razdvojiti to dvoje jest cijeli pregled.
Počni popisom svakog procesa koji može pisati stanje: daemon, servis za autentifikaciju, dnevnik, bilo koji nadzorni agent i upravljački alati.
Pohrana i prikupljanje su različita pitanja
Svaki zapisivač ima vlastito odredište i vlastito pravilo. VPN daemon piše datoteke stanja, pozadina za autentifikaciju piše događaje računa, dnevnik prikuplja izlaz servisa, a nadzorni agent šalje metrike posve drugdje. Dizajn koji pri ponovnom pokretanju učini da jedno od toga nestane nije rekao ništa o ostala tri. Prati svakog zapisivača do njegovog odredišta i zabilježi nalazi li se to odredište uopće na stroju.
Datoteke svojstvene aplikaciji, učitana dijagnostika i vanjski servisi traže isti tretman. Odsutnost poznatog lokalnog dnevnika ne dokazuje da zapisi o vezama ili računima ne postoje nigdje; dokazuje da još nisi našao 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. Čitaj stvarne mogućnosti montiranja umjesto da pretpostaviš da putanja pod /run znači hlapljivost.
Zatim popiši stvari koje preživljavaju ponovno pokretanje 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 si smatrao 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čitaj djelotvorni način rada iz samoga dnevnika ili njegove konfiguracijske datoteke, zatim odvojeno provjeri ciljeve prosljeđivanja, jer jedna postavka ne upravlja drugom.
Što mora preživjeti ponovno pokretanje
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či što mora namjerno preživjeti, zatim provjeri da preživljava.
Isto razmišljanje vrijedi za operativne zapise. Odluči koje događaje sigurnost i upravljanje uslugama doista traže, s obrazloženim opsegom i čuvanjem, a ostalo svedi na najmanju mjeru. Svođenje na najmanju mjeru nije isto što i isključivanje svake dijagnostike.
Usporedi djelotvornu konfiguraciju pohrane i prosljeđivanja s nekoliko bezopasnih događaja, zatim ponovno podigni ili zamijeni stroj i ponovno provjeri što je ostalo i odakle je usluga obnovila svoje stanje.