วันนี้เป็นปัญหาที่น่าปวดหัวเหมือนกันหลังจากใช้ Podman ไป 1 ปีนิดๆครับ อยู่ลูกค้าแจ้งปัญหามาว่า
Error: exec failed: container_linux.go:349: starting container process caused "join session keyring: create session key: disk quota exceeded": OCI runtime error
Disk quota exceeded มาจากไหน ?
- เดี๋ยวต้องไปหาที่มาเพิ่ม
Solution
- ตรวจสอบก่อนว่า maxkey มีค่าเท่าไหร่ ด้วยคำสั่ง
[invsapp@tm-cep]$ cat /proc/sys/kernel/keys/maxkeys 200 << System Default
- ลองดูจำนวนปัจจุบันสิ มีค่าเท่าไหร่ (ต้อง Login เข้าไป และรันแยก User นะ เพราะ ตัวระบบมันเก็บค่าแยก Per User (Ref: sysctl - Is kernel.keys.maxkeys per user or per key?)
[invsapp@tm-cep]$ cat /proc/keys | wc -l 5 [invsoper@tm-cep]$ cat /proc/keys | wc -l 6
- ในกรณีที่ค่าของมันเกิน maxkeys เช่น
[invsoper@tm-cep]$ cat /proc/sys/kernel/keys/maxkeys 200 [invsoper@tm-cep]$ cat /proc/keys | wc -l 206
- ต้องไปเพิ่ม maxkeys ต้องใช้ user root นะ ด้วยคำสั่ง
[invsapp@tm-cep]$ sudo su - [root@tm-cep]$ echo "400" > /proc/sys/kernel/keys/maxkeys
- นอกจากเพิ่ม maxkeys แล้ว ถ้าลองไปดูใน API keyrings(7) - Linux manual page (man7.org) มันจะมี maxbytes ด้วยนะ อาจจะเพิ่มได้ด้วยกันเลย แต่การเพิ่มมันจะใช้ Memory เพิ่ม ต้องระวังด้วย
//ตรวจสอบค่าปัจจุบัน [invsapp@tm-cep]$ cat /proc/sys/kernel/keys/maxbytes 20000 //0.019073 MB
- ลองปรับ maxbytes ต้องใช้ user root นะ ด้วยคำสั่ง
- ** 10485760 bytes = 10 MB
[invsapp@tm-cep]$ sudo su - [root@tm-cep]$ echo "10485760" > /proc/sys/keys/maxbytes
- ปรับไปแล้วอย่าลืมเอา maxkeys * maxbytes เดี๋ยวเพิ่มไปแล้ว Server RAM ไม่พอ อย่างของผมปรับ
- maxkeys = 400
- maxbytes = 10485760 // 10 MB
- ใช้ memory รวมๆไป 4000 MB ก็ประมาณ 4 GB เลย (ของเก่า 4MB)
- NOTE: ถ้า Link นี้่จะแนะนำให้สร้าง Config แยก เพราะค่าจะหายไปตอน Reboot disk quota exceeded when trying to deploy Docker container inside LXC - Unix & Linux Stack Exchange
Reference
- Disk quota exceeded runtime error · Issue #13363 · containers/podman (github.com)
- sysctl - Is kernel.keys.maxkeys per user or per key? - Unix & Linux Stack Exchange
- Disk quota exceeded error in docker containers | Gabriel Kelly Navarro (gkellynavarro.com)
- Tool แปลง bytes > MB Convert Bytes to Megabytes (B → MB) (convertlive.com)
- disk quota exceeded when trying to deploy Docker container inside LXC - Unix & Linux Stack Exchange
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.