O Alibaba Cloud Linux 3 é o destino de migração recomendado para o CentOS 7, que atingiu o fim da vida útil (EOL). Este tópico aborda as diferenças entre as duas distribuições para que você possa avaliar o impacto antes de migrar.
Para mais informações, consulte Orientações sobre o EOL do CentOS e Suporte de manutenção para sistemas operacionais .
Alterações disruptivas que exigem ação
As alterações a seguir podem interromper suas aplicações ou scripts após a migração. Revise estes pontos antes de iniciar o processo.
Kernel e toolchain principal
As versões da toolchain principal são mais recentes no Alibaba Cloud Linux 3. Após a migração, recompile suas aplicações para adaptá-las às bibliotecas de vínculo dinâmico (DLLs) utilizadas no Alibaba Cloud Linux 3. Caso contrário, as aplicações podem falhar ao identificar os arquivos DLL.
|
Componente |
CentOS 7 x86 |
Alibaba Cloud Linux 3 x86 |
Alibaba Cloud Linux 3 Arm64 |
|
gcc |
4.8.5_44.el7 |
10.2.1_3.8.al8 |
10.2.1-3.5.al8 |
|
glibc |
2,17_326.el7_9 |
2,32_1,16.al8 |
2,32-1,12.al8 |
|
Kernel |
3.10.0-1160.114.2.el7 |
5.10.134-16.1.al8 |
— |
|
binutils |
2,27_44.base.el7_9.1 |
2,35_12,2.al8 |
— |
|
systemd |
219_78.el7_9.9 |
239_74.0.3.al8 |
— |
|
grub2 |
2.02_0.87.0.2.el7.centos.14 |
2.02-148.0.1.al8.1 |
— |
Para detalhes sobre as diferenças de versão do kernel, consulte a seção Diferenças no kernel.
Interpretador Python padrão
No CentOS 7, o caminho /usr/bin/python aponta para o Python 2. Já no Alibaba Cloud Linux 3, ele aponta para o Python 3. Se seus scripts ou programas executam python xxx.py, eles podem apresentar comportamento diferente ou falhar após a migração.
|
Componente |
CentOS 7 x86 |
Alibaba Cloud Linux 3 x86 e Arm64 |
|
Python |
Python 2, Python 3.4, Python 3.6 |
Python 2, Python 3.6, Python 3.8, Python 3.11 |
Instalação padrão do Java
A execução do comando yum install java instala JDKs diferentes dependendo da distribuição:
CentOS 7: instala o pacote
java-1.8.0-openjdkAlibaba Cloud Linux 3: instala o pacote
java-1.8.0-alibaba-dragonwell(distribuição OpenJDK da Alibaba)
Para instalar o OpenJDK no Alibaba Cloud Linux 3, execute yum install java-1.8.0-openjdk.
|
Componente |
CentOS 7 x86 |
Alibaba Cloud Linux 3 x86 e Arm64 |
|
java-1.8.0-alibaba-dragonwell |
— |
3:8.15.16.372-2.al8 |
|
java-1.8.0-openjdk |
1:1.8.0.412.b08-1.el7_9 |
1:1.8.0.412.b08-2.0.1.1.al8 |
Instalação padrão do MySQL
Ao executar yum install mysql, pacotes de banco de dados distintos são instalados:
CentOS 7: instala o MariaDB
Alibaba Cloud Linux 3: instala o MySQL
|
Componente |
CentOS 7 x86 |
Alibaba Cloud Linux 3 x86 e Arm64 |
|
mysql |
— |
8.0.36-1.0.1.1.al8 |
|
mariadb |
5.5.68-1.el7 |
3:10.5.22-1.0.1.al8 |
Substituição de ferramentas do sistema
Três ferramentas essenciais do sistema foram substituídas no Alibaba Cloud Linux 3. Atualize seus scripts e automações conforme necessário.
|
Função |
CentOS 7 |
Alibaba Cloud Linux 3 |
Observações |
|
Gerenciamento de pacotes |
yum |
DNF |
|
|
Filtragem de pacotes de rede |
iptables |
nftables |
Atualize as regras de firewall para usar a sintaxe do nftables. |
|
Runtime de contêineres |
docker |
Podman |
O docker Community Edition (CE) também pode ser instalado para implantação manual. |
Suporte a sistemas de arquivos
O Alibaba Cloud Linux 3 oferece suporte a ext4 e XFS, mas não ao Btrfs. Se sua carga de trabalho utiliza Btrfs, migre os dados para ext4 ou XFS antes de realizar a troca.
|
Parâmetro Kconfig |
CentOS 7 x86 |
Alibaba Cloud Linux 3 x86 |
Alibaba Cloud Linux 3 Arm64 |
|
CONFIG_BTRFS_FS |
m (habilitado como módulo) |
Não definido |
Não definido |
Outras diferenças de versão de componentes
Os componentes listados abaixo possuem versões atualizadas no Alibaba Cloud Linux 3. Geralmente, nenhuma ação é necessária, a menos que sua aplicação dependa de uma versão específica.
Caso você compile e instale versões de componentes indisponíveis no repositório yum do CentOS 7, poderá perder o acesso ao sistema ou ter falhas na execução de aplicações após a migração. Recompile esses componentes no Alibaba Cloud Linux 3 ou instale-os a partir do repositório yum do Alibaba Cloud Linux 3.
|
Componente |
CentOS 7 x86 |
Alibaba Cloud Linux 3 x86 e Arm64 |
|
golang |
1.20.12-1.el7 |
1.20.12-8.0.1.al8 |
|
nginx |
1:1.20.1-10.el7 |
1:1.20.1-1.0.3.al8 |
|
php |
5.4.16-48.el7 |
7.4.33-1.0.1.al8 |
|
postgresql |
9.2.24-9.el7_9 |
13.14-1.0.1.al8 |
|
redis |
3.2.12-2.el7 |
6.2.7-1.0.2.al8 |
|
openssl |
1.0.2k_26.el7_9 |
1.1.1k_12.0.1.al8 |
Diferenças de portas
O Alibaba Cloud Linux 3 escuta em portas diferentes em comparação ao CentOS 7. Atualize suas regras de firewall se necessário.
|
Protocolo |
Porta |
Serviço |
CentOS 7 |
Alibaba Cloud Linux 3 |
|
TCP/UDP |
111 |
rpcbind |
Sim (TCP/UDP) |
Sim (TCP/UDP/TCP6/UDP6) |
|
TCP |
22 |
SSH |
Sim |
Sim |
|
TCP |
25 |
SMTP |
Sim |
Não |
|
UDP |
68 |
DHCP |
Sim (processo NetworkManager) |
Sim (processo dhclient) |
|
UDP/UDP6 |
323 |
chronyd |
Sim |
Sim |
|
TCP/UDP |
5355 |
systemd-resolve |
Não |
Sim |
Diferenças notáveis:
A porta 25 (SMTP) está aberta no CentOS 7, mas fechada no Alibaba Cloud Linux 3.
A porta 5355 (systemd-resolve) está aberta no Alibaba Cloud Linux 3, mas não no CentOS 7.
A porta UDP 68 (DHCP) é gerenciada pelo processo NetworkManager no CentOS 7 e pelo processo dhclient no Alibaba Cloud Linux 3.
Diferenças no kernel
Parâmetros sysctl
Parâmetros alterados
Os parâmetros sysctl a seguir apresentam valores padrão diferentes no Alibaba Cloud Linux 3. Na maioria dos casos, nenhuma ação é necessária, pois esses padrões são ajustados para ambientes em nuvem.
|
Parâmetro |
Valor no CentOS 7 |
Valor no Alibaba Cloud Linux 3 |
Descrição |
|
kernel.panic |
0 (leitura/escrita) |
1 (leitura/escrita) |
Controla se o kernel reinicia automaticamente após um panic. |
|
kernel.watchdog_thresh |
10 (leitura/escrita) |
50 (leitura/escrita) |
Período de timeout do watchdog em segundos. Aumentado para reduzir alertas de falso positivo em ambientes de nuvem, onde os enlaces de rede são mais complexos. Nenhuma ação necessária. |
|
kernel.nmi_watchdog |
1 (leitura/escrita) |
0 (leitura/escrita) |
Detecção de hard lockup usando Non-Maskable Interrupts (NMIs). Como o Elastic Compute Service (ECS) não suporta NMIs, este recurso vem desabilitado por padrão. Se você utiliza instâncias bare metal e precisa da detecção de hard lockup, habilite-a manualmente. |
|
kernel.hung_task_timeout_secs |
120 (leitura/escrita) |
240 (leitura/escrita) |
Timeout em segundos antes que um processo no estado D (TASK_UNINTERRUPTIBLE) dispare um alerta. Aumentado para reduzir falsos positivos em ambientes de nuvem. Nenhuma ação necessária. |
|
vm.drop_caches |
0 (leitura/escrita) |
— (somente escrita) |
Permissão de leitura removida no Alibaba Cloud Linux 3. No CentOS 7, ler este parâmetro poderia induzir os usuários ao erro, fazendo-os pensar que indicava um modo sem cache, quando na verdade iniciava uma tarefa de limpeza de cache. Nenhuma ação necessária. |
|
vm.dirty_ratio |
30 (leitura/escrita) |
40 (leitura/escrita) |
Porcentagem máxima de memória do sistema que pode ser preenchida com páginas sujas antes que os processos sejam forçados a escrever. Definido pelo daemon tuned com base no perfil de desempenho ativo. Nenhuma ação necessária, a menos que você possua scripts de ajuste personalizados. |
|
vm.numa_zonelist_order |
default (leitura/escrita) |
Node (leitura/escrita) |
Controla a ordem de seleção de zonas durante a alocação de memória NUMA. Esta opção tornou-se inoperante em versões mais recentes do kernel, não sendo mais necessário controle manual. Nenhuma ação necessária. |
|
net.ipv4.tcp_mem |
— (leitura/escrita) |
— (leitura/escrita) |
Memória máxima que o TCP pode alocar. Para a mesma especificação de memória, o tamanho padrão do buffer no Alibaba Cloud Linux 3 é aproximadamente metade do CentOS 7, devido a um algoritmo de inicialização atualizado (commit b66e91ccbc34ebd5a2f90f9e1bc1597e2924a500). Nenhuma ação necessária. |
|
net.ipv4.tcp_fastopen |
0 (leitura/escrita) |
1 (leitura/escrita) |
Controla o TCP Fast Open. |
|
net.ipv4.tcp_fack |
1 (leitura/escrita) |
0 (leitura/escrita) |
O TCP Forward Acknowledgment (FACK) foi substituído pelo algoritmo RACK (Recent Acknowledgment) e está desabilitado. Nenhuma ação necessária (commit 713bafea92920103cd3d361657406cf04d0e22dd). |
|
net.core.somaxconn |
128 (leitura/escrita) |
4.096 (leitura/escrita) |
Comprimento máximo da fila de escuta do socket. Aumentado de 128 para 4.096 para atender aos requisitos de cargas de trabalho de servidores (commit 19f92a030ca6d772ab44b22ee6a01378a8cb32d4). Nenhuma ação necessária. |
|
net.core.default_qdisc |
pfifo_fast (leitura/escrita) |
fq_codel (leitura/escrita) |
Disciplina de enfileiramento padrão. Alterada para Fair Queuing Controlled Delay (FQ-CoDel) para evitar bufferbloat. Nenhuma ação necessária. |
Parâmetros removidos
Os parâmetros sysctl a seguir, presentes no CentOS 7, não estão disponíveis no Alibaba Cloud Linux 3. Se seus arquivos de configuração ou scripts referenciam esses parâmetros, remova-os ou substitua-os.
|
Parâmetro |
Padrão no CentOS 7 |
Motivo da remoção |
Ação recomendada |
|
kernel.panic_on_stackoverflow |
0 |
Substituído por páginas de guarda de pilha do kernel, que realizam a detecção automaticamente (commit 117ed45485413b1977bfc638c32bf5b01d53c62b). |
Remova dos arquivos de configuração. Nenhuma substituição necessária. |
|
kernel.random.read_wakeup_threshold |
64 |
Removido durante a iteração da versão do kernel (commit c95ea0c69ffda19381c116db2be23c7e654dac98). |
Remova dos arquivos de configuração. Nenhuma substituição necessária. |
|
kernel.compat-log |
1 |
O modo Virtual 8086 não é suportado em arquiteturas x86 de 64 bits. Os logs de aviso gerados por esta opção não são mais necessários (commit 9dcfcda5768eda793e15a1a73da38cfd1fc1a47a). |
Remova dos arquivos de configuração. Nenhuma substituição necessária. |
|
kernel.numa_balancing_settle_count |
4 |
O Linux agora usa métricas mais precisas para distinguir cargas de tarefas; o controle de limiar de frequência via esta opção não é mais necessário (commit 1bd53a7efdc988163ec4c25f656df38dbe500632). |
Remova dos arquivos de configuração. Nenhuma substituição necessária. |
|
kernel.sched_shares_window_ns |
10.000.000 |
Esta opção não tinha efeito no CentOS 7 (commit 3c3fcb45d524feb5d14a14f332e3eec7f2aff8f3). |
Remova dos arquivos de configuração. Nenhuma substituição necessária. |
|
kernel.sched_time_avg_ms |
1.000 |
Substituído pelo algoritmo per-entity load tracking (PELT) para escalonamento em tempo real (commit 5fd778915ad29184a5ff8eb82d1118f6916b79e4). |
Remova dos arquivos de configuração. Nenhuma substituição necessária. |
|
vm.hugepages_treat_as_movable |
0 |
Removido porque causava problemas com o recurso de troca dinâmica de memória (commit d6cb41cc44c63492702281b1d329955ca767d399). |
Remova dos arquivos de configuração. Nenhuma substituição necessária. |
|
vm.nr_pdflush_threads |
0 |
Esta opção não tinha efeito no CentOS 7 (commit b35bd0d9f8a8ea17aae40893e18274d191a2d2c5). |
Remova dos arquivos de configuração. Nenhuma substituição necessária. |
|
net.ipv4.tcp_tw_recycle |
0 |
Removido porque entra em conflito com a randomização de timestamp TCP usada em ambientes NAT (commit 4396e46187ca5070219b81773c4e65088dac50cc). |
Remova dos arquivos de configuração. |
|
net.ipv4.tcp_thin_dupack |
0 |
Substituído pelo algoritmo TCP RACK (commit 4a7f6009441144783e5925551c72e3f2e1b0839b). |
Remova dos arquivos de configuração. Nenhuma substituição necessária. |
|
net.ipv4.tcp_max_ssthresh |
0 |
Substituído por um método automatizado de slow-start mais eficaz (commit 9f9843a751d0a2057f9f3d313886e7e5e6ebaac9). |
Remova dos arquivos de configuração. Nenhuma substituição necessária. |
|
fs.negative-dentry-limit |
0 |
Recurso específico do CentOS 7; não faz parte do kernel da comunidade Linux. Removido no CentOS 8 e posteriores. Consulte a KB da Red Hat. |
Remova dos arquivos de configuração. Nenhuma substituição necessária. |
|
fs.may_detach_mounts |
0 |
Recurso específico do CentOS 7; não faz parte do kernel da comunidade Linux. Removido no CentOS 8 e posteriores. Consulte a KB da Red Hat. |
Remova dos arquivos de configuração. Nenhuma substituição necessária. |
Parâmetros /sys/
|
Caminho |
CentOS 7 |
Alibaba Cloud Linux 3 |
Observações |
|
/sys/block/\ |
128 |
4.096 |
O daemon tuned define este valor. Um valor alto de read-ahead pode reduzir o desempenho em cargas de trabalho de banco de dados e aumentar o I/O de disco. Se isso afetar sua carga de trabalho, defina o valor de volta para 128. |
|
/sys/module/virtio_net/parameters/napi_tx |
— |
Habilitado |
Controla se o NAPI é usado para a fila de envio do virtio_net. Em alguns cenários de benchmark, habilitar o NAPI impede a montagem de pacotes TCP e reduz o throughput. Para desabilitá-lo, defina |
Parâmetros da linha de comando do kernel
|
Parâmetro |
CentOS 7 |
Alibaba Cloud Linux 3 |
Descrição |
|
cgroup.memory=nokmem |
Não configurado |
Configurado |
Desabilita o accounting de memória do kernel (CONFIG_MEMCG_KMEM) para cgroups. Desabilitá-lo melhora o desempenho do sistema. Consulte a comunidade OpenAnolis para detalhes. |
|
crashkernel=auto |
Configurado |
Não configurado |
Calcula automaticamente a memória reservada para o serviço kdump. As imagens do Alibaba Cloud Linux 3 já possuem o tamanho da memória reservada do crashkernel pré-configurado, portanto, remover este parâmetro das configurações padrão não gera impacto. |
|
net.ifnames=0 |
Configurado |
Configurado |
Restaura a nomenclatura legada de interfaces de rede (eth0, eth1) e desabilita o recurso de nomenclatura previsível do systemd. Configurado por padrão em ambas as distribuições. Alterações na nomenclatura de interfaces de rede podem afetar a compatibilidade. Para mais informações, consulte O que fazer se a mensagem de erro "Unsupported network configuration" aparecer?. |
Parâmetros Kconfig
Os parâmetros de configuração do kernel a seguir diferem entre as duas distribuições.
|
Parâmetro |
CentOS 7 x86 |
Alibaba Cloud Linux 3 x86 |
Alibaba Cloud Linux 3 Arm64 |
Descrição |
|
CONFIG_NR_CPUS |
5.120 |
1.024 |
1.024 |
Máximo de núcleos de CPU suportados. Nenhuma instância da Alibaba Cloud possui mais de 1.024 núcleos, portanto, isso não tem impacto prático. |
|
CONFIG_NODES_SHIFT |
10 |
6 |
6 |
Máximo de nós NUMA suportados (2^6 = 64 nós). Nenhuma instância da Alibaba Cloud possui mais de 64 nós NUMA, logo, sem impacto prático. |
|
CONFIG_PREEMPT_NONE |
Não definido |
y |
Não definido |
Modo de preempção do kernel. O Alibaba Cloud Linux 3 em x86 usa o modo sem preempção para melhor desempenho em nuvem. Este modo é desabilitado no Alibaba Cloud Linux 3 para Arm64 devido a razões históricas. A partir da versão 5.10.134-17 do kernel, é possível usar um parâmetro de linha de comando para alterar dinamicamente o modo de preempção padrão. |
|
CONFIG_PREEMPT_VOLUNTARY |
y |
Não definido |
y |
Modo de preempção voluntária. Habilitado no CentOS 7 e no Alibaba Cloud Linux 3 Arm64. |
|
CONFIG_BTRFS_FS |
m |
Não definido |
Não definido |
O Alibaba Cloud Linux 3 suporta os sistemas de arquivos ext4 e XFS, mas não o Btrfs. Se sua carga de trabalho usa Btrfs, migre os dados para ext4 ou XFS antes de trocar. |