Reservando espaço livre no pool fino do LVM para VM administrativa

Reservando espaço livre no pool fino do LVM para VM administrativa

Meu objetivo é uma configuração padrão para provisionamento dinâmico de LVM que seja flexível o suficiente para reservar uma margem de segurança para um administrador VM LV (VolA) versus LVs de usuário (VolU1, VolU2, VolU3 ...) mesmo que vários administradores (em instalações separadas) usam quantidades muito diferentes de espaço em disco em suas respectivas máquinas virtuais de administração.

Por exemplo, um administrador pode usar 4 GB no VolA do System1, mas outro administrador pode usar 50 GB no VolA do System2. Isso significa que um volume de tamanho fixo de 50 GB seria inaceitável para o primeiro administrador (e vice-versa), portanto, é necessário colocar VolA no thin pool com os outros volumes de VM do "usuário" para flexibilidade. Não é possível personalizar manualmente as instalações para estes sistemas.

Mais requisitos:

  • Admin VM é o host de armazenamento e é executado no thinpool
  • VMs de usuário ocupam o mesmo pool
  • Superprovisão; todos os tamanhos virtuais LV = tamanho do disco físico.

O problema ocorre quando a inexperiência do usuário, bugs ou tentativas de DoS nas VMs do usuário causamalocação de todo o espaço livre restantepara seus volumes de usuário (VolU1, VolU2, etc...) e deixam o VolA sem espaço livre e a VM administrativa incapaz de inicializar ou funcionar normalmente.

A solução/à prova de falhas deve ser tão automática e passiva quanto possível. Uma solução ideal pode ser um conjunto de propriedades LVM para todos os LVs de usuários, permitindo-lhes alocar espaço apenas quando poolFree < N, enquanto VolA não tem tal restrição. Mas não consegui encontrar esse recurso no Linux LVM e preciso de sugestões.


Após alguma pesquisa, parece que uma solução poderia envolver o uso de uma configuração para dmeventdexecutar comandos (como 'pausar todas as VMs') quando um limite for atingido. Uma página de manual mais recente que dmeventdencontrei on-line diz que isso é possível com dmeventd/thin_commanda configuração em lvm.conf; parece que esse recurso foi adicionado em maio de 2017, então eu teria que encontrar um backport.

Outra opção poderia ser adicionar uma regra como a seguinte ao rsyslog.conf:

:msg, contains, "some dmeventd message"  ^my_pause_vm_script

Responder1

Se você quiser evitar que os usuários aloquem excessivamente o mesmo pool fino que seu host administrativo, talvez você queira adotar uma abordagem diferente com essa alocação.

Você poderia separar as cargas de trabalho administrativas em um thin pool separado. E se você estiver alocando demais, geralmente é uma boa abordagem fornecer armazenamento de apoio atribuível de forma mais elástica aos seus pools, a fim de lidar com a alocação excessiva temporária. Uma boa maneira fácil de fazer isso seria reservar alguns LUNs grandes e mais lentos como um PV de "emergência" barato para seus pools.

Eu sei que o LVM pode fazer essa expansão de emergência usando sua própria configuração, mas estou escrevendo isso em um sanduíche de presunto que mal consegue sair do seu caminho, então terei que encontrar essa documentação mais tarde.

informação relacionada