102.1 Lição 1
Certificação: |
LPIC-1 |
---|---|
Versão: |
5.0 |
Tópico: |
102 Instalação do Linux e gerenciamento de pacotes |
Objetivo: |
102.1 Definir o esquema de partições do disco rígido |
Lição: |
1 de 1 |
Introdução
Para concluir este objetivo com sucesso, é necessário entender a relação entre discos, partições, sistemas de arquivo e volumes.
Pense em um disco (ou dispositivo de armazenamento, já que os dispositivos modernos não contêm nenhum “disco”) como um “receptáculo físico” para seus dados.
Antes de um disco poder ser usado por um computador, ele precisa ser particionado. Uma partição é um subconjunto lógico do disco físico, uma espécie de “cerca” lógica. O particionamento é uma maneira de “compartimentar” as informações armazenadas no disco, separando, por exemplo, os dados do sistema operacional dos dados do usuário.
Todo disco precisa de pelo menos uma partição, mas é possível definir várias partições se necessário, e as informações a respeito delas são armazenadas em uma tabela de partições. Essa tabela inclui informações sobre o primeiro e o último setores da partição e seu tipo, além de detalhes adicionais sobre cada partição.
Dentro de cada partição existe um sistema de arquivos. O sistema de arquivos descreve a maneira como as informações estão de fato armazenadas no disco; por exemplo, o modo como os diretórios são organizados, qual a relação entre eles, onde estão os dados para cada arquivo etc.
As partições não podem abranger vários discos. Porém, usando o Gerenciador de Volumes Lógicos (Logic Volume Manager ou LVM), podemos combinar várias partições, mesmo entre discos, para formar um único volume lógico.
Os volumes lógicos abstraem as limitações dos dispositivos físicos e permitem trabalhar com “pools” de espaço em disco que podem ser combinados ou distribuídos de maneira muito mais flexível do que as partições tradicionais permitiriam. O LVM é útil em situações em é necessário adicionar mais espaço a uma partição sem precisar migrar os dados para um dispositivo maior.
Neste objetivo, você aprenderá a projetar um esquema de particionamento de disco para um sistema Linux, alocando sistemas de arquivos e espaços virtuais de troca para separar partições ou discos quando necessário.
A maneira de criar e gerenciar partições e sistemas de arquivos será discutida em outras lições. Aqui, nos concentraremos em dar uma visão geral do LVM.
Pontos de montagem
Antes que um sistema de arquivos possa ser acessado no Linux, ele precisa ser montado. Isso significa vincular o sistema de arquivos a um ponto específico na árvore de diretórios do sistema, chamado ponto de montagem.
Quando montado, o conteúdo do sistema de arquivos estará disponível no ponto de montagem. Por exemplo, imagine que você tenha uma partição com os dados pessoais de seus usuários (o diretório pessoal deles), contendo os diretórios /john
, /jack
e /carol
. Quando montados em /home
, o conteúdo desses diretórios estará disponível em /home/john
, /home/jack
e /home/carol
.
O ponto de montagem deve existir antes de o sistema de arquivos ser montado. Não é possível montar uma partição em /mnt/userdata
se esse diretório não existir. No entanto, se o diretório existir e contiver arquivos, esses arquivos ficarão indisponíveis até você desmontar o sistema de arquivos. Ao listar o conteúdo do diretório, veremos os arquivos armazenados no sistema de arquivos montado, não o conteúdo original do diretório.
Os sistemas de arquivos podem ser montados em qualquer lugar que você desejar. No entanto, certas práticas são recomendadas para facilitar a administração do sistema.
Tradicionalmente, todos os dispositivos externos eram montados no diretório /mnt
. Ali existia uma série de pontos de ancoragem pré-configurados para os dispositivos mais comuns, como drives de CD-ROM (/mnt/cdrom
) e de disquete (/mnt/floppy
).
Ele foi substituído por /media
, que agora é o ponto de montagem padrão para qualquer mídia removível (como discos externos, drives flash USB, leitores de cartão de memória, discos óticos etc.) conectada ao sistema.
Na maioria das distribuições Linux e ambientes de desktop modernos, os dispositivos removíveis são montados automaticamente em /media/USER/LABEL
quando conectados ao sistema, sendo USER
o nome de usuário e LABEL
o nome do dispositivo. Por exemplo, um drive flash USB com o nome FlashDrive
conectado pelo usuário john
seria montado em /media/john/FlashDrive/
. A maneira como isso é feito varia de acordo com o ambiente de desktop.
Dito isto, sempre que for preciso montar manualmente um sistema de arquivos, é recomendável montá-lo em /mnt
. Os comandos específicos para controlar a montagem e desmontagem de sistemas de arquivos no Linux serão discutidos em outra lição.
Mantendo as coisas separadas
No Linux, existem alguns diretórios que é melhor manter em partições separadas. Há muitas razões para isso: por exemplo, ao manter os arquivos relacionados ao carregador de inicialização (armazenado em /boot
) em uma partição boot, garantimos que o sistema ainda poderá inicializar em caso de falha no sistema de arquivos raiz.
Também é mais fácil reinstalar o sistema sem o risco de afetar os dados dos usuários se os diretórios pessoais (em /home
) estiverem em uma partição separada. Da mesma forma, manter os dados relacionados a um servidor web ou banco de dados (normalmente em /var
) em uma partição separada (ou mesmo um disco à parte) facilita a administração do sistema caso seja necessário adicionar mais espaço em disco para esses casos de uso.
Há também razões de desempenho para manter determinados diretórios em partições separadas. Você pode querer manter o sistema de arquivos raiz (/
) em uma unidade SSD rápida, e diretórios maiores como /home
e /var
em discos rígidos mais lentos, que oferecem muito mais espaço por um preço bem menor.
A partição de inicialização (/boot
)
A partição de inicialização contém arquivos usados pelo gerenciador de inicialização para carregar o sistema operacional. Nos sistemas Linux, o gerenciador de inicialização costuma ser o GRUB2 ou, em sistemas mais antigos, o GRUB Legacy. A partição geralmente é montada em /boot
e seus arquivos são armazenados em /boot/grub
.
Tecnicamente, uma partição de inicialização não é necessária, pois na maioria dos casos o GRUB pode montar a partição raiz (/
) e carregar os arquivos a partir de um diretório /boot
separado.
No entanto, uma partição de inicialização separada pode ser interessante, seja por segurança (garantindo que o sistema seja inicializado mesmo em caso de falha no sistema de arquivos raiz), ou se você desejar usar um sistema de arquivos que o carregador de inicialização não pode entender na partição raiz, ou se usar um método não suportado de criptografia ou compactação.
A partição de inicialização geralmente é a primeira partição no disco. Isso ocorre porque a IBM PC BIOS original endereçava os discos usando cilindros, cabeças e setores (CHS), com um máximo de 1024 cilindros, 256 cabeças e 63 setores, resultando em um tamanho máximo de disco de 528 MB (504 MB no MS-DOS). Isso significa que qualquer coisa além dessa marca não estaria acessível em sistemas legados, a menos que um esquema de endereçamento de disco diferente (como o Endereçamento de bloco lógico, LBA) fosse usado.
Portanto, para obter compatibilidade máxima, a partição de inicialização geralmente está localizada no início do disco e termina antes do cilindro 1024 (528 MB), garantindo que, aconteça o que acontecer, a máquina sempre poderá carregar o kernel.
Como a partição de inicialização armazena apenas os arquivos necessários para o carregador de inicialização, o disco RAM inicial e as imagens do kernel, ela pode ser bem pequena para os padrões atuais. Um bom tamanho é de cerca de 300 MB.
A partição do sistema EFI (ESP)
A partição do sistema EFI (ESP) é usada por máquinas baseadas na UEFI (Unified Extensible Firmware Interface) para armazenar gerenciadores de inicialização e imagens do kernel para os sistemas operacionais instalados.
Essa partição é formatada em um sistema de arquivos baseado em FAT. Em um disco particionado com uma tabela de partição GUID, ela possui o identificador global único C12A7328-F81F-11D2-BA4B-00A0C93EC93B
. Se o disco tiver sido formatado no esquema de particionamento do MBR, o ID da partição será 0xEF
.
Em máquinas com Microsoft Windows, essa partição geralmente é a primeira no disco, embora isso não seja obrigatório. O ESP é criado (ou preenchido) pelo sistema operacional após a instalação e, em um sistema Linux, é montado em /boot/efi
.
A partição /home
Cada usuário do sistema possui um diretório inicial para armazenar arquivos pessoais e preferências. Aa maioria deles está localizada em /home
. O diretório inicial costuma ter o mesmo nome que o usuário; assim, o usuário John teria seu diretório em /home/john
.
Porém, há exceções. Por exemplo, o diretório inicial do usuário raiz é /root
e alguns serviços do sistema podem ter usuários associados com diretórios pessoais em outros lugares.
Não existe uma regra para determinar o tamanho de uma partição para o diretório /home
(a partição inicial). É preciso levar em consideração o número de usuários no sistema e como ele será usado. Um usuário que apenas navega na web e processa textos requer menos espaço do que um que trabalha com edição de vídeo, por exemplo.
Dados variáveis (/var
)
Este diretório contém “dados variáveis”, ou arquivos e diretórios nos quais o sistema deve poder escrever durante a operação. Dentre eles estão os logs do sistema (em /var/log
), os arquivos temporários (/var/tmp
) e os dados de aplicativos em cache (em /var/cache
).
/var/www/html
também é o diretório padrão para os arquivos de dados do Apache Web Server e /var/lib/mysql
é o local padrão para os arquivos de banco de dados do servidor MySQL. Porém, ambos podem ser alterados.
Uma boa razão para colocar /var
em uma partição separada é a estabilidade. Muitos aplicativos e processos escrevem em /var
e seus subdiretórios, como /var/log
ou /var/tmp
. Um processo defeituoso poderia escrever dados até que não restasse nenhum espaço livre no sistema de arquivos.
Se /var
estiver em /
, isso poderia disparar um pânico do kernel e corromper o sistema de arquivos, causando uma situação muito difícil de reverter. Mas se /var
for mantido em uma partição separada, o sistema de arquivos raiz não será afetado.
Como no caso de /home
, não existe uma regra universal para determinar o tamanho da partição de /var
, já que isso vai variar conforme o uso que for feito do sistema. Em um sistema doméstico, uns poucos gigabytes devem bastar. Mas em um banco de dados ou servidor web, será necessário bem mais espaço. Nesse caso, seria melhor colocar /var
em uma partição de um disco diferente da partição raiz, adicionando uma camada extra de proteção contra falhas físicas do disco.
Swap
A partição de troca (ou swap) é usada para passar as páginas de memória da RAM para o disco conforme necessário. Esta partição precisa ser de um tipo específico e configurada com um utilitário apropriado chamado mkswap
antes de poder ser usada.
A partição de troca não pode ser montada como as outras, o que significa que não é possível acessá-la como um diretório normal e visualizar seu conteúdo.
Um sistema pode ter diversas partições de troca (embora isso seja incomum), e o Linux também suporta o uso de arquivos de troca em vez de partições, o que pode ser útil para aumentar rapidamente o espaço de troca quando necessário.
O tamanho da partição de troca é um tema controverso. A regra antiga dos primeiros dias do Linux (“duas vezes a quantidade de RAM”) nem sempre se aplica, dependendo de como o sistema está sendo usado e da quantidade de RAM física instalada.
Na documentação do Red Hat Enterprise Linux 7, a Red Hat recomenda o seguinte:
Quantidade de RAM | Tamanho de troca recomendado | Tamanho de troca recomendado com hibernação |
---|---|---|
< 2 GB de RAM |
2x a quantidade de RAM |
3x a quantidade de RAM |
2-8 GB de RAM |
Igual à quantidade de RAM |
2x a quantidade de RAM |
8-64 GB de RAM |
No mínimo 4 GB |
1.5x a quantidade de RAM |
> 64 GB de RAM |
No mínimo 4 GB |
Não recomendado |
Obviamente, a quantidade de troca pode depender da carga de trabalho. Se a máquina estiver executando um serviço crítico, como um banco de dados, servidor Web ou SAP, é aconselhável verificar o valor recomendado na documentação desses serviços (ou consultar o fornecedor do software).
Note
|
Para saber mais sobre a criação e ativação de espaços e arquivos de troca, consulte o Objetivo 104.1 do LPIC-1. |
LVM
Já discutimos como os discos são organizados em uma ou mais partições, com cada partição contendo um sistema de arquivos que descreve como os arquivos e os metadados associados são armazenados. Uma das desvantagens do particionamento é que o administrador do sistema deve decidir antecipadamente como o espaço em disco disponível em um dispositivo será distribuído. Isso pode ser problemático mais tarde, se uma partição exigir mais espaço do que o originalmente planejado. Claro que as partições podem ser redimensionadas, mas isso nem sempre é possível (se, por exemplo, não houver mais espaço livre no disco).
O Gerenciamento de Volumes Lógicos (LVM) é uma forma de virtualização do armazenamento que oferece aos administradores de sistema um método mais flexível do que o particionamento tradicional para gerenciar o espaço em disco. O objetivo do LVM é facilitar a gestão das necessidades de armazenamento de seus usuários finais. A unidade básica é o Volume Físico (PV), que é um dispositivo de bloco no sistema, como uma partição de disco ou uma matriz RAID.
Os PVs são agrupados em Grupos de Volumes (VG), que abstraem os dispositivos subjacentes e são vistos como um único dispositivo lógico, com a capacidade de armazenamento combinada dos PVs do componente.
Cada volume em um Grupo de Volumes é subdividido em partes de tamanho fixo chamadas extensões. As extensões em um PV são chamadas Extensões Físicas (PE), enquanto as do volume lógico são Extensões Lógicas (LE). De maneira geral, cada extensão lógica é mapeada para uma extensão física, mas isso pode mudar se forem usados recursos como o espelhamento de disco.
Os Grupos de Volumes podem ser subdivididos em Volumes Lógicos (LVs), com funcionalidade semelhante à das partições, mas com mais flexibilidade.
O tamanho de um Volume Lógico, conforme especificado durante a sua criação, é na verdade definido pelo tamanho das extensões físicas (por padrão, 4 MB) multiplicado pelo número de extensões no volume. Com isso, é fácil entender que para aumentar um Volume Lógico, por exemplo, basta adicionar mais extensões do pool disponível no Grupo de Volumes. Da mesma forma, as extensões podem ser removidas para reduzir o LV.
Após sua criação, um Volume Lógico é visto pelo sistema operacional como um dispositivo de bloco normal. Um dispositivo será criado em /dev
, com o nome /dev/VGNAME/LVNAME
, em que VGNAME
é o nome do Grupo de Volumes e LVNAME
o nome do Volume Lógico.
Esses dispositivos podem ser formatados com o sistema de arquivos desejado usando utilitários padrão (como o mkfs.ext4
, por exemplo) e montados com os métodos usuais, seja manualmente, com o comando mount
, ou automaticamente, adicionando-os ao arquivo /etc/fstab
.
Exercícios Guiados
-
Nos sistemas Linux, onde são armazenados os arquivos do gerenciador de inicialização GRUB?
-
Onde deve estar a partição de inicialização para garantir que um PC seja capaz de carregar o kernel?
-
Onde a partição EFI costuma ser montada?
-
Normalmente, em qual diretório se monta manualmente um sistema de arquivos?
Exercícios Exploratórios
-
Qual a menor unidade dentro de um Grupo de Volumes?
-
Como se define o tamanho de um Volume Lógico?
-
Em um disco formatado com o esquema de particionamento MBR, qual a ID da Partição do Sistema EFI?
-
Além das partições de troca, como é possível aumentar rapidamente o espaço de troca em um sistema Linux?
Resumo
Nesta lição, falamos sobre particionamento e explicamos quais diretórios geralmente são mantidos em partições separadas e por quê. Além disso, demos uma visão geral do LVM (Gerenciamento Lógico de Volumes) e como ele pode oferecer uma maneira mais flexível de alocar os dados e o espaço em disco em comparação com o particionamento tradicional.
Os seguintes arquivos, termos e utilitários foram discutidos:
/
-
O sistema de arquivos raiz do Linux.
/var
-
O local padrão dos “dados variáveis”, ou seja, dados que podem encolher ou aumentar com o tempo.
/home
-
O diretório pai padrão para as pastas iniciais dos usuários regulares de um sistema.
/boot
-
O local padrão dos arquivos do gerenciador de inicialização, kernel do Linux e disco de RAM inicial.
- Partição do Sistema EFI (ESP)
-
Usada pelos sistemas que têm UEFI implementada para o armazenamento dos arquivos de inicialização do sistema.
- Espaço de troca
-
Usado para trocar páginas de memória do kernel quando a RAM está sendo muito solicitada.
- Pontos de montagem
-
Locais em um diretório nos quais um dispositivo (como um disco rígido) será montado.
- Partições
-
Divisões em um disco rígido.
Respostas aos Exercícios Guiados
-
Nos sistemas Linux, onde são armazenados os arquivos do gerenciador de inicialização GRUB?
Em
/boot/grub
. -
Onde deve estar a partição de inicialização para garantir que um PC seja capaz de carregar o kernel?
Antes do cilindro 1024.
-
Onde a partição EFI costuma ser montada?
Em
/boot/efi
. -
Normalmente, em qual diretório se monta manualmente um sistema de arquivos?
Em
/mnt
. Porém, isso não é obrigatório. Podemos montar uma partição no diretório que quisermos.
Respostas aos Exercícios Exploratórios
-
Qual a menor unidade dentro de um Grupo de Volumes?
Os Grupos de Volumes são subdivididos em extensões.
-
Como se define o tamanho de um Volume Lógico?
Pelo tamanho das extensões físicas multiplicado pelo número de extensões no volume.
-
Em um disco formatado com o esquema de particionamento MBR, qual a ID da Partição do Sistema EFI?
A ID é
0xEF
. -
Além das partições de troca, como é possível aumentar rapidamente o espaço de troca em um sistema Linux?
Podem ser usados arquivos de troca.