Implantando imagens do sistema de arquivos em uma partição de tamanho arbitrário

6

Eu gostaria de estabelecer um processo de implantação para máquinas Ubuntu baseado em imagens FS raiz. Gostaria de restaurar a imagem em um disco rígido formatado de forma simples (posso apagar completamente o disco durante a implantação).

Prefiro manter a configuração simples e não particionar em / e /home

separadas

Até agora eu tentei usar o Clonezilla e consegui criar uma imagem da partição raiz que eu posso restaurar. No entanto, o uso desse processo explica o fato de que a partição raiz na qual restauro é pequena, tão pequena quanto a minha imagem de base quando descompactada - cerca de 20 GB. Eu gostaria de aumentar a partição no disco rígido real para a capacidade máxima e, em seguida, restaurar um sistema de arquivos para ele, incluindo todos os links simbólicos e outros sinos e assobios.

Além disso, estou procurando um processo que possa instalar e configurar de forma confiável o carregador de inicialização e a partição de inicialização na unidade quando a partição for restaurada nela. Onde devo procurar? Parece que todos os processos baseados em dd são por bloco, e você é forçado a ter sua partição de destino do mesmo tamanho da imagem. Ao mesmo tempo, não posso garantir que todos os discos das máquinas que vou instalar desta forma sejam da mesma capacidade ... Qual seria a abordagem a seguir? Talvez eu precise de uma solução de imagem de nível superior - uma que faça o backup de um sistema de arquivos em vez de uma partição?

ATUALIZAÇÃO: Depois de fazer algumas sugestões sobre as possíveis configurações, minha pergunta se resume a isso. Como faço para estabelecer um pipeline onde eu poderia fazer o seguinte em uma única etapa:

  • inicializar uma máquina em um DVD / CD
  • formata o disco rígido como MBR / root / swap, sem espaço vazio
  • verifique se é inicializável
  • clonar a partição raiz de uma imagem de rede

Até agora, estabelecemos o seguinte fluxo de trabalho:

  • crie uma imagem de um pequeno disco (70 GB)
  • restaure como um todo
  • vá manualmente para o gparted e redimensione as partições para que a partição raiz seja maior do que a versão da imagem

mas ele nos permite inicializar dois discos seguidos, o que é muito chato.

    
por Julik 23.08.2013 / 20:52

1 resposta

3

Restauração do sistema de arquivos - embora não saiba ao certo como o Bootzilla funciona, basicamente você tem três opções:

  1. Opere no nível de dispositivo de bloco subjacente (ou seja, no sistema de arquivos) - use a clonagem (por exemplo, dd ), que cria uma cópia exata da imagem original. Não importa quão grande seja a partição, você terá um sistema de arquivos do tamanho original (provavelmente haverá problemas graves se a partição ou até mesmo o dispositivo físico for menor que o sistema de arquivos original).

    Esta é a opção mais rápida que você tem (basicamente limitada apenas pela velocidade das velocidades dos dispositivos de origem e destino e sua interconexão). Por outro lado, é o menos flexível - se você quer ter tamanhos diferentes de partições no final, você tem que cultivá-los manualmente (ou script-lo). Além disso, mantendo a imagem de todo o dispositivo de bloco, você está desperdiçando espaço (a imagem contém o espaço não utilizado, embora possa ser zerada e a imagem ser comprimida).

    Se você está mantendo um grande número de sistemas (principalmente) idênticos, este é o caminho a percorrer, pois é o menos complicado.

  2. Opere em o nível do sistema de arquivos - use as ferramentas fornecidas com o sistema de arquivos que você está usando para arquivar seu conteúdo e restaurá-lo no sistema de arquivos recém-formatado. Por exemplo, no caso de XFS , você usaria a combinação xfsdump + mkfs.xfs + xfsrestore ( veja man pages para detalhes).

    É um pouco mais lento, mas a imagem que você guarda contém apenas os dados necessários (sem espaço desperdiçado). O que, por sua vez, pode facilmente compensar a sobrecarga adicional (atualizar as estruturas do sistema de arquivos na restauração) se o sistema de arquivos em questão estiver quase vazio. Também oferece a oportunidade de criar e implantar instantâneos incrementais. A etapa adicional de criar um novo sistema de arquivos permite usar qualquer tamanho de partição necessário (que seja grande o suficiente) e ajustar cada sistema de arquivos de destino para necessidades específicas (alterando o tamanho do bloco, o espaço de metadados e outros). A desvantagem é que é específico do sistema de arquivos.

  3. Opere no nível do sistema de arquivos - usando ferramentas padrão como tar ou cpio (ou até rsync ou cp ) e, opcionalmente, compactação (como nos casos anteriores). Você pode alterar facilmente os sistemas de arquivos subjacentes e o processo é bastante simples. Atenção extrema deve ser dada ao manuseio de arquivos especiais (arquivos esparsos, dispositivos / pipes nomeados), já que o comportamento das ferramentas varia bastante. Você também precisa garantir que não cruza o limite do sistema de arquivos.

Gestor de início - não se incomode com uma partição /boot em separado - em vez disso, sugiro strongmente que pondere a /home em separado. Não há muitos casos em que ter uma partição separada para dados seja desnecessária ou até mesmo uma má ideia.

Dependendo do bootloader usado, ele pode funcionar mesmo após clone de disco completo - primeira opção entre discos (não apenas partições!) de tamanhos idênticos, mas geralmente "reinstalar" deve ser o preferido (e bem fácil) - você está copiando todos arquivos de configuração necessários, basta executar o instalador do carregador de boot.

A única coisa em que se deve ter cuidado é de onde o carregador de boot lê os dados e onde escreve - boa ideia pode ser chroot to o novo sistema de arquivos e executando o bootloader a partir daí. Certifique-se de montar /dev , /proc e possivelmente /sys do sistema de arquivos raiz atualmente ativo no chroot (ou seja, o sistema de arquivos recentemente clonado).

Nota: a partição de 20 GB é bastante grande - por exemplo, instalações gerais de desktop Linux são geralmente bem menores de 10GB, e isso já inclui bastante software.

Se os seus usuários estiverem instalando software adicional e / ou você (como administrador) estiver instalando para eles (em uma base por máquina), ele provavelmente deverá ir a algum outro lugar além de /usr . O software dos usuários geralmente está localizado diretamente em suas casas (o que pode ser bastante útil especialmente para diretórios caseiros montados em rede), programas específicos do sistema devem entrar em /usr/local , que pode ser facilmente outra partição. Caches / logs são melhor mantidos separadamente também. Além de outras coisas, a separação limpa permite manter os direitos de acesso são - nem todo usuário precisa ter acesso de administrador à sua máquina (sim, há muitas exceções, mas deve ser sempre considerado não-padrão primeiro). Re-imagem da máquina não necessariamente destruir tudo - ou, em outras palavras, pode-se re-imagem apenas algumas partes. E MKFS DEVICE_OF(/var/chaches) é mais rápido que rm -Rf /var/caches . Tirar instantâneos dos dados do cache (se necessário) também é mais fácil de um sistema de arquivos.

A desvantagem - a fragmentação do espaço em disco (em várias partições) deve ser um problema menor nos dias de hoje devido aos tamanhos médios dos HDDs.

    
por 23.08.2013 / 22:26