Topik ini menjelaskan penyebab masalah berikut dan cara menyelesaikannya: Dalam skenario tertentu, sebuah operasi tidak memiliki izin baca yang cukup pada file atau direktori dalam sistem file OverlayFS, sehingga menyebabkan kegagalan operasi pada instance Alibaba Cloud Linux 2 atau Alibaba Cloud Linux 3.
Deskripsi masalah
Ketika Anda mencoba membuka file dalam mode hanya-baca atau menjalankan perintah touch untuk memicu proses copy-up pada instance Alibaba Cloud Linux yang diformat dengan sistem file OverlayFS, pesan kesalahan akan muncul. Proses copy-up melibatkan penyalinan file dari direktori bawah ke direktori atas. Jalankan perintah berikut untuk mengidentifikasi penyebab masalah:
mkdir -p /root/test/lower/dir /root/test/upper /root/test/work /root/test/mount
chmod 0737 /root/test/lower/dir
chown root:bin /root/test/lower/dir
mount -t overlay -o lowerdir=/root/test/lower,upperdir=/root/test/upper,workdir=/root/test/work overlay /root/test/mount
cd /root/test && sudo -u bin -g bin touch mount/dir/RANDOMJika pesan kesalahan berikut muncul setelah menjalankan perintah di atas, Anda tidak memiliki izin baca (-wx) yang cukup pada file atau direktori dalam sistem file OverlayFS.
touch: cannot touch 'mount/dir/RANDOM': Permission deniedMasalah ini dapat terjadi jika instance Anda memenuhi kondisi berikut:
Instance menggunakan salah satu versi kernel yang dijelaskan dalam tabel berikut.
Sistem operasi
Gambar
Versi kernel
Alibaba Cloud Linux 2
Alibaba Cloud Linux 2.1903 LTS 64-bit
4.19.91-27 hingga 4.19.91-27.4,
termasuk 4.19.91-27.al7, 4.19.91-27.1.al7, 4.19.91-27.2.al7, 4.19.91-27.3.al7, dan 4.19.91-27.4.al7
Alibaba Cloud Linux 3
Alibaba Cloud Linux 3.2104 LTS 64-bit
5.10.134-13 hingga 5.10.134-14.1,
termasuk 5.10.134-13.al8, 5.10.134-13.1.al8, 5.10.134-14.al8, dan 5.10.134-14.1.al8
Direktori atas dan bawah dalam sistem file OverlayFS berada dalam sistem file yang sama.
Proses yang mencoba menulis ke file memicu proses copy-up, tetapi proses tersebut tidak memiliki izin baca pada file atau direktori dalam direktori bawah.
Penyebab
Dalam sistem file OverlayFS, direktori atas dan bawah berada dalam sistem file yang sama. Proses tidak memiliki izin baca pada file atau direktori yang ingin diakses. Akibatnya, fungsi ovl_override_creds() tidak dapat dieksekusi. Proses yang mencoba menyalin file atau direktori dari direktori bawah ke direktori atas tidak memiliki izin untuk memuat sistem file OverlayFS, sehingga mengembalikan pesan kesalahan yang menunjukkan izin baca tidak mencukupi.
Solusi
Hubungkan ke instance.
Untuk informasi lebih lanjut, lihat Hubungkan ke instance Linux menggunakan kata sandi atau kunci.
Jalankan perintah berikut untuk memeriksa versi kernel:
uname -rContoh keluaran perintah:
Keluaran perintah untuk Alibaba Cloud Linux 2
4.19.91-27.al7.x86_64Keluaran perintah untuk Alibaba Cloud Linux 3
5.10.134-13.1.al8.x86_64
Jalankan perintah berikut untuk menyelesaikan masalah:
Instal hotfix kernel untuk menyelesaikan masalah.
Untuk versi Alibaba Cloud Linux 3 5.10.134-13.al8, 5.10.134-13.1.al8, 5.10.134-14.al8, dan 5.10.134-14.1.al8, instal hotfix berikut:
yum install -y kernel-hotfix-13108708-5.10.134-13.1Untuk versi Alibaba Cloud Linux 2 4.19.91-27.al7, 4.19.91-27.1.al7, 4.19.91-27.2.al7, 4.19.91-27.3.al7, dan 4.19.91-27.4.al7, instal hotfix berikut:
yum install -y kernel-hotfix-13110805-4.19.91-27
Tingkatkan versi kernel untuk menyelesaikan masalah.
yum upgrade kernelUntuk Alibaba Cloud Linux 3, tingkatkan versi ke 5.10.134-15.al8 atau yang lebih baru.
Untuk Alibaba Cloud Linux 2, tingkatkan versi ke 4.19.91-28.al7 atau yang lebih baru.
Jalankan perintah berikut untuk memeriksa apakah masalah telah diselesaikan:
mkdir -p /root/test/lower/dir /root/test/upper /root/test/work /root/test/mount chmod 0737 /root/test/lower/dir chown root:bin /root/test/lower/dir mount -t overlay -o lowerdir=/root/test/lower,upperdir=/root/test/upper,workdir=/root/test/work overlay /root/test/mount cd /root/test && sudo -u bin -g bin touch mount/dir/RANDOMJika tidak ada pesan kesalahan yang dikembalikan, itu menunjukkan bahwa masalah telah diselesaikan.