PlusMagi's Blog By Pitt Phunsanit Technology NFS (Network File System): กระดูกสันหลังการแชร์ไฟล์ในโลก Unix และ Linux

NFS (Network File System): กระดูกสันหลังการแชร์ไฟล์ในโลก Unix และ Linux

ในโลกของการแชร์ไฟล์ผ่านระบบเครือข่าย หากฝั่ง Windows มี SMB (Server Message Block) เป็นหัวใจหลัก ทางฝั่งของ Unix, Linux และสภาพแวดล้อมระดับ Enterprise ก็มี NFS (Network File System) ทำหน้าที่เป็นมาตรฐานหลักในการเชื่อมต่อและเข้าถึงข้อมูลระยะไกลมายาวนานกว่า 4 ทศวรรษ


NFS คืออะไร?

NFS คือโปรโตคอลระบบไฟล์แบบกระจาย (Distributed File System Protocol) ที่พัฒนาขึ้นโดยบริษัท Sun Microsystems ในปี 1984

แนวคิดพื้นฐานของ NFS คือการอนุญาตให้คอมพิวเตอร์ลูกข่าย (Client) สามารถ เมานต์ (Mount) ไดเรกทอรีที่อยู่บนเครื่องแม่ข่าย (Server) ผ่านเครือข่ายเข้ามาเป็นส่วนหนึ่งของโครงสร้างโฟลเดอร์ในเครื่องตัวเองได้โดยตรง ทำให้ผู้ใช้งานหรือแอปพลิเคชันสามารถเปิด อ่าน และเขียนไฟล์เหล่านั้นได้เหมือนกำลังทำงานอยู่บนฮาร์ดดิสก์ภายในเครื่องตัวเอง (Local Storage) อย่างแนบเนียน


วิวัฒนาการของ NFS แต่ละเวอร์ชัน

ตลอดระยะเวลาที่ผ่านมา NFS ถูกปรับปรุงโครงสร้างผ่าน IETF (Internet Engineering Task Force) เพื่อตอบสนองความเร็วและความปลอดภัยของระบบเครือข่าย

  • NFSv3 (1995)
    เวอร์ชันยอดนิยมที่ใช้งานยาวนานที่สุด
    • รองรับไฟล์ขนาดใหญ่กว่า 2 GB (64-bit file sizes)
    • รองรับการส่งข้อมูลแบบอะซิงโครนัส (Asynchronous writes) เพื่อเพิ่มความเร็ว
    • ใช้กลไก Stateless (เซิร์ฟเวอร์ไม่เก็บสถานะของไคลเอนต์) และพึ่งพาพอร์ตเสริมหลายพอร์ตผ่าน rpcbind / portmapper
  • NFSv4 (2000)
    ก้าวกระโดดครั้งใหญ่ของสถาปัตยกรรม
    • เปลี่ยนเป็นโมเดล Stateful (เซิร์ฟเวอร์จดจำสถานะการล็อกไฟล์และเซสชัน)
    • รวมทุกบริการมาทำงานผ่านพอร์ตเดียวคือ TCP Port 2049 ทำให้ตั้งค่าง่ายต่อ Firewall
    • รวมระบบความปลอดภัยระดับสูง รองรับการยืนยันตัวตนผ่าน Kerberos (RPCSEC_GSS) และ ACLs
  • NFSv4.1 / NFSv4.2
    ยุคขยายขีดความสามารถสำหรับ Data Center
    • เพิ่มฟีเจอร์ pNFS (Parallel NFS) ช่วยกระจายเส้นทาง I/O แบบคู่ขนานไปยังเซิร์ฟเวอร์จัดเก็บข้อมูลหลายชุดพร้อมกัน
    • รองรับ Sparse files, Server-Side Copy (SSC) และการจัดสรรพื้นที่แบบ Thin Provisioning

จุดเด่นที่ทำให้ NFS ยังคงเป็นผู้นำในงานเซิร์ฟเวอร์

  1. Native POSIX Compatibility
    ออกแบบมาเพื่อจำลองพฤติกรรมไฟล์ของ Unix/Linux 100% สิทธิ์การเข้าถึงไฟล์ (File Permissions), สิทธิ์ความเป็นเจ้าของ (UID / GID), และ Symbolic Links/Hard Links สามารถทำงานได้อย่างสมบูรณ์แบบโดยไม่ต้องแปลงบริบท
  2. ประสิทธิภาพและความหน่วงต่ำ (Low Latency)
    โปรโตคอลมีความซับซ้อนของส่วนหัว (Overhead) น้อยกว่า SMB ทำให้การอ่านและเขียนข้อมูลแบบต่อเนื่อง (Sequential Read/Write) ทำความเร็วได้สูงมาก
  3. การประยุกต์ใช้ในระบบ Infrastructure ขนาดใหญ่
    • Virtualization: VMware ESXi และ Proxmox VE นิยมใช้ NFS ในการต่อเชื่อม Datastore เพื่อเก็บ Virtual Machine Disks
    • Containerization: ใช้เป็น Persistent Volume (PV) ในระบบ Kubernetes เพื่อให้หลาย Pod สามารถเข้าถึงข้อมูลก้อนเดียวกันแบบ ReadWriteMany (RWX)
    • High-Performance Computing (HPC): คลัสเตอร์ประมวลผลขนาดใหญ่ใช้ NFS เพื่อแชร์ชุดข้อมูลและซอร์สโค้ดกลางระหว่างโหนดประมวลผล

เปรียบเทียบ: NFS vs SMB

คุณสมบัติ NFS (Network File System) SMB (Server Message Block)
สภาพแวดล้อมหลัก Linux, Unix, BSD, Cloud Containers Windows, macOS, Cross-platform LAN
พอร์ตเครือข่าย TCP 2049 (NFSv4) TCP 445
โมเดลสิทธิ์การใช้งาน POSIX Standard (UID/GID) Windows NT ACLs / Active Directory
การตั้งค่า Firewall ง่ายใน NFSv4 / ซับซ้อนใน NFSv3 ง่าย (พอร์ตคงที่)
จุดเด่นด้านประสิทธิภาพ ดึงข้อมูลปริมาณมากต่อเนื่อง, ไฟล์ขนาดใหญ่, VM Datastores การแคชไฟล์ฝั่ง Client (OpLocks), เหมาะกับออฟฟิศทั่วไป

ข้อควรระวังและการนำไปใช้งาน

  • การแมปผู้ใช้ (UID/GID Mapping)
    ใน NFSv3 การควบคุมสิทธิ์จะดูจากเลข User ID (UID) เป็นหลัก หากเครื่องลูกข่ายมีผู้ใช้ UID 1000 และเครื่องแม่ข่ายมีผู้ใช้ UID 1000 ซึ่งเป็นคนละคนกัน ระบบจะมองเห็นสิทธิ์เสมือนเป็นคนเดียวกันทันที จึงจำเป็นต้องจัดโครงสร้าง Directory Service กลาง (เช่น LDAP) หรือใช้งาน NFSv4 ที่มีการแมป Domain Name
  • ความปลอดภัยบนเครือข่ายเปิด
    หากไม่ได้ตั้งค่าระบบยืนยันตัวตน Kerberos เพิ่มเติม NFS มักใช้การจำกัดสิทธิ์ผ่าน IP Address ของไคลเอนต์ (/etc/exports) ดังนั้นจึงควรจำกัดการใช้งานเฉพาะในเครือข่ายวงแลนภายใน (Internal LAN), Isolated VLAN หรือเชื่อมต่อผ่าน VPN ที่ปลอดภัยเท่านั้น

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