# No puedo montar particion DRBD...

## zumelzo

Tengo Instalado drbd en 2 pc, nodo1, nodo2. Estas son las particiones:

```
fdisk -l /dev/sda

Disk /dev/sda: 80.0 GB, 80026361856 bytes

255 heads, 63 sectors/track, 9729 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1          13      104391   83  Linux

/dev/sda2              14         125      899640   82  Linux swap / Solaris

/dev/sda3             126        7179    56661255   83  Linux

/dev/sda4            7180        8396     9775552+   5  Extended

/dev/sda5            7180        8396     9775521   83  Linux
```

El drbd.conf:

```
skip {

  As you can see, you can also comment chunks of text

  with a 'skip[optional nonsense]{ skipped text }' section.

  This comes in handy, if you just want to comment out

  some 'resource <some name> {...}' section:

  just precede it with 'skip'.

  The basic format of option assignment is

  <option name><linear whitespace><value>;

  It should be obvious from the examples below,

  but if you really care to know the details:

  <option name> :=

        valid options in the respective scope

  <value>  := <num>|<string>|<choice>|...

              depending on the set of allowed values

              for the respective option.

  <num>    := [0-9]+, sometimes with an optional suffix of K,M,G

  <string> := (<name>|\"([^\"\\\n]*|\\.)*\")+

  <name>   := [/_.A-Za-z0-9-]+

}

global {

    usage-count yes;

}

common {

  syncer { rate 10M; }

}

resource mirror {

  protocol C;

  handlers {

    pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";

    pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";

    local-io-error "echo o > /proc/sysrq-trigger ; halt -f";

    outdate-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5";

  }

  startup {

    degr-wfc-timeout 120;    # 2 minutes.

  }

  disk {

    on-io-error   detach;

  }

  net {

     allow-two-primaries;

    after-sb-0pri disconnect;

    after-sb-1pri disconnect;

    after-sb-2pri disconnect;

    rr-conflict disconnect;

  }

 syncer {

    rate 10M;

    al-extents 257;

  }

  on nodo1 {

    device     /dev/drbd0;

    disk       /dev/sda4;

    address    192.168.0.17:7788;

    meta-disk  /dev/sda5[0];

  }

  on nodo2 {

    device    /dev/drbd0;

    disk      /dev/sda4;

    address   192.168.0.18:7788;

    meta-disk /dev/sda5[0];

  }

}

```

El servicio arranca correctamente, pero al intentar montar el 

dispositivo /dev/drbd0 en /mirror:

```
nodo1 etc # mount /dev/drbd0 /mirror/

mount: block device /dev/drbd0 is write-protected, mounting read-only

mount: Wrong medium type
```

me dice que el drbd0 no tiene permisos de escritura.

He googleado bastante y no encuentro la solución.

Agradecería que alguién me respondiera.

Saludos.

----------

## Coghan

En la opción disk pones la partición /dev/sda4 cuando no debería usarse por ser la extendida, prueba a poner /dev/sda5.

----------

## zumelzo

La verdad es que estoy medio confundido:

si tengo las siguientes particiones:

```
nodo1 mirror # fdisk -l /dev/sda

Disk /dev/sda: 80.0 GB, 80026361856 bytes

255 heads, 63 sectors/track, 9729 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1          13      104391   83  Linux

/dev/sda2              14         125      899640   82  Linux swap / Solaris

/dev/sda3             126        7179    56661255   83  Linux

/dev/sda4            7180        8396     9775552+   5  Extended

/dev/sda5            7180        8396     9775521   83  Linux
```

y la particion que tiene los datos a respaldar es:

```
 :( 

#/dev/sda3
```

la configuración del drbd.conf deberia quedar asi???

```
on nodo1 {

    device     /dev/drbd0;

    disk       /dev/sda3; # Esta es la particion que tiene los Datos??

    address    192.168.0.17:7788;

    meta-disk  /dev/sda4[0];

  }

on nodo2 {

     device    /dev/drbd0;

     disk      /dev/sda2; # Esta es la particion que recibe los datos???

     address   192.168.0.18:7788;

     meta-disk /dev/sda4[0];

   }
```

o no hay que tocar la particion de los datos???

```
 on nodo1 {

    device     /dev/drbd0;

    disk       /dev/sda5;

    address    192.168.0.17:7788;

    meta-disk  /dev/sda4[0];

  }

   on nodo2 {

     device    /dev/drbd0;

     disk      /dev/sda5;

     address   192.168.0.18:7788;

     meta-disk /dev/sda4[0];

   }

```

la verdad es que me da error de las 2 maneras.

Estoy desorientado...

Saludos y gracias por responder.

----------

## Coghan

Nunca he usado drbd, pero lo tenía pendiente en mi lista TODO, según entiendo en la documentación la opción disk es la partición de datos que quieres reflejar, en tu lugar según te entiendo debería ser /dev/sda3 (doy por entendido que tienes las misma configuración de particiones en todos los nodos, en caso contrario en cada nodo la que hayas destinado a tal efecto), y luego tienes la opción de crear una partición para los metadatos o usar internal en la opción meta-disk, en tu caso parece que usas /dev/sda5.

Deberías leer algo sobre el particionado de discos, sobre todo en lo referente a las diferencias entre partición primaria y partición extendida, muy resumido los discos solo permiten cuatro particiones primarias, si necesitas más de cuatro deberás asignar una de estas como extendida la cual podrás dividir en tantas como necesites. Evidentemente la partición primaria marcada como extendida no la podrás utilizar sino las siguientes subdivisiones. Si la partición extendida es sda4 en tu caso, las divisiones extendidas serán sda5, sda6, sda7 etc.

----------

## zumelzo

La Configuración drbd la tengo configurada de la siguiente manera:

```

on nodo1 {

    device     /dev/drbd0;

    disk       /dev/sda3;

    address    192.168.0.17:7788;

    flexible-meta-disk  internal;

  }

  on nodo2 {

     device    /dev/drbd0;

     disk      /dev/sda2;

     address   192.168.0.18:7788;

     meta-disk internal;

   }

```

en el nodo1, /dev/sda3 es la particion que tiene los datos (apache,mysql,postfix), y en el nodo2, la particion /dev/sda2 es también la particion que tiene los datos. Se supone, según lo que entiendo, que estas particiones deberian de sincronizarse mutuamente, pero cuando arranco el drbd, me aparece lo siguiente:

```
nodo1 ~ # /etc/init.d/drbd start

 * Starting DRBD resources:

 *   Setting drbd parameters [ d0 Failure: (114) Lower device is already claimed. This usually means it is mounted.

 *   cmd /sbin/drbdsetup /dev/drbd0 disk /dev/sda3 /dev/sda3 internal --set-defaults --create-device --on-io-error=detach  failed!

```

Al parecer, el error es porq la particion esta montada.

el fstab lo tengo asi:

```

/dev/sda3        /       ext2    defaults                0 1

none        /proc     proc    defaults          0 0

none        /dev/shm  tmpfs   defaults          0 0
```

No se todavía como le voy hacer...

Saludos y Gracias por responder.

----------

## Coghan

No lo se con seguridad pero no creo que se pueda montar en drbd la partición raiz / (a no ser que le puedas indicar al kernel en el arranque que lo haga, no se aún de que manera), pero si lo que quieres es solo duplicar los datos de apache, postfix y mysql, tendrás que crear partciones para /var/www  para apache /var/lib/mysql para musql y para postfix desconozco que directorio usa, y agregarlo a la config del drbd.

Otra alternativa que se me ocurre si no quieres particionar demasiado es crear una partición separada para drbd y apuntar mediante enlaces simbólicos los directorios de estos servicios a carpetas dentro de esta partición. Y esta partición es la que sincronizas.

----------

## zumelzo

Creo que voy a probar creando una particion que tenga todos los datos y apuntarlos con enlazes simbólicos y después esa partición sincronizarla, el problema es que tengo un servidor con apache, mysql, postfix, ftp y será medio peligroso hacer el cambio.

Después de que haga las pruebas, te cuento como me fue.

Saludos y gracias.

----------

