ทำไมต้อง TrueNAS บน Proxmox และเหมาะกับใคร
TrueNAS บน Proxmox คือการติดตั้ง TrueNAS เป็นเครื่องเสมือนบนไฮเปอร์ไวเซอร์ Proxmox เพื่อให้ได้สตอเรจแบบ ZFS ที่เสถียรบนพื้นฐานการเสมือนจริงระดับองค์กรสำหรับใช้งานในโฮมแลบ ออฟฟิศขนาดเล็ก และระบบ self-hosted storage ที่ต้องการความคุ้มค่าและยืดหยุ่นสูง โดยยังคงแยกงานสตอเรจออกจากบริการอื่นด้วยการจัดสรรทรัพยากรอย่างเป็นระบบ.
จุดแข็งคือ Proxmox เป็นเหมือนโครงสร้างพื้นฐานสำหรับให้ OS อื่น ๆ มารันอยู่ด้านบน ทำให้ฮาร์ดแวร์ตัวเดียวรับบทได้ทั้งเซิร์ฟเวอร์บริการและ NAS ในเครื่องเดียวได้อย่างเป็นระเบียบและแยกโหลดกันดี และยังเหมาะกับสายโฮมแลบที่อยากรวม self-hosted apps กับ NAS ไว้ในระบบเดียว โดยยังคุมต้นทุนอยู่ในระดับที่ใช้งานได้ทุกวันทั้งบ้านและสมาร์ตโฮม.
แต่จุดสำคัญคือ TrueNAS ไม่ใช่ลินุกซ์ดิสโทรปกติ คุณไม่ควรสร้าง VM แบบเดียวกับที่ทำกับ Ubuntu หรือ Debian แล้วโยนดิสก์เสมือนให้มัน เพราะโครงสร้างของ ZFS ต้องการควบคุมดิสก์ระดับฮาร์ดแวร์โดยตรง ถ้าทำเหมือน VM ธรรมดา โอกาสเสียพูลสตอเรจตอนมีเหตุผิดปกติจะสูงมาก.
เข้าใจข้อควรระวังก่อนเริ่ม: TrueNAS ไม่ใช่ VM ลินุกซ์ทั่วไป
ก่อนลงมือทำ TrueNAS Proxmox setup ต้องเข้าใจก่อนเลยว่า "การดีพลอย TrueNAS แบบ VM ลินุกซ์ทั่วไปคือสูตรแห่งหายนะ" เพราะถึงจะทำงานได้ในช่วงแรก แต่มันคือการตั้งค่าที่เสี่ยงมากสำหรับ NAS ของคุณ. สาเหตุหลักคือ ZFS ซึ่งเป็นไฟล์ระบบหลักของ TrueNAS ต้องการเห็นดิสก์จริงแบบดิบที่สุด ไม่ต้องผ่านชั้นเสมือนจริงหลายชั้น.
ถ้าคุณต่อดิสก์ให้ TrueNAS ผ่านดิสก์เสมือนของ Proxmox จะเกิดชั้น virtual เพิ่มขึ้น ทำให้กลไก write cache อาจพัง และถ้าเครื่องล่มแล้วลำดับการเขียนข้อมูลถูกรบกวน ความถูกต้องของพูล ZFS อาจเสียหายได้. แม้จะพยายามส่งผ่านดิสก์แบบ raw ผ่านคำสั่งเชลล์ของ Proxmox ปัญหาก็ยังอยู่ เพราะระบบเสมือนจะยังไม่เห็น S.M.A.R.T. อย่างครบถ้วน ไม่สามารถอ่านข้อมูลดิสก์หรือสั่ง flush cache ได้ตรง ๆ.
ดังนั้น แนวทางที่ผู้พัฒนาแนะนำคือใช้ PCI(e) passthrough ส่งผ่านคอนโทรลเลอร์ SATA ทั้งตัวเข้าไปใน VM แทน เพื่อให้ TrueNAS คุมดิสก์มีเดียเหมือนรันบนเครื่องจริง ช่วยให้ระบบสตอเรจเสถียรและปลอดภัยกว่าในระยะยาว.
เตรียมตัว: ฮาร์ดแวร์ ทรัพยากร และความรู้ที่ต้องมี
การทำ self-hosted storage ด้วย TrueNAS บน Proxmox ให้เสถียร ต้องคิดเหมือนทำระบบเล็ก ๆ แบบมืออาชีพ ไม่ใช่แค่ลง OS เล่น ๆ แล้วจบ สิ่งแรกคือฮาร์ดแวร์ต้องรองรับ IOMMU เพื่อทำ PCI passthrough ได้ และคุณควรพอมีพื้นฐานเรื่องการเปิดใช้ IOMMU บน Proxmox อยู่บ้าง เพราะการส่งผ่านคอนโทรลเลอร์ SATA จะง่ายขึ้นมากถ้าเข้าใจแนวคิดนี้.
ด้านทรัพยากร TrueNAS ใช้ ZFS ซึ่งขึ้นชื่อว่ากิน RAM พอสมควร ผู้เขียนต้นทางให้ VM TrueNAS ใช้ RAM 8GB จากทั้งหมด 16GB บน NAS ของเขาเพื่อให้พูล ZFS ทำงานได้แบบพร้อมรบ. ถ้าคุณมี RAM น้อยเกินไป ZFS จะเริ่มตึง มือและประสิทธิภาพจะลดลงอย่างเห็นได้ชัด ควรกะ RAM สำหรับ TrueNAS ให้พอ ก่อนจะเผื่อให้ VM หรือคอนเทนเนอร์อื่น.
สุดท้ายคือเป้าหมายของคุณ หากคุณทำโฮมแลบเล็ก ๆ หรือออฟฟิศขนาดย่อมที่ต้องการ Virtualization storage ที่จัดการง่าย Proxmox จะเป็นฐานเสมือนระดับ enterprise ที่ให้คุณรันทั้ง NAS และบริการอื่นในเครื่องเดียวได้ โดยค่าใช้จ่ายต่อวันของระบบเต็มรูปแบบในตัวอย่างยังอยู่แถว ๆ วันละ USD 1 (approx. ฿36) ซึ่งถูกกว่าการสมัครบริการคลาวด์หลายตัวรวมกัน.
ขั้นตอนทีละข้อ: ตั้งค่า PCI passthrough และ TrueNAS VM ให้ถูกทาง
ขั้นตอนนี้คือหัวใจของ TrueNAS Proxmox setup ที่ทำตามแนวทางของ iXsystems เพื่อให้ระบบเสถียรในระยะยาว. อย่าข้ามขั้น เพราะแต่ละขั้นเกี่ยวข้องกับการเปิดใช้ IOMMU และส่งผ่านคอนโทรลเลอร์ SATA ให้ VM หากพลาดข้อเดียว TrueNAS อาจไม่ได้เข้าถึงดิสก์แบบที่ ZFS ต้องการ.
- เปิดใช้ IOMMU ใน Proxmox: แก้ไขไฟล์ /etc/default/grub ตรงบรรทัด GRUB_CMDLINE_LINUX_DEFAULT="quiet" ให้เพิ่ม intel_iommu=on ตามหลัง quiet แล้วสั่ง update-grub เพื่อเปิดใช้ IOMMU.
- โหลดโมดูล VFIO ที่จำเป็น: แก้ /etc/modules แล้วเพิ่มบรรทัด vfiovfio_iommu_type1vfio_pcivfio_virqfd เพื่อให้เคอร์เนลโหลดโมดูล VFIO ที่ใช้สำหรับ PCI passthrough เมื่อบูต.
- ผูกคอนโทรลเลอร์ SATA เข้ากับ VFIO: แก้ไฟล์ /etc/modprobe.d/vfio.conf แล้วเพิ่มออปชัน options vfio-pci ids=Device_1,Device_2 ตามรหัสอุปกรณ์จากคำสั่ง lspci -nn เพื่อให้ VFIO จับคอนโทรลเลอร์ SATA เหล่านั้น.
- รีบูต Proxmox: รีบูตโฮสต์หนึ่งครั้งเพื่อตรวจสอบว่า VFIO จับคอนโทรลเลอร์ SATA ถูกต้องและไม่ถูกระบบหลักใช้.
- เพิ่มคอนโทรลเลอร์ SATA ให้ TrueNAS VM: ไปที่แท็บ Hardware ของ VM TrueNAS แล้วเพิ่ม PCI Device เลือกคอนโทรลเลอร์ SATA ที่ส่งผ่านไว้ เพื่อให้ TrueNAS เห็นดิสก์เหมือนต่อกับเครื่องจริง.
เมื่อทำครบทุกขั้น TrueNAS จะได้สิทธิ์เข้าถึงดิสก์ผ่านคอนโทรลเลอร์ SATA โดยตรง ลดปัญหาชั้นเสมือนที่ทำให้ write cache เพี้ยน และช่วยให้ TrueNAS เห็น S.M.A.R.T. กับข้อมูลดิสก์ได้เต็มที่. การตั้งค่าแบบนี้ถูกใช้งานจริงต่อเนื่องมากกว่าหนึ่งเดือนโดยไม่ล้มเลยแม้ครั้งเดียวในโครงการต้นแบบ.
ผลลัพธ์ที่ควรได้ และสิ่งที่ต้องระวังในระยะยาว
เมื่อทำขั้นตอนทั้งหมดครบ คุณควรได้ NAS เสมือนบน Proxmox ที่ใช้ TrueNAS และ ZFS คุมดิสก์โดยตรงเหมือนเบียร์เมทัล แต่ยังได้ประโยชน์จากการเป็น Virtualization storage คือแบ่งฮาร์ดแวร์เดียวกันให้ทั้งบริการอื่นและ NAS ใช้ร่วมกันได้อย่างเป็นสัดส่วน. แนวทางนี้ถูกใช้ในโครงการจริงและรันมามากกว่าหนึ่งเดือนโดยไม่พบปัญหาความเสถียร.
ข้อควรระวังคือ ถ้าโฮสต์ Proxmox พังหรือคุณทดลองอะไรแรงเกินไป TrueNAS VM จะล้มตามทันที เพราะรันอยู่บนเครื่องเดียวกัน. ดังนั้นเหมาะกับโฮมแลบและออฟฟิศขนาดเล็กที่ต้องการความคุ้มค่ามากกว่าการแยกเครื่องทุกบทบาท และพร้อมจะวางกฎให้ตัวเองไม่เล่นกับโฮสต์จนเกินเหตุ.
ภาพรวมแล้ว การทำ Self-hosted storage ด้วยคู่ Proxmox + TrueNAS แบบนี้คุ้มค่า ทั้งด้านต้นทุนและความยืดหยุ่น คุณได้ทั้งโครงสร้างเสมือนระดับองค์กรสำหรับรันบริการหลายตัว และสตอเรจ ZFS ที่เชื่อถือได้ หากทำตามแนวทาง PCI passthrough ของ iXsystems อย่างเคร่งครัด ระบบของคุณจะพร้อมเป็นหัวใจของโฮมแลบและออฟฟิศเล็กไปอีกนาน.




