Migrace: poseidon → x8

Z IsGeek.info Wiki

Přejít na: navigace, hledání

Tato stránka obsahuje popis migrace ejabberd, transportů, botů a uživatelských dat. Slouží především pro mě, abych na nic nezapomněl a měl vše pohromadě :) Dragon Jake 15:18, 6. 8. 2008 (CEST)

Odjíždím na víkend a skoro celý příští týden pryč, sakra mě štve, že jsem to nestihl :] Dragon Jake 22:07, 7. 8. 2008 (CEST)

Obsah

[editovat] ejabberd

Na x8 běží ejabberd 2.0.1 v clusteru s poseidonem. Funguje s jediným modulem - mod_proxy65 na testovací adrese proxy3.isgeek.info.

[editovat] transporty a boti

Veškeré transporty a boti se nachází ve složce /opt/ejabberd/services/, kde každá podsložka odpovídá danému transportu nebo botovi.

Služba Složka Komentář Až na konec Stav init.d
Transporty
PyICQt pyicqt MySQL backend data v MySQL hotovo ano
PyAIMt pyaimt MySQL backend, na poseidonovi přes XML export/import přes skript tools/migrate.py hotovo ano
PyMSNt pymsnt hotovo ano
PyYIMt pyyimt ta mrcha je tak blbě napsaná... hotovo ano
RSS Service jrs testovací provoz smyčka v kódu, přetížení CPU a ejabberd nebude ano
Gadu-Gadu jggtrans hotovo ano
Tlen tt hotovo ano
Boti
Jdisk jdisk r50 dopatchovat, ale už asi není co hotovo ano
Elmerbot elmer upravit config, předělat log hotovo ano
Statusbot cjwpres připravit PHP frontend hotovo ano
Ostatní
Bitlbee bitlbee běží přes inetd a stunnel hotovo ne
Proxy65 proxy65 JID proxy.isgeek.info, funguje s Jdiskem, běží přes twistd hotovo ano


Init skripty se nachází jak jinak než v /etc/init.d/. Všechny python bazmeky budou mít cron schedule na denní restart, optimálně ve 4 ráno, kvůli tomu, že python je pekelně žravý, viz. grafy využití paměti na poseidonovi.

Výpis crontabu:

 # jabber python services
 0 4    * * *   root    VERBOSE=no invoke-rc.d jabber-pyicqt restart
 1 4    * * *   root    VERBOSE=no invoke-rc.d jabber-pymsnt restart
 2 4    * * *   root    VERBOSE=no invoke-rc.d jabber-pyaimt restart
 3 4    * * *   root    VERBOSE=no invoke-rc.d jabber-pyyimt restart

Hotovo, Dragon Jake 15:57, 17. 8. 2008 (CEST)

[editovat] uživatelská data

[editovat] databáze

Přesun proběhne najednou při kompletně vypnutém Jabberu. Je třeba exportovat databáze ejabberd, elmerbot, isgeek-wiki, jdisk, pyicqt. Na x8 mají všechny databáze, co mají s Jabberem co společného, prefix jabber_.

Postup noční migrace MySQL databází
# DB [poseidon] DB [x8] Poznámky Stav
1 ejabberd jabber_ejabberd vypnout vše ok
2 pyicqt jabber_pyicqt ok
3 - jabber_pyaimt přes tools/migrate.py ok
4 jdisk jabber_jdisk přesunout soubory i fyzicky! ok
5 isgeek-wiki jabber_wiki možno až po zprovoznění Jabberu ok

[editovat] ejabberd spool

Vymazat Mnesia db na x8, která jen uchovává nastavení pro mirroring z poseidona a přepsat db - přes ejabberdctl backup database.backup na poseidonovi a ejabberdctl restore database.backup na x8.

[editovat] home directory

Zatarovat /home/jabber/ z poseidona a přesunout s ohledem na symlinky do /home/www/isgeek.info/ na x8.

[editovat] ostatní

Nastavit logrotate do složky /opt/ejabberd/logs/ na všechny logy, které se tam ukládají (lze obecně?).

Ano, lze a nastaveno, tak snad to bude fungovat :) Dragon Jake 16:20, 17. 8. 2008 (CEST)


V /opt/ejabberd/tools/ jsou různé nástroje třetích stran pro lepší a pohodlnější správu:

  • erlcheck.erl - kontrola syntaktické správnosti ejabberd.cfg
    • spustit erl a zadat příkaz c(erlcheck).
    • kontrola přes erlcheck:checkfile("../conf/ejabberd.cfg").