Pergunta

Como você faz backup de sua máquina de desenvolvimento para que, no caso de um mau funcionamento catastrófico de hardware, você esteja funcionando no menor tempo possível?

Foi útil?

Solução

Há uma distinção importante entre fazer backup da sua máquina de desenvolvimento e fazer backup do seu trabalho.

Para uma máquina de desenvolvimento, sua melhor aposta é uma solução de imagem que ofereça o mais próximo possível do processo de "restauração com um clique".TimeMachine (Mac) e Windows Home Server (Windows) são excelentes para essa finalidade.Você não apenas pode restaurar toda a sua máquina em 1 a 2 horas (dependendo do tamanho do disco rígido), mas ambos podem ser executados automaticamente e armazenar deltas para que você possa ter meses de backups em relativamente pouco espaço.Existem também vários pacotes "fantasmas", embora eles geralmente não ofereçam backups incrementais/delta, portanto, reserve mais tempo/espaço para fazer backup de sua máquina.

Menos bons são produtos como Carbonite/Mozy/JungleDisk/RSync.Esses produtos permitirão que você recupere seus dados, mas você ainda terá que reinstalar o sistema operacional e os programas.Alguns também têm histórias limitadas/nenhuma.

Em termos de backup de seu código e dados, eu recomendaria um produto de controle de código-fonte como o SVN.Embora uma solução de backup geral proteja seus dados, ela não oferece a funcionalidade de rotulagem/ramificação/histórico que os pacotes SCC oferecem.Essas funções são inestimáveis ​​para qualquer tipo de projeto com prazo de validade.

Você pode executar facilmente um servidor SVN em sua máquina local.Se sua máquina tiver backup, seu banco de dados SVN também terá.Este IMO é a melhor solução para um desenvolvedor doméstico e é como guardo as coisas.

Outras dicas

  1. Todos os arquivos importantes estão em controle de versão (Subversion)
    • Meu layout do Subversion geralmente corresponde ao layout do arquivo no meu servidor web, então posso apenas fazer uma verificação e todos os arquivos da minha biblioteca e outras coisas estão nos lugares corretos.
  2. Backups duas vezes por dia em um disco rígido externo
  3. Backups rsync noturnos para um servidor remoto.
    • Isso significa que eu envio coisas do meu servidor doméstico para o meu host e todos os arquivos e bancos de dados do meu host em casa, então não estou ferrado se perder minha casa ou meu host.

eu uso Mozy, e raramente pensa sobre isso.Esse é um peso que tirei dos meus ombros e que nunca sentirei falta.

Máquinas virtuais e CVS.

Os desktops são implementados com fantasma e são completamente simples.Exceto que eles têm VirtualBox.

Em seguida, os desenvolvedores puxam o ambiente de desenvolvimento de linha de base configurado para baixo do CVS.

Eles fazem login na imagem da VM de desenvolvimento como eles próprios, atualizam o código-fonte e as bibliotecas do CVS e estão prontos e trabalhando novamente.

Isso também torna o desenvolvimento e a manutenção ao mesmo tempo uma tarefa muito mais fácil.

(Eu sei que algumas pessoas não vão gostar de CVS ou VirtualBox, então fique à vontade para substituir pelas ferramentas de sua preferência)

ah, e você verifica se trabalha em uma filial privada do Trunk diariamente.

Ai está.

Tempo total para recuperação:1 hora (máximo)

É hora de "adotar" um novo laptop para a visita de um cliente:1 hora (máximo)

E um passo em direção ao Gerenciamento de Configuração CMMI.

Aliás, sua máquina de desenvolvimento não deve conter nada de valor.Todo o seu trabalho (e o trabalho da sua empresa) deve estar em repositórios centrais (SVN).

Para minhas máquinas domésticas e de desenvolvimento eu uso Imagem verdadeira da Acronis.

Na minha opinião, com os preços baratos do HD, nada substitui um backup diário incremental completo do HD.

Um pouco de preparação ajuda:

  • Todo o meu código é mantido organizado em um único diretório (com subdiretórios categorizados).
  • Todos os emails são mantidos em vários PSTs.
  • Todo o código também é verificado no controle de origem no final de cada dia.
  • Todos os documentos também são mantidos em um só lugar.

Cópia de segurança:

  • Faça backup de seu código, e-mail e documentos com a frequência que desejar (diariamente).
  • Mantenha uma imagem do seu ambiente de desenvolvimento sempre pronta.

Falha e Recuperação

  • Se tudo falhar, formate e instale a imagem.
  • Copie tudo do backup e você estará pronto e funcionando.

É claro que existem ajustes aqui e ali (backup incremental, arquivamento, etc.) que você precisa fazer para tornar esse processo real.

Se você está falando de uma quantidade mínima de tempo de restauração ...Muitas vezes configurei máquinas para fazer backups do Ghost (Symantec ou algo semelhante) todas as noites para uma imagem ou apenas uma cópia direta para outra unidade.Dessa forma, tudo o que você precisa fazer é recriar a imagem da máquina a partir da imagem ou apenas trocar as unidades.Você pode voltar em menos de 10 minutos...A configuração que fiz antes foi em uma situação em que tínhamos alguns servidores de produção redundantes e era aceitável que eles ficassem off-line por tempo suficiente para clonar a unidade... mas apenas à noite.Durante o dia eles tinham que estar 100%... isso salvou minha bunda algumas vezes quando uma unidade principal falhou...Acabei de abrir o gabinete, troquei os cabos para que a unidade de backup fosse o novo mestre e voltasse a ficar online em 5 minutos.

Finalmente transformei minha "estratégia de backup de dados totalmente automatizada" em uma arte.Nunca preciso intervir manualmente e nunca perderei dados no valor de outro disco rígido.Se meu computador morrer, sempre terei um backup inicializável completo com no máximo 24 horas e backups incrementais com no máximo uma hora.Aqui estão os detalhes de como eu faço isso.

Meu único computador é um MacBook de 160 GB rodando OSX Leopard.Na minha mesa de trabalho, tenho 2 discos rígidos externos de 500 GB.Uma delas é uma partição única de 500 GB chamada “Externa”.O outro possui uma partição de 160 giga chamada "Clone" e uma partição de 340 giga chamada TimeMachine.

O TimeMachine é executado sempre que estou no trabalho, fazendo backup constante dos meus arquivos "em andamento" (que também são comprometidos com o Controle de Versão ao longo do dia).

Todos os dias da semana às 12h05, SuperDuper!copia automaticamente todo o disco rígido do meu laptop para a unidade "Clone".Se o disco rígido do meu laptop morrer, posso inicializar diretamente da unidade Clone e começar a trabalhar sem perder o ritmo - me dando algum tempo para substituir a unidade (isso aconteceu comigo DUAS VEZES desde a configuração!).(Nota técnica:Na verdade, ele apenas copia tudo o que mudou desde o dia da semana anterior às 12h05 ...nem toda a viagem todas as vezes.Funciona como um encanto.)

Em casa eu tenho um D-Link DNS-323, que é um dispositivo Network Attached Storage de 1 TB (2x500 gig) executando um RAID espelhado, para que tudo na primeira unidade de 500 giga seja automaticamente copiado para a segunda unidade de 500 giga.Dessa forma, você sempre tem um backup e é totalmente automatizado.Este cachorrinho tem um cliente DNS dinâmico integrado e um servidor FTP.

Então, no meu roteador WRT54G, eu encaminho a porta FTP (21) para o meu DNS-323 e deixo o servidor FTP ativo.

Após a clonagem do SuperDuper, o rSync é executado e sincroniza meu drive "Externo" com o DNS-323 em casa, via FTP.

É isso.Usando 4 unidades (2 externas, 2 no NAS), tenho:1) Um backup completo sempre ligável com menos de 24 horas de idade, de segunda a sexta-feira), um backup de todos os meus arquivos em andamento, que nunca tem mais de 30 minutos de idade, de segunda a sexta-feira (quando estou no trabalho e conectado às unidades externas) 3) Acesso a todos os meus MP3s (170 GB) em documentos em ação no "externo" e em casa no NAS 4) Dois backups completos de todos os meus mp3s e documentos no NAS (externo é original cópia, ambas as unidades no NAS são espelhos via Chronosync)

Por que faço tudo isso?Porque:1) Em 2000, deixei cair um disco rígido de 40 GB de 1 polegada e custou US$ 2.500 para recuperar esses dados.2) No ano passado, tive que levar meu MacBook para conserto 4 vezes.Um disco rígido morto, duas placas-mãe mortas e uma webcam morta.Na quarta vez, eles substituíram meu MacBook por um novo e melhor, sem nenhum custo, e não tive problemas desde então.

Graças aos meus backups diários, não perdi nenhum trabalho ou produtividade.Se eu não os tivesse, porém, todo o meu trabalho teria desaparecido, juntamente com os meus MP3s, e os meus escritos, e todas as fotos das minhas viagens ao Peru, Croácia, Inglaterra, França, Grécia, Holanda, Itália e todas as minhas fotos de família.Você pode imaginar?Tenho certeza que sim, porque aposto que você tem uma pilha de fotos digitais no seu computador agora...sem backup de forma alguma.

Talvez apenas um simples ataque ao disco rígido de hardware seja um bom começo.Dessa forma, se uma unidade falhar, você ainda terá a outra unidade no ataque.Se algo diferente das unidades falhar, você poderá colocá-las em outro sistema e obter seus arquivos rapidamente.

Estou apenas resolvendo isso no trabalho para a equipe.Uma imagem com todas as ferramentas comuns está na Rede.(Na verdade, temos uma máquina hotswap pronta).Todo o trabalho em andamento também está na rede.

Então a máquina dos desenvolvedores explode.Use a máquina hotswap e continue.Tempo de inatividade de aproximadamente 15 minutos + intervalo para café.

Temos uma solução corporativa chamada Altiris, que funciona quando quer.Depende se está chovendo ou não lá fora.Acho que Altiris pode ser um deus da chuva e simplesmente não sabe disso.Na verdade, fico feliz quando não está funcionando, porque significa que posso recuperar 99% do uso da CPU, muito obrigado.

Fora isso, não temos nenhum direito de instalar outras soluções de software para fazer backup ou locais onde temos permissão para fazê-lo.Não temos permissão para transferir dados de nossas máquinas.

Então, acabo cruzando os dedos enquanto rio da loucura.

Eu não.

Fazemos integração contínua, enviamos código frequentemente para o sistema central de controle de origem (cujo backup é feito loucamente!).

Se minha máquina morrer no máximo, perdi alguns dias de trabalho.

E tudo o que preciso fazer é obter um disco limpo para configurar o ambiente de desenvolvimento a partir de uma imagem fantasma ou passar um dia colando CDs, reiniciando após a atualização do Windows, etc.Não foi um dia agradável, mas consegui uma máquina bonita e limpa.

No trabalho NetBackup ou PureDisk dependendo da caixa, em casa rsync.

como alguns outros, tenho uma cópia limpa do meu PC virtual que posso pegar e começar do zero a qualquer momento e todo o código é armazenado no Subversion.

Eu uso o SuperDuper!e faça backup da minha máquina virtual em outra unidade externa (tenho duas).Todo o código está em um servidor SVN.Eu tenho uma VM limpa caso a minha falhe.Mas, em ambos os casos, levo algumas horas para instalar o WinXP + Vstudio.eu não uso mais nada nessa caixa.

Eu uso o xcopy para copiar todos os meus arquivos pessoais para um disco rígido externo na inicialização.

Aqui está meu startup.bat:

xcopy d:\arquivos f:\backup\arquivos /D /E /Y /EXCLUDE:BackupExclude.txt

Isso recorre aos diretórios, copia apenas os arquivos que foram modificados e suprime a mensagem para substituir um arquivo existente, a lista de arquivos/pastas em BackupExclude.txt não será copiada.

Servidor doméstico Windows.Minha caixa de desenvolvimento tem duas unidades com cerca de 750 GB de dados entre elas (C:é uma unidade SAS 15K RPM de 300 GB com aplicativos e sistema, D:é um conjunto espelhado de 1 TB com todas as minhas inscrições).Eu uso o Windows Home Server para fazer backup desta máquina e a restaurei com sucesso várias vezes depois de inicializá-la.

O backup da minha máquina de desenvolvimento é feito usando Retrospect e Acronis.Esses são backups noturnos executados quando estou dormindo - um em uma unidade externa e outro em uma unidade de rede.

Todo o meu código-fonte está em repositórios SVN, eu mantenho todos os meus repositórios em um único diretório, então tenho uma tarefa agendada executando um script que cria um caminho para todos os repositórios SVN e executa uma série de hotcopies (usando o script hotcopy.py) como bem como um svndump de cada repositório.

O backup da minha máquina de trabalho é feito de qualquer maneira, mas também tenho o mesmo script em execução para fazer hotcopies e svndumps em alguns locais dos quais é feito backup.

Certifico-me de que, dos backups de trabalho, um local NÃO esteja na SAN, sim, ele é copiado e gerenciado, mas quando está inativo, está inativo.

Gostaria de uma recomendação para um contêiner RAID externo, ou talvez apenas um contêiner de unidade externa, de preferência com interface usando FireWire 800.

Também gostaria de uma recomendação de um fabricante para que as unidades de backup sejam colocadas no contêiner.Eu li tantas análises de unidades dizendo que elas falharam que não sei o que pensar.

Não gosto de serviços de backup como o Mozy porque não quero confiar que eles não verão meus dados.

  • SuperDuper completa backups inicializáveis ​​a cada poucas semanas
  • Backups do Time Machine para meus diretórios mais importantes diariamente
  • O código é armazenado em servidores subversion/git da rede
  • Backups do Mysql com cron nos servidores web, use ssh/rsync para baixá-lo em nossos servidores locais também usando cron nightly.

Se você usa um Mac, é óbvio - basta conectar um disco rígido externo e o software Time Machine integrado fará o backup de todo o seu sistema e, em seguida, manterá um backup incremental de acordo com a programação que você definir.Muitas vezes isso me tirou de um buraco quando baguncei meu ambiente;também tornou muito fácil restaurar meu sistema após instalar um disco rígido maior.

Para backups externos, eu gosto SelvaDisk - funciona em Mac, Windows e Linux e faz backup no Amazon S3 (ou, adicionado recentemente, no serviço de nuvem Rackspace).Esta é uma boa solução se você tiver várias máquinas (ou mesmo VMs) e quiser manter o backup de determinados diretórios sem ter que pensar nisso.

Aviso do servidor doméstico!

Instalei o Home Server no meu servidor de desenvolvimento por dois motivos:Versão barata do Windows Server 2003 e por motivos de backup.

O lado do software de backup é um sucesso ou um fracasso.Se você 'Adicionar' uma máquina à lista de computadores para backup logo no início da instalação do Home Server, geralmente tudo estará ótimo.

MAS parece que fica MUITO mais difícil adicionar qualquer outra máquina depois de um certo tempo.

(Caso em questão:Fiz uma reconstrução completa no meu laptop, tentei adicioná-lo - NÃO!)

Portanto, duvido seriamente da confiabilidade desta plataforma para fins de backup.Parece estar anulando o propósito se você não pode confiar 100% nele

Tenho os seguintes cenários de backup e uso o rsync como ferramenta de backup principal.

  1. (semanalmente) Backup do Windows para recuperação "bare metal"
    Conteúdo da unidade do sistema C:\ usando o Backup do Windows para recuperação rápida após falha no disco físico, pois não quero reinstalar o Windows e os aplicativos do zero.Isso está configurado para ser executado automaticamente usando a programação de backup do Windows.

  2. (diário e condicional) Backup de conteúdo ativo usando rsync
    Rsync cuida de todos os arquivos alterados de laptop, telefone e outros dispositivos.Eu faço backup do laptop todas as noites e após mudanças significativas no conteúdo, como a importação de fotos RAWs recentes do cartão SD para o laptop.

Eu criei um script bash que executo no Cygwin no Windows para iniciar o rsync: https://github.com/paravz/windows-rsync-backup

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top