RSS
 

Archive for the ‘Armazenamento’ Category

Netatalk: DB_VERSION_MISMATCH

29 jun

Recentemente me deparei com um mal comportamento do meu “Time Capsule” feito em casa. Quando tentava acessar os compartilhamentos pelo Finder, ele não conseguia conectar. Nos logs apareciam erros como este:

cnid_open: dbenv->open (rw) of /Volumes/Storage/.AppleDB failed:
DB_VERSION_MISMATCH: Database environment version mismatch

Foi então que percebi que na última atualização do Gentoo, o BerkeleyDB havia sido atualizado. O que fiz então foi recompilar o netatalk com o comando abaixo:

# emerge netatalk

E então remover os diretórios .AppleDB do storage:

# find /Volumes/Storage -name '.AppleDB' -exec rm -rfv {} \;

Isto resolveu o problema.

 

NAS feito em casa, parte 3 – Time Machine

03 mai

No primeiro artigo da série descrevi o hardware desde Time Capsule feito em casa. No segundo artigo da série descrevi o processo de instalação e configuração do servidor.

Neste artigo irei descrever o processo de configuração do Time Machine para utilizar o Time Capsule de pobre. É aqui que entram os inconvenientes do Time Capsule feito em casa. Ele não funciona exatamente como o Time Capsule original e por isto é necessário fazer alguns passos a mais para que cumpra seu propósito.

Time Machine

O Time Machine por padrão só utiliza dispositivos de armazenamento conectados localmente (via USB ou Firewire) ou o Time Capsule. É necessário configurar uma opção escondida nele para que possibilite a escolha de outros dispositivos como armazenamento dos backups. Para fazer isto, abra um Terminal e execute o comando abaixo. É necessário repetir este comando em todos os Macs que for utilizar o servidor de Time Capsule feito em casa:

defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

Deixe um Terminal aberto e uma conexão SSH aberta direta com o servidor. Fique no diretório ~usuario/.TimeMachine que mais tarde será utilizado pelo Time Machine para gravar a imagem do backup.

$ ssh root@Atomix
# cd ~herbert/.TimeMachine

Com o Finder, conecte no compartilhamento apropriado do Time Machine para seu usuário. Lembre-se de que o usuário e a senha são os mesmos que foram criados no servidor Linux e cadastrados na configuração do Netatalk. Veja na foto abaixo qual é o compartilhamento que eu acessei:

É necessário conectar no compartilhamento antes de configurar o Time Machine pela primeira vez

É necessário conectar no compartilhamento antes de configurar o Time Machine pela primeira vez

Agora abra o System Preferences, escolha a opção Time Machine e clique no botão Change Disk. Uma lista com os dispositivos aceitos aparecerá. Se seguiu o artigo 2 conforme descrito, dentre elas deverá aparecer um item com o nome do usuário que está acessando o servidor seguido da palavra TimeCapsule e o nome do servidor entre parênteses, conforme a imagem abaixo. Após a seleção clique em Use for Backup:

Selecione o compartilhamento apropriado para o Time Machine de seu usuário

Selecione o compartilhamento apropriado para o Time Machine de seu usuário

Agora o Time Machine tentará efetuar a inicialização. Enquanto ele inicializa, no terminal SSH que está conectado no servidor, fique listando o conteúdo do diretório ~usuario/.TimeMachine até que apareça um arquivo/diretório com a extensão .sparsebundle. Copie o nome do arquivo para um editor de texto e remova o .tmp que faz parte do nome, como no exemplo abaixo:

Silver Surfer_0a1e5ba8b8c1.tmp.sparsebundle

… se torna …

Silver Surfer_0a1e5ba8b8c1.sparsebundle

Este será o nome do arquivo da imagem que deverá ser criada manualmente, pois o Time Machine não conseguirá criá-la automaticamente e acusará um erro. O nome é composto do nome do Mac que fará seus backups remotos, seguido pelo endereço MAC de sua placa de rede e a extensão do arquivo.

Lembra quando mencionei os problemas de compatibilidade do AFP 3.2 e o Netatalk 2.0.3 no artigo 2? Então. É disso que eu estava falando. ;-)

Para criar a imagem sparsebundle abra o Disk Utility, clique em New Image e utilize como nome de arquivo em Sabe As o nome da imagem sparsebundle sem o .tmp que foi gerado anteriormente. Salve a imagem no Desktop em Where. Em Volume Name coloque algo como “Backup of NomeDoComputador”. Em Volume Size, recomendo colocar um tamanho que seja no mínimo 2x o tamanho do HD do Mac. Em Volume Format utilize Mac OS Extended (Journaled). Em Encryption utilize none. Em Partitions utilize Single partition – Apple Partition Map, e em Image Format utilize sparse bundle disk image. Utilize a imagem abaixo como referência.

Crie a imagem sparsebundle com o Disk Utility

Crie a imagem sparsebundle com o Disk Utility

Após preencher tudo, clique em Create. Um arquivo sparsebundle será criado em seu Desktop e imediatamente será montado no Finder. Desmonte a imagem “Backup of NomeDoComputador” e mova o arquivo sparsebundle criado para o servidor no compartilhamento do TimeMachine para o usuário em questão. No meu caso ele ficou dentro do compartilhamento “herbert TimeMachine”.

Pronto. Agora o Time Machine conseguirá efetuar os backups automaticamente. O primeiro backup geralmente é o maior deles e demora um bocado dependendo da conexão entre seu Mac e o servidor. Eu recomendo fazer o primeiro backup através de uma conexão Ethernet Gigabit. Os próximos backups, quanto mais próximos uns dos outros, menor será a quantidade de informações a ser transferida e, portanto, serão mais rápidas.

O Time Machine tenta fazer backups automáticos em períodos curtos. O servidor deverá estar ligado para isto. Caso não esteja o Time Machine ignora e não faz nenhum backup. Ele só irá reclamar se passar mais do que 7 dias do último backup.

Não é necessário montar os compartilhamentos de rede para o Time Machine funcionar. Ele mesmo detecta tudo e monta/desmonta o que for preciso. ;-)

Recomendo deixar a opção “Show Time Machine status in the menu bar” habilitada. Desta forma um ícone que lembra o símbolo da Skol ficará no menu do Mac. Quando o Time Machine estiver trabalhando, este ícone ficará girando. Através dele também é possível saber a data e hora do último backup, bem como forçar o Time Machine para fazer os backups. Também é possível entrar no Time Machine para recuperar arquivos quando necessário.

Por enquanto é só. Futuramente pretendo escrever sobre atualizações do Netatalk, e talvez até experimentar utilizar um Hackintosh ao invés de Linux como servidor de Time Machine.