DRBD em um disco com sistema de arquivos existente que ocupa todo o lugar

3

Atualmente estou tentando simular o ambiente via XEN. Eu instalei dois sistemas debian com esse layout de FS:

cltest1:/etc# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda2            6.0G  417M  5.2G   8% /
tmpfs                 257M     0  257M   0% /lib/init/rw
udev                   10M   16K   10M   1% /dev
tmpfs                 257M  4.0K  257M   1% /dev/shm

O host cltest2 é idêntico.

Aqui está meu drbd.conf

global {
  minor-count 1;
}

resource mysql {
  protocol C;

  syncer {
    rate 10M; # 10 Megabytes
  }

  on cltest1 {
    device    /dev/drbd0;
    disk      /dev/xvda2;
    address   192.168.1.186:7789;
    meta-disk internal;
  }

  on cltest2 {
    device    /dev/drbd0;
    disk      /dev/xvda2;
    address   192.168.1.187:7789;
    meta-disk internal;
  }
}

Eu não criei o sistema de arquivos no drbd0

Iniciando o DRBD por meio de erros de script init.d com:

Starting DRBD resources:    [ d(mysql) /dev/drbd0: Failure: (114) Lower device is already claimed. This usually means it is mounted.

[mysql] cmd /sbin/drbdsetup /dev/drbd0 disk /dev/xvda2 /dev/xvda2 internal --set-defaults --create-device  failed - continuing!

Executando: drbdadm create-md mysql dá:

cltest1:/etc# drbdadm create-md mysql
md_offset 6442446848
al_offset 6442414080
bm_offset 6442217472

Found ext3 filesystem which uses 6291456 kB
current configuration leaves usable 6291228 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/drbd0 v08 /dev/xvda2 internal create-md' terminated with exit code 40
drbdadm aborting

Pelo que entendi, todos os meus problemas são porque eu não tenho espaço em disco não alocado no xvda2.

Quais são minhas opções além de diminuir o FS e conectar um disco físico separado? Os metadados não podem ser armazenados em um arquivo no sistema de arquivos local?

    
por Karolis T. 17.06.2009 / 13:16

4 respostas

6

O drbd pode, às vezes, pegar sistemas de arquivos 'existentes', mesmo sem um deles estar no sistema. Você poderia de dd if=/dev/zero of=/dev/xvda2 (e control-C após alguns segundos) e ele limparia a partição que poderia manter um sistema de arquivos antes.

    
por 11.03.2011 / 02:51
2

Você não deve montar o disco com nenhum formato de sistema de arquivos; No Ubuntu, usando o gparted, eu especifiquei o / dev / xvda2 para a partição "Cleared". e executar o mesmo comando remove o erro acima.

    
por 04.05.2015 / 09:50
1

1) Tome nota do comentário da womble
2) Opções para Metadados DRBD (Todos devem ser dispositivos de bloco AFAIK)
A) Interno - bom para um dispositivo que nunca foi usado (não a sua situação)
B) "External" - Uma partição / drive separada, isso também pode ser um Ramdisk, mas seus metadados desaparecerão entre ciclos de energia

Então você pode
A) Reconstrua o sistema com diferentes partições e use o drbd desde o início nas partições de dados. B) Use um Ramdisk que desaparece entre a reinicialização C) Adicione uma unidade (USB, eSATA, interna, etc) para metatdata.

Boa sorte - O DRBD é uma coisa boa.

    
por 17.06.2009 / 13:57
0

Eu não entendo o que você está tentando fazer. cltest1 e cltest2 nunca serão executados simultaneamente?

Por que você quer espelhar os sistemas de arquivos-raiz entre esses dois sistemas?

Você executa cltest1 e cltest2 no mesmo hardware?

Para o drbd-meta-device: coloque-o em seu próprio LV. Nesse LV use indexação. por exemplo,

meta-disco / dev / VG / drbd_meta [1]; O próximo drbd pode usar o índice 2 no mesmo LV. Dessa forma, você poderia usar um LV com 1 GB para muitos dispositivos DRBD.

    
por 08.04.2011 / 22:37

Tags