Eu tenho um servidor linux que roda em uma VM. O hipervisor é VMWare.
Esta configuração foi feita por um ex-administrador:
server:~ # pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 system lvm2 a-- 119,84g 0
server:~ # vgs
VG #PV #LV #SN Attr VSize VFree
system 1 3 0 wz--n- 119,84g 0
server:~ # lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
home system -wi-ao--- 97,84g
root system -wi-ao--- 20,00g
swap system -wi-ao--- 2,00g
Eu me pergunto: Por quê?
É ótimo que você possa fazer muitas coisas interessantes com o LVM. Mas por que?
Por que não criar um dispositivo de bloco/partição/sistema de arquivos?
A troca pode ser feita em um arquivo.
Uma partição/sistema de arquivos me daria menos dispositivos de bloco. Isso significa que os diretórios no sistema de arquivos têm mais espaço para crescer.
Se eu usar um dispositivo de bloco com um sistema de arquivos, é menos provável que fique sem espaço em disco.
Exemplo: Se os arquivos do "sistema raiz" precisarem de mais de 20 GByte, e "home" tiver espaço sobrando, então está tudo bem.
Aqui está uma arte ascii simplificada da configuração do LVM:
+--------------------+
| |
| Filesystem |
| |
|---------------------
| |
| Logical Volume |
| |
|---------------------
| |
| Volume Group |
| |
----------------------
| |
| Physical Volume |
| |
|---------------------
| |
| Block device |
| |
+--------------------+
Background: Este não é um sistema de alta disponibilidade. Uma reinicialização à noite é sempre possível.
O uso do LVM em geral permite vários recursos. Apenas um par:
lvextend --resize
.(Alguns detalhes são específicos do Linux LVM, mas o LVM em geral é implementado em muitos sistemas operacionais. No UNIX, AIX e HP-UX são anteriores ao Linux e possuem LVMs semelhantes.)
Essa alocação específica se assemelha a padrões em distros como Red Hat, refletindo algumas recomendações que eles deram há muito tempo .
O espaço de paginação poderia estar em um arquivo mais conveniente, sim. Eu acho que isso requer certos sistemas de arquivos. Diretamente em um dispositivo de nível de bloco funciona independentemente do sistema de arquivos, e é óbvio que o espaço não está disponível para arquivos regulares. Além disso, você pode mover esse volume de espaço de paginação para armazenamento rápido e menos durável, como um único SSD local.
Alguns administradores vão além e isolam digamos
/var
em seu próprio volume e/tmp
em tmpfs. Dessa forma, os arquivos de log e outros não preencherão o espaço necessário para o software no formato/usr
.Pessoalmente, ausentes os requisitos de tamanho, eu começaria
/home
menor, digamos 20 GB. Isso deixa 70 GB livres no VG para o que precisar no próximolvextend
. Essa também é uma sugestão há muito tempo. Suspeito que não seja o padrão de partição automática porque os dados do usuário tendem a crescer sem limites e eles desejam usar o espaço caso o planejamento de capacidade nunca seja revisitado novamente.Em muitos casos, uma única partição ou nenhum particionamento não é prejudicial, especialmente em um ambiente virtualizado onde você pode facilmente aumentar o disco primário e o sistema de arquivos raiz se e quando ficar sem espaço.
Até que você não pode...
Então você descobre da maneira mais difícil que o particionamento rígido é uma escolha de design à qual você está preso durante toda a vida útil do seu servidor.
(Não completamente, mas a maioria das soluções exigirá tempo de inatividade e/ou interrupções de serviço.)
Se você tem apenas gado: isso não é um problema, seus servidores têm vida curta de qualquer maneira. Se você tem mais animais de estimação do que gostaria de admitir...
A sobrecarga / penalidade de desempenho que você paga pelo uso do LVM é insignificante e mesmo que você não veja uma necessidade imediata agora, o LVM potencialmente economizará seu bacon no futuro, quando o LVM permitir que você execute alterações on-line em seu armazenamento que, de outra forma, seriam diretas impossíveis ou pelo menos exigiriam tempos de inatividade (significativos).
A resposta é que, se você não conseguir identificar nenhum motivo operacional para usar o LVM, não há motivo para usá-lo, o que no seu cenário de hipervisor e rede de área de armazenamento é fácil de descartar. mas o LVM não é um protocolo como smb ou iscsi, nem é um sistema de arquivos como ext4 ou ntfs, também não é JBOD array ou qualquer tipo de RAID, não é um tipo de disco como SSD ou SAS, não é um provedor de armazenamento como VMware datastore ou Ceph - então, por que usar o LVM? - apresentar volumes lógicos ao SO independentemente de tudo isso.
Algumas distribuições padrão para configurar seu particionamento com LVM/mapeador de dispositivo por padrão. Como dito anteriormente, a sobrecarga de usar o LVM é pequena (embora não seja totalmente zero) e aumenta a flexibilidade, portanto, essa não é uma má escolha.
No que diz respeito a sistemas de arquivos separados: um separado
/home
to/
é muitas vezes racionalizado como um método para realizar cotações de pobre. Ao mantê-los separados, o preenchimento/home
não torna uma ferramenta que só precisa criar arquivos em/tmp
(comosort
) incapaz de fazer seu trabalho. Mais uma vez, algumas ferramentas de particionamento (Ubuntu?) guiam você para este estilo de configuração.Talvez o administrador anterior estivesse simplesmente seguindo os padrões? Se você tem necessidades diferentes e já está em uma posição em que está começando de novo, é claro que pode fazer escolhas diferentes. No entanto, se o sistema estiver OK e não ficar sem espaço (20 GByte para root pode significar que você tem mais de 50% de espaço restante ou pode não ser suficiente dependendo da situação), duvido que valha a pena o esforço de desmontar tudo e começar de novo apenas para mudar.
Sob o modelo de particionamento tradicional, é extremamente difícil redimensionar ou mover uma partição em um sistema em execução. Geralmente requer uma interrupção ou risco de perda de dados. O LVM resolve esses problemas.
Em um caso extremo, o LVM pode ser usado para substituir um disco com falha em um sistema em execução.
O LVM também simplifica a implementação do RAID, que pode ser feito facilmente por volume lógico.
Se você precisar de um armazenamento extremamente amplo, poderá usar o LVM para expandir um volume lógico em vários discos.
Existem argumentos a favor e contra ter diferentes partições para diferentes subdiretórios. Eu fiz os dois. Um dos problemas que surge é o crescimento de um sistema de arquivos além da capacidade de sua partição. Embora existam opções um tanto seguras em alguns casos, o LVM fornece um caminho seguro para expandir as partições (volumes lógicos) em um sistema em execução.
Existem muitas opções de troca, mas geralmente você quer poder trocar rapidamente. Felizmente, o gerenciamento de memória moderno depende menos de processos de troca e mais de paginação. Acessar um arquivo de troca normalmente terá uma sobrecarga maior do que acessar uma partição de troca ou volume lógico. Isso é menos importante em sistemas com memória suficiente para evitar o uso ativo do espaço de troca.
Embora em alguns casos o LVM possa aumentar a sobrecarga na localização de um bloco no disco, um volume lógico contíguo em um único disco deve ter a mesma sobrecarga que uma partição. Nos casos em que o LVM aumenta a sobrecarga, outras compensações podem fornecer melhor desempenho do sistema de arquivos. Compreender as compensações deve ser parte do processo de planejamento para usar uma configuração de LVM mais complicada.