MÄs turpinÄm iegremdÄties aizraujoÅ”ajÄ uzminÄtajÄ pasaulÄ... problÄmu novÄrÅ”ana, izmantojot baļķus. IN
Kas, jÅ«suprÄt, ir Å”ie "baļķi"? Vairums uzskata, ka jebkuras aplikÄcijas žurnÄliem jÄpieŔķir sava veida visvarenÄs bÅ«tnes loma, kas lielÄkoties veÄ£etÄ kaut kur pagalmÄ, bet Ä«stajÄ brÄ«dÄ« nez no kurienes parÄdÄs mirdzoÅ”Äs bruÅÄs un glÄbj visus. Tas nozÄ«mÄ, ka tajos jÄietver viss, sÄkot no mazÄkajÄm kļūdÄm katrÄ komponentÄ un beidzot ar atseviŔķÄm datu bÄzes transakcijÄm. Un tÄ, ka pÄc kļūdas uzreiz tika rakstÄ«ts, kÄ vÄl labot. Un tam visam vajadzÄtu ietilpt pÄris megabaitos, ne vairÄk. Tas ir tikai teksts! Teksta faili nevar aizÅemt desmitiem gigabaitu, es to kaut kur dzirdÄju!
TÄtad baļķi
ReÄlajÄ pasaulÄ Å¾urnÄli ir tikai diagnostikas informÄcijas arhÄ«vs. Un ko tur glabÄt, kur iegÅ«t informÄciju glabÄÅ”anai un cik tai jÄbÅ«t detalizÄtai, tas ir paÅ”u izstrÄdÄtÄju ziÅÄ. KÄds iet minimÄlisma ceļu, veicot IESLÄGÅ ANAS / IZSLÄGÅ ANAS lÄ«meÅa uzskaiti, un kÄds cÄ«tÄ«gi grÄbj visu, ko vien var sasniegt. Lai gan ir arÄ« starpposma iespÄja ar iespÄju izvÄlÄties tÄ saukto Logging Level, kad pats norÄdÄt, cik detalizÄtu informÄciju vÄlies glabÄt un cik tev ir papildu diska vietas =) VBR, starp citu, ir seÅ”i Å”Ädi lÄ«meÅi. Un, ticiet man, jÅ«s nevÄlaties redzÄt, kas notiek ar visdetalizÄtÄko reÄ£istrÄÅ”anu ar brÄ«vu vietu jÅ«su diskÄ.
Labi. MÄs aptuveni sapratÄm, ko vÄlamies ietaupÄ«t, taÄu rodas pamatots jautÄjums: no kurienes iegÅ«t Å”o informÄciju? Protams, mÄs esam daļa no notikumiem, lai reÄ£istrÄtos paÅ”i ar mÅ«su iekÅ”Äjiem procesiem. Bet ko darÄ«t, ja notiek mijiedarbÄ«ba ar ÄrÄjo vidi? Lai neslÄ«dÄtu kruÄ·u un velosipÄdu ellÄ, Veeam mÄdz neizgudrot jau izgudrotus izgudrojumus. Ikreiz, kad ir gatava API, iebÅ«vÄta funkcija, bibliotÄka utt., mÄs dosim priekÅ”roku gatavÄm opcijÄm, pirms sÄkam iežogot savus Ä·ermeÅus. Lai gan ar pÄdÄjo arÄ« pietiek. TÄpÄc, analizÄjot žurnÄlus, ir svarÄ«gi saprast, ka lielÄkÄ daļa kļūdu attiecas uz ziÅojumiem no treÅ”o puÅ”u API, sistÄmas zvaniem un citÄm bibliotÄkÄm. Å ajÄ gadÄ«jumÄ VBR loma ir Å”o kļūdu pÄrsÅ«tÄ«Å”ana uz žurnÄla failiem. Un lietotÄja galvenais uzdevums ir iemÄcÄ«ties saprast, kura lÄ«nija ir no kuras un par ko Å”is ākurÅ”ā ir atbildÄ«gs. TÄtad, ja kļūdas kods no VBR žurnÄla novirza jÅ«s uz MSDN lapu, tas ir labi un pareizi.
KÄ mÄs vienojÄmies iepriekÅ”: Veeam ir tÄ sauktÄ uz SQL balstÄ«ta lietojumprogramma. Tas nozÄ«mÄ, ka visi iestatÄ«jumi, visa informÄcija un vispÄr viss, kas nepiecieÅ”ams tikai normÄlai darbÄ«bai ā viss tiek glabÄts tÄs datubÄzÄ. LÄ«dz ar to vienkÄrÅ”Ä patiesÄ«ba: tas, kas nav žurnÄlos, visticamÄk, ir datu bÄzÄ. Bet arÄ« Ŕī nav sudraba lode: dažas lietas nav ne Veeam komponentu lokÄlajos žurnÄlos, ne tÄ datubÄzÄ. TÄpÄc jums jÄiemÄcÄs izpÄtÄ«t resursdatora žurnÄlus, vietÄjÄs maŔīnas žurnÄlus un visu, kas ir iesaistÄ«ts dublÄÅ”anas un atjaunoÅ”anas procesÄ, žurnÄlus. Un gadÄs arÄ« tÄ, ka vajadzÄ«gÄ informÄcija vispÄr nekur nav pieejama. TÄds ir ceļŔ.
Daži Å”Ädu API piemÄri
Å Ä« saraksta mÄrÄ·is nav bÅ«t ÄrkÄrtÄ«gi pilnÄ«gam, tÄpÄc nav vajadzÄ«bas tajÄ meklÄt galÄ«go patiesÄ«bu. TÄ mÄrÄ·is ir tikai parÄdÄ«t mÅ«su produktos visbiežÄk izmantotÄs treÅ”o puÅ”u API un tehnoloÄ£ijas.
SÄksim ar VMware.
Pirmais sarakstÄ bÅ«s vSphere API. Izmanto autentifikÄcijai, hierarhijas lasÄ«Å”anai, momentuzÅÄmumu izveidei un dzÄÅ”anai, informÄcijas pieprasÄ«Å”anai par maŔīnÄm un daudz ko citu. RisinÄjuma funkcionalitÄte ir ļoti plaÅ”a, tÄpÄc varu ieteikt versijai VMware vSphere API Reference
VIX API. Hipervizora melnÄ maÄ£ija, kurai ir atseviŔķs
vSpehere Web Services API SÄkot no vSphere 6.0 (aptuveni, kopÅ” Ŕī API pirmo reizi tika ieviesta versijÄ 5.5), tas tiek izmantots darbam ar viesu maŔīnÄm un gandrÄ«z visur ir aizstÄjis VIX. Faktiski Ŕī ir vÄl viena API vSphere pÄrvaldÄ«bai. Interesentiem iesaku studÄt
VDDK (VirtuÄlÄ diska izstrÄdes komplekts). BibliotÄka, kas tika daļÄji apspriesta Å”ajÄ
VDDK error: 21036749815809.Unknown error
PÄc tam mÄs drosmÄ«gi pÄrvÄrÅ”am to par hex un iegÅ«stam 132200000001. MÄs vienkÄrÅ”i atmetam neinformatÄ«vo 132200 sÄkumu, un pÄrÄjais bÅ«s mÅ«su kļūdas kods (VDDK 1: NezinÄma kļūda). Par visbiežÄk sastopamajÄm VDDK kļūdÄm nesen bija atseviŔķs
Tagad apskatīsim LOGI.
Å eit standartÄ ir atrodams viss, kas mums ir pats nepiecieÅ”amÄkais un svarÄ«gÄkais Event Viewer. Bet ir viens ÄÄ·is: saskaÅÄ ar senÄm tradÄ«cijÄm Windows nereÄ£istrÄ pilnu kļūdas tekstu, bet tikai tÄs numuru. PiemÄram, kļūda 5 ir āPiekļuve liegtaā, un 1722 ir āRPC serveris nav pieejamsā, un 10060 ir āSavienojuma taimautsā. Protams, ir lieliski, ja atceries slavenÄkos, bet kÄ ar lÄ«dz Å”im neredzÄtajiem?
Un, lai dzÄ«ve nemaz neŔķistu medus, kļūdas tiek saglabÄtas arÄ« heksadecimÄlÄ formÄ ar prefiksu 0x8007. PiemÄram, 0x8007000e faktiski ir 14, TrÅ«kst atmiÅas. KÄpÄc un kam tas tika darÄ«ts, ir tumsÄ apvÄ«ts noslÄpums. TomÄr pilnu kļūdu sarakstu var lejupielÄdÄt bez maksas un bez SMS no
Starp citu, dažreiz ir arÄ« citi prefiksi, ne tikai 0x8007. Å ÄdÄ skumjÄ situÄcijÄ, lai saprastu HRESULT (ārezultÄta rokturiā), ir jÄiedziļinÄs vÄl dziļÄk.
Bet Microsoft biedri par mums nedaudz apžÄloja un parÄdÄ«ja pasaulei lietderÄ«bu
C:UsersrootDesktop>err.exe 0x54f
# for hex 0x54f / decimal 1359
ERROR_INTERNAL_ERROR winerror.h
# An internal error occurred.
# as an HRESULT: Severity: SUCCESS (0), FACILITY_NULL (0x0), Code 0x54f
# for hex 0x54f / decimal 1359
ERROR_INTERNAL_ERROR winerror.h
# An internal error occurred.
# 2 matches found for "0x54f"
Rodas pamatots jautÄjums: kÄpÄc mÄs uzreiz neierakstÄm atÅ”ifrÄÅ”anu žurnÄlos, bet atstÄjam Å”os noslÄpumainos kodus? Atbilde ir treÅ”o puÅ”u lietojumprogrammÄs. Pats izvelkot kÄdu WinAPI zvanu, nav grÅ«ti atÅ”ifrÄt tÄ atbildi, jo Å”im nolÅ«kam ir pat Ä«paÅ”s WinAPI izsaukums. Bet, kÄ jau minÄts, viss, kas mums nonÄk tikai atbildÄs, nonÄk mÅ«su žurnÄlos. Un Å”eit, lai to atÅ”ifrÄtu, bÅ«tu pastÄvÄ«gi jÄuzrauga Ŕī apziÅas straume, jÄizvelk no tÄs gabali ar Windows kļūdÄm, jÄatÅ”ifrÄ un jÄielÄ«mÄ atpakaļ. BÅ«sim godÄ«gi, ne pati aizraujoÅ”ÄkÄ nodarbe.
Windows failu pÄrvaldÄ«bas API izmanto visos iespÄjamos veidos, strÄdÄjot ar failiem. Failu izveide, dzÄÅ”ana, atvÄrÅ”ana rakstÄ«Å”anai, darbs ar atribÅ«tiem un tÄ tÄlÄk, un tÄ tÄlÄk.
pieminÄts virs PowerShell Direct kÄ VIX API analogs Hyper-V pasaulÄ. DiemžÄl ne tik elastÄ«gs: daudz funkcionalitÄtes ierobežojumu, tas nedarbojas ar katru resursdatora versiju un ne ar visiem viesiem.
RPC (Remote Procedure Call) Es nedomÄju, ka ir neviena persona, kas bÅ«tu strÄdÄjusi ar WIndows un nebÅ«tu redzÄjusi ar RPC saistÄ«tas kļūdas. Neskatoties uz populÄro nepareizo priekÅ”statu, Å”is nav viens protokols, bet jebkurÅ” klienta-servera protokols, kas atbilst vairÄkiem parametriem. TomÄr, ja mÅ«su žurnÄlos ir RPC kļūda, 90% gadÄ«jumu tÄ bÅ«s kļūda no Microsoft RPC, kas ir daļa no DCOM (Distributed Component Object Model). TÄ«klÄ var atrast milzÄ«gu daudzumu dokumentÄcijas par Å”o tÄmu, taÄu lielÄkÄ daļa no tÄs ir diezgan novecojuÅ”as. Bet, ja ir akÅ«ta vÄlme papÄtÄ«t tÄmu, tad varu ieteikt rakstus
Galvenie RPC kļūdu cÄloÅi mÅ«su žurnÄlos ir neveiksmÄ«gi mÄÄ£inÄjumi sazinÄties starp VBR komponentiem (piemÄram, serveris > starpniekserveris) un visbiežÄk sakaru problÄmu dÄļ.
VisÄm populÄrÄkajÄm vietÄm ir kļūda RPC serveris nav pieejams (1722). VienkÄrÅ”i sakot, klients nevarÄja izveidot savienojumu ar serveri. KÄ un kÄpÄc - nav vienas atbildes, bet parasti tÄ ir problÄma ar autentifikÄciju vai tÄ«kla piekļuvi 135. portam. PÄdÄjais ir raksturÄ«gs infrastruktÅ«rÄm ar dinamisku portu pieŔķirÅ”anu. Par Å”o tÄmu ir pat
OtrÄ populÄrÄkÄ kļūda: galapunktu kartÄtÄjs (1753) vairs nav pieejams galapunktam. RPC klientam vai serverim neizdevÄs pieŔķirt sev portu. Parasti notiek, kad serveris (mÅ«su gadÄ«jumÄ viesu maŔīna) ir konfigurÄts, lai dinamiski pieŔķirtu portus no Å”aura diapazona, kas ir beidzies. Un, ja jÅ«s piesakÄties no klienta puses (mÅ«su gadÄ«jumÄ VBR servera), tas nozÄ«mÄ, ka mÅ«su VeeamVssAgent vai nu nestartÄja, vai arÄ« nebija reÄ£istrÄts kÄ RPC saskarne. Ir arÄ« par Å”o tÄmu
Lai pabeigtu 3 populÄrÄkÄs RPC kļūdas, atcerÄsimies, ka RPC funkcijas izsaukums neizdevÄs (1726). ParÄdÄs, ja savienojums ir izveidots, bet RPC pieprasÄ«jumi netiek apstrÄdÄti. PiemÄram, mÄs pieprasÄm informÄciju par VSS statusu (pÄkÅ”Åi tieÅ”i Å”obrÄ«d tur top Änu mÄ«na, un mÄs cenÅ”amies kÄpt), un atbildot uz mums, klusÄt un ignorÄt.
Windows Tape Backup API nepiecieÅ”ams darbam ar lentu bibliotÄkÄm vai diskdziÅiem. KÄ jau minÄju sÄkumÄ: mums nav nekÄda prieka rakstÄ«t paÅ”iem savus draiverus un pÄc tam ciest ar katras ierÄ«ces atbalstu. TÄpÄc vim nav neviena sava draivera. Viss caur standarta API, kuras atbalstu ievieÅ” paÅ”i aparatÅ«ras pÄrdevÄji. Tik daudz loÄ£iskÄk, vai ne?
SMB / CIFS Aiz ieraduma visi raksta tos blakus, lai gan ne visi atceras, ka CIFS (Common Internet File System) ir tikai SMB (Server Message Block) privÄta versija. TÄtad Å”o jÄdzienu vispÄrinÄÅ”anai nav nekÄ slikta. Samba jau ir LinuxUnix implementÄcija, un tai ir savas Ä«patnÄ«bas, bet es novirzos. Å eit ir svarÄ«gi: kad Veeam lÅ«dz kaut ko ierakstÄ«t UNC ceÄ¼Ä (servera direktorijÄ), serveris izmanto failu sistÄmas draiveru hierarhiju, tostarp mup un mrxsmb, lai rakstÄ«tu uz bumbu. AttiecÄ«gi Å”ie draiveri radÄ«s arÄ« kļūdas.
Bez nevar Winsock API. Ja kaut kas ir jÄdara tÄ«klÄ, VBR darbojas, izmantojot Windows Socket API, ko tautÄ sauc par Winsock. TÄtad, ja žurnÄlÄ redzam virkni IP:Port, tas ir tas. OficiÄlajÄ dokumentÄcijÄ ir labs iespÄjamo iespÄju saraksts
pieminÄts virs WMI (Windows Management Instrumentation) ir sava veida visvarens API, lai pÄrvaldÄ«tu visu un visus Windows pasaulÄ. PiemÄram, strÄdÄjot ar Hyper-V, gandrÄ«z visi resursdatoram adresÄtie pieprasÄ«jumi tiek cauri tam. VÄrdu sakot, lieta ir absolÅ«ti neaizvietojama un savÄs spÄjÄs ļoti spÄcÄ«ga. MÄÄ£inot palÄ«dzÄt noskaidrot, kur un kas ir bojÄts, iebÅ«vÄtais WBEMtest.exe rÄ«ks ļoti palÄ«dz.
Un pÄdÄjÄ sarakstÄ, bet nebÅ«t ne mazÄk svarÄ«gi - VSS (Volume Shadow Storage). TÄma ir tikpat neizsmeļama un noslÄpumaina, cik daudz dokumentÄcijas par to ir uzrakstÄ«ts. Shadow Copy visvienkÄrÅ”Äk tiek saprasts kÄ Ä«paÅ”s momentuzÅÄmuma veids, kas pÄc bÅ«tÄ«bas arÄ« ir. Pateicoties viÅam, jÅ«s varat izveidot lietojumprogrammÄm atbilstoÅ”us dublÄjumus VMware un gandrÄ«z visu Hyper-V. Esmu plÄnojis uztaisÄ«t atseviŔķu rakstu ar nelielu piespieÅ”anu VSS, bet pagaidÄm varat mÄÄ£inÄt palasÄ«t
Par Å”o, iespÄjams, mÄs varam apstÄties. Uzdevumu izskaidrot elementÄrÄkÄs lietas uzskatu par pabeigtu, tÄpÄc nÄkamajÄ nodaÄ¼Ä jau apskatÄ«sim žurnÄlus. Bet, ja jums ir kÄdi jautÄjumi, droÅ”i uzdodiet tos komentÄros.
Avots: www.habr.com