Proxmox + TrueNAS คืออะไร และเหมาะกับใคร
Proxmox TrueNAS setup คือการติดตั้ง TrueNAS ซึ่งเป็นระบบจัดเก็บข้อมูลแบบ ZFS ลงในเครื่องเสมือนบน Proxmox Virtual Environment เพื่อสร้าง self-hosted storage ระดับองค์กรบนฮาร์ดแวร์ของตัวเอง โดยใช้คุณสมบัติ virtualization platform แบบโอเพ่นซอร์สที่ไม่มีค่าไลเซนส์ และยังคงความเสถียรของ ZFS ผ่านการกำหนดค่าพิเศษอย่าง PCI passthrough ที่ให้ TrueNAS เข้าถึงดิสก์ในระดับฮาร์ดแวร์โดยตรง
แนวทางนี้เหมาะกับคนที่อยากรวมทั้ง VM ทั่วไปและระบบ NAS ไว้ในเครื่องเดียว เช่น โฮมแลบหรือธุรกิจขนาดเล็กที่ต้องการ enterprise storage solution แต่ยังอยากควบคุมโครงสร้างพื้นฐานเอง Proxmox Virtual Environment เป็นโซลูชัน Open Source Enterprise Virtualization Platform ที่รวมการจัดการ Compute, Storage และ Network เข้าด้วยกัน รองรับทั้ง Workload แบบ Virtualization และ Container ทำให้ใช้เป็นฐานระบบ self-hosted storage ได้คุ้มค่า.
ข้อแม้สำคัญคือ TrueNAS ไม่ใช่ VM Linux ทั่วไป การติดตั้งแบบเดิมๆ โดยต่อดิสก์เป็น virtual disk หรือแม้แต่ raw disk ผ่าน hypervisor เป็นสูตรพัง เพราะจะเพิ่มชั้น virtualization ที่อาจทำให้ write cache เพี้ยน และเสี่ยงต่อความเสียหายของ data pool หากระบบล่มกลางคัน ดังนั้นบทความนี้จะพาเดินเป็นเพื่อนทีละขั้นว่าควรทำอย่างไรให้เสถียรและปลอดภัยที่สุด.
ทำไม TrueNAS บน Proxmox ต้องตั้งค่าต่างจาก VM Linux ทั่วไป
หัวใจของเรื่องนี้คือ ZFS ใน TrueNAS ต้องได้ควบคุมดิสก์แบบตรงๆ ไม่ผ่านชั้นจำลองเยอะเกินไป ZFS ใช้กลไกตรวจสอบและแก้บิตเสีย, จัดการ cache และเรียงลำดับการเขียนข้อมูลอย่างเข้มงวด ถ้าเราให้ Proxmox สร้าง virtual disk แล้วค่อยเอาไปทำ ZFS อีกที เท่ากับซ้อนชั้น I/O เพิ่มโอกาสให้ write caching ทำงานผิดคิว และถ้าระบบล่มตอนเขียนข้อมูลอยู่ ลำดับการเขียนที่สลับกันอาจทำให้ storage pool เสียหายได้.
ข้อผิดพลาดยอดฮิตอันดับหนึ่ง คือการสร้าง TrueNAS VM แบบเดียวกับที่สร้าง Ubuntu หรือ Debian แล้วผูกดิสก์เพิ่มจากแท็บ Hardware วิธีนี้แม้จะดูสะดวกแต่เป็น “recipe for disaster” เพราะ TrueNAS จะเห็นเพียงดิสก์เสมือน ไม่ใช่ดิสก์จริง. อีกความผิดพลาดคือแม้จะผ่านดิสก์แบบ raw จาก shell ก็ยังมีชั้น virtualization อยู่ ทำให้ TrueNAS อ่านค่า S.M.A.R.T. ตรวจข้อมูลดิสก์ หรือสั่ง flush cache ได้ไม่ครบ.
วิธีที่แนะนำคือผ่านทั้งคอนโทรลเลอร์ SATA เข้าสู่ VM ด้วย PCI(e) passthrough เพื่อให้ TrueNAS เห็นดิสก์เหมือนติดตั้งบนเครื่องจริง. แน่นอนว่าดูยุ่งกว่าสร้าง VM ธรรมดา แต่สิ่งที่ได้คือ self-hosted storage ที่ยังคงคุณสมบัติของ ZFS เต็มๆ และลดโอกาส pool พังจากปัญหา hypervisor ชั้นกลาง.
เตรียมเครื่อง Proxmox ให้พร้อมก่อนลง TrueNAS
ก่อนจะลงมือทำตามขั้นตอนจริง เราต้องเช็คก่อนว่าเครื่องที่ใช้รองรับหรือไม่ Proxmox Virtual Environment รองรับซีพียูทั้ง Intel และ AMD และทำ Virtualization ด้วย KVM สำหรับ VM ทั้ง Windows และ Linux ดังนั้นส่วนใหญ่เครื่องที่ใช้ทำโฮมแลบหรือเซิร์ฟเวอร์ทั่วไปมักไปได้สบาย สิ่งที่ต้องใส่ใจคือจำนวนแรม เพราะ ZFS ขึ้นชื่อว่ากินหน่วยความจำสูง จึงมีตัวอย่างการจัดสรรแรม 8GB จากแรมรวม 16GB ให้กับ TrueNAS VM เพื่อให้ ZFS ทำงานได้อย่างลื่นไหล.
อีกองค์ประกอบคือคอนโทรลเลอร์ SATA ที่จะใช้ passthrough ต้องรองรับ IOMMU ซึ่งต้องเปิดใช้จากระดับเคอร์เนล ขั้นตอนในระดับไฟล์คอนฟิกที่ควรรู้มีดังนี้: แก้ไขบรรทัด GRUB_CMDLINE_LINUX_DEFAULT="quiet" ในไฟล์ /etc/default/grub โดยเพิ่ม intel_iommu=on ต่อจากคำว่า quiet แล้วรันคำสั่ง update-grub เพื่อเปิดใช้ IOMMU. จากนั้นเพิ่มโมดูล vfiovfio_iommu_type1vfio_pcivfio_virqfd ลงในไฟล์ /etc/modules เพื่อเตรียมระบบให้พร้อมสำหรับ PCI passthrough.
- รันคำสั่ง lspci -nn เพื่อดูรหัสอุปกรณ์ (device IDs) ของ SATA controller ที่จะให้ TrueNAS ใช้ จากนั้นจดค่าไว้.
- แก้ไฟล์ /etc/modprobe.d/vfio.conf โดยเพิ่มบรรทัด options vfio-pci ids=Device_1,Device_2 แทนที่ Device_1,Device_2 ด้วยรหัสที่จดมา.
- รีบูต Proxmox เพื่อให้ค่าทั้งหมดมีผล แล้วตรวจสอบว่า SATA controller ถูก bind กับ vfio-pci เรียบร้อย.
- สร้าง VM ใหม่สำหรับ TrueNAS กำหนด vCPU, RAM (เช่น 8GB จาก 16GB ตามตัวอย่าง) และแนบ ISO ติดตั้ง TrueNAS.
- เข้าแท็บ Hardware ของ VM แล้วเพิ่ม SATA controller ที่เตรียมไว้เป็น PCI Device เพื่อส่งต่อทั้งคอนโทรลเลอร์เข้า VM.
จุดที่ควรระวังคือห้ามแนบทั้ง virtual disk และคอนโทรลเลอร์จริงสำหรับดิสก์ชุดเดียวกันใน TrueNAS เดียว เพราะจะสับสนว่าดิสก์ใดเป็นของ pool ที่สำคัญ และอย่าลืมว่าหลังเปิดใช้ IOMMU แล้ว ควรทดสอบการบูต Proxmox ให้มั่นใจก่อนค่อยลง TrueNAS เพื่อป้องกันปัญหาเครื่องจริงบูตไม่ขึ้น.
สิ่งที่ได้จาก Proxmox TrueNAS setup และบริการมืออาชีพที่ช่วยได้
เมื่อทำ Proxmox TrueNAS setup แบบผ่าน SATA controller ด้วย PCI passthrough จนเสร็จและลง TrueNAS สำเร็จแล้ว จะได้ self-hosted storage ที่อยู่บน virtualization platform ตัวเดียวกับ VM อื่นๆ แต่ยังรักษาคุณสมบัติ ZFS เต็มรูปแบบ ผู้ทดลองใช้งานรูปแบบนี้ในโฮมแลบเล่าว่า “NAS เสมือนนี้รันต่อเนื่องเกินหนึ่งเดือนไม่มีปัญหา” และมองว่าการรัน Proxmox + TrueNAS บนเครื่องเดียวกันนั้นน่าประทับใจ แม้จะมีคนบางส่วนมองว่าควรแยกเครื่องกันก็ตาม.
ข้อดีอีกด้านคือ Proxmox VE เป็นโอเพ่นซอร์ส จึงช่วยให้ควบคุมค่าใช้จ่ายได้ดี ในขณะที่ยังมีความสามารถระดับธุรกิจองค์กร เช่น การจัดการ Storage หลากหลายแบบ ทั้ง Local Storage และ Network Storage ผ่าน iSCSI, NFS, SMB/CIFS, Ceph, GlusterFS, CephFS และการทำงานร่วมกับ Ceph ในแบบ Software-Defined Storage ทำให้สามารถใช้ร่วมกับ TrueNAS ในบทบาทต่างกันได้ เช่น แยก storage สำหรับ VM และ storage สำหรับ backup หรือไฟล์แชร์.
สำหรับองค์กรที่อยากได้ความเสถียรระดับ production แต่ไม่อยากแบกรับความซับซ้อน ยังมีผู้ให้บริการมืออาชีพที่ประกาศเป็นพันธมิตรกับ Proxmox พร้อมให้บริการครบวงจร ด้วยประสบการณ์ดูแล VM บน Proxmox มายาวนานกว่า 10 ปี และนำเสนอบริการทั้ง Proxmox Enterprise Support Services และ Proxmox Online Support Services ซึ่งช่วยออกแบบ ติดตั้ง และดูแลระบบ virtualization และ self-hosted storage ให้พร้อมใช้งานจริง.
สรุป: คุ้มไหมกับการทำ self-hosted storage แบบนี้
ถ้าคุณอยากได้ self-hosted storage ที่ยืดหยุ่นแบบ VM แต่ยังมั่นใจเรื่องความปลอดภัยของข้อมูล การเอา TrueNAS มารันบน Proxmox ด้วย PCI passthrough ของ SATA controller เป็นแนวทางที่ “เวิร์กจริง” เมื่อทำถูกขั้นตอน แม้จะต้องตั้งค่าเพิ่มจาก VM Linux ปกติ แต่สิ่งที่ได้คือระบบเก็บข้อมูลระดับ enterprise storage solution ด้วย ZFS บน virtualization platform ที่ไม่มีค่าไลเซนส์ และยังจัดการ VM อื่นๆ ได้ในเครื่องเดียว.
สิ่งที่ต้องจับตาคืออย่ามอง TrueNAS เป็นแค่ VM อีกตัวหนึ่ง ต้องยอมลงทุนเวลาเปิด IOMMU, ตั้งค่า vfio, หา device ID และส่งผ่านทั้ง SATA controller ให้เรียบร้อย รวมถึงสำรองข้อมูลก่อนทดลองทุกครั้ง หากคุณไม่อยากเข้าไปแตะระดับไฟล์คอนฟิกและเคอร์เนล ก็มีทางเลือกใช้บริการผู้เชี่ยวชาญ Proxmox ที่มี Enterprise Support ช่วยวางระบบให้ตั้งแต่ต้น. เมื่อเตรียมแผนสำรองและทดสอบดีพอ self-hosted storage แบบนี้ถือว่า “คุ้มแรงที่ลง” และพร้อมใช้งานระยะยาว.





