Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. http://www.apartamentoenfamilia.es. Número registro HUTT-005768

martes, 17 de noviembre de 2009

Configurar DRBD (RAID 1 sobre TCP/IP)


DRDB és un dispositivo bloque el cual esta diseñado para construir agrupaciones de alta disponibilidad proporcionando un dispositivo compartido virtual, el cual mantiene los nodos de los discos sincronizados usando TCP/IP. Esto simula RAID 1 pero evitando el uso de hardware no común (buses SCSI compartidos o canal de fibra). 


 

Instalar DRBD

 apt-get install drbd8-utils

Configurar DRBD


Editar drbd.conf

global { usage-count yes; }
common { syncer { rate 10M; } }
resource r0 {
        protocol C;
        net {
                cram-hmac-alg sha1;
                shared-secret "FooFunFactory";
        }
        on linuxha1 {
                device    /dev/drbd1;
                disk      /dev/sdb1;
                address   84.88.61.167:7789;
                meta-disk internal;
        }
        on linuxha2 {
                device    /dev/drbd1;
                disk      /dev/sdb1;
                address   84.88.61.168:7789;
                meta-disk internal;
        }
}



Crear recurso mediante drbdadm create-md r0

Esto nos puede reportar un problema:
root@linuxha1:/etc# drbdadm create-md r0
  --==  Thank you for participating in the global usage survey  ==--
The server's response is:

you are the 9652th user to install this version
v08 Magic number not found
md_offset 1118601216
al_offset 1118568448
bm_offset 1118531584

Found ext3 filesystem which uses 1092388 kB
current configuration leaves usable 1092316 kB

Device size would be truncated, which
would corrupt data and result in
'access beyond end of device' errors.
You need to either
   * use external meta data (recommended)
   * shrink that filesystem first
   * zero out the device (destroy the filesystem)
Operation refused.

Command 'drbdmeta /dev/drbd1 v08 /dev/sdb1 internal create-md' terminated with exit code 40
drbdadm aborting
Para solucionarlo hacemos dd amb /dev/zero


root@linuxha1:/etc# dd if=/dev/zero bs=1M count=1 of=/dev/sdb1; sync
1+0 registros de entrada
1+0 registros de salida
1048576 bytes (1,0 MB) copiados, 0,00657413 s, 160 MB/s
root@linuxha1:/etc# drbdadm create-md r0
v08 Magic number not found
v07 Magic number not found
v07 Magic number not found
v08 Magic number not found
Writing meta data...
initialising activity log
NOT initialized bitmap
New drbd meta data block sucessfully created.
success

Se puede apreciar que ahora tenemos configuradoSecundary/Secundary :
root@linuxha2:/etc# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre, 2008-05-30 12:59:17
m:res cs st ds p mounted fstype
1:r0 Connected Secondary/Secondary Inconsistent/Inconsistent C


Establecer disco primario

El protocolo C establece que primero se escribe en el bloque de disco secundario, y que cuando se hace satisfactoriamente, entonces copia los datos al primario. Esto da más seguridad delante de la pérdida de datos. Por otro lado, sólo se pueden guardar datos directamente en el disco primario, y el secundario sólo sirve para tener la réplica. Si queremos escribir en el disco del secundario, el drbd deberá asignar que es primario (o bien deshabilitando el servicio).

root@linuxha1:/etc# drbdadm -- --overwrite-data-of-peer primary r0
root@linuxha1:/etc# cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre, 2008-05-30 12:59:17

 1: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r---
    ns:25600 nr:0 dw:0 dr:25600 al:0 bm:1 lo:0 pe:0 ua:0 ap:0 oos:1018524
    [>....................] sync'ed:  2.8% (1018524/1044124)K
    finish: 0:01:18 speed: 12,800 (12,800) K/sec
Se puede apreciar el progreso con cat /proc/drbd, tanto en linuxha1 como en linuxha2 (dado que estan sincronizados)

root@linuxha1:/etc# cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre, 2008-05-30 12:59:17

 1: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r---
    ns:92160 nr:0 dw:0 dr:92160 al:0 bm:5 lo:0 pe:0 ua:0 ap:0 oos:951964
    [>...................] sync'ed:  9.1% (951964/1044124)K
    finish: 0:01:32 speed: 10,240 (10,240) K/sec
root@linuxha1:/etc# cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre, 2008-05-30 12:59:17

 1: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r---
    ns:124928 nr:0 dw:0 dr:124928 al:0 bm:7 lo:0 pe:0 ua:0 ap:0 oos:919196
    [=>..................] sync'ed: 12.2% (919196/1044124)K
    finish: 0:01:20 speed: 11,248 (10,408) K/sec
root@linuxha1:/etc# cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre, 2008-05-30 12:59:17

 1: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r---
    ns:163840 nr:0 dw:0 dr:163840 al:0 bm:10 lo:0 pe:0 ua:0 ap:0 oos:880284
    [==>.................] sync'ed: 16.1% (880284/1044124)K
    finish: 0:01:11 speed: 12,280 (10,920) K/sec

Formatear con ext3

root@linuxha1:/etc# mkfs.ext3 /dev/drbd1
mke2fs 1.41.3 (12-Oct-2008)
Etiqueta del sistema de ficheros=
Tipo de SO: Linux
Tamaño del bloque=4096 (bitácora=2)
Tamaño del fragmento=4096 (bitácora=2)
65280 nodos-i, 261031 bloques
13051 bloques (5.00%) reservados para el superusuario
Primer bloque de datos=0
Número máximo de bloques del sistema de ficheros=268435456
8 bloque de grupos
32768 bloques por grupo, 32768 fragmentos por grupo
8160 nodos-i por grupo
Respaldo del superbloque guardado en los bloques: 
    32768, 98304, 163840, 229376

Escribiendo las tablas de nodos-i: hecho                           
Creating journal (4096 blocks): hecho
Escribiendo superbloques y la información contable del sistema de ficheros: hecho

Este sistema de ficheros se revisará automáticamente cada 33 montajes o
180 días, lo que suceda primero.  Utilice tune2fs -c o -i para cambiarlo.




RESUMEN

Habilitar y crear el recurso [1]
Con fsdisk creamos dos particiones sda3 y sda 4 de 256M y 68Gigas respectivamente (ver ejemplo en drbd.org)
Crear Metadata
drbdadm create-md r0
mail02:~# drbdadm create-md r0
v08 Magic number not found
v07 Magic number not found
Writing meta data...
initialising activity log
NOT initialized bitmap
New drbd meta data block sucessfully created.
Iniciar el servicio del DRBD
nodo01:~# /etc/init.d/drbd start
Asignar el nodo DRBD como primario
nodo01:~# drbdadm -- -o primary $r
Formateo de la particion replicada
nodo01:~# mkfs.ext3 /dev/drbd1

Para el nodo02, copiamos via scp la configuracion del /etc/drbd.conf desde el nodo01

2 comentarios:

  1. nuevamente me quedo boquiabierto, me va a faltar vida para probar todo esto que esta en la web, sigue adelante

    ResponderEliminar
  2. ¡Gracias!
    La verdad es que el tema del RAID1 sobre TCP/IP me pareció un artículo interesante desde el punto de vista que abre el abanico de posibilidades sobre temas de alta disponibilidad. Estamos acostumbrados al RAID software o hardware, pero no solemos usarlo por TCP/IP, lo cual es muy interesante.

    Saludos,

    ResponderEliminar


That u don't know what you've got 'til it's gone