สอนติดตั้ง NFS (Network File System) บน Linux/Ubuntu

suphakit
3 min readNov 9, 2023

--

NFS (Network File System) 🗃️

Network File System หรือ NFS คือ บริการที่ทำให้เครื่องคอมพิวเตอร์สามารถเข้าถึง File และ Directory บนเครื่องคอมพิวเตอร์เครื่องอื่นได้เหมือนกับใช้งานเครื่องของตัวเอง โดยสามารถใช้บริการได้อย่างสะดวก ง่ายและมีประสิทธิภาพผ่านระบบเครือข่าย Network โดยระบบปฏิบัติการของเครื่องลูกข่ายไม่จำเป็นต้องเป็นระบบปฏิบัติการเดียวกันกับเครื่องแม่ข่ายที่ให้บริการ NFS

คำสั่งบนฝั่ง SERVER 💾

  1. ใช้คำสั่งอัพเดทระบบ และติดตั้ง NFS ของทางฝั่งเครื่อง SERVER (nfs-kernel-server)
$ sudo apt-get update
$ sudo apt install nfs-kernel-server

2. สร้าง Directory ที่ต้องการแชร์ให้ Client โดยในที่นี้สร้างเป็น 2 Directory คือ RW และ RO

$ sudo mkdir -p /mnt/RW
$ sudo mkdir -p /mnt/RO

3. ทำการอนุญาติให้ Client สามารถเข้าถึง File หรือ Directory ได้ ผ่านคำสั่งด้านล่าง

$ sudo chown nobody:nogroup /mnt/RW
$ sudo chown nobody:nogroup /mnt/RO

4. ทำการหา IP Address กับ Subnet Mask ของ Server เพื่อนำไปใช้ในไฟล์ exports ผ่านคำสั่งนี้

$ ip -o -f inet addr show | awk '/scope global/ {print $4}'

5. ทำการตั้งค่าให้ NFS แชร์ Directory บน Network โดยแก้ไขไฟล์ /etc/exports ดังนี้

$ sudo nano /etc/exports

นำคำสั่ง /mnt/RW {IP} (rw, sync, no_subtree_check) และ /mnt/RO {IP} (rw, sync, no_subtree_check) เพื่อ set การแชร์ โดยใช้ IP จากขั้นตอนที่แล้วและมี NFS Option คือ

  • ro : Client สามารถอ่านได้อย่างเดียว
  • rw: Client สามารถอ่านและเขียนได้
  • sync: ยืนยันการขอ Sync ข้อมูลที่แชร์
  • no_subtree_check: ปิดการตรวจสอบ subtree

สามารถอ่าน Option ของ NFS เพิ่มได้ที่ https://shorturl.asia/wcGHU

6. ทำการส่งออก Directory ทั้งหมด และเริ่มการทำงานใหม่ของ Server

$ sudo exportfs -a
$ sudo systemctl restart nfs-kernel-server

7. เมื่อสำเร็จเรียบร้อยแล้ว ทำการแสดง Directory ที่แชร์อยู่ผ่านคำสั่ง

$ showmount -e

คำสั่งบนฝั่ง CLIENT 🧑🏻‍💻

  1. ใช้คำสั่งอัพเดทระบบ และติดตั้ง NFS สำหรับ Client ( nfs-common )
$ sudo apt-get update
$ sudo apt-get install nfs-common

2. สร้าง Directory ขึ้นมาใหม่เพื่อที่จะไว้เก็บไฟล์ที่ server แชร์

$ sudo mkdir -p /mnt/RW_s1
$ sudo mkdir -p /mnt/RO_s1

3. ทำการ mount เพื่อเชื่อมต่อ Directory ของเราเข้ากับ Directory ที่ Server แชร์ ผ่านคำสั่ง (โดยใช้ IP ของ Server)

$ sudo mount 192.168.64.10:/mnt/RW /mnt/RW_s1
$ sudo mount 192.168.64.10:/mnt/RO /mnt/RO_s1

4. เมื่อ mount สำเร็จ จะสามารถเห็น Directory ที่แชร์จาก Server อยู่บนเครื่องของ client โดยตรวจสอบผ่านคำสั่งด้านล่าง เป็นอันเสร็จสิ้นการทำ NFS

$ df -h

--

--