NFS vs SMB คืออะไร มีความแตกต่างกันอย่างไรบ้าง?

6,142
6,142

สวัสดีครับชาว IT กลับมาพบกันอีกครั้งสำหรับ Blog ของ Cloud HM นะครับผม สำหรับหัวข้อในวันนี้เราจะมาเล่ากันถึงสิ่งที่เรียกว่า File Sharing ซึ่งเป็นสิ่งที่ขาดไม่ได้สำหรับหลาย ๆ องค์กรเลยแหละครับ เพราะว่ามีการใช้งานกันเป็นเรื่องธรรมดามาก ๆ แต่ผมจะไม่ได้มาแนะนำวิธีการใช้งานนะครับ แต่จะมาเล่าถึงสิ่งที่ทำให้ File Sharing สามารถใช้งานได้ นั่นก็คือ Protocol นั่นเอง โดยใน Blog จะยก 2 Protocol มาเปรียบเทียบกัน ได้แก่ NFS และ SMB ครับ คุ้น ๆ กันใช่ไหมล่ะครับ มาลงรายละเอียดกันได้เลยครับผม

NFS คืออะไร?

Network File System หรือเรียกย่อ ๆ ว่า NFS เป็น Protocol ที่ช่วยให้ Computer สามารถแชร์ข้อมูลผ่าน Network ได้ มีการพัฒนาและนำมาใช้งานใน ปี ค.ศ.1984 และยังเป็น Solution ที่ยังคงใช้งานกันแพร่หลายจวบจนปัจจุบันครับ
NFS ใช้รูปแบบโครงสร้างที่เป็น Server และ Client ในการทำให้คอมพิวเตอร์หลาย ๆ เครื่องใน Local Network เดียวกันสามารถเข้าถึงไฟล์ได้

โดยในฝั่งของ Server ผู้ที่มีหน้าที่ดูแลระบบจะทำการตั้งค่า Folder ว่า Folder ไหนจะทำการแชร์ผ่าน Network ฝั่งของ Client ก็จะต้อง Mount ไฟล์ผ่าน Network โดยใช้คำสั่ง Mount
ด้วยการทำแบบนี้ ทำให้มุมมองในการใช้งานของฝั่ง Client ที่ Mount ผ่านทาง Network ด้วย NFS จะให้ความรู้สึกเหมือนกับว่าเราใช้งานไฟล์จากในเครื่องคอมพิวเตอร์ของเราเอง เราเคยใช้งาน Local File แบบไหน เราก็สามารถใช้งานแบบเดียวกันได้กับการ Mount จาก NFS
ทีนี้หลังจากที่มีการแชร์ผ่านทาง Network ไปแล้ว NFS daemons ที่อยู่ทั้งฝั่ง Server และ Client จะทำการ Sync ข้อมูลระหว่าง Device อยู่ตลอดเวลา หรือพูดอีกอย่างก็คือ ถ้ามีคนแก้ไขไฟล์ที่ Mount จาก NFS ในเครื่องนึง ทุก ๆ เครื่องที่ Mount อยู่ก็จะเห็นว่าไฟล์นั้นมีการเปลี่ยนแปลงไปครับ
ในทางเทคนิค เราจะใช้ NFS ในการแชร์ข้อมูลกันเฉพาะใน Local Network การที่จะแชร์ไฟล์ผ่าน Internet เป็นเรื่องที่ยากมากเพราะว่า NFS ไม่ได้ถูกออกแบบมาเพื่อรองรับ Routing ที่มีความซับซ้อน หรือการทำ NATความจริงก็คือ NFS ไม่ได้มีการทำ Encryption โดย Default ทำให้ไม่ใช่ Solution ที่จะนำไปใช้งานแบบแชร์ไฟล์ผ่านทาง Internet นั่นเอง
ในอดีต NFS เป็นที่นิยมใช้งานกันบน Unix และ Linux สาเหตุส่วนนึงก็น่าจะมากการที่ NFS พัฒนาโดย Sun Microsystems บริษัทที่เป็น Vendor ของ Unix รายใหญ่ จวบจนปัจจุบัน NFS Protocol ก็ได้กลายมาเป็น Standard Protocol ที่ง่ายต่อการใช้งานกับ Open Source และในปัจจุบันเอง NFS ก็สามารถที่จะใช้งานกับ Windows ได้ด้วยเช่นกัน


SMB คืออะไร?

SMB ย่อมาจาก Server Message Block เป็น Protocol ที่ใช้งานสำหรับแชร์ไฟล์ และอุปกรณ์อื่น ๆ เช่น Printer ผ่านทาง Local Networkบางทีเราเรียก SMB ว่า CIFS ซึ่งย่อมาจาก Common Internet File System ในทางเทคนิคแล้ว SMB เป็นสิ่งที่สร้าง CIFS ขึ้นมา จริง ๆ แล้วทั้ง 2 อย่างนี้ไม่ใช่สิ่งเดียวกัน แต่หลาย ๆ คนที่ใช้งานได้เหมารวมว่าเป็นสิ่งเดียวกัน ทำให้มีการพูดถึงอยู่เสมอ คล้าย ๆ กับ SSL และ TLS นั่นแหละครับ
SMB ใช้หลักการเดียวกับ NFS เลยก็คือ มี Server และ Client โดย Server จะมี File ที่จะใช้แชร์ผ่านทาง Network และ Client จะต้องเชื่อมต่อไปหา Server โดยการเรียกใช้งานผ่านทาง Hostname ของ Server (หรือจะเป็น IP Address ก็ได้) และส่วนถัดมาก็จะเป็น Path ของไฟล์
สิ่งที่ SMB แตกต่างจาก NFS คือ SMB สิ่งที่แชร์มาจากเครื่อง Server จะไม่ได้มา Mount ให้เห็นเป็น Local Folder เหมือนกับ NFS
ถึงแม้ว่า IBM จะเป็นผู้พัฒนา SMB ใน Version แรก หลายสิบปีก่อน แต่ Microsoft ก็ได้นำ SMB ไปใช้งานกับ Windows และได้พัฒนาใช้มาจนถึงปัจจุบันอย่างไรก็ตาม SMB support การใช้งานกับ OS และ Software หลากหลายรูปแบบ ไม่ว่าจะเป็น Linux, Unix เช่น Samba และ Open Source ต่าง ๆ ที่ใช้ SMB Protocol ในการพัฒนา คอมพิวเตอร์ที่ติดตั้ง Linux สามารถเป็นได้ทั้ง Host และ Client ก็ได้โดยการใช้งานผ่านทาง Local Network ด้วย SMB Protocol

การเลือกใช้งาน File Sharing ให้เหมาะสมกับระบบของคุณ

เนื่องจาก NFS เป็น Default Protocol สำหรับใช้งาน File Sharing ในโลกของ Open Source แล้ว และ SMB ก็เป็น Default ของระบบ Windows ฉะนั้นทางเลือกในการใช้งานก็ขึ้นอยู่กับว่า คุณใช้ Operating Systems อะไรเป็นหลักในระบบของบริษัทคุณ

  • ถ้าคุณใช้งาน Linux NFS น่าจะตอบโจทย์คุณมากกว่า
  • ถ้าคุณใช้งาน Windows เป็นหลัก SMB ก็เป็นตัวเลือกที่ดีในการที่จะนำมาใช้งานครับ

อย่างไรก็ตาม แล้วถ้าระบบของบริษัทคุณเป็นแบบ Hybrid ที่ใช้ทั้ง Linux และ Windows ล่ะจะเลือกอย่างไรดี? จริง ๆ ก็มีเงื่อนไขอยู่ไม่กี่แบบที่จะเลือกได้ แน่นอนว่าก็ต้องมีข้อดีและข้อเสียตามมาอยู่แล้ว

การใช้งาน NFS ในรูปแบบ Hybrid

ถ้าเลือก NFS ในการแชร์ไฟล์ระหว่าง Computer จากที่ได้กล่าวไปว่า NFS สามารถใช้งานได้ทั้ง Windows และ  Linux แต่การที่จะติดตั้ง NFS กับ Windows จะค่อนข้างซับซ้อน เนื่องจากถ้าจะทำ Windows ให้เป็น NFS Server คุณต้องจัดการในเรื่องของการ Allow AD group และ user ก่อน ถ้าต้องการที่จะให้มีการ Encrypt NFS connection ก็จะต้องตั้งค่าแยกต่างหากที่ Windows ด้วยถ้าจะใช้ NFS กับ Linux ก็ต้องจัดการเรื่อง Configuration เหมือนกัน แต่จะง่ายกว่า NFS จะมอง User และ Group ให้บริหารจัดการได้ง่ายในรูปแบบของ Unix เช่น /etc/user และ /etc/group และแพคเกจ Linux บางอย่างสามารถติดตั้ง Encryption tools ที่ใช้สำหรับ NFS ได้พร้อมกันตั้งแต่ติดตั้ง Package นั่นในครั้งแรกได้เลยแต่ถ้าในระบบของคุณไม่ได้มี Windows Computer ให้บริหารเป็นจำนวนมาก ๆ และใช้งานเป็นลักษณะ Client เฉย ๆ ไม่ได้เอามาทำเป็น File Server การใช้งาน NFS Protocol ก็อาจจะไม่ใช่ Solution ที่ดีที่สุดสำหรับระบบที่เป็นแบบ Hybrid ครับ

การใช้งาน SMB ในรูปแบบ Hybrid

เทียบกับ NFS แล้ว SMB จะติดตั้งได้ง่ายกว่าทั้งบน Windows และ Linux ตัว SMB Protocol รองรับการใช้งานโดย Default กับ Windows เกือบทุก ๆ Version อยู่แล้ว ถ้าเป็น Linux คุณจะต้องติดตั้ง Samba เพิ่มเข้าไป แต่ก็ไม่ได้ติดตั้งยากจนเกินไป ซึ่งส่วนใหญ่ก็รองรับ Linux ยอดนิยมชนิดต่าง ๆ ครับ ข้อเสียหลัก ๆ ของการใช้งาน SMB ในระบบที่เป็นแบบ Hybrid เลยก็คือ Samba เพราะว่าเป็น Open Source จากการที่ไม่ได้มีการพัฒนามาเหมือนกับฝั่ง Windows ของ Microsoft ทำให้ส่วนใหญ่เราจะเจอปัญหาเรื่อง Bug ในการที่จะแชร์ไฟล์ข้ามกันระหว่าง Linux และ Windows และพวก Feature ใหม่ ๆ ของ SMB ที่ออกมา Samba อาจจะไม่ได้ Supportทำให้ในเรื่อง Compatibility ของ SMB อาจจะเป็นปัญหาหลักได้ในกรณีที่ต้องการใช้งานแบบไม่สะดุดเลยในการแชร์ไฟล์ระหว่าง Windows กับ Linux

การใช้งานด้วย Solution จาก 3rd Party

อีกทางเลือกนึงก็คือการใช้งานจาก 3rd Party ที่มีการพัฒนา Solution มาเพื่อตอบโจทย์กับการใช้งานแชร์ไฟล์ ในตลาดก็อย่างเช่น NetApp ONTAP ซึ่งออกแบบมาให้เหมาะกับการใช้งานแชร์ไฟล์ในรูปแบบของระบบที่เป็น Hybrid ที่รองรับการทำงานของทั้ง Windows และ Linux ได้เป็นอย่างดี โดยสามารถติดตั้งได้ทั้งบน Local หรือจะใช้งานบน Cloud เช่น Cloud Volumes ONTAP ซึ่งจะทำหน้าที่เป็น Host ในการที่จะแชร์ไฟล์ไปให้ Client นั่นเองอ่านแล้วดูค่อนข้างดีเลยใช่มั้ยครับ และในตลาดเองก็มีให้เลือกอยู่หลาย ๆ เจ้า แต่ถ้าเทียบกับแบบ NFS และ SMB สิ่งที่ต้องแลกมาคือ “ต้องจ่ายเงินครับ ไม่ฟรีนั่นเอง” ต่างจาก 2 ตัวที่กล่าวไปที่เราสามารถใช้งานได้ฟรี ๆ

สรุปให้สั้น ๆ

NFS และ SMB เป็นที่ถกเถียงกันมาอย่างยาวนานว่าใช้อะไรเพื่อที่จะตอบโจทย์ในการแชร์ไฟล์ผ่าน Network มากกว่ากัน ถึงแม้ว่า NFS จะง่ายต่อผู้ที่ใช้งาน Linux และ SMB ก็เหมาะกับ Windows มาก ๆ แต่อย่าลืมว่าทั้ง 2 Protocol ก็สามารถใช้งานกับ Operating System อะไรก็ได้ สิ่งที่เราต้องเก็บเอาไปคิดก็คือเรื่องของ Configuration และ Compatibility ที่เราต้องยอมรับให้ได้จากทั้ง 2 Protocol แล้วชั่งน้ำหนักดูว่าองค์กรของเราโอนเอียงเหมาะกับการใช้งานแบบไหนมากกว่า ถ้าไม่อยากคิดมากก็ซื้อแบบที่เค้าทำสำเร็จก็เป็นทางเลือกที่ไม่เลวเช่นกันครับ


เป็นอย่างไรกันบ้างครับ สำหรับความรู้เพิ่มเติมกันใน Blog นี้ หวังว่าจะเป็นประโยชน์ต่อทุก ๆ ท่านนะครับผม Blog หน้าจะเป็นหัวข้ออะไร น่าสนใจขนาดไหน สามารถติดตามอ่านได้เลยนะครับ สำหรับท่านใดที่สนใจใช้บริการกับ Cloud HM สามารถติดต่อได้ที่นี่นะครับ
ขอบคุณครับ

— Cloud HM