quarta-feira, 18 de julho de 2018

Sugestões de Esquema de Particionamento - Parte I



Entendendo o Particionamento sugerido pelo openSUSE e mais: como usar LVM


Nesta Parte I da série iremos "dissecar" o particionamento sugerido pelo openSUSE durante uma instalação. Você vai ficar sabendo porque o openSUSE particiona o disco usando GPT e não mais MBR; por que ele sugere usar btrfs como sistema de arquivos para a partição root e porque ele cria aquela lista de sub volumes; Vai descobrir que o openSUSE pode ser instalado sem problemas tanto em máquinas com BIOS quanto em máquinas com UEFI; Por fim, iremos sugerir e mostrar como usar LVM (Logical Volume Management), e assim fazer um aproveitamento mais inteligente do seu HD.

Antes de continuar, se você ainda não leu o artigo que deu origem a esta série, considere ler ele agora, caso assuntos como BIOS, MBR, GPT, UEFI, Partições, Pontos de montagem, Diretório raiz ( / ), etc., ainda lhe causem alguma dúvida. O artigo anterior é um artigo introdutório, que pode ajudar quem é iniciante no Linux.

Placas Mãe com BIOS e/ou UEFI


O openSUSE Leap funciona praticamente do mesmo jeito em máquinas com o BIOS tradicional ou em máquinas com o (nem tão) novo UEFI. A única diferença é o modo de fazer o boot! Isso pode ser comprovado se dermos uma olhada no tipo de partição definido para /dev/sda1, nas figuras abaixo.

Particionamento no BIOS
Particionamento no UEFI



_____[ GPT e BIOS ]____________________________________________

Para que o GRUB consiga fazer boot a partir de um disco particionado com GPT em um sistema baseado em BIOS é necessário ter uma partição de inicialização do BIOS. É para isso que serve /dev/sda1 (8.00 MiB) como BIOS Boot Partition.


____________________________________________[ GPT e UEFI ]_____

Em comparação com o BIOS, no UEFI a partição /dev/sda1 (500.00 MiB) para /boot/efi com vfat é enorme! São 500 MiB. Isso se deve ao fato de que nessa partição de inicialização existe toda uma implementação das especificações EFI system partition. Ela deve ser independente de sistema operacional e atuar como uma área de armazenamento para diversos bootloaders, aplicações e drivers, que serão acionados pelo firmware UEFI da placa mãe.


btrfs e subvolumes na partição root*


Por padrão, o openSUSE usa btrfs e snapshots para a partição root. Snapshots permitem que você faça instantâneos de áreas importantes do sistema antes de uma alteração significativa, e reverta (roll back) essas alterações posteriormente, se for necessário.
Atualizações mal sucedidas ou instalações de drivers causadores de instabilidades no sistema podem ser facilmente revertidas. No caso de atualizações ou de instalações de software via Yast, o openSUSE se encarrega ele mesmo de fazer snapshots. Mas se você for instalar "manualmente" algum software ou driver, você pode usar o Snapper, e fazer você mesmo um snapshot. No openSUSE, snapshots podem ser facilmente gerenciados através do Snapper.
Snapper em ação!


Quando se faz snapshots com a intenção de restaurar (roll back) o sistema, é necessário assegurar que algumas áreas e alguns dados, tais como o diretório /home, conteúdo de servidores Web e FTP, ou arquivos de log não entrem no processo, para não gravar coisas desnecessárias ou para que dados não sejam perdidos ou sobrescritos. Isso é alcançado usando sub volumes no sistema de arquivos de root.

Por padrão, sub volumes são excluídos de snapshots. Durante uma instalação, o Yast propõe a criação de sub volumes para os seguintes diretórios, que serão excluídos de snapshots (e consequentemente não haverá roll back sobre eles).
   /boot/grub2/i386-pc, /boot/grub2/x86_64-efi, /boot/grub2/powerpc-ieee1275, /boot/grub2/s390x-emu
O roll back de configurações do bootloader não é suportado. Os diretórios listados acima são específicos de arquitetura. Os sub volumes @/boot/grub2/i386-pc e @/boot/grub2/x86_64-efi garantem que não haverá nenhuma tentativa de snapshot ou roll back nesses diretórios.

   /home
Se /home não estiver em uma partição separada, esse sub volume evita que dados sejam perdidos nela durante um roll back. Se foi aceita a proposta de uma partição /home separada, não será criado nenhum sub volume pelo Yast.

   /opt
Produtos de terceiros são geralmente instalados em /opt. O sub volume @/opt evita que esses produtos sejam desinstalados em um roll back.

   /root
O diretório /root é o diretório home do usuário root e também deve ser preservado em um roll back! Por isso o sub volume @/root.

   /srv
/srv contém os dados de servidores, tais como Web ou FTP. O sub volume @/srv evita que dados sejam perdidos nesse diretório, não fazendo snapshots nem roll backs.

   /tmp
Todo diretório contendo arquivos temporários e caches dever ser excluídos de snapshots. Por isso o sub volume @/tmp.

   /usr/local
Este diretório é usado quando são feitas instalações manuais de software (make / make install). Da mesma forma que nos casos anteriores, o sub volume @/usr/local garante que eles não serão perdidos em um eventual roll back.

   /var
Por fim, o diretório /var contém inúmeros arquivos variáveis, incluindo logs, caches temporários, produtos de terceiros em /var/opt, e uma série muito grande de outras coisas que precisam ser preservadas. Daí que o sub volume @/var evita perda de dados no caso de um roll back.

* Qualquer semelhança entre essa seção e a documentação oficial sobre o assunto terá sido mero propósito!

É TUDO MEU!


Quando o Yast detecta que o HD está "virgem", ele propõe um esquema de particionamento utilizando toda a área disponível. Mas não é só o openSUSE que faz isso! Se você instalar o Windows nas mesmas condições, ele vai fazer a mesma coisa, como podemos ver na figura abaixo! Isto é uma coisa que precisa ser pensada e é uma das principais razões desse artigo!

Fig. 3 - Windows 10 instalado com UEFI, usando totalmente um HD de 1 TB



O resto é tudo igual como era antes!


Ultrapassada essa questão de BIOS ou UEFI, o que resta a ser feito em termos de particionamento é exatamente igual. Independente de ser BIOS ou UEFI, a proposta do openSUSE Leap é sempre criar uma partição raiz ( / ) grande o suficiente para uma utilização eficaz do sistema, e uma partição /home separada. Além disso, o tipo de particionamento no HD é sempre o GPT!

Premissas & Possíveis cenários


Nosso "laboratório", do ponto de vista do hardware básico, é um computador com 4 GB de RAM e 1 HD com 2 TB de capacidade. Nesse hardware básico, iremos propor e resolver algumas questões e/ou situações que usuários de todos os níveis podem se deparar ao tentar instalar o Linux. São os possíveis cenários a seguir:

  • Cenário 1: Usar apenas o openSUSE Leap no computador, seguindo a sugestão de particionamento padrão;
  • Cenário 2: Usar apenas o openSUSE Leap no computador, mas com LVM (Logical Volume Management);
  • Cenário 3: Instalar o openSUSE Leap "em cima" de uma instalação prévia do Windows 10.
Partiremos do princípio que você já leu o artigo inicial desta série e/ou tem alguma experiência com instalação de sistemas operacionais, particionamento de discos, formatação de partições, pontos de montagem, Etc. Mas se não tiver tanta experiência assim, basta seguir atentamente o passo-a-passo, que vai dar tudo certo!

Cenário 1


O Cenário 1 já foi resolvido aqui no Blog! O artigo Guia definitivo de Instalação do openSUSE Leap explica como fazer isso.

Cenário 3


O Cenário 3 vamos deixar para o próximo artigo!

Cenário 2


Vamos concluir essa primeira parte da série mostrando como usar LVM no openSUSE. O que faremos é usar a "configuração guiada" do Yast, optando por ativar o gerenciamento lógico de volume (LVM) . Com isso garantimos um aproveitamento mais inteligente do disco.

Fig. 4 - Esquema do particionamento com LVM


Cenário 2: LVM, ativar!

Quando estamos instalando o openSUSE guiados pelo Yast no modo gráfico, chegamos rapidamente no momento em que ele mostra o particionamento sugerido. É mostrada uma tela mais ou menos com a mostrada na figura abaixo:

Fig. 5 - Particionamento sugerido pelo Yast para o HD de 2 TB


Podemos observar na figura acima que o Yast, por padrão, utiliza o disco inteiramente, quando percebe que ele está "virgem". Embora para a maioria absoluta dos usuários a configuração sugerida seja satisfatória, causa um certo "desconforto" dedicar quase 2 TB de disco para uma única partição, mesmo que ela seja destinada ao diretório /home (/dev/sda3)!

O problema nesse tipo de configuração é que ela é meio "engessada"! Depois de feita, vai ser meio complicado mudar alguma coisa. Sempre dá para fazer, mas não sem ter de aplicar alguns hacks, e sem ter uma certa preocupação em "acabar com tudo" por imperícia, e ter de refazer tudo de novo!

Por mais que 40 GB seja um bom espaço para a partição root ( / ), se o usuário for daqueles que gostam de sair instalando muita coisa, para experimentar, etc, uma hora esse espaço vai acabar! E há também a questão dos snapshots!...

Se nesse momento optarmos por ativar o gerenciamento lógico de volumes, o openSUSE irá gerenciar melhor esse espaço, não ocupando ele totalmente agora, e permitindo uma alocação desse espaço de forma muito simplificada quando e onde for necessário.

Para ativar o gerenciamento lógico de volumes, basta nesse ponto clicar em [ Configuração guiada ] e, na tela que surgir, marcar essa opção e depois clicar em [ Próximo ].

Fig. 6 - Ativando LVM


Na tela seguinte, basta deixar as coisas como estão e clicar em [ Próximo ] mais uma vez!

Fig. 7 - Deixando algumas coisas como o Yast havia sugerido


Feito isto, o Yast volta à tela "Particionamento sugerido" e podemos ver (um pouco) como as coisas ficaram agora:

Fig. 8 - Particionamento sugerido + LVM

onde está Wally


Conseguem ver a(s) sutileza(s) do(s) detalhe(s), comparando a Fig. 8 com a Fig. 5?

Perceberam que, quando ativamos LVM, o Yast alocou inicialmente os mesmos 2 GB para swap (troca), os mesmos 40 GB para root ( / ), mas agora ele reservou apenas 25.00 GB para /home?! Pois é... Atitudes inteligentes levam à resultados inteligentes! ;-)

Quando ativamos LVM, o Yast criou um Volume Físico (Physical Volume ou PV) ocupando todo o HD (excluindo obviamente o que foi necessário para o sistema de boot, uefi, etc). Isso foi feito em /dev/sda2. Isso é necessário para garantir que o HD seja totalmente gerenciado por LVM. A partição /dev/sda2 tornou-se um Volume Físico.

Fig. 9 - O volume físico /dev/sda2, com seus incríveis 2 TB!

Foi criado também um Grupo de Volume (Volume Group ou VG), chamado system, usando completamente o PV criado anteriormente.

Finalmente, com um VG gigantesco à disposição, podemos criar Volumes Lógicos (Logical Volumes ou LVs) à vontade. Foram criados os LVs swap (/dev/system/swap), root (/dev/system/root) e home (/dev/system/home)!

Fig. 10 - O Grupo de Volume system e seus Volumes Lógicos home, root e swap



OBS.: Para ter acesso às telas mostradas nas figuras 9 e 10, basta clicar em "Particionador avançado", estando na tela mostrada na Fig. 8, e selecionar "Iniciar com a proposta atual". Depois de "xeretar" pelas telas do particionador avançado, não esqueça de clicar no botão [ Voltar ], para garantir que não vai alterar nada do que tinha sido feito anteriormente!

NOTA: Só clique no botão [ Cancelar ] do Yast se realmente quiser cancelar a instalação!

25 + 40 + 2: a sutileza do detalhe!


A sutileza de se ativar LVM é que o Yast é "inteligente" o bastante para criar os volumes lógicos com um tamanho razoavelmente bom para começar a usar o computador, principalmente home, mas deixando por conta do usuário decidir depois, quando e se for necessário, onde ele vai usar o restante dos 2 TB do Grupo de Volume system!

1,93 Tera Bytes à disposição, para quando for necessário e onde for preciso


Subtraindo do espaço disponível os 67 Giga Bytes da instalação inicial: 25 de home, 40 de root e 2 de swap, ficaram sobrando lá no VG (Volume Group ou Grupo de Volume) 1,93 Tera Bytes!

Na medida em que o diretório /home for ocupando espaço, com dois simples comandos (lvextend e xfs_growfs) será possível expandir a capacidade do sistema de arquivos de /home, sem dor de cabeça, sem precisar de hacks, sem precisar sequer desmontar a partição!

Da mesma forma, se por alguma razão faltar espaço na partição root ( / ), basta estender o volume lógico de root, e depois seu sistema de arquivos. Graças ao modo como LVM funciona, também neste caso não iremos precisar de hacks nem utilizar o modo de recuperação (como é impossível desmontar a partição root com o sistema "no ar", em outras situações seria necessário fazer boot por outro meio).

Você pode também usar sua criatividade e utilizar tanto espaço sobrando para criar outros volumes lógicos "experimentais" ou para atividades mais sérias, como criar um volume lógico dedicado a uma rotina de backup, por exemplo!

Para entender como funciona LVM, temos outra sério de artigos aqui no Blog que pode ajudar. Clique aqui quando quiser ler mais sobre esse assunto.

Mas nem tudo é perfeito!


De acordo com a documentação oficial, ao optar por usar LVM não  será possível fazer rollback de um snapshot "bootável" (BOOTABLE SNAPSHOT), pois não é possível dar boot por um snapshot  de um sistema de arquivos em LVM (Booting from LVM volume snapshots is not supported).

Mas, que diabos é um "snapshot bootável"?!

Um dos grandes atrativos em aceitar a sugestão do openSUSE de usar um sistema de arquivos baseado em btrfs é que ele ativa a criação de snapshots automáticos, permitindo assim a fácil restauração do sistema.
Durante o boot, o GRUB exibe um menu com opções para você escolher um snapshot do sistema feito anteriormente. Após o boot por um snapshot, basta um simples comando para efetivar o rollback, deixando o sistema exatamente como se encontrava quando o snapshot foi feito.

Infelizmente, essa feature ainda não é possível se o sistema de arquivos raiz ( / ), e seus consequentes snapshots, estiverem numa partição LVM.

Mas nem tudo está perdido!


Apesar da restrição acima, que é UMA FACILIDADE, isso não quer dizer que você não possa fazer restaurações de sistemas baseados em LVM!

A diferença é que, sem a possibilidade de fazer boot por um snapshot em LVM, você terá que desfazer as mudanças "manualmente", mas cujo resultado final é o mesmo que um rollback via "snapshot bootável"! E isto fica claro nesta seção da documentação oficial, que "printamos" abaixo:






E assim concluímos essa primeira parte da série! Uma vez que você tenha definido o modo de particionar seu HD, aceitando a sugestão do Yast ou a nossa, basta prosseguir com a instalação como já explicado no artigo Guia definitivo de Instalação do openSUSE Leap.

Em outra oportunidade -- muito em breve -- iremos mostrar como gerenciar volumes lógicos no openSUSE.


Até o próximo!

Nenhum comentário:

Postar um comentário