Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

ʻO ka pahuhopu nui o Patroni ka hāʻawi ʻana i ka Loaʻa kiʻekiʻe no PostgreSQL. Akā ʻo Patroni wale nō kahi laʻana, ʻaʻole kahi mea hana i mākaukau (ʻo ia, ma ke ʻano nui, i ʻōlelo ʻia ma ka palapala). I ka nānā mua ʻana, i ka hoʻonohonoho ʻana iā Patroni i loko o ke keʻena hoʻāʻo, hiki iā ʻoe ke ʻike i ka mea hana maikaʻi loa a me ka maʻalahi o ka lawelawe ʻana i kā mākou hoʻāʻo e wāwahi i ka pūpū. Eia nō naʻe, i ka hoʻomaʻamaʻa, i loko o kahi kaiapuni hana, ʻaʻole i hana mau nā mea āpau e like me ka nani a me ka nani e like me ka hale hoʻokolohua.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

E haʻi iki wau iā ʻoe noʻu iho. Ua hoʻomaka wau ma ke ʻano he luna ʻōnaehana. Ua hana ma ka hoʻomohala pūnaewele. Ke hana nei au ma Data Egret mai ka makahiki 2014. Ke komo nei ka hui i ke kūkākūkā ma ke kahua o Postgres. A lawelawe mākou iā Postgres, a ke hana pū nei mākou me Postgres i kēlā me kēia lā, no laila, loaʻa iā mākou nā ʻike like ʻole e pili ana i ka hana.

A i ka hopena o 2018, hoʻomaka mākou e hoʻohana mālie iā Patroni. A ua hōʻiliʻili ʻia kekahi ʻike. Ua ʻike mākou iā ia, hoʻolohe, hiki i kā mākou hana maikaʻi loa. A ma kēia hōʻike e kamaʻilio wau no lākou.

Ma waho aʻe o Postgres, makemake wau iā Linux. Makemake au e ʻimi a ʻimi, makemake au e ʻohi i nā cores. Makemake au i ka virtualization, nā ipu, docker, Kubernetes. Hoʻopili kēia mau mea iaʻu, no ka mea, pili nā hana admin kahiko. Makemake au e hana me ka nānā ʻana. A makemake au i nā mea postgres e pili ana i ka hoʻokele, ʻo ia hoʻi ka replication, backup. A i koʻu manawa kaʻawale, kākau wau ma Go. ʻAʻole wau he ʻenekini polokalamu, kākau wau noʻu iho ma Go. A hauʻoli ia iaʻu.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

  • Manaʻo wau he nui ka poʻe o ʻoukou i ʻike ʻaʻole i loaʻa iā Postgres HA (High Availability) ma waho o ka pahu. No ka loaʻa ʻana o HA, pono ʻoe e hoʻokomo i kekahi mea, hoʻonohonoho, hoʻoikaika a loaʻa.
  • Nui nā mea hana a ʻo Patroni kekahi o lākou e hoʻoponopono iā HA nani a maikaʻi loa. Akā ma ka hoʻokomo ʻana i nā mea āpau i loko o kahi keʻena hoʻāʻo a me ka holo ʻana, hiki iā mākou ke ʻike i ka hana a pau, hiki iā mākou ke hana hou i kekahi mau pilikia, ʻike pehea e lawelawe ai ʻo Patroni iā ​​lākou. A e ʻike mākou he hana maikaʻi nā mea a pau.
  • Akā i ka hoʻomaʻamaʻa, ua kū mākou i nā pilikia like ʻole. A e kamaʻilio wau e pili ana i kēia mau pilikia.
  • E haʻi aku wau iā ʻoe pehea mākou i ʻike ai, ka mea a mākou i hoʻoponopono ai - inā he kōkua ia iā mākou a ʻaʻole paha.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

  • ʻAʻole wau e haʻi iā ʻoe pehea e hoʻokomo ai iā Patroni, no ka mea hiki iā ʻoe ke google ma ka Pūnaewele, hiki iā ʻoe ke nānā i nā faila hoʻonohonoho e hoʻomaopopo ai pehea e hoʻomaka ai, pehea e hoʻonohonoho ʻia ai. Hiki iā ʻoe ke hoʻomaopopo i nā kumumanaʻo, nā hale hana, ka ʻimi ʻana i ka ʻike e pili ana iā ia ma ka Pūnaewele.
  • ʻAʻole au e kamaʻilio e pili ana i ka ʻike o kekahi. E kamaʻilio wale wau e pili ana i nā pilikia i loaʻa iā mākou.
  • A ʻaʻole wau e kamaʻilio e pili ana i nā pilikia ma waho o Patroni a me PostgreSQL. Inā, no ka laʻana, aia nā pilikia e pili ana i ke kaulike, i ka wā i hāʻule ai kā mākou puʻupuʻu, ʻaʻole wau e kamaʻilio e pili ana.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A he wahi hoʻolele liʻiliʻi ma mua o ka hoʻomaka ʻana i kā mākou hōʻike.

ʻO kēia mau pilikia āpau a mākou i hālāwai ai, ua loaʻa iā mākou i nā mahina 6-7-8 mua o ka hana. I ka hala ʻana o ka manawa, hele mākou i kā mākou mau hana maikaʻi loa. A nalowale ko mākou pilikia. No laila, ua hoʻolaha ʻia ka hōʻike ma kahi o ʻeono mahina i hala aku nei, i ka wā i ʻike hou ʻia ai i loko o koʻu poʻo a hoʻomanaʻo maikaʻi wau i nā mea āpau.

I ka hoʻomākaukau ʻana i ka hōʻike, ua hāpai mua wau i nā postmortems kahiko, nānā i nā lāʻau. A hiki ke hoʻopoina ʻia kekahi mau kikoʻī, a ʻaʻole hiki ke noiʻi piha ʻia kekahi mau kikoʻī i ka wā o ka nānā ʻana i nā pilikia, no laila, i kekahi manawa me he mea lā ʻaʻole i noʻonoʻo pono ʻia nā pilikia, a i ʻole ka nele o ka ʻike. A no laila ke noi aku nei au iā ʻoe e kala mai iaʻu no kēia manawa.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

He aha ka Patroni?

  • He la'ana keia no ke kukulu ana i HA. ʻO ia ka mea i ʻōlelo ʻia ma ka palapala. A mai koʻu manaʻo, he wehewehe pololei loa kēia. ʻAʻole ʻo Patroni kahi pōkā kālā e hoʻoponopono ai i kou mau pilikia āpau, ʻo ia hoʻi, pono ʻoe e hoʻoikaika i ka hana a lawe mai i nā pōmaikaʻi.
  • He lawelawe ʻelele kēia i kau ʻia ma kēlā me kēia lawelawe waihona a he ʻano ʻōnaehana init no kāu Postgres. Hoʻomaka ia i nā Postgres, hoʻomaha, hoʻomaka hou, hoʻonohonoho hou, a hoʻololi i ka topology o kāu hui.
  • No laila, i mea e mālama ai i ke kūlana o ka puʻupuʻu, kona hōʻike i kēia manawa, e like me ka nānā ʻana, pono kekahi ʻano o ka mālama. A mai kēia manaʻo, ua lawe ʻo Patroni i ke ala o ka mālama ʻana i ka mokuʻāina i kahi ʻōnaehana waho. He ʻōnaehana mālama hoʻonohonoho hoʻolaha ia. Hiki iā Etcd, Consul, ZooKeeper, a i ʻole kubernetes Etcd, ʻo ia hoʻi kekahi o kēia mau koho.
  • A ʻo kekahi o nā hiʻohiʻona o Patroni ʻo ia ka loaʻa ʻana o ka autofiler mai ka pahu, ma ka hoʻonohonoho wale ʻana. Inā lawe mākou iā Repmgr no ka hoʻohālikelike, a laila ua hoʻokomo ʻia ka faila ma laila. Me Repmgr, loaʻa iā mākou kahi hoʻololi, akā inā makemake mākou i kahi autofile, pono mākou e hoʻonohonoho hou. Loaʻa iā Patroni kahi autofiler ma waho o ka pahu.
  • A he nui na mea e ae. No ka laʻana, ka mālama ʻana i nā hoʻonohonoho, ninini i nā replicas hou, backup, etc. Akā ʻaʻole kēia ma waho o ke ʻano o ka hōʻike, ʻaʻole wau e kamaʻilio e pili ana.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A ʻo kahi hopena liʻiliʻi, ʻo ka hana nui a Patroni ka hana ʻana i kahi autofile maikaʻi a hilinaʻi i hiki i kā mākou hui ke hoʻomau i ka hana a ʻaʻole ʻike ka noi i nā loli i ka topology cluster.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Akā ke hoʻomaka mākou e hoʻohana iā Patroni, e paʻakikī iki kā mākou ʻōnaehana. Inā ma mua i loaʻa iā mākou nā Postgres, a laila i ka wā e hoʻohana ai iā Patroni e loaʻa iā mākou iā Patroni ponoʻī, loaʻa iā mākou DCS kahi i mālama ʻia ai ka mokuʻāina. A pono e hana nā mea a pau. No laila he aha ka mea hiki ke hele hewa?

Ua haki paha:

  • Haʻihaʻi paha nā postgres. Hiki iā ia ke haku a i ʻole he kope, hiki ʻole paha kekahi o lākou.
  • ʻO ka Patroni ponoʻī paha e haki.
  • Hiki ke haki ka DCS kahi i mālama ʻia ai.
  • A hiki i ka pūnaewele ke haki.

ʻO kēia mau mea a pau aʻu e noʻonoʻo ai ma ka hōʻike.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

E noʻonoʻo wau i nā hihia ke lilo lākou i mea paʻakikī, ʻaʻole mai ka manaʻo e pili ana ka hihia i nā mea he nui. A mai ka manaʻo o nā manaʻo kumuhana, ua paʻakikī kēia hihia iaʻu, ua paʻakikī ke wehe ʻana ...

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A ʻo ka hihia mua ka maʻalahi loa. ʻO kēia ka hihia i ka wā i lawe ai mākou i kahi pūʻulu waihona a kau i kā mākou waihona DCS ma ka pūʻulu like. ʻO kēia ka hewa maʻamau. He kuhi hewa kēia i ke kūkulu hale ʻana, ʻo ia hoʻi, ka hoʻohui ʻana i nā ʻāpana like ʻole ma kahi hoʻokahi.

No laila, aia kahi faila, e hele kāua e hana i ka mea i hana ʻia.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A eia mākou hoihoi i ka wā i loaʻa ai ka faila. ʻO ia hoʻi, hoihoi mākou i kēia manawa i ka wā i hoʻololi ai ka mokuʻāina cluster.

Akā ʻaʻole hikiwawe ka mea faila, ʻo ia hoʻi, ʻaʻole ia e lawe i kahi manawa, hiki ke hoʻopaneʻe. Hiki ke lōʻihi.

No laila, he manawa hoʻomaka a he manawa hoʻopau, ʻo ia hoʻi, he hanana mau. A hoʻokaʻawale mākou i nā hanana āpau i ʻekolu mau manawa: loaʻa iā mākou ka manawa ma mua o ka faila, i ka wā o ka faila a ma hope o ka faila. ʻO ia hoʻi, ke noʻonoʻo nei mākou i nā hanana āpau i kēia kaʻina manawa.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A ʻo ka mea mua, inā loaʻa kahi faila, ʻimi mākou i ke kumu o ka mea i hana ʻia, he aha ke kumu o ka mea i alakaʻi i ka faila.

Inā mākou e nānā i nā lāʻau, e lilo lākou i mau lāʻau Patroni maʻamau. 'Ōleloʻo ia iā mākou i loko o lākou ua lilo ke kikowaena i haku, a ua hala ke kuleana o ka haku i kēia node. Eia ka mea i hoailonaia.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A laila, pono mākou e hoʻomaopopo i ke kumu i hana ʻia ai ka faila, ʻo ia hoʻi nā hanana i hiki ai ke neʻe i ka kuleana kumu mai kekahi node a i kekahi. A i kēia hihia, maʻalahi nā mea a pau. Loaʻa iā mākou kahi hewa i ka launa pū ʻana me ka ʻōnaehana mālama. Ua ʻike ka haku ʻaʻole hiki iā ia ke hana pū me DCS, ʻo ia hoʻi, aia kekahi ʻano pilikia me ka pilina. A ʻōlelo ʻo ia ʻaʻole hiki iā ia ke lilo i haku a haʻalele. ʻO kēia laina "hoʻohaʻahaʻa iā ʻoe iho" ʻōlelo pololei kēlā.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Inā mākou e nānā i nā hanana ma mua o ka faila, hiki iā mākou ke ʻike ma laila i nā kumu i pilikia ai ka hoʻomau ʻana o ka wizard.

Inā mākou e nānā i nā lāʻau Patroni, e ʻike mākou he nui nā hewa, nā manawa manawa, ʻo ia hoʻi, ʻaʻole hiki i ka luna Patroni ke hana me DCS. I kēia hihia, ʻo kēia ka luna Kanikela, e kamaʻilio nei ma ke awa 8500.

A ʻo ka pilikia ma ʻaneʻi ʻo ka holo ʻana o Patroni a me ka waihona ma ka pūʻali hoʻokahi. A ua hoʻokuʻu ʻia nā kikowaena Consul ma ka node hoʻokahi. Ma ka hana ʻana i kahi ukana ma ke kikowaena, ua hana mākou i nā pilikia no nā kikowaena Consul pū kekahi. ʻAʻole hiki iā lākou ke kamaʻilio pono.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ma hope o kekahi manawa, i ka emi ʻana o ka ukana, hiki i kā mākou Patroni ke kamaʻilio hou me nā ʻelele. Hoʻomaka hou ka hana maʻamau. A ua lilo hou ke kikowaena Pgdb-2 i haku. ʻO ia hoʻi, aia kahi kī liʻiliʻi, no laila ua haʻalele ka node i nā mana o ka haku, a laila lawe hou iā lākou, ʻo ia hoʻi, ua hoʻi nā mea a pau e like me ia.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A hiki ke manaʻo ʻia he ala hoʻopunipuni, a i ʻole hiki ke manaʻo ʻia ua hana pono ʻo Patroni i nā mea āpau. ʻO ia hoʻi, ua ʻike ʻo ia ʻaʻole hiki iā ia ke mālama i ke kūlana o ka pūʻulu a wehe i kāna mana.

A eia ka pilikia ma muli o ke ʻano o nā kikowaena Kanikela ma ka lako like me nā kumu. No laila, ʻo kēlā me kēia ukana: inā ʻo ia ka ukana ma nā disks a i ʻole nā ​​​​mea hana, pili pū ia i ka launa pū me ka pūʻulu Consul.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A ua hoʻoholo mākou ʻaʻole ia e noho pū, ua hoʻokaʻawale mākou i kahi hui ʻokoʻa no ke Kanikela. A ua hana mua ʻo Patroni me kahi Kanikela ʻokoʻa, ʻo ia hoʻi, he pūʻulu Postgres ʻokoʻa, he pūʻulu Kanikela ʻokoʻa. He aʻo kumu kēia no ka lawe ʻana a mālama i kēia mau mea a pau i ʻole e noho pū.

Ma ke ʻano he koho, hiki iā ʻoe ke wili i nā ʻāpana ttl, loop_wait, retry_timeout, ʻo ia hoʻi e hoʻāʻo e ola i kēia mau puʻupuʻu haʻahaʻa pōkole ma ka hoʻonui ʻana i kēia mau ʻāpana. Akā ʻaʻole kēia ka koho kūpono loa, no ka mea hiki i kēia ukana ke lōʻihi i ka manawa. A e hele wale mākou ma waho o kēia mau palena o kēia mau palena. A ʻaʻole paha e kōkua maoli kēlā.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

ʻO ka pilikia mua, e like me kāu e hoʻomaopopo ai, he maʻalahi. Lawe mākou a hoʻokomo i ka DCS me ke kumu, loaʻa iā mākou kahi pilikia.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ua like ka pilikia lua me ka pilikia mua. Ua like ia i ka loaʻa hou ʻana o nā pilikia interoperability me ka ʻōnaehana DCS.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Inā mākou e nānā i nā lāʻau, ʻike mākou ua loaʻa hou iā mākou ka hewa kamaʻilio. A ʻōlelo ʻo Patroni ʻaʻole hiki iaʻu ke launa pū me DCS no laila ke hele nei ka haku o kēia manawa i ke ʻano replica.

Lilo ka haku kahiko i kope, eia ka hana ana o Patroni, e like me ka pono. Holo ia pg_rewind e hoʻihoʻi i ka log transaction a laila hoʻopili i ka haku hou e hopu i ka haku hou. Ma ʻaneʻi hana ʻo Patroni, e like me kāna pono.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ma ʻaneʻi e ʻimi ai i kahi ma mua o ka faila, ʻo ia hoʻi nā hewa i loaʻa iā mākou kahi faila. A ma kēia ʻano, ʻoi aku ka maʻalahi o nā log Patroni e hana pū me. Kākau ʻo ia i nā memo like i kekahi manawa. A inā mākou e hoʻomaka wikiwiki i kēia mau lāʻau, a laila e ʻike mākou mai nā lāʻau i hoʻololi ʻia nā lāʻau, ʻo ia hoʻi ua hoʻomaka kekahi mau pilikia. Hoʻi koke mākou i kēia wahi, ʻike i ka mea e hana nei.

A ma kahi kūlana maʻamau, ʻano like ke ʻano o nā lāʻau. Ua nānā ʻia ka mea nona ka laka. A inā ua loli ka mea nona, a laila hiki mai kekahi mau hanana e pono ai ʻo Patrona e pane aku. Akā i kēia hihia, maikaʻi mākou. Ke ʻimi nei mākou i kahi i hoʻomaka ai nā hewa.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A i ka ʻōwili ʻana i kahi i hoʻomaka ai nā hewa, ʻike mākou ua loaʻa iā mākou kahi auto-fileover. A no ka mea ua pili kā mākou mau hewa i ka launa pū ʻana me DCS a i kā mākou hihia ua hoʻohana mākou i ke Kanikela, nānā pū mākou i nā lāʻau Kanikela, ka mea i hana ʻia ma laila.

Ma ka hoʻohālikelike ʻana i ka manawa o ka waihona a me ka manawa i loko o nā lāʻau Kanikela, ʻike mākou ua hoʻomaka ko mākou mau hoalauna i ka hui ʻo ke Kanikela e kanalua i ke ola ʻana o nā lālā ʻē aʻe o ka hui Kanikela.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A inā ʻoe e nānā i nā lāʻau o nā ʻelele ʻē aʻe o ke Kanikela, hiki iā ʻoe ke ʻike i ke ʻano o ka hāʻule ʻana o ka pūnaewele i laila. A ke kanalua nei na lala a pau o ka hui Kanikela i ke ola o kekahi i kekahi. A ʻo kēia ka mea i hoʻoikaika i ka faila.

Inā ʻoe e nānā i ka mea i hana ʻia ma mua o kēia mau hewa, hiki iā ʻoe ke ʻike aia nā ʻano hewa like ʻole, no ka laʻana, ka palena manawa, hāʻule ka RPC, ʻo ia hoʻi, aia kekahi ʻano pilikia i ka launa pū ʻana o nā lālā hui o ke Kanikela me kekahi. .

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

ʻO ka pane maʻalahi ka hoʻoponopono ʻana i ka pūnaewele. Akā iaʻu, e kū ana ma ka podium, maʻalahi ke ʻōlelo i kēia. Akā ʻo nā kūlana ʻaʻole hiki i ka mea kūʻai aku ke hoʻoponopono i ka pūnaewele. Noho ʻo ia i kahi DC a ʻaʻole hiki iā ia ke hoʻoponopono i ka pūnaewele, pili i nā mea hana. A no laila pono kekahi mau koho ʻē aʻe.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Aia nā koho:

  • ʻO ka koho maʻalahi, i kākau ʻia, i koʻu manaʻo, ʻoiai i ka palapala, ʻo ia ka hoʻopau ʻana i nā loiloi Consul, ʻo ia hoʻi, e hoʻohele wale i kahi ʻano ʻole. A ke haʻi aku nei mākou i ka ʻelele Kanikela ʻaʻole e hoʻohana i nā loiloi. Me kēia mau loiloi, hiki iā mākou ke haʻalele i kēia mau ʻino pūnaewele a ʻaʻole hoʻomaka i kahi faila.
  • ʻO kahi koho ʻē aʻe e pālua i ka nānā ʻana i ka raft_multiplier. He palena kēia o ke kikowaena Consul pono'ī. Ma ka paʻamau, ua hoʻonoho ʻia i ka 5. Manaʻo ʻia kēia waiwai e ka palapala no ka hoʻonohonoho ʻana i nā kaiapuni. ʻOiaʻiʻo, pili kēia i ka pinepine o ka leka uila ma waena o nā lālā o ka pūnaewele Consul. ʻO ka ʻoiaʻiʻo, pili kēia ʻāpana i ka wikiwiki o ke kamaʻilio lawelawe ma waena o nā lālā o ka pūʻulu Consul. A no ka hana ʻana, ua ʻōlelo ʻia e hōʻemi ia i mea e hoʻololi pinepine ai nā nodes i nā memo.
  • ʻO kahi koho ʻē aʻe a mākou i manaʻo ai, ʻo ia ka hoʻonui ʻana i ka mea nui o nā kaʻina Consul ma waena o nā kaʻina hana ʻē aʻe no ka mea hoʻonohonoho kaʻina hana. Aia kahi ʻāpana "maikaʻi", hoʻoholo wale ia i ka mea nui o nā kaʻina hana i mālama ʻia e ka mea hoʻonohonoho OS i ka wā e hoʻonohonoho ai. Ua hoemi pu makou i ka waiwai maikai no na Agena Kanikela, i.e. hoʻonui i ka mea nui i hiki i ka ʻōnaehana hana ke hāʻawi i nā kaʻina Consul i ka manawa e hana a hoʻokō i kā lākou code. I ko mākou hihia, ua hoʻoponopono kēia i ko mākou pilikia.
  • ʻO kahi koho ʻē aʻe ʻaʻole e hoʻohana i ke Kanikela. He hoaaloha koʻu i kākoʻo nui iā Etcd. A hoopaʻapaʻa mau mākou me ia ʻo wai ka maikaʻi o Etcd a i ʻole Kanikela. Akā ma ke ʻano o ka mea ʻoi aku ka maikaʻi, ʻae like mākou me ia he ʻelele ke Kanikela e holo ana ma kēlā me kēia node me kahi waihona. ʻO ia hoʻi, ʻo ka launa pū ʻana o Patroni me ka pūʻulu Kanikela ma o kēia ʻelele. A lilo kēia mea hana i bottleneck. Inā loaʻa kekahi mea i ka ʻelele, ʻaʻole hiki iā Patroni ke hana hou me ka pūʻulu Kanikela. A ʻo kēia ka pilikia. ʻAʻohe luna ma ka papahana Etcd. Hiki iā Patroni ke hana pololei me kahi papa inoa o nā kikowaena Etcd a kamaʻilio pū me lākou. Ma kēia ʻano, inā ʻoe e hoʻohana iā Etcd i kāu hui, a laila ʻoi aku ka maikaʻi o Etcd ma mua o ke Consul. Akā ʻo mākou i kā mākou mea kūʻai aku e kaupalena mau ʻia e nā mea a ka mea kūʻai aku i koho ai a hoʻohana ai. A loaʻa iā mākou ke Kanikela no ka hapa nui o nā mea kūʻai aku.
  • A ʻo ka helu hope e hoʻoponopono hou i nā koina parameter. Hiki iā mākou ke hoʻokiʻekiʻe i kēia mau palena me ka manaʻolana e pōkole kā mākou pilikia pūnaewele no ka manawa pōkole a ʻaʻole e hāʻule i waho o ka laulā o kēia mau palena. Ma kēia ala hiki iā mākou ke hōʻemi i ka huhū o Patroni i autofile inā loaʻa kekahi pilikia pūnaewele.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Manaʻo wau he nui ka poʻe e hoʻohana iā Patroni i kamaʻāina i kēia kauoha.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Hōʻike kēia kauoha i ke kūlana o kēia manawa o ka pūʻulu. A i ka nānā mua ʻana, ʻano maʻamau paha kēia kiʻi. He haku kā mākou, he kope kā mākou, ʻaʻohe lag replication. Akā, he mea maʻamau kēia kiʻi a hiki i ka wā e ʻike ai mākou he ʻekolu nodes kēia puʻupuʻu, ʻaʻole ʻelua.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

No laila, aia kahi autofile. A ma hope o kēia autofile, nalowale kā mākou kope. Pono mākou e ʻike i ke kumu o kona nalowale ʻana a hoʻihoʻi mai iā ia, hoʻihoʻi iā ia. A hele hou mākou i nā lāʻau a ʻike i ke kumu i loaʻa ai iā mākou kahi auto-fileover.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

I kēia hihia, ua lilo ka lua o ke kope i haku. Aia nō ma ʻaneʻi.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A pono mākou e nānā i ke kope i hāʻule a ʻaʻole i loko o ka pūpū. Wehe mākou i nā lāʻau Patroni a ʻike mākou ua pilikia mākou i ka wā o ka hoʻopili ʻana i ka pūʻulu ma ke kahua pg_rewind. No ka hoʻopili ʻana i ka pūʻulu, pono ʻoe e hoʻihoʻi i ka log transaction, e noi i ka log transaction i koi ʻia mai ka haku, a hoʻohana iā ia e hopu i ka haku.

I kēia hihia, ʻaʻohe o mākou moʻolelo kālepa a ʻaʻole hiki ke hoʻomaka ke kope. No laila, hoʻopau mākou iā Postgres me kahi hewa. A no laila ʻaʻole i loko o ka pūʻulu.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Pono mākou e hoʻomaopopo i ke kumu ʻaʻole i loko o ka pūʻulu a no ke kumu ʻaʻohe lāʻau. Hele mākou i ka haku hou a nānā i kāna mea i loko o nā lāʻau. ʻIke ʻia i ka wā i hana ʻia ai ka pg_rewind, ua loaʻa kahi māka. A ua kapa hou ʻia kekahi o nā moʻolelo kālepa kahiko. I ka wā i hoʻāʻo ai ka haku kahiko e hoʻopili i ka haku hou a nīnau i kēia mau lāʻau, ua kapa hou ʻia lākou, ʻaʻole i ola.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ua hoʻohālikelike au i nā kaha manawa i ka wā i hana ʻia ai kēia mau hanana. A ma laila ka ʻokoʻa he 150 milliseconds, ʻo ia hoʻi, ka helu helu i hoʻopau ʻia i 369 milliseconds, ua kapa hou ʻia nā ʻāpana WAL. A ʻoiaʻiʻo ma 517, ma hope o 150 milliseconds, hoʻomaka ka rewind ma ka replica kahiko. ʻO ia hoʻi, ua lawa ka 150 milliseconds no mākou i hiki ʻole i ka replica ke hoʻopili a loaʻa.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

He aha nā koho?

Ua hoʻohana mua mākou i nā slot replication. Manaʻo mākou ua maikaʻi. ʻOiai ma ka pae mua o ka hana ua hoʻopau mākou i nā slots. Ua manaʻo mākou inā e hōʻiliʻili nā slots i nā ʻāpana WAL he nui, hiki iā mākou ke hāʻule i ka haku. E hāʻule ʻo ia. Ua pilikia mākou no kekahi manawa me ka ʻole o nā slots. A ʻike mākou he pono nā slots, hoʻihoʻi mākou i nā slots.

Akā aia kekahi pilikia ma ʻaneʻi, ke hele ka haku i ka replica, hoʻopau ʻo ia i nā slots a holoi i nā ʻāpana WAL me nā slots. A no ka hoʻopau ʻana i kēia pilikia, ua hoʻoholo mākou e hāpai i ka ʻāpana wal_keep_segments. Hoʻololi ia i nā ʻāpana 8. Hoʻokiʻekiʻe mākou i 1 a nānā i ka nui o ke kaʻawale i loaʻa iā mākou. A hāʻawi mākou i 000 gigabytes no ka wal_keep_segments. ʻO ia hoʻi, i ka wā e hoʻololi ai, loaʻa iā mākou kahi mālama o 16 gigabytes o nā moʻolelo kālepa ma nā nodes āpau.

A ʻoi aku - pili ia no nā hana mālama lōʻihi. E ʻōlelo kākou pono e hoʻohou i kekahi o nā replicas. A makemake mākou e hoʻopau. Pono mākou e hōʻano hou i ka polokalamu, ʻo ka ʻōnaehana hana paha, kahi mea ʻē aʻe. A ke hoʻopau mākou i kahi kope, wehe ʻia ka slot no kēlā kope. A inā mākou e hoʻohana i kahi wal_keep_segments liʻiliʻi, a laila me ka lōʻihi o ka haʻalele ʻana i kahi kope, e nalowale nā ​​​​palapala kalepa. E hoʻokiʻekiʻe mākou i kahi kope, e noi ia i kēlā mau lāʻau kālepa i kahi i kū ai, akā ʻaʻole paha lākou ma ka haku. A ʻaʻole hiki i ka replica ke hoʻohui. No laila, mālama mākou i kahi waihona nui o nā nūpepa.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Loaʻa iā mākou kahi kahua hana. Aia nā papahana e holo nei.

Aia kahi faila. Ua komo mākou a nānā - ua hoʻonohonoho pono nā mea a pau, ua paʻa nā kope, ʻaʻohe lag replication. ʻAʻohe hewa i loko o nā lāʻau, ua pololei nā mea a pau.

Ke'ōlelo nei ka hui huahana e loaʻa kekahi mauʻikepili, akāʻike mākou mai kahi kumu, akāʻaʻole mākou iʻike i loko o ka waihona. A pono mākou e hoʻomaopopo i ka mea i loaʻa iā lākou.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ua maopopo ua hala ka pg_rewind iā lākou. Hoʻomaopopo koke mākou i kēia, akā hele mākou e ʻike i ka mea e hana nei.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

I loko o nā lāʻau, hiki iā mākou ke ʻike mau i ka wā i loaʻa ai ka faila, ka mea i lilo i haku, a hiki iā mākou ke hoʻoholo ʻo wai ka haku kahiko a i kona wā i makemake ai e lilo i kope, ʻo ia hoʻi, pono mākou i kēia mau lāʻau e ʻike ai i ka nui o nā lāʻau kālepa. ua nalowale.

Ua hoʻomaka hou ko mākou haku kahiko. A ua hoʻopaʻa inoa ʻia ʻo Patroni ma ka autorun. Hoʻokuʻu ʻia ʻo Patroni. A laila hoʻomaka ʻo ia i Postgres. ʻOi aku ka pololei, ma mua o ka hoʻomaka ʻana i nā Postgres a ma mua o ka hana ʻana i kope, ua hoʻokumu ʻo Patroni i ka hana pg_rewind. No laila, holoi ʻo ia i kahi ʻāpana o nā moʻolelo kālepa, hoʻoiho i nā mea hou a pili. Ma ʻaneʻi ua hana akamai ʻo Patroni, ʻo ia hoʻi, e like me ka mea i manaʻo ʻia. Ua hoʻihoʻi ʻia ka hui. Loaʻa iā mākou he 3 nodes, ma hope o ka filer 3 nodes - maikaʻi nā mea a pau.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ua nalowale kekahi mau ʻikepili. A pono mākou e hoʻomaopopo i ka nui o kā mākou nalowale. Ke ʻimi nei mākou i ka manawa i loaʻa iā mākou kahi rewind. Hiki iā mākou ke loaʻa iā ia i loko o ia mau puke pai puke. Hoʻomaka ʻo Rewind, hana i kekahi mea ma laila a pau.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Pono mākou e ʻimi i ke kūlana ma ka log transaction kahi i haʻalele ai ka haku kahiko. I kēia hihia, ʻo ia ka māka. A pono mākou i kahi hōʻailona ʻelua, ʻo ia hoʻi, ka mamao e ʻokoʻa ai ka haku kahiko mai ka mea hou.

Lawe mākou i ka pg_wal_lsn_diff maʻamau a hoʻohālikelike i kēia mau māka ʻelua. A i kēia hihia, loaʻa iā mākou he 17 megabytes. He nui a liʻiliʻi paha, hoʻoholo kēlā me kēia kanaka nona iho. No ka mea, ʻaʻole nui ka 17 megabytes no kekahi, no kekahi he nui a ʻae ʻole. Maanei, hoʻoholo kēlā me kēia kanaka nona iho e like me nā pono o ka ʻoihana.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Akā, he aha kā mākou i ʻike ai no mākou iho?

ʻO ka mea mua, pono mākou e hoʻoholo no mākou iho - pono mākou iā Patroni e autostart ma hope o ka hoʻomaka hou ʻana o ka ʻōnaehana? Ua hele pinepine mākou i ka haku kahiko, e ʻike i ka lōʻihi o kona hele ʻana. E nānā paha i nā ʻāpana o ka log transaction, e ʻike i ka mea i laila. A no ka hoʻomaopopo ʻana inā hiki iā mākou ke nalowale i kēia ʻikepili a i ʻole pono mākou e holo i ka haku kahiko ma ke ʻano kūʻokoʻa i mea e huki ai i kēia ʻikepili.

A ma hope wale nō, pono mākou e hoʻoholo inā hiki iā mākou ke hoʻolei i kēia ʻikepili a i ʻole hiki iā mākou ke hoʻihoʻi, hoʻohui i kēia node ma ke ʻano he kope i kā mākou hui.

Eia kekahi, aia kahi ʻāpana "maximum_lag_on_failover". ʻO ka mea paʻamau, inā lawelawe kaʻu hoʻomanaʻo iaʻu, he 1 megabyte ka waiwai o kēia ʻāpana.

Pehea kana hana ana? Inā he 1 megabyte o ka ʻikepili ma hope o kā mākou kope i ka lag replication, a laila ʻaʻole komo kēia kope i ke koho balota. A inā hiki koke mai kahi faila, nānā ʻo Patroni i nā kope e waiho ana ma hope. Inā aia lākou ma hope o ka nui o nā loina kālepa, ʻaʻole hiki iā lākou ke lilo i haku. He hiʻohiʻona palekana maikaʻi loa kēia e pale ai iā ʻoe mai ka nalowale ʻana i ka nui o ka ʻikepili.

Akā aia kahi pilikia i ka hoʻopili hou ʻana i ka hui ʻo Patroni a me DCS i hoʻonui ʻia i kekahi manawa. Manaʻo wau ʻo 30 kekona ka waiwai ttl paʻamau.

No laila, aia paha kahi kūlana kahi hoʻokahi lag replication no nā replicas ma DCS, akā ʻo ka ʻoiaʻiʻo paha he lag ʻokoʻa loa a ʻaʻole paha he lag, ʻo ia hoʻi, ʻaʻole kēia mea i ka manawa maoli. A ʻaʻole ia e hōʻike mau i ke kiʻi maoli. A ʻaʻole pono ka hana ʻana i nā loina nani ma luna o ia mea.

A mau ka pilikia o ka poho. A i ka hihia maikaʻi loa, hoʻokahi kumu, a ma ka hihia maʻamau, ʻo kekahi kumu. ʻO ia hoʻi, ke hoʻolālā mākou i ka hoʻokō ʻana iā Patroni a loiloi i ka nui o ka ʻikepili hiki iā mākou ke nalowale, pono mākou e hilinaʻi i kēia mau ʻōkuhi a noʻonoʻo i ka nui o ka ʻikepili hiki iā mākou ke nalowale.

A he nūhou maikaʻi. Ke hele ka haku kahiko, hiki iā ia ke hele i mua ma muli o kekahi mau kaʻina hana hope. ʻO ia hoʻi, aia kekahi ʻano autovacuum, kākau ʻo ia i ka ʻikepili, mālama iā lākou i ka log transaction. A hiki iā mākou ke haʻalele a nalowale i kēia ʻikepili. ʻAʻohe pilikia i kēia.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A penei ke ʻano o nā lāʻau inā hoʻonohonoho ʻia ka maximum_lag_on_failover a ua loaʻa kahi faila, a pono ʻoe e koho i kahi haku hou. Manaʻo ka replica iā ia iho he hiki ʻole ke komo i ke koho balota. A hōʻole ʻo ia e komo i ka heihei no ke alakaʻi. A ke kali nei ʻo ia i kahi haku hou e koho ʻia, i hiki iā ia ke hoʻohui iā ia. He ana hou keia no ka poho o ka ikepili.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Eia kā mākou hui huahana i kākau e pilikia ana kā lākou huahana me Postgres. I ka manawa like, ʻaʻole hiki ke komo i ka haku ponoʻī, no ka mea ʻaʻole i loaʻa ma SSH. A ʻaʻole hiki mai ka autofile.

Ua koi ʻia kēia mea hoʻokipa e hoʻomaka hou. Ma muli o ka reboot, ua loaʻa kahi faila auto, ʻoiai ua hiki ke hana i kahi faila auto manual, e like me kaʻu e ʻike nei. A ma hope o ka reboot, ke hele nei mākou e ʻike i nā mea i loaʻa iā mākou me ka haku o kēia manawa.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

I ka manawa like, ua ʻike mua mākou ua loaʻa iā mākou nā pilikia me nā disks, ʻo ia hoʻi, ua ʻike mua mākou mai ka nānā ʻana i kahi e ʻeli ai a me ka mea e ʻimi ai.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ua komo mākou i loko o ka postgres log, hoʻomaka mākou e ʻike i ka mea e hana nei ma laila. Ua ʻike mākou i nā hana i hala ma laila no hoʻokahi, ʻelua, ʻekolu kekona, ʻaʻole ia he mea maʻamau. Ua ʻike mākou e hoʻomaka mālie ana kā mākou autovacuum. A ʻike mākou i nā faila manawa ma ka disk. ʻO ia, he mau hōʻailona kēia o nā pilikia me nā disks.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ua nānā mākou i ka ʻōnaehana dmesg (kernel log). A ua ʻike mākou ua pilikia mākou me kekahi o nā disks. He polokalamu Raid ka subsystem disk. Ua nānā mākou i /proc/mdstat a ʻike mākou ua nalo mākou i hoʻokahi kaʻa. ʻO ia hoʻi, aia kahi Raid o 8 disks, nalo mākou i hoʻokahi. Inā ʻoe e nānā pono i ka paheʻe, a laila ma ka puka e ʻike ʻoe ʻaʻole mākou sde ma laila. Iā mākou, ʻōlelo kūlana, ua haʻalele ka disk. Ua hoʻoulu kēia i nā pilikia disk, a ua loaʻa pū nā noi i nā pilikia i ka hana ʻana me ka puʻupuʻu Postgres.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A i kēia hihia, ʻaʻole e kōkua ʻo Patroni iā ​​mākou ma kekahi ʻano, no ka mea, ʻaʻohe kuleana o Patroni i ka nānā ʻana i ke kūlana o ka server, ka mokuʻāina o ka disk. A pono mākou e nānā i kēlā mau kūlana ma ka nānā ʻana i waho. Hoʻohui koke mākou i ka nānā ʻana i ka disk i ka nānā ʻana o waho.

A aia kekahi manaʻo - hiki i ka pā a i ʻole nā ​​polokalamu kiaʻi ke kōkua iā mākou? Ua manaʻo mākou ʻaʻole ʻo ia e kōkua mai iā mākou i kēia hihia, no ka mea, i ka wā o nā pilikia, hoʻomau ʻo Patroni i ka launa pū ʻana me ka hui DCS a ʻaʻole i ʻike i kekahi pilikia. ʻO ia hoʻi, mai ka manaʻo o DCS a me Patroni, ua maikaʻi nā mea a pau me ka puʻupuʻu, ʻoiai he mau pilikia me ka disk, aia nā pilikia me ka loaʻa o ka waihona.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

I koʻu manaʻo, ʻo kēia kekahi o nā pilikia ʻē aʻe aʻu i noiʻi ai no ka manawa lōʻihi loa, ua heluhelu au i nā lāʻau he nui, koho hou a kapa ʻia he simulator cluster.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

ʻO ka pilikia, ʻaʻole hiki i ka haku kahiko ke lilo i kope maʻamau, ʻo ia hoʻi, ua hoʻomaka ʻo Patroni, ua hōʻike ʻo Patroni aia kēia node ma ke ʻano he kope, akā i ka manawa like ʻaʻole ia he kope maʻamau. I kēia manawa e ʻike ʻoe i ke kumu. ʻO kēia kaʻu i mālama ai mai ka nānā ʻana i kēlā pilikia.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A pehea i hoʻomaka ai? Hoʻomaka ia, e like me ka pilikia ma mua, me nā disc brakes. Ua hoʻopaʻa mākou i kekona, ʻelua.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ua haki nā pilina, ʻo ia hoʻi, ua haehae ʻia nā mea kūʻai aku.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Loaʻa nā paʻa o nā ʻano ʻano like ʻole.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A, no laila, ʻaʻole pane nui ka subsystem disk.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A ʻo ka mea pohihihi loa iaʻu, ʻo ia ka noi pani koke i hiki mai. ʻEkolu mau ʻano pani pani ʻo Postgres:

  • He mea maikaʻi ke kali mākou i nā mea kūʻai aku a pau e hoʻokaʻawale iā lākou iho.
  • He wikiwiki ke koi mākou i nā mea kūʻai aku e wehe no ka mea e pani ana mākou.
  • A koke. I kēia hihia, ʻaʻole ʻōlelo koke ʻo ia i nā mea kūʻai aku e pani, e pani wale ia me ka ʻole o ka ʻōlelo ʻana. A i nā mea kūʻai aku a pau, ua hoʻouna mua ka ʻōnaehana hana i kahi leka RST (he leka TCP ua hoʻopau ʻia ka pilina a ʻaʻohe mea e hopu ai ka mea kūʻai aku).

Na wai i hoʻouna i kēia hōʻailona? ʻAʻole hoʻouna nā kaʻina hana hope o Postgres i kēlā mau hōʻailona i kekahi i kekahi, ʻo ia hoʻi, he kill-9 kēia. ʻAʻole lākou e hoʻouna i kēlā mau mea i kekahi i kekahi, ua pane wale lākou i kēlā mau mea, ʻo ia hoʻi, he hoʻomaka hou kēia o Postgres. Nawai i hoouna mai, aole au i ike.

Ua nānā au i ke kauoha "hope" a ʻike wau i kekahi kanaka i komo pū i kēia kikowaena me mākou, akā hilahila wau e nīnau i kahi nīnau. Ua pepehi ʻia paha -9. E ʻike au i ka pepehi -9 i loko o nā lāʻau, no ka mea Ua ʻōlelo ʻo Postgres ua pepehi -9, akā ʻaʻole wau i ʻike i loko o nā lāʻau.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ke nānā hou aku nei au, ʻike wau ʻaʻole kākau ʻo Patroni i ka log no ka manawa lōʻihi - 54 kekona. A inā mākou e hoʻohālikelike i ʻelua mau kaha manawa, ʻaʻohe memo ma kahi o 54 kekona.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A i kēia manawa aia kahi autofile. Ua hana hou ʻo Patroni ma ʻaneʻi. ʻAʻole i loaʻa ko mākou haku kahiko, ua loaʻa kekahi mea iā ia. A hoomaka ke koho haku hou. Ua holo pono na mea a pau maanei. Ua lilo kā mākou pgsql01 i alakaʻi hou.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Loaʻa iā mākou kahi kope i lilo i haku. A aia kahi pane ʻelua. A aia nā pilikia me ka kope ʻelua. Ua hoʻāʻo ʻo ia e hoʻonohonoho hou. I koʻu hoʻomaopopo ʻana, ua hoʻāʻo ʻo ia e hoʻololi i ka recovery.conf, e hoʻomaka hou i ka Postgres a hoʻopili i ka haku hou. Kākau ʻo ia i nā memo i kēlā me kēia 10 kekona āna e hoʻāʻo nei, akā ʻaʻole ia i kūleʻa.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A i kēia mau hoʻāʻo ʻana, hiki mai kahi hōʻailona pani koke i ka haku kahiko. Hoʻomaka hou ka haku. A pau ka ho'ōla hou ʻana no ka mea e hoʻomaka hou ka haku kahiko. ʻO ia hoʻi, ʻaʻole hiki i ke kope ke hoʻopili iā ia, no ka mea aia i ke ʻano pani.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

I kekahi manawa, ua hana ia, akā, ʻaʻole i hoʻomaka ka hana hou ʻana.

ʻO kaʻu manaʻo wale nō aia kahi helu haku kahiko ma recovery.conf. A i ka puka ʻana mai o kahi haku hou, ua hoʻāʻo ka lua o ka kope e hoʻopili i ka haku kahiko.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

I ka wā i hoʻomaka ai ʻo Patroni i ke kope ʻelua, ua hoʻomaka ka node akā ʻaʻole hiki ke hana hou. A ua hoʻokumu ʻia kahi lag replication, e like me kēia. ʻO ia hoʻi, ua paʻa nā puʻupuʻu ʻekolu, akā ua lohi ka lua ma hope.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

I ka manawa like, inā ʻoe e nānā i nā lāʻau i kākau ʻia, ʻike ʻoe ʻaʻole hiki ke hoʻomaka ka hoʻopiʻi ʻana no ka mea ʻokoʻa nā loina kālepa. A ʻo kēlā mau loina kālepa i hāʻawi ʻia e ka haku, i ʻōlelo ʻia ma recovery.conf, ʻaʻole kūpono i kā mākou node o kēia manawa.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A eia wau i hana hewa. Pono wau e hele mai e ʻike i ka mea i recovery.conf e hoʻāʻo i koʻu kuhiakau e pili ana mākou i ka haku hewa. Akā, ke hana wale nei au i kēia a ʻaʻole i loaʻa iaʻu, a i ʻole ua ʻike au ua lohi ka replica a pono e hoʻopiha hou ʻia, ʻo ia hoʻi, ua hana ʻole wau. ʻO koʻu hui kēia.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ma hope o 30 mau minuke, ua hiki mai ke alakaʻi, ʻo ia hoʻi, ua hoʻomaka hou au iā Patrona ma ke kope. Ua hoʻopau wau, manaʻo wau e hoʻopiha hou ʻia. A manaʻo wau - e hoʻomaka hou wau iā Patroni, malia paha e puka mai kekahi mea maikaʻi. Hoʻomaka ka hoʻōla. A ua wehe ʻia ke kumu, ua mākaukau e ʻae i nā pilina.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ua hoʻomaka ka hana hou ʻana. Akā i hoʻokahi minute ma hope mai, ua hāʻule ʻo ia me kahi kuhi ʻaʻole kūpono nā lāʻau kālepa iā ia.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ua manaʻo wau e hoʻomaka hou. Ua hoʻomaka hou au iā Patroni, ʻaʻole wau i hoʻomaka hou i ka Postgres, akā ua hoʻomaka hou ʻo Pattroni me ka manaʻolana e hoʻomaka ana ia i ka waihona.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Hoʻomaka hou ka hana hou ʻana, akā ʻokoʻa nā māka i loko o ka log transaction, ʻaʻole like lākou me ka hoʻomaka mua. Ua kū hou ka hana hou ʻana. A ua ʻokoʻa iki ka ʻōlelo. A ʻaʻole i ʻike nui iaʻu.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A laila hiki mai iaʻu - pehea inā e hoʻomaka hou wau i ka Postgres, i kēia manawa ke hana nei au i kahi kikoʻī ma ka haku o kēia manawa e neʻe i ke kiko i ka log transaction i mua iki i hoʻomaka ka hoʻihoʻi ʻana mai kahi manawa ʻē aʻe? Eia hou, loaʻa iā mākou nā waihona o WAL.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Hoʻomaka hou au iā Patroni, hana i ʻelua mau mākaʻikaʻi ma ka haku, ʻelua mau wahi hoʻomaka hou ma ka replica i ka wā i wehe ai. A ua kōkua. Ua noʻonoʻo wau no ka manawa lōʻihi no ke aha i kōkua ai a pehea e hana ai. A hoʻomaka ke kope. A ʻaʻole i haehae hou ʻia ke kope.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

ʻO ia pilikia iaʻu, ʻo ia kekahi o nā mea pohihihi loa, a ke kānalua nei au i ka mea i hana maoli ʻia ma laila.

He aha nā hopena ma aneʻi? Hiki iā Patroni ke hana e like me ka mea i manaʻo ʻia a ʻaʻohe hewa. Akā i ka manawa like, ʻaʻole kēia he 100% hōʻoia e maikaʻi nā mea āpau me mākou. Hiki ke hoʻomaka ka replica, akā aia ma kahi kūlana semi-working, a ʻaʻole hiki i ka noi ke hana me ia replica, no ka mea, aia nā ʻikepili kahiko.

A ma hope o ka filer, pono ʻoe e nānā i ka pololei o nā mea āpau me ka cluster, ʻo ia hoʻi, aia ka helu i koi ʻia o nā replicas, ʻaʻohe lag replication.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

A ke hele nei mākou i kēia mau pilikia, e hana wau i nā ʻōlelo aʻoaʻo. Ua ho'āʻo wau e hoʻohui iā lākou i ʻelua paheʻe. Malia paha, hiki ke hoʻohui ʻia nā moʻolelo a pau i ʻelua paheʻe a haʻi wale ʻia.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Ke hoʻohana ʻoe iā Patroni, pono ʻoe e nānā. Pono ʻoe e ʻike i ka wā i loaʻa ai kahi autofileover, no ka mea inā ʻaʻole ʻoe i ʻike he autofileover kāu, ʻaʻohe ou mana ma luna o ka pūʻulu. A ʻino kēlā.

Ma hope o kēlā me kēia faila, pono mākou e nānā lima i ka pūpū. Pono mākou e hōʻoia i ka loaʻa mau ʻana o ka helu o nā replicas, ʻaʻohe lag replication, ʻaʻohe hewa i nā logs e pili ana i ke kahe ʻana o ka replication, me Patroni, me ka ʻōnaehana DCS.

Hiki i ka Automation ke hana maikaʻi, ʻo Patroni kahi mea hana maikaʻi loa. Hiki iā ia ke hana, akā ʻaʻole kēia e lawe i ka hui i kahi kūlana i makemake ʻia. A inā ʻaʻole mākou e ʻike e pili ana i ia mea, pilikia mākou.

A ʻaʻole ʻo Patroni he pōkā kālā. Pono mākou e hoʻomaopopo i ka hana ʻana o Postgres, pehea ka hana hou ʻana a me ka hana ʻana o Patroni me Postgres, a pehea e hāʻawi ʻia ai ke kamaʻilio ma waena o nā nodes. Pono kēia i mea e hiki ai ke hoʻoponopono i nā pilikia me kou mau lima.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Pehea wau e hoʻokokoke ai i ka pilikia o ka maʻi maʻi? Ua hana mākou me nā mea kūʻai like ʻole a ʻaʻohe mea i loaʻa kahi waihona ELK, a pono mākou e hoʻokaʻawale i nā lāʻau ma ka wehe ʻana i 6 consoles a me 2 tabs. Ma ka ʻaoʻao hoʻokahi, ʻo ia nā lāʻau Patroni no kēlā me kēia node, ma ka ʻaoʻao ʻē aʻe, ʻo ia nā lāʻau Consul, a i ʻole Postgres inā pono. He paʻakikī loa ka ʻike ʻana i kēia.

He aha nā ala aʻu i kūkulu ai? ʻO ka mua, nānā mau wau i ka wā i hiki mai ai ka faila. A iaʻu he wai wai kēia. Nānā wau i ka mea i hana ma mua o ka faila, i ka wā o ka faila a ma hope o ka faila. He ʻelua māka ka waihona: ʻo ia ka manawa hoʻomaka a me ka manawa hope.

Ma hope aʻe, nānā au i nā moʻolelo no nā hanana ma mua o ka faila, ʻo ia hoʻi ke ʻimi nei au i nā kumu i hana ai ka faila.

A ke hāʻawi nei kēia i ke kiʻi o ka hoʻomaopopo ʻana i ka mea i hana ʻia a me nā mea e hiki ke hana i ka wā e hiki mai ana i ʻole e kū mai kēlā mau kūlana (a ʻo ka hopena, ʻaʻohe faila).

A ma hea mākou e nānā mau ai? Nānā wau:

  • ʻO ka mua, i nā lāʻau Patroni.
  • A laila, nānā au i nā lāʻau Postgres, a i ʻole nā ​​lāʻau DCS, e pili ana i ka mea i loaʻa i nā lāʻau Patroni.
  • A ʻo nā loina pūnaewele hoʻi e hāʻawi i ka ʻike i ke kumu o ka faila.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

Pehea koʻu manaʻo iā Patroni? He pilina maikaʻi loa koʻu me Pattroni. I koʻu manaʻo, ʻo kēia ka mea maikaʻi loa i kēia lā. ʻIke au i nā huahana ʻē aʻe he nui. ʻO Stolon kēia, Repmgr, Pg_auto_failover, PAF. 4 mea paahana. Ua ho'āʻo au iā lākou a pau. ʻO Patroni kaʻu punahele.

Inā nīnau lākou iaʻu: "Ke paipai nei au iā Patroni?". E ʻōlelo wau ʻae, no ka mea makemake wau iā Patroni. A manaʻo wau ua aʻo au i ke kuke ʻana.

Inā makemake ʻoe e ʻike i nā pilikia ʻē aʻe e pili ana iā Patroni ma waho o nā pilikia aʻu i ʻōlelo ai, hiki iā ʻoe ke nānā mau i ka ʻaoʻao. helu ma GitHub. Nui nā moʻolelo like ʻole a nui nā kumuhana hoihoi e kūkākūkā ʻia ma laila. A ʻo ka hopena, ua hoʻokomo ʻia a hoʻoholo ʻia kekahi mau ʻino, ʻo ia hoʻi, he heluhelu hoihoi kēia.

Aia kekahi mau moʻolelo hoihoi e pili ana i ka poʻe e pana ana iā lākou iho ma ka wāwae. ʻIke loa. Heluhelu a hoʻomaopopo ʻoe ʻaʻole pono ke hana pēlā. Ua kuhi wau iaʻu iho.

A makemake wau e mahalo nui iā Zalando no ka hoʻomohala ʻana i kēia papahana, ʻo ia hoʻi iā Alexander Kukushkin lāua ʻo Alexey Klyukin. ʻO Aleksey Klyukin kekahi o nā mea kākau, ʻaʻole ʻo ia e hana hou ma Zalando, akā ʻelua mau kānaka i hoʻomaka e hana me kēia huahana.

A manaʻo wau he mea ʻoluʻolu loa ʻo Patroni. Hauʻoli wau i kona ola ʻana, hoihoi me ia. A mahalo nui iā ʻoe i nā mea kōkua a pau e kākau i nā pāpaʻi iā Patrona. Manaʻo wau e lilo ʻo Patroni i mea makua, ʻoluʻolu a maikaʻi hoʻi me ka makahiki. Ua hana mua ia, akā ke manaʻolana nei au e ʻoi aku ka maikaʻi. No laila, inā ʻoe e hoʻolālā e hoʻohana iā Patroni, a laila mai makaʻu. He hopena maikaʻi kēia, hiki ke hoʻokō a hoʻohana ʻia.

ʻo ia wale nō. Inā he mau nīnau kāu, e nīnau.

Nā moʻolelo Patroni Failure a i ʻole Pehea e hoʻopololei ai i kāu pūʻulu PostgreSQL. Alexey Lesovsky

ʻO kāu mau nīnau

Mahalo no ka hōʻike! Inā ma hope o kahi faila, pono ʻoe e nānā pono i laila, no ke aha mākou e makemake ai i kahi faila maʻalahi?

No ka mea, he mea hou. Hoʻokahi makahiki wale nō mākou me ia. ʻOi aku ka palekana. Makemake mākou e komo a ʻike ua holo pono nā mea a pau e like me ka pono. ʻO kēia ka pae o ka hilinaʻi makua - ʻoi aku ka maikaʻi o ka nānā pālua a ʻike.

Eia kekahi laʻana, hele mākou i ke kakahiaka a nānā, pololei?

ʻAʻole i ke kakahiaka, aʻo pinepine mākou e pili ana i ka autofile kokoke koke. Loaʻa iā mākou nā leka hoʻomaopopo, ʻike mākou ua loaʻa kahi autofile. Kokoke makou e hele e nana. Akā pono e lawe ʻia kēia mau loiloi āpau i ka pae nānā. Inā ʻoe e komo iā Patroni ma o ka REST API, aia kahi mōʻaukala. Ma ka mōʻaukala hiki iā ʻoe ke ʻike i nā timestamp i ka wā i hana ʻia ai ka faila. Ma muli o kēia, hiki ke hana i ka nānā ʻana. Hiki iā ʻoe ke ʻike i ka mōʻaukala, ehia mau hanana i laila. Inā loaʻa iā mākou nā hanana hou aʻe, a laila ua loaʻa kahi faila auto. Hiki iā ʻoe ke hele e ʻike. A i ʻole kā mākou mākaʻikaʻi ʻana i ka nānā ʻana ua loaʻa iā mākou nā replicas a pau, ʻaʻohe lag a maikaʻi nā mea a pau.

Alakaʻi!

Mahalo nui no ka moʻolelo nui! Inā mākou e hoʻoneʻe i ka puʻupuʻu DCS ma kahi mamao loa mai ka puʻupuʻu Postgres, a laila pono e lawelawe ʻia kēia pūʻulu i kēlā me kēia manawa? He aha nā hana maikaʻi loa e pono ai ke hoʻopau ʻia kekahi mau ʻāpana o ka puʻupuʻu DCS, kahi mea e hana ai me lākou, etc. Pehea e ola ai kēia hale holoʻokoʻa? A pehea ʻoe e hana ai i kēia mau mea?

No ka hui hoʻokahi, pono e hana i kahi matrix o nā pilikia, he aha ka hopena inā hāʻule kekahi o nā ʻāpana a i ʻole kekahi mau ʻāpana. Wahi a kēia matrix, hele mākou i nā ʻāpana āpau a kūkulu i nā hiʻohiʻona i ka hihia o kēia mau ʻāpana. No laila, no kēlā me kēia hiʻohiʻona hemahema, hiki iā ʻoe ke loaʻa kahi hoʻolālā hana no ka hoʻihoʻi ʻana. A i ka hihia o DCS, hele mai ia ma ke ʻano he ʻāpana o ka ʻōnaehana maʻamau. A ke alakaʻi nei ke alakaʻi, a ke hilinaʻi nei mākou i nā mea hoʻokele e lawelawe a me ko lākou hiki ke hoʻoponopono iā ia inā loaʻa nā ulia. Inā ʻaʻohe DCS, a laila hoʻolaha mākou iā ia, akā i ka manawa like ʻaʻole mākou e nānā pono iā ia, no ka mea ʻaʻole mākou kuleana no ka ʻoihana, akā hāʻawi mākou i nā manaʻo i ka pehea a me ka mea e nānā ai.

ʻO ia hoʻi, ua maopopo iaʻu he pono iaʻu e hoʻopau iā Patroni, hoʻopau i ka faila, hoʻopau i nā mea āpau ma mua o ka hana ʻana i kekahi mea me nā pūʻali?

Aia ia i ka nui o nā nodes i loaʻa iā mākou i ka hui DCS. Inā nui nā nodes a inā hoʻopau mākou i hoʻokahi wale nō o nā nodes (ka replica), a laila mālama ka cluster i kahi kōrum. A ke hoʻomau nei ʻo Patrona i ka hana. A ʻaʻohe mea i hoʻomaka. Inā loaʻa iā mākou kekahi mau hana paʻakikī e pili ana i nā node hou aʻe, ʻo ka nele o ia mea hiki ke hōʻino i ke kōruma, a laila - ʻae, kūpono paha ke kau ʻana iā Patroni i ka hoʻomaha. Loaʻa iā ia kahi kauoha pili - patronictl pause, patronictl resume. Hoʻomaha wale mākou a ʻaʻole hana ka autofiler i kēlā manawa. Hana mākou i ka mālama ʻana i ka pūʻulu DCS, a laila wehe mākou i ka pause a hoʻomau i ke ola.

Mahalo iāʻoe!

Mahalo nui iā ʻoe no kāu hōʻike! Pehea ka manaʻo o ka hui huahana no ka nalowale ʻana o ka ʻikepili?

ʻAʻole mālama nā hui huahana, a hopohopo nā alakaʻi hui.

He aha nā mea hōʻoia?

Paʻakikī loa nā hōʻoia. He hōʻike ʻo Alexander Kukushkin "Pehea e helu ai i ka RPO a me RTO", ʻo ia hoʻi ka manawa hoʻihoʻi a me ka nui o ka ʻikepili hiki iā mākou ke nalowale. Manaʻo wau pono mākou e ʻimi i kēia mau paheʻe a aʻo iā lākou. I koʻu hoʻomanaʻo ʻana, aia nā pae kikoʻī e pili ana i ka helu ʻana i kēia mau mea. ʻEhia mau kālepa hiki iā mākou ke nalowale, ehia ka nui o ka ʻikepili i hiki iā mākou ke nalowale. Ma ke ʻano he koho, hiki iā mākou ke hoʻohana i ka replication synchronous ma ka pae Patroni, akā he pahi kaua ʻelua kēia: loaʻa iā mākou ka hilinaʻi ʻikepili, a i ʻole e nalowale ka wikiwiki. Aia ka hoʻopiʻi synchronous, akā ʻaʻole ia e hōʻoiaʻiʻo i ka 100% palekana mai ka nalowale o ka ʻikepili.

Alexey, mahalo no ka hōʻike nui! He ʻike me ka hoʻohana ʻana iā Patroni no ka pale ʻana i ka pae ʻole? ʻO ia hoʻi, me ka synchronous standby? ʻO kēia ka nīnau mua. A ʻo ka nīnau ʻelua. Ua hoʻohana ʻoe i nā hāʻina like ʻole. Ua hoʻohana mākou iā Repmgr, akā ʻaʻohe autofiler, a ke hoʻolālā nei mākou e hoʻokomo i ka autofiler. A ke noʻonoʻo nei mākou iā Patroni ma ke ʻano he hopena ʻē aʻe. He aha kāu e ʻōlelo ai he mea maikaʻi ke hoʻohālikelike ʻia me Repmgr?

ʻO ka nīnau mua e pili ana i nā replicas synchronous. ʻAʻohe mea hoʻohana i ka replication synchronous ma aneʻi, no ka mea makaʻu nā mea a pau (Ke hoʻohana nei kekahi mau mea kūʻai aku, ma ke kumu, ʻaʻole lākou i ʻike i nā pilikia hana - ʻŌlelo a ka haʻiʻōlelo). Akā, ua hoʻomohala mākou i kānāwai no mākou iho he ʻekolu mau node i loko o kahi puʻupuʻu replication synchronous, no ka mea inā loaʻa iā mākou ʻelua nodes a inā hāʻule ka haku a i ʻole ke kope, a laila hoʻololi ʻo Patroni i kēia node i Standalone mode i hoʻomau ka noi. hana. I kēia hihia, aia kahi pilikia o ka nalowale o ka ʻikepili.

E pili ana i ka nīnau ʻelua, ua hoʻohana mākou iā Repmgr a hana pū me kekahi mau mea kūʻai aku no nā kumu mōʻaukala. He aha ka mea e ʻōlelo ʻia? Hele mai ʻo Patroni me kahi autofiler mai loko mai o ka pahu, hele mai ʻo Repmgr me autofiler ma ke ʻano he hiʻohiʻona hou e pono ai ke hoʻohana ʻia. Pono mākou e holo i ka Repmgr daemon ma kēlā me kēia node a laila hiki iā mākou ke hoʻonohonoho i ka autofiler.

Nānā Repmgr inā ola nā pona Postgres. ʻO nā kaʻina hana Repmgr e nānā i ke ola o kekahi i kekahi, ʻaʻole kēia he ala kūpono loa. hiki i nā hihia paʻakikī o ka hoʻokaʻawale ʻana i ka pūnaewele kahi e hiki ai i kahi puʻupuʻu Repmgr nui ke hāʻule i loko o nā mea liʻiliʻi a hoʻomau i ka hana. ʻAʻole au i hahai iā Repmgr no ka manawa lōʻihi, ua paʻa paha ... a i ʻole. Akā,ʻo ka weheʻana i kaʻike e pili ana i ka moku'āina o ka hui ma DCS, e like me Stolon, Patroni,ʻo ia ka koho kūpono loa.

Alexey, he nīnau kaʻu, he nīnau lamer paha. Ma kekahi o nā hiʻohiʻona mua, ua hoʻoneʻe ʻoe i ka DCS mai ka mīkini kūloko i kahi hoʻokipa mamao. Hoʻomaopopo mākou ʻo ka pūnaewele kahi mea nona nā ʻano ponoʻī, ola ʻo ia iā ia iho. A he aha ka hopena inā no kekahi kumu i loaʻa ʻole ai ka hui DCS? ʻAʻole wau e haʻi i nā kumu, hiki i ka nui o lākou: mai nā lima kekee o nā pūnaewele i nā pilikia maoli.

ʻAʻole au i ʻōlelo leo nui, akā, pono ʻole ka puʻupuʻu DCS, ʻo ia hoʻi, he helu ʻokoʻa o nā node, i mea e hālāwai ai kahi kōrum. He aha ka hopena inā ʻaʻole i loaʻa ka puʻupuʻu DCS, a i ʻole hiki ke hoʻokō ʻia kahi kōrum, ʻo ia hoʻi, kekahi ʻano o ka hoʻokaʻawale pūnaewele a i ʻole ka hemahema o ka node? I kēia hihia, hele ka hui ʻo Patoni i ke ʻano heluhelu wale nō. ʻAʻole hiki i ka hui Patroni ke hoʻoholo i ke kūlana o ka hui a me ka mea e hana ai. ʻAʻole hiki iā ia ke hoʻokaʻaʻike i ka DCS a mālama i ka mokuʻāina hui hou ma laila, no laila e hele ka pūʻulu holoʻokoʻa i ka heluhelu wale nō. A ke kali nei no ka hana lima mai ka mea hoʻohana a i ʻole DCS e ola hou.

ʻO ka ʻōlelo koʻikoʻi, lilo ʻo DCS i lawelawe no mākou e like me ke kumu nui?

Ae 'ae. I ka nui o nā ʻoihana hou, ʻo Service Discovery kahi ʻāpana o ka ʻoihana. Ke hoʻokō ʻia nei ma mua o ka loaʻa ʻana o kahi waihona i ka ʻoihana. Ma ka ʻōlelo pili, ua hoʻokuʻu ʻia ka ʻōnaehana, hoʻonoho ʻia ma DC, a loaʻa koke iā mākou Service Discovery. Inā he Kanikela, hiki ke kūkulu ʻia ʻo DNS ma luna. Inā ʻo Etcd kēia, a laila aia kekahi ʻāpana mai ka hui Kubernetes, kahi e kau ʻia ai nā mea ʻē aʻe. Me he mea lā iaʻu he ʻāpana koʻikoʻi ʻo Service Discovery o nā ʻōnaehana hou. A noʻonoʻo nui lākou ma mua o ka ʻikepili.

Alakaʻi!

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka