Alibaba Cloud Linux 3 merupakan target migrasi yang direkomendasikan untuk CentOS 7, yang telah mencapai akhir masa dukungan (EOL). Topik ini mencakup perbedaan antara kedua distribusi tersebut agar Anda dapat menilai dampaknya sebelum melakukan migrasi.
Untuk informasi lebih lanjut, lihat panduan EOL CentOS dan Dukungan pemeliharaan untuk sistem operasi.
Perubahan signifikan yang memerlukan tindakan
Perubahan berikut dapat menyebabkan aplikasi atau skrip Anda gagal setelah migrasi. Tinjau poin-poin ini sebelum melakukan migrasi.
Kernel dan rantai alat inti
Versi rantai alat inti lebih tinggi di Alibaba Cloud Linux 3. Setelah migrasi, kompilasi ulang aplikasi Anda agar sesuai dengan dynamic link libraries (DLLs) yang digunakan di Alibaba Cloud Linux 3—jika tidak, aplikasi mungkin gagal mengenali file DLL.
| Component | 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 | — |
Untuk perbedaan versi kernel, lihat bagian Perbedaan kernel.
Interpreter Python default
Di CentOS 7, /usr/bin/python mengarah ke Python 2. Di Alibaba Cloud Linux 3, mengarah ke Python 3. Jika skrip atau program Anda memanggil python xxx.py, perilakunya mungkin berbeda atau gagal setelah migrasi.
| Component | CentOS 7 x86 | Alibaba Cloud Linux 3 x86 and Arm64 |
|---|---|---|
| Python | Python 2, Python 3.4, Python 3.6 | Python 2, Python 3.6, Python 3.8, Python 3.11 |
Instalasi Java default
Menjalankan yum install java menginstal JDK yang berbeda tergantung pada distribusinya:
CentOS 7: menginstal
java-1.8.0-openjdkAlibaba Cloud Linux 3: menginstal
java-1.8.0-alibaba-dragonwell(distribusi OpenJDK dari Alibaba)
Untuk menginstal OpenJDK di Alibaba Cloud Linux 3, jalankan yum install java-1.8.0-openjdk.
| Component | CentOS 7 x86 | Alibaba Cloud Linux 3 x86 and 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 |
Instalasi MySQL default
Menjalankan yum install mysql menginstal paket database yang berbeda:
CentOS 7: menginstal MariaDB
Alibaba Cloud Linux 3: menginstal MySQL
| Component | CentOS 7 x86 | Alibaba Cloud Linux 3 x86 and Arm64 |
|---|---|---|
| mysql | — | 8.0.36-1.0.1.1.al8 |
| mariadb | 5.5.68-1.el7 | 3:10.5.22-1.0.1.al8 |
Penggantian alat sistem
Tiga tool sistem inti diganti di Alibaba Cloud Linux 3. Perbarui skrip dan otomatisasi Anda sesuai dengan perubahan ini.
| Function | CentOS 7 | Alibaba Cloud Linux 3 | Notes |
|---|---|---|---|
| Package management | YUM | DNF | |
| Network packet filtering | iptables | nftables | Perbarui aturan firewall agar menggunakan sintaksis nftables. |
| Container runtime | Docker | Podman | Docker Community Edition (CE) juga dapat diinstal untuk penerapan mandiri. |
Dukungan sistem file
Alibaba Cloud Linux 3 mendukung ext4 dan XFS, tetapi tidak mendukung Btrfs. Jika workload Anda menggunakan Btrfs, migrasikan datanya ke ext4 atau XFS sebelum beralih.
| Kconfig parameter | CentOS 7 x86 | Alibaba Cloud Linux 3 x86 | Alibaba Cloud Linux 3 Arm64 |
|---|---|---|---|
| CONFIG_BTRFS_FS | m (enabled as module) | Not set | Not set |
Perbedaan versi komponen lainnya
Versi komponen berikut diperbarui di Alibaba Cloud Linux 3. Biasanya tidak diperlukan tindakan khusus kecuali aplikasi Anda bergantung pada versi tertentu.
Jika Anda mengompilasi dan menginstal versi komponen yang tidak tersedia di repositori YUM di CentOS 7, Anda mungkin tidak dapat masuk ke sistem atau menjalankan aplikasi setelah migrasi. Kompilasi ulang komponen tersebut di Alibaba Cloud Linux 3, atau instal dari repositori YUM Alibaba Cloud Linux 3.
| Component | CentOS 7 x86 | Alibaba Cloud Linux 3 x86 and 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 |
Perbedaan port
Alibaba Cloud Linux 3 mendengarkan port yang berbeda dibandingkan CentOS 7. Perbarui aturan firewall Anda jika diperlukan.
| Protocol | Port | Service | CentOS 7 | Alibaba Cloud Linux 3 |
|---|---|---|---|---|
| TCP/UDP | 111 | rpcbind | Yes (TCP/UDP) | Yes (TCP/UDP/TCP6/UDP6) |
| TCP | 22 | SSH | Yes | Yes |
| TCP | 25 | SMTP | Yes | No |
| UDP | 68 | DHCP | Yes (NetworkManager process) | Yes (dhclient process) |
| UDP/UDP6 | 323 | chronyd | Yes | Yes |
| TCP/UDP | 5355 | systemd-resolve | No | Yes |
Perbedaan penting:
Port 25 (SMTP) terbuka di CentOS 7 tetapi tidak di Alibaba Cloud Linux 3.
Port 5355 (systemd-resolve) terbuka di Alibaba Cloud Linux 3 tetapi tidak di CentOS 7.
UDP 68 (DHCP) dikelola oleh proses NetworkManager di CentOS 7 dan oleh proses dhclient di Alibaba Cloud Linux 3.
Perbedaan kernel
Parameter sysctl
Parameter yang berubah
Parameter sysctl berikut memiliki nilai default yang berbeda di Alibaba Cloud Linux 3. Dalam kebanyakan kasus, tidak diperlukan tindakan—nilai default ini telah dioptimalkan untuk lingkungan cloud.
| Parameter | CentOS 7 value | Alibaba Cloud Linux 3 value | Description |
|---|---|---|---|
| kernel.panic | 0 (read/write) | 1 (read/write) | Mengontrol apakah kernel melakukan restart secara otomatis setelah panic. 0 = tidak restart; >0 = restart setelah n detik; <0 = restart segera. Alibaba Cloud Linux 3 melakukan restart setelah 1 detik secara default. Tidak diperlukan tindakan. |
| kernel.watchdog_thresh | 10 (read/write) | 50 (read/write) | Periode timeout watchdog dalam detik. Dinaikkan untuk mengurangi alarm palsu di lingkungan cloud yang memiliki kompleksitas tautan jaringan lebih tinggi. Tidak diperlukan tindakan. |
| kernel.nmi_watchdog | 1 (read/write) | 0 (read/write) | Deteksi hard lockup menggunakan Non-Maskable Interrupts (NMIs). NMI tidak didukung di Elastic Compute Service (ECS), sehingga dinonaktifkan secara default. Jika Anda menggunakan instans bare metal dan memerlukan deteksi hard lockup, aktifkan secara manual. |
| kernel.hung_task_timeout_secs | 120 (read/write) | 240 (read/write) | Timeout dalam detik sebelum proses dalam status D (TASK_UNINTERRUPTIBLE) memicu peringatan. Dinaikkan untuk mengurangi alarm palsu di lingkungan cloud. Tidak diperlukan tindakan. |
| vm.drop_caches | 0 (read/write) | — (write-only) | Izin baca dihapus di Alibaba Cloud Linux 3. Di CentOS 7, membaca parameter ini dapat menyesatkan pengguna seolah-olah menunjukkan mode non-cache, padahal sebenarnya memicu tugas pembersihan cache. Tidak diperlukan tindakan. |
| vm.dirty_ratio | 30 (read/write) | 40 (read/write) | Persentase maksimum memori sistem yang dapat diisi dengan halaman kotor sebelum proses dipaksa menulis. Diatur oleh daemon tuned berdasarkan profil performa aktif. Tidak diperlukan tindakan kecuali Anda memiliki skrip tuning kustom. |
| vm.numa_zonelist_order | default (read/write) | Node (read/write) | Mengontrol urutan pemilihan zona selama alokasi memori NUMA. Opsi ini menjadi tidak berfungsi di versi kernel yang lebih baru—kontrol manual tidak lagi diperlukan. Tidak diperlukan tindakan. |
| net.ipv4.tcp_mem | — (read/write) | — (read/write) | Memori maksimum yang dapat dialokasikan TCP. Untuk spesifikasi memori yang sama, ukuran buffer default di Alibaba Cloud Linux 3 kira-kira separuh dari CentOS 7, karena algoritma inisialisasi yang diperbarui (commit b66e91ccbc34ebd5a2f90f9e1bc1597e2924a500). Tidak diperlukan tindakan. |
| net.ipv4.tcp_fastopen | 0 (read/write) | 1 (read/write) | Mengontrol TCP Fast Open. 0 = dinonaktifkan; 1 = diaktifkan hanya untuk koneksi keluar. Diaktifkan secara default di Alibaba Cloud Linux 3 (commit e1cfcbe82b4534bd0f99fef92a6d33843fd85e0e). Tidak diperlukan tindakan. |
| net.ipv4.tcp_fack | 1 (read/write) | 0 (read/write) | TCP Forward Acknowledgment (FACK) digantikan oleh algoritma RACK (Recent Acknowledgment) dan dinonaktifkan. Tidak diperlukan tindakan (commit 713bafea92920103cd3d361657406cf04d0e22dd). |
| net.core.somaxconn | 128 (read/write) | 4,096 (read/write) | Panjang maksimum antrian pendengaran soket. Dinaikkan dari 128 menjadi 4,096 untuk memenuhi kebutuhan workload server (commit 19f92a030ca6d772ab44b22ee6a01378a8cb32d4). Tidak diperlukan tindakan. |
| net.core.default_qdisc | pfifo_fast (read/write) | fq_codel (read/write) | Disiplin antrian default. Diubah menjadi Fair Queuing Controlled Delay (FQ-CoDel) untuk mencegah Bufferbloat. Tidak diperlukan tindakan. |
Parameter yang dihapus
Parameter sysctl berikut dari CentOS 7 tidak tersedia di Alibaba Cloud Linux 3. Jika file konfigurasi atau skrip Anda merujuk parameter ini, hapus atau gantilah.
| Parameter | CentOS 7 default | Reason removed | Recommended action |
|---|---|---|---|
| kernel.panic_on_stackoverflow | 0 | Digantikan oleh halaman penjaga stack kernel, yang melakukan deteksi secara otomatis (commit 117ed45485413b1977bfc638c32bf5b01d53c62b). | Hapus dari file konfigurasi. Tidak perlu pengganti. |
| kernel.random.read_wakeup_threshold | 64 | Dihapus selama iterasi versi kernel (commit c95ea0c69ffda19381c116db2be23c7e654dac98). | Hapus dari file konfigurasi. Tidak perlu pengganti. |
| kernel.compat-log | 1 | Mode virtual 8086 tidak didukung pada arsitektur x86 64-bit. Log peringatan yang dihasilkan opsi ini tidak lagi diperlukan (commit 9dcfcda5768eda793e15a1a73da38cfd1fc1a47a). | Hapus dari file konfigurasi. Tidak perlu pengganti. |
| kernel.numa_balancing_settle_count | 4 | Linux kini menggunakan metrik yang lebih akurat untuk membedakan beban tugas; kontrol ambang batas frekuensi melalui opsi ini tidak lagi diperlukan (commit 1bd53a7efdc988163ec4c25f656df38dbe500632). | Hapus dari file konfigurasi. Tidak perlu pengganti. |
| kernel.sched_shares_window_ns | 10,000,000 | Opsi ini tidak berpengaruh di CentOS 7 (commit 3c3fcb45d524feb5d14a14f332e3eec7f2aff8f3). | Hapus dari file konfigurasi. Tidak perlu pengganti. |
| kernel.sched_time_avg_ms | 1,000 | Digantikan oleh algoritma pelacakan beban per entitas (PELT) untuk penjadwalan real-time (commit 5fd778915ad29184a5ff8eb82d1118f6916b79e4). | Hapus dari file konfigurasi. Tidak perlu pengganti. |
| vm.hugepages_treat_as_movable | 0 | Dihapus karena menyebabkan masalah dengan fitur hot-swap memori (commit d6cb41cc44c63492702281b1d329955ca767d399). | Hapus dari file konfigurasi. Tidak perlu pengganti. |
| vm.nr_pdflush_threads | 0 | Opsi ini tidak berpengaruh di CentOS 7 (commit b35bd0d9f8a8ea17aae40893e18274d191a2d2c5). | Hapus dari file konfigurasi. Tidak perlu pengganti. |
| net.ipv4.tcp_tw_recycle | 0 | Dihapus karena bertentangan dengan randomisasi timestamp TCP yang digunakan di lingkungan NAT (commit 4396e46187ca5070219b81773c4e65088dac50cc). | Hapus dari file konfigurasi. |
| net.ipv4.tcp_thin_dupack | 0 | Digantikan oleh algoritma TCP RACK (commit 4a7f6009441144783e5925551c72e3f2e1b0839b). | Hapus dari file konfigurasi. Tidak perlu pengganti. |
| net.ipv4.tcp_max_ssthresh | 0 | Digantikan oleh metode slow-start otomatis yang lebih efektif (commit 9f9843a751d0a2057f9f3d313886e7e5e6ebaac9). | Hapus dari file konfigurasi. Tidak perlu pengganti. |
| fs.negative-dentry-limit | 0 | Fitur khusus CentOS 7; bukan bagian dari kernel komunitas Linux. Dihapus mulai CentOS 8 dan seterusnya. Lihat Red Hat KB. | Hapus dari file konfigurasi. Tidak perlu pengganti. |
| fs.may_detach_mounts | 0 | Fitur khusus CentOS 7; bukan bagian dari kernel komunitas Linux. Dihapus mulai CentOS 8 dan seterusnya. Lihat Red Hat KB. | Hapus dari file konfigurasi. Tidak perlu pengganti. |
Parameter /sys/
| Path | CentOS 7 | Alibaba Cloud Linux 3 | Notes |
|---|---|---|---|
| /sys/block/<blk>/queue/read_ahead_kb | 128 | 4,096 | Daemon tuned mengatur nilai ini. Nilai read-ahead yang besar dapat mengurangi performa untuk workload database dan meningkatkan I/O disk. Jika ini memengaruhi workload Anda, atur kembali nilainya ke 128. |
| /sys/module/virtio_net/parameters/napi_tx | — | Enabled | Mengontrol apakah NAPI digunakan untuk antrian kirim virtio_net. Dalam beberapa skenario benchmark, mengaktifkan NAPI mencegah perakitan paket TCP dan mengurangi throughput. Untuk menonaktifkannya, atur virtio_net.napi_tx=0. |
Parameter baris perintah kernel
| Parameter | CentOS 7 | Alibaba Cloud Linux 3 | Description |
|---|---|---|---|
| cgroup.memory=nokmem | Not configured | Configured | Menonaktifkan akuntansi memori kernel (CONFIG_MEMCG_KMEM) untuk cgroups. Menonaktifkannya meningkatkan performa sistem. Lihat Komunitas OpenAnolis untuk detailnya. |
| crashkernel=auto | Configured | Not configured | Secara otomatis menghitung memori yang dicadangkan untuk layanan kdump. Image Alibaba Cloud Linux 3 telah memiliki ukuran memori crashkernel yang telah dikonfigurasi sebelumnya, sehingga menghapus parameter ini dari pengaturan default tidak berdampak. |
| net.ifnames=0 | Configured | Configured | Mengembalikan penamaan antarmuka jaringan lama (eth0, eth1) dan menonaktifkan fitur penamaan prediktabel systemd. Dikonfigurasi secara default di kedua distribusi. Perubahan penamaan antarmuka jaringan dapat memengaruhi kompatibilitas. Untuk informasi lebih lanjut, lihat Apa yang harus saya lakukan jika muncul pesan error "Unsupported network configuration"?. |
Parameter Kconfig
Parameter konfigurasi kernel berikut berbeda antara kedua distribusi.
| Parameter | CentOS 7 x86 | Alibaba Cloud Linux 3 x86 | Alibaba Cloud Linux 3 Arm64 | Description |
|---|---|---|---|---|
| CONFIG_NR_CPUS | 5,120 | 1,024 | 1,024 | Jumlah maksimum core CPU yang didukung. Tidak ada instans Alibaba Cloud yang memiliki lebih dari 1,024 core, sehingga tidak berdampak praktis. |
| CONFIG_NODES_SHIFT | 10 | 6 | 6 | Jumlah maksimum node NUMA yang didukung (2^6 = 64 node). Tidak ada instans Alibaba Cloud yang memiliki lebih dari 64 node NUMA, sehingga tidak berdampak praktis. |
| CONFIG_PREEMPT_NONE | Not set | y | Not set | Mode preemption kernel. Alibaba Cloud Linux 3 pada x86 menggunakan mode tanpa preemption untuk performa cloud yang lebih baik. Mode ini dinonaktifkan di Alibaba Cloud Linux 3 untuk Arm64 karena alasan historis. Mulai dari versi kernel 5.10.134-17, Anda dapat menggunakan parameter baris perintah kernel untuk mengubah mode preemption default secara dinamis. |
| CONFIG_PREEMPT_VOLUNTARY | y | Not set | y | Mode preemption sukarela. Diaktifkan di CentOS 7 dan Alibaba Cloud Linux 3 Arm64. |
| CONFIG_BTRFS_FS | m | Not set | Not set | Alibaba Cloud Linux 3 mendukung sistem file ext4 dan XFS, tetapi tidak mendukung Btrfs. Jika workload Anda menggunakan Btrfs, migrasikan datanya ke ext4 atau XFS sebelum beralih. |