#Debian

บริการยังรันอยู่ แต่ตายไปแล้ว — systemd restart ช่วยไม่ได้
เน็ตหลุดยาว DNS ใช้ไม่ได้ เดมอนที่ถือ session กับ API ภายนอกวนล็อกอินไม่สำเร็จ 194 รอบ แล้วค้างกลางขั้นตอน ไม่ exit ระบบเลยไม่ restart ให้ — ว่าด้วยการเลิกวัดว่า process ยังอยู่ไหม แล้วหันมาวัดความสดของข้อมูลแทน

แยกลิงก์พังออกจาก ISP ล่ม ก่อนสั่งรีสตาร์ตอะไรบนเครื่อง
watchdog ที่เขียนกันทั่วไปคือ ping ไม่ผ่านแล้ว restart NetworkManager ซึ่งผิดครึ่งหนึ่งของเวลา เพราะเน็ตไม่ออกอาจแปลว่า ISP ล่ม ไม่ใช่การ์ดพัง บทความนี้แยกสามสถานะออกจากกันด้วย nmcli แล้วไต่บันไดจากเบาไปหนักถึงขั้น PCI remove และ rescan โดยไม่รีบูตเครื่อง

มี backup ครบทุกไฟล์ แต่สร้างเครื่องใหม่ไม่ได้
dump ฐานข้อมูลครบ tar โค้ดครบ ไฟล์ความลับครบ แต่พอเอาไปวางบนเครื่องเปล่าแล้วเว็บไม่ขึ้น เพราะของที่ทำให้เครื่องทำงานได้จริงไม่เคยอยู่ในไฟล์ backup เลย บทความนี้คือรายการของที่หายไปกับเครื่อง และลำดับกู้ที่ผมเขียนไว้ให้ตัวเองในอนาคต

backup รันสำเร็จทุกคืน แต่ของนอกเครื่องไม่มีเลย 3 สัปดาห์
cron รันครบทุกคืน ไฟล์ในเครื่องครบทุกวัน log เขียนว่าเสร็จ แต่ของบนที่เก็บนอกเครื่องไม่ขยับมา 3 สัปดาห์ และชุด 8 คืนแรกหายถาวรไปแล้วเพราะ rotate ในเครื่องกินไปก่อน บทความนี้คือการชำแหละว่ารูสองรูอะไรทำให้เงียบได้นานขนาดนั้น

MariaDB ที่ยังใช้ค่า default — buffer pool 128M บนเครื่อง RAM 55 GB
เครื่อง 16 core RAM 55 GB SSD แต่ MariaDB ยังใช้ buffer pool 128 MB ตามค่าติดตั้ง ผลคืออ่านดิสก์ไป 50 ล้านครั้งใน 5 วัน ค่าก่อนหลังทั้งชุด กับดักชื่อ service กับ path config บน DirectAdmin/Debian วิธี rollback และ MyISAM อีก 500 ตารางที่รอแปลง

audit ความปลอดภัยเซิร์ฟเวอร์ Debian shared-host แบบ read-only — เริ่มยังไงไม่ให้แบนตัวเอง
ตรวจความปลอดภัยเซิร์ฟเวอร์ Debian ที่รัน DirectAdmin แบบ read-only ก่อน — แต่กับดักแรกคือทราฟฟิกจากการ scan เองเข้าเงื่อนไข brute-force ของ CSF จนแบน IP ตัวเอง บทความนี้วางลำดับ audit ที่ปลอดภัย + จุดที่ต้องดูในยุค 2024-2026

แอปเก่าพังหลังย้ายเซิร์ฟเวอร์ — error 1364/1366 กับ MariaDB strict mode
ย้ายเว็บจากเซิร์ฟเวอร์เก่ามาเครื่องใหม่แล้วฟอร์มสมัครสมาชิกพังทั้งที่โค้ดไม่เปลี่ยน — ต้นเหตุคือ STRICT_TRANS_TABLES ใน sql_mode ของ MariaDB รุ่นใหม่ พร้อมวิธีแก้ 3 ระดับ ตั้งแต่ conf.d จนถึง SET SESSION รายแอป

ใช้ Claude อัป Proxmox 8 ขึ้น 9 แล้วสร้าง Windows VM ใหม่ทั้งคลัสเตอร์
เคสจริง ใช้ VS Code + Claude อัป Proxmox 8 ขึ้น 9 ทั้ง cluster แล้วล้างสร้าง Windows VM ใหม่ทั้งหมดแบบ VDI โดยไม่ได้ ssh เข้าเครื่องเองเลยสักครั้ง ถอดคำสั่งและสคริปต์ที่ Claude สร้างระหว่างทำงานจริงออกมาเป็นขั้นตอน ให้คนหรือ AI อ่านแล้วเอาไปสั่งทำซ้ำได้จริง

qcow2 หรือ ZFS — ทำไมผมเพิ่งย้าย หลังใช้เครื่องเดิมมา 12 ปี
บันทึกเหตุผลเบื้องหลังการเลือก storage layer ของเครื่อง Proxmox ที่รันมา 12 ปีไม่เคย reinstall — ทำไมปี 2014 เลือก qcow2 ทำไมเพิ่งย้าย ZFS ปี 2026 และอะไรคือสิ่งที่เปลี่ยน calculus จริง ๆ

ย้าย DirectAdmin จาก CentOS 7 ไป Debian 12 บน Proxmox (สารบัญซีรีส์)
บันทึกการย้าย DirectAdmin shared host จาก CentOS 7 (EOL) ไป Debian 12 บน Proxmox ลูกค้า 80+ ราย แตกเป็น 5 ตอน พร้อมภาพรวมขั้นตอนและลิงก์ทุกตอน

ย้าย DA จาก CentOS 7 ไป Debian 12 ตอนที่ 4 — Cutover จริง กับ 17 ปัญหาหลังสลับเครื่อง
เล่า cutover จริงที่แผน downtime ใกล้ 0 พังเพราะ DA Legacy license และ qcow2 อ่านช้า สุดท้าย downtime 1 ชม. แล้วเจอ 17 ปัญหารัวๆ หลังสลับเครื่อง — critical web stack ดับ, medium subset ใช้ไม่ได้, minor debugging notes ครบ

ย้าย DA ตอนที่ 3 — ลง DirectAdmin + CustomBuild บน Debian 12
ลง DirectAdmin ผ่าน setup.sh แล้วประกอบ stack ทั้ง PHP หลายเวอร์ชัน MariaDB ModSecurity และ rspamd ด้วย CustomBuild บน staging VM ที่อยู่หลัง NAT พร้อมกับดักที่ผมเจอมาแล้วจริง

ย้าย DA สู่ Debian 12 ตอนที่ 2 — เปลี่ยน storage เป็น ZFS mirror
เปลี่ยน storage layer จาก mdadm RAID1 + ext4 + qcow2 สามชั้น มาเป็น ZFS mirror + raw zvol ชั้นเดียว โดยทำได้ขณะ VM เก่ายัง online ผ่านเทคนิค degrade RAID เหลือ disk ใบเดียว

ย้าย DA CentOS 7 → Debian 12 บน Proxmox ตอนที่ 1 — NAT pre-stage
เทคนิคเตรียม VM ใหม่บน internal bridge แบบ NAT ขณะที่ VM เก่ายังให้บริการลูกค้าปกติ ลด downtime ตอนย้าย DirectAdmin จาก CentOS 7 ไป Debian 12 บน Proxmox