"A Diferença BRU!"
Em 1985, Fred Fish estava usando
o TAR para proteger os dados de sua empresa e
descobriu que ele não conseguia recuperá-los com sucesso.
Furioso, ele escreveu sozinho um elegante trecho de
código, que implementava mecanismos para garantir de
maneira inequívoca a recuperação perfeita de dados.
O formato BRU, e o subsequente produto
BRU havia nascido.
De sua criação até hoje, o desenvolvimento do BRU tem
sido um clássico exemplo de "forma seguindo a função".
O foco do desenvolvimento sempre foi centralizado na
recuperação fiel de dados, e a função de Backup é a
"forma" que suporta a "função" de recuperação.
Esta filosofia de desenvolvimento é o que diferencia
o BRU de virtualmente todas as outras propostas de Backup.
Por conta da determinação e visão de Fred, incontáveis
usuários através do mundo podem descansar tranquilos,
sabendo que seus dados estão seguramente protegidos
com o BRU. A excelência de sua programação, continuamente
atualizada e melhorada nos últimos 17 anos, já venceu
o desafio do tempo.
Afinal de contas, segurança é sobre poder fazer RESTORE,
não BACKUP...
Agora, examine os testes executados abaixo, que provam
A Diferença BRU!
O BRU implementa múltiplas técnicas durante as operações
de backup e restore para assegurar a precisão
dos dados acessados. Este teste, usando como exemplo o
formato TAR, é apenas um exemplo da robustez da Diferença
BRU. Prove você mesmo, executando os passos abaixo!
[root@pc-00067 /root]# tar -cvf test.tar /etc/hosts*
tar: Removing leading `/' from member names
etc/hosts
etc/hosts.allow
etc/hosts.deny
[root@pc-00067 /root]# bru -cvf test.bru /etc/hosts*
/
/etc
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
Aqui está o arquivo /etc/hosts antes de ser copiado
pelo TAR e pelo BRU nos exemplos acima: --snip--
127.0.0.1 localhost.localdomain localhost
192.168.1.75 accounting
192.168.1.1 gw
209.149.147.185 serve1
66.1.56.100 bleaf
66.1.47.197 fwc
--snip--
[root@pc-00067 /root]#
[root@pc-00067 /root]# vi test.tar
Passe direto pelo cabeçalho do TAR e modifique
um byte ou caracter. Por exemplo, mude um dos IP's
no arquivo hosts. Nós mudamos o IP 209.149.147.185 para
209.349.147.185 na linha 'serve1'. [root@pc-00067 /root]# vi test.bru
Passe direto pelo cabeçalho do BRU e modifique
um byte ou caracter. Por exemplo, mude um dos IP's
no arquivo hosts. Nós mudamos o IP 209.149.147.185 para
209.349.147.185 na linha 'serve1'. ATENÇÃO: Note
que fizemos a mesma mudança tanto no arquivo TEST.TAR
quanto no arquivo TEST.BRU, alterando o valor 149 para
349 na linha que antes se lia como '209.149.147.185 serve1'. Agora,
vamos tentar extrair os dados do arquivo TAR primeiro:
[root@pc-00067 /root]# tar -xvf test.tar
etc/hosts
etc/hosts.allow
etc/hosts.deny
A extração correu normalmente. Agora, vamos olhar os dados
depois de modificados: --snip--
127.0.0.1 localhost.localdomain localhost
192.168.1.75 accounting
192.168.1.1 gw
209.349.147.185 serve1
66.1.56.100 bleaf
66.1.47.197 fwc
--snip--
O utilitário TAR retornou DADOS INCORRETOS,
SEM AVISO!
Agora, vamos tentar a mesma extração com o arquivo BRU,
para ver o que acontece: [root@pc-00067 /root]# bru -xvvvvvf test.bru
archive ID = 3c9a03a856e2
buffer size = 20k bytes
media size =
bru: [I245] "/": skipped file, directory exists
bru: [I245] "/etc": skipped file, directory exists
bru: [W011] warning - file synchronization error; attempting recovery ...
x 8K [1] -rw-r--r-- 1 root root 161 Jan 12 2000 292040 /etc/hosts.allow
x 10K [1] -rw-r--r-- 1 root root 347 Jan 12 2000 292041 /etc/hosts.deny
bru: [I181] read 10 blocks (20 KBytes) on volume [1], 0:00:00, 9999 Kb/sec
**** bru: execution summary ****
Started: Thu Mar 21 09:11:23 2002
Completed: Thu Mar 21 09:11:23 2002
Archive id: 3c9a03a856e2
Messages: 1 warnings, 0 errors
Archive I/O: 0 blocks (0Kb) written
Archive I/O: 10 blocks (20Kb) read
Files written: 0 files (0 regular, 0 other)
Files read: 2 files (2 regular, 0 other)
Files skipped: 2 files
Write errors: 0 soft, 0 hard
Read errors: 0 soft, 0 hard
Checksum errors: 1
[root@pc-00067 /root]#
O BRU detecta que o dado foi corrompido! Conclusão:
A estrutura tradicional dos formatos de arquivo TAR
e CPIO não permitem assegurar a integridade dos dados.
E seus dados são por demais críticos para serem deixados
à mercê da própria sorte. O formato BRU contabiliza
cada BIT sendo protegido e recuperado. No exemplo
acima, BRU reconhece que os dados haviam sido corrompidos.
Ele então avançaria a fita até que dados corretos pudessem
ser lidos, e continuaria a recuperação, ao invés de abortar
o restore inteiramente. |