dijous, 9 de maig de 2013

Resolving a DRBD Split-Brain

Per resoldre un Split-Brain en una base de dades amb Heartbeat + DRBD seguirem els següents passos.

Indentificar el problema:


Quan ocorrre un Split-Brain el sistema demana la intervenció humana per resoldre el problema. Apareix la següent entrada en el /var/log/messages i es marca l'estat de DRBD com a desconegut. La següent linea mostra l'entrada del log de sistema /var/log/messages.
Split-Brain detected, dropping connection!
Hi ha dos formes de consultar l'estat de DRBD. Una forma es utilitzant drbd-overview i l'altra es realitzar un cat del fitxer /proc/drbd.

El següent exemple mostra l'eixida d'aquestes dues comandes en la màquina que no ha detectat el split-brain.
root@home-1#drbd-overview
Mostra el següent:
  0:mysql  WFConnection Primary/Unknown UpToDate/DUnknown C r----- \ 
         /var/lib/mysql ext4 19G 2.5G 16G 14%
Si executem
root@home-1#cat /proc/drbd
Trobem el següent:
version: 8.3.11 (api:88/proto:86-96)
GIT-hash: 0de839cee13a4160eed6037c4bddd066645e23c5 build by root@home-1, \
    2013-05-09 12:33:07
 0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r-----
    ns:0 nr:0 dw:113524 dr:3276073 al:33 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 \
    wo:b oos:352532

El estat de la primera màquina home-1 esta enumerat dalt. La segona màquina home-2 que ha identificat l'Split-Brain, quedaria com segueix:
root@home-2#cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@home-2, \
    2013-05-09 10:09:38
 0: cs:StandAlone ro:Secondary/Unknown ds:UpToDate/DUnknown   r---
    ns:0 nr:5405948 dw:150302972 dr:976818256 al:137 bm:751 lo:0 pe:0 \ 
    ua:0 ap:0 ep:1 wo:b oos:0
Si revisem ambdós maquines trobarem una màquina que apareix amb estat WFConnection i l'altra apareix amb l'estat StandAlone.

Resoldre el problema:


Per corregir el problema procedirem com següeix: Ens hem d'assegurar que el dimoni del heartbeat estiga parat en ambdós hosts. Després utilitzarem les següents comandes en la màquina amb estat StandAlone, en el nostre cas home-2:
root@home-2#drbdadm disconnect <resource>
root@home-2#debdadm secondary <resource>
root@home-2#drbdadm -- --discard-my-data connect <resource>
A l'altra màquina home-1 executarem:
root@home-1#drbdadm connect <resource>
Al fixer de configuració drbd.conf o dins del directory drbd.d trobarem el nom del <resource>,aquest s'especifica en el fitxer de configuració.

Amb aquestes comandes es sol·luciona el problema. Si realitzem ara un comprobació veurem que ja torna a funcionar:
root@home-1#cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
GIT-hash: 0de839cee13a4160eed6037c4bddd066645e23c5 build by root@home-1, \
    2013-05-09 12:33:07
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:135180 nr:0 dw:3791924 dr:282584 al:8 bm:41 lo:0 pe:0 ua:0 ap:0 \
    ep:1 wo:b oos:0
 root@home-1#drbd-overview
  0: mysql  Connected Primary/Secondary UpToDate/UpToDate C r----- \ 
     /var/lib/mysql ext4 19G 2.5G 16G 14%
Una volta la base de dades estiga en l'estat correcte arranquem de nou  el heartbeat als 2 servidores.

Enllaços:


http://www.drbd.org/users-guide/s-resolve-split-brain.html
http://www.drbd.org/users-guide/ch-admin.html

dimarts, 7 de maig de 2013

Rooting Samsung Galaxy S2.

El primer que hem de determinar es quina versió de SO operatiu tenim i el model de HW del S2. A Europa normalment la versio mes corrent es la Internacional. En el meu cas era ICS 4.0.6. Per a les versions de ICS aquest fitxer fa el rooting: Root_SuperSU.0.96.Only-signed.zip.

Per seguretat realitzem el següent proces amb un 80% de bateria.
  • Instal·lem una tarjeta SD externa. 
  • Descarreguem aquest fitxer
  • Arranquem el telefon en Recovery Mode (volume up+home+power). 
  • Seleccionem "apply update from external storage".
  • Seleccionem "Root_SuperSU.0.96.Only-signed.zip" i ja tenim el telefon rootejat quan finalitza el procés.
Una volta arranquem el telefon de nou podem actualitzar SuperSu al android market i una volta instalada cliquem en la opció Reinstall en la pestanya de setttings de SuperSu i seguim les instruccions.

En cas que el SO siga Jelly Bean necessitarem la versió 0.98 de SuperSu.

Do it at your own risk. No hem faig responsable dels xafa papers que l'utilització d'aquest tutorial puga crear!

ENLLAÇOS:
http://someandroidinfo.blogspot.ca/search/label/Root
http://lifehacker.com/5886878/how-to-root-the-samsung-galaxy-s-ii
http://forum.xda-developers.com/showthread.php?p=28181736
http://forum.xda-developers.com/showthread.php?t=1826497
http://lkubuntu.wordpress.com/2012/10/26/how-to-root-an-android-device-under-ubuntu/