Pesquisar

CloudLinux 9: Correção de Problemas com LVE e cPanel

O CloudLinux 9 representa uma evolução significativa na tecnologia de hospedagem compartilhada, baseando-se no AlmaLinux com kernel 5.14. No entanto, administradores de sistemas frequentemente enfrentam desafios relacionados ao carregamento do módulo LVE (Light Virtualized Environment) e configuração do CageFS. Nesse artigo do blog Dolutech, abordaremos as principais soluções para esses problemas críticos.

Entendendo as Mudanças no CloudLinux 9

Uma das principais diferenças do CloudLinux 9 em relação às versões anteriores é que os kernels não possuem mais “lve” no nome. Esta mudança é intencional e representa uma evolução na arquitetura do sistema. Em vez de kernels customizados, o CloudLinux 9 utiliza o módulo kmodlve carregado dinamicamente sobre kernels padrão do AlmaLinux.

Por que o Kernel não tem “LVE” no Nome?

A Dolutech explica que essa mudança oferece várias vantagens:

  • Compatibilidade aprimorada: Uso de kernels upstream padrão
  • Atualizações mais rápidas: Não há necessidade de recompilar kernels personalizados
  • Melhor estabilidade: Aproveitamento de toda a maturidade do kernel AlmaLinux

Principais Problemas e Soluções

Erro “Cannot allocate memory” ao Carregar kmodlve

Este é o erro mais comum enfrentado pelos administradores. A causa principal está relacionada ao cgroups v2 estar ativo no sistema.

Sintomas:

# modprobe kmodlve
modprobe: ERROR: could not insert 'kmodlve': Cannot allocate memory

Diagnóstico:

dmesg | grep -i lve

LVE: [1231] mount_cgroup_root_fs: failed to mount cgroup(memory), rc=-16

CageFS: "current running kernel is NOT supported"

Após resolver o problema do LVE, muitas vezes o CageFS apresenta este erro, geralmente relacionado a entradas órfãs no arquivo de configuração.

Script de Correção Completa

Desenvolvemos um script robusto que corrige automaticamente os problemas mais comuns:

#!/usr/bin/env bash
set -euo pipefail

echo "[1/7] Atualizando repositórios e pacotes CloudLinux"
dnf clean all -y
dnf makecache -y
dnf update -y lve-utils kmod-lve cagefs || true

echo "[2/7] Configurando parâmetros de cgroups"
CMDLINE="$(cat /proc/cmdline)"
if echo "$CMDLINE" | grep -q 'systemd.unified_cgroup_hierarchy=1'; then
  echo "-> Ajustando para cgroups v1"
  grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"
fi

# Parâmetro recomendado para compatibilidade com LVE
if ! echo "$CMDLINE" | grep -q 'cgroup.memory=nokmem'; then
  echo "-> Adicionando cgroup.memory=nokmem"
  grubby --update-kernel=ALL --args="cgroup.memory=nokmem"
fi

echo "[3/7] Garantindo LVE_ENABLE=yes"
if [ -f /etc/sysconfig/lve ]; then
  sed -ri 's/^LVE_ENABLE=.*/LVE_ENABLE=yes/' /etc/sysconfig/lve || true
else
  echo 'LVE_ENABLE=yes' > /etc/sysconfig/lve
fi

echo "[4/7] Regerando configuração GRUB"
grub2-mkconfig -o /etc/grub2.cfg || true
grub2-mkconfig -o /etc/grub2-efi.cfg || true
grub2-mkconfig -o /boot/grub2/grub.cfg || true

echo "[5/7] Verificando necessidade de reinicialização"
NEED_REBOOT=0
if ! echo "$CMDLINE" | grep -q 'systemd.unified_cgroup_hierarchy=0'; then 
  NEED_REBOOT=1
fi
if ! echo "$CMDLINE" | grep -q 'cgroup.memory=nokmem'; then 
  NEED_REBOOT=1
fi

if [ "$NEED_REBOOT" -eq 1 ]; then
  echo "-> Reinicialização necessária. Execute novamente após reboot."
  exit 0
fi

echo "[6/7] Carregando módulo LVE"
modprobe kmodlve || { 
  echo "Falha ao carregar kmodlve"; 
  dmesg | tail -n 50; 
  exit 1; 
}

echo "[7/7] Configurando CageFS"
cagefsctl --force-update
cagefsctl --enable-all

echo "Configuração concluída com sucesso!"

Configuração Manual dos Cgroups

Forçando Cgroups v1

O CloudLinux 9 requer cgroups v1 para funcionamento adequado do LVE. Para configurar manualmente:

# Adicionar parâmetro ao kernel
grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"

# Adicionar parâmetro de memória recomendado
grubby --update-kernel=ALL --args="cgroup.memory=nokmem"

# Verificar configuração após reboot
cat /proc/cmdline

Verificação da Configuração

Após a reinicialização, confirme se os parâmetros estão ativos:

# Verificar parâmetros do kernel
cat /proc/cmdline | grep -E 'cgroup|systemd'

# Confirmar diretório cgroups v1
test -d /sys/fs/cgroup/memory && echo "cgroup v1 OK" || echo "Problema com cgroups"

# Verificar módulo LVE
lsmod | grep -i lve

Resolvendo Problemas do CageFS

Limpeza de Entradas Órfãs

Frequentemente, o arquivo /etc/cagefs/cagefs.mp contém referências a diretórios inexistentes:

# Backup da configuração atual
cp /etc/cagefs/cagefs.mp /etc/cagefs/cagefs.mp.backup

# Remover entradas problemáticas
sed -i \
  -e '\|^/usr/libexec/passenger$|d' \
  -e '\|^/usr/share/passenger$|d' \
  -e '\|^/var/run/ea-passenger-runtime$|d' \
  -e '\|^/var/run/imunify360_user$|d' \
  /etc/cagefs/cagefs.mp

# Reconstruir CageFS
cagefsctl --remount-all
cagefsctl --force-update
cagefsctl --enable-all

Comandos de Diagnóstico

Verificações Essenciais

# Localizar módulo LVE para o kernel atual
find /lib/modules/$(uname -r)/ -name 'kmodlve.ko'

# Verificar parâmetros de boot
cat /proc/cmdline

# Analisar logs do kernel sobre LVE
dmesg | egrep -i 'lve|kmodlve'

# Status dos serviços LVE
systemctl status lve.service
systemctl status lvestats.service

Diagnóstico Avançado

# Informações detalhadas do sistema
uname -r
rpm -qa | egrep -i 'kmod-lve|lve-utils' | sort
cldetect --check-license
cagefsctl --show-disabled

Mitigando Problemas Futuros

Manutenção Preventiva

Para evitar problemas recorrentes, recomendamos:

  1. Monitoramento regular dos parâmetros de kernel
  2. Backup das configurações antes de atualizações
  3. Teste de carregamento do módulo LVE após atualizações
  4. Verificação periódica do status do CageFS

Script de Monitoramento

#!/bin/bash
# Script de monitoramento LVE
echo "=== Status LVE ===" 
lsmod | grep -i lve || echo "LVE não carregado"
echo "=== Cgroups ===" 
test -d /sys/fs/cgroup/memory && echo "cgroup v1 OK" || echo "Problema"
echo "=== CageFS ===" 
cagefsctl --show-disabled | wc -l

Considerações de Segurança

O CloudLinux 9 introduz melhorias significativas em segurança:

  • Secure Boot suportado a partir do kernel 5.14.0-362.8.1.el9_3
  • Melhor isolamento entre usuários
  • Controles de recursos mais granulares

Compatibilidade com cPanel

O CloudLinux 9 oferece compatibilidade com cPanel 11.116.0.1 ou superior. Para instalações anteriores, é necessário atualização para garantir funcionamento adequado.

Verificação de Compatibilidade

# Versão do cPanel
cat /usr/local/cpanel/version
# Versão do CloudLinux
cat /etc/os-release | grep VERSION

Conclusão

A correção de problemas com LVE no CloudLinux 9 requer compreensão das mudanças arquiteturais introduzidas nesta versão. O foco principal está na configuração adequada dos cgroups v1 e limpeza de configurações órfãs do CageFS.

Nós da Dolutech recomendamos sempre realizar testes em ambiente controlado antes de aplicar essas correções em servidores de produção. A implementação correta desses procedimentos garantirá estabilidade e performance otimizada do seu ambiente CloudLinux 9 com cPanel.

A evolução do CloudLinux 9 representa um passo significativo na modernização da infraestrutura de hospedagem, oferecendo melhor compatibilidade, segurança aprimorada e facilidade de manutenção para administradores de sistemas experientes.

Conheça nosso Canal do Youtube
Escute Nosso DoluCast
Melhores da Semana