Porque é que os utilizadores de homelab pela primeira vez estão a separar a unidade de arranque dos dados das aplicações?

Eva Wong é a redatora técnica e entusiasta residente na ZimaSpace. Uma geek desde sempre, apaixonada por homelabs e software de código aberto, dedica-se a traduzir conceitos técnicos complexos em guias práticos. A Eva acredita que a auto-hospedagem deve ser divertida, não intimidante. Através dos seus tutoriais, ajuda a comunidade a desmistificar configurações de hardware, desde montar o primeiro NAS até dominar os contentores Docker.

Os utilizadores principiantes de um laboratório doméstico separam a unidade de arranque dos dados das aplicações para poder reconstruir o sistema operativo sem relocalizar todos os serviços e conjuntos de dados persistentes.

A distinção é lógica antes de ser física. A camada de arranque contém o sistema operativo anfitrião, os pacotes, os registos, as imagens de contentores e as ferramentas de gestão. Os dados das aplicações incluem bases de dados, configuração, segredos, índices e dados gerados pelos utilizadores, que têm de sobreviver à substituição do anfitrião. Manter estas funções explícitas impede que um sistema de ficheiros raiz cheio, uma atualização falhada ou a substituição da unidade de arranque se transformem numa migração de dados das aplicações.

A unidade de arranque e os dados das aplicações têm ciclos de vida diferentes

O sistema operativo anfitrião deve poder ser substituído a partir de um suporte de instalação, de notas de configuração e de definições dos serviços. O estado das aplicações muda consoante a atividade dos utilizadores e pode exigir cópias de segurança frequentes, recuperação com reconhecimento de versões ou exportações consistentes das bases de dados. É possível combinar ambas as funções num só disco, mas combiná-las numa árvore de diretórios sem documentação dificulta a recuperação.

O guia da LinuxBlog sobre a hierarquia do sistema de ficheiros explica como o Linux separa diretórios do sistema, dados variáveis, software opcional, dados de serviços e pontos de montagem numa única árvore de sistemas de ficheiros. Esse modelo de sistema de ficheiros baseado em funções ajuda os principiantes a perceber por que motivo a localização dos dados é importante, mesmo antes de instalar uma segunda unidade física.

Documente os caminhos necessários para reconstruir o anfitrião e os necessários para restaurar os serviços. A separação é eficaz quando reinstalar o sistema operativo não obriga a decidir novamente onde guardar cada base de dados e ficheiro doméstico.

O crescimento das aplicações não deve conseguir encher o sistema de ficheiros raiz

Bases de dados, miniaturas, índices, registos, transferências e processamento temporário podem crescer muito mais depressa do que o esperado. Quando partilham o sistema de ficheiros raiz, um serviço que consuma recursos em excesso pode impedir atualizações de pacotes, inícios de sessão, arranques de contentores, operações normais de escrita do sistema operativo ou outras tarefas.

As recomendações da TechTarget sobre armazenamento em Linux referem que sistemas de ficheiros e volumes lógicos separados podem isolar o consumo de espaço e permitir expandir áreas diferentes de forma independente. Esse princípio de isolamento da capacidade explica por que motivo os dados das aplicações devem ter um limiar de aviso e uma possibilidade de expansão próprios.

Configure alertas para a utilização da partição raiz e dos dados das aplicações em separado. Limite o espaço ocupado pelas imagens de contentores e pelos registos do sistema, e defina limites explícitos para as caches. A falta de espaço no caminho dos dados das aplicações pode parar um serviço; um sistema de ficheiros raiz cheio pode desestabilizar todo o anfitrião.

Os dados persistentes têm de sobreviver à substituição da aplicação e do anfitrião

É muitas vezes possível recriar um contentor, um pacote ou a definição de uma máquina virtual. A base de dados, a configuração, os registos das contas e os dados do utilizador são o que permite reconhecer o serviço após a reinstalação. Por isso, os dados persistentes devem ser mapeados fora das camadas descartáveis das aplicações e protegidos de forma independente.

A Baeldung explica que as alterações ao contentor se perdem quando este para, a menos que os dados sejam colocados num volume ou num caminho montado com bind. Essa distinção entre contentor e dados persistentes é a razão prática para os principiantes criarem uma localização dedicada aos dados das aplicações.

Use caminhos fáceis de ler, como /srv/appdata/service, e mantenha as definições das aplicações noutro local. Registe o tipo de base de dados, o proprietário, a localização dos segredos e o método de cópia de segurança. Um volume com nome pode funcionar, mas o administrador tem de saber onde está protegido e como pode ser restaurado.

As reinstalações e as grandes atualizações passam a ser alterações controladas ao anfitrião

Uma falha da unidade de arranque, uma atualização da distribuição ou a mudança de uma interface de gestão para outra não deve exigir a cópia de todo o conjunto de armazenamento. Quando os dados das aplicações residem em pontos de montagem estáveis, o novo anfitrião pode voltar a ligar-se aos dados existentes após a verificação das permissões, versões e dependências.

As orientações da Backblaze para testar cópias de segurança dão ênfase ao restauro de ficheiros selecionados e à confirmação de que o resultado é utilizável, em vez de confiar apenas no estado da tarefa. Essa disciplina de restaurar antes de reinstalar deve ser aplicada antes de a unidade de arranque original ser apagada ou reutilizada.

Teste o processo com um serviço não crítico. Exporte a respetiva definição, proteja os seus dados, pare-o e recrie-o apontando para um caminho copiado ou um anfitrião de teste. A migração só é considerada bem-sucedida quando a aplicação regressa com as contas, a configuração e os dados representativos intactos.

Os dados das aplicações podem usar armazenamento escolhido para a respetiva carga de trabalho

A camada de arranque precisa de iniciar de forma fiável e de ter espaço suficiente para as atualizações, mas muitas cargas de trabalho de dados de aplicações são mais sensíveis à latência de leitura de ficheiros pequenos e às gravações frequentes. As bases de dados, os índices de pesquisa e os repositórios de metadados beneficiam muitas vezes do armazenamento SSD, enquanto os ficheiros multimédia de grandes dimensões e os arquivos podem ficar num conjunto de HDD orientado para a capacidade.

A comparação da TechTarget entre SSD e HDD descreve os SSD como armazenamento de menor latência, enquanto os HDD continuam a ser uma opção económica para capacidades maiores. Essa distinção entre latência e capacidade permite que o estado das aplicações e os dados em volume cresçam a ritmos diferentes.

Função de armazenamento Requisito principal Localização inicial habitual
Arranque e ferramentas do sistema anfitrião Arranque fiável e atualizações com limites definidos SSD interno
Bases de dados e estado das aplicações Baixa latência e cópias de segurança consistentes Caminho de SSD dedicado
Dados de utilizador em volume Capacidade e expansão previsível Conjunto de HDD, DAS ou NAS de armazenamento
Cache e trabalho temporário Velocidade e facilidade de limpeza Caminho de SSD ou NVMe com capacidade limitada

A camada de dados das aplicações não precisa de um dispositivo físico separado desde o primeiro dia. Precisa de uma função, um caminho, um limite de capacidade, uma política de cópias de segurança e um plano de migração próprios. A separação física torna-se vantajosa quando o desempenho, o isolamento de falhas ou as métricas de crescimento o justificam.

As montagens estáveis preservam os caminhos enquanto o armazenamento físico muda

As aplicações devem usar caminhos definidos por função, em vez de nomes de dispositivos físicos. Uma segunda unidade, uma alteração no controlador ou um reinício podem alterar a ordem pela qual os dispositivos são detetados. Os identificadores estáveis e as dependências de montagem mantêm os caminhos das aplicações inalterados, mesmo quando o hardware subjacente é substituído ou expandido.

O guia de particionamento de discos da LinuxBlog explica como listar discos, identificar sistemas de ficheiros e montar armazenamento de forma persistente, em vez de depender de nomes de dispositivos temporários. Esse fluxo de trabalho de montagem persistente liga a separação lógica à recuperação prática.

Monte os dados das aplicações antes de iniciar os serviços dependentes. Teste dois reinícios e uma situação controlada de ponto de montagem em falta, usando dados descartáveis. Uma falha na montagem deve impedir o arranque da aplicação ou gerar um alerta, em vez de a deixar criar uma nova base de dados vazia na unidade de arranque.

As cópias de segurança tornam-se mais pequenas, claras e fáceis de validar

A camada de arranque pode ser reconstruída a partir de suportes de instalação e de uma configuração documentada, enquanto os dados das aplicações requerem proteção regular. Separá-las permite usar frequências de cópia de segurança diferentes e evita copiar repetidamente ficheiros substituíveis do sistema operativo como se fossem dados do agregado familiar.

A N2WS explica que a recuperação de bases de dados pode exigir o esquema, a configuração, os registos e os metadados das cópias de segurança, além do conjunto de dados principal. Esse inventário de recuperação com vários componentes ajuda a definir o que deve fazer parte do conjunto de cópias de segurança dos dados das aplicações.

Proteja as definições dos serviços, as bases de dados consistentes, a configuração e os segredos de acordo com os respetivos requisitos de recuperação. Faça cópias de segurança dos dados de utilizador em massa separadamente e exclua a cache que pode ser recriada. Teste o restauro de uma aplicação e a reconstrução de um anfitrião, em vez de presumir que uma única cópia de segurança baseada numa imagem abrange ambos os modos de falha.

Utilize a disposição física mais simples que preserve a separação

Um primeiro laboratório doméstico pequeno pode usar um único SSD, dividido em partições ou organizado em funções explícitas de arranque e dados das aplicações, além de uma unidade separada para dados em massa. Uma conceção mais duradoura utiliza um SSD de arranque substituível, uma camada protegida de SSD para os dados das aplicações e um conjunto de armazenamento expansível. Só vale a pena acrescentar dispositivos se reduzirem a dependência entre a recuperação e o crescimento.

O projeto de servidor compacto da ServeTheHome demonstra como um sistema pequeno pode suportar memória planeada, armazenamento rápido e rede, sem se transformar numa montagem à escala de um bastidor. Esse modelo de armazenamento compacto por camadas é adequado a um primeiro laboratório doméstico que prevê futuras atualizações.

O artigo da ZimaSpace sobre a topologia de armazenamento para o primeiro laboratório doméstico alarga a separação às funções de arranque, dados das aplicações, cache, armazenamento em massa e cópias de segurança. Um mini servidor doméstico ZimaBoard 2 é adequado a uma configuração compacta, centrada no processamento e com armazenamento externo planeado. Um ZimaCube 2 AI NAS torna-se a base mais sólida quando a arquitetura se centra no armazenamento em massa em várias unidades, nos dados partilhados do agregado familiar, nos instantâneos e na recuperação orientada para o armazenamento.

Os utilizadores separam os dados de arranque e das aplicações porque o anfitrião deve poder ser substituído, as aplicações devem continuar a ser reconhecíveis e o crescimento do armazenamento não deve obrigar a mover ambas as camadas em conjunto.

Configuração de NAS e servidor

Mais para ler

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.