Вам дасталася cron-заданне, якое перазапускае OpenVPN кожны дзень у 04:10, і яно ўтрымлівае ўсё стабільным ужо год. Яно таксама адключае здаровы тунель у фіксаваную гадзіну і нічога не робіць з перапынкам, які насамрэч здараецца ў абедзенны час. Перазапуск па календары — гэта рашэнне пра абслугоўванне. Аднаўленне — гэта іншая канструкцыя з канкрэтным трыгерам.

Тры формы збою патрабуюць трох розных гаспадароў. Спачатку выберыце збой, і механізм прыйдзе следам.

Тры збоі, тры гаспадары

Тунель можа быць узняты, пакуль яго сусед знік: працэс працуе, інтэрфейс існуе, і нічога карыснага праз яго не ідзе. Працэс можа быць мёртвы, пакуль сусед у парадку, і тады вярнуць яго можа толькі тое, што яго запусціла. Праграма за тунелем можа быць зламаная, пакуль і тунель, і сусед здаровыя, і перазапуск кліента тады пашырае перапынак, не закранаючы прычыну. Раздзяленне гэтых трох выпадкаў — і ёсць усё рашэнне.

У кожнага свой сігнал і свой гаспадар. Жыццяздольнасць належыць пратаколу VPN, жыццёвы цыкл працэсу — менеджэру службаў, а здароўе праграмы — маніторынгу з вузкім мандатам.

Што можа і чаго не можа опцыя жыццяздольнасці

keepalive — гэта памочнік, які разгортваецца ў пару ping і ping-restart, як апісвае даведнік па опцыях злучэння, і тайм-аўты, якія ён стварае, не аднолькавыя на серверы і кліенце. Значэнні, што штурхае сервер, таксама могуць перавызначаць тое, што кліент наладзіў лакальна, і таму тайм-аўт, які выглядае правільным у лакальным файле, можа не быць тым, што дзейнічае.

Гэта робіць яго правільным інструментам для страчанага суседа і няправільным для мёртвага працэсу, бо працэс, які завяршыўся, не можа запускаць свае таймеры. Ён таксама нічога не кажа пра тое, ці адказвае праграма за тунелем, бо абмен адбываецца паміж двума канцавымі пунктамі VPN. Капіяванне пары тайм-аўтаў з іншага разгортвання без праверкі ролі, чаканых перапынкаў і паводзін перааўтэнтыфікацыі — гэта шлях, якім стабільны тунель пачынае трапятаць.

Чым валодае менеджэр службаў

Калі дэман выходзіць, менеджэр, які яго запусціў, вырашае, што будзе далей. Палітыка перазапуску, прывязаная да збою, з затрымкай і абмежаваннем хуткасці запуску, справіцца з цыклам падзення, не ператвараючы яго ў fork-бомбу. Гэтыя налады рэагуюць на вынікі працэсу і тайм-аўты і не выяўляюць працэс, які жывы, але бескарысны. Гэта не прабел, які трэба залатаць шырэйшай палітыкай; гэта мяжа паміж жыццёвым цыклам і жыццяздольнасцю.

Гаспадарнасць важная не менш за налады. Злучэнне, запушчанае менеджэрам сеткі працоўнага стала, павінна захоўваць схему аднаўлення гэтага менеджэра, а даданне канкуруючага юніта службы для таго ж інтэрфейсу дае аднаму тунелю двух гаспадароў. Выберыце аднаго і запішыце, каго менавіта.

Калі планавы перазапуск апраўданы

Перазапуск па часе можа быць разумным дзеяннем абслугоўвання: у яго ёсць гаспадар, вакно, названы асобнік і незалежны спосаб уваходу. Чаго ён не можа быць — гэта агульнай палітыкай надзейнасці, якая яшчэ і адключае ўсіх у фіксаваную гадзіну.

Калі перазапуск існуе, каб абыходзіць вядомую ўцечку або завіслы стан, скажыце пра гэта ў апісанні юніта, бо інакш наступны чалавек пакіне яго назаўжды.

Праверце выпадкі, якія маюць значэнне: сусед знікае, а працэс застаецца; працэс выходзіць; паўтор патрабуе новых уліковых даных; тунель вяртаецца, а праграма застаецца зламанай. Глядзіце, які кампанент рэагуе і які стан ён пакідае пасля сябе.

Правільнае пытанне не ў тым, як часта перазапускаць, а ў тым, што павінна заўважыць збой першым.

Падобныя артыкулы