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:
- Monitoramento regular dos parâmetros de kernel
- Backup das configurações antes de atualizações
- Teste de carregamento do módulo LVE após atualizações
- 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.
Amante por tecnologia Especialista em Cibersegurança e Big Data, Formado em Administração de Infraestrutura de Redes, Pós-Graduado em Ciências de Dados e Big Data Analytics e Machine Learning, Com MBA em Segurança da Informação, Escritor do livro ” Cibersegurança: Protegendo a sua Reputação Digital”.