NFS (Network File System) 🗃️
Network File System หรือ NFS คือ บริการที่ทำให้เครื่องคอมพิวเตอร์สามารถเข้าถึง File และ Directory บนเครื่องคอมพิวเตอร์เครื่องอื่นได้เหมือนกับใช้งานเครื่องของตัวเอง โดยสามารถใช้บริการได้อย่างสะดวก ง่ายและมีประสิทธิภาพผ่านระบบเครือข่าย Network โดยระบบปฏิบัติการของเครื่องลูกข่ายไม่จำเป็นต้องเป็นระบบปฏิบัติการเดียวกันกับเครื่องแม่ข่ายที่ให้บริการ NFS
คำสั่งบนฝั่ง SERVER 💾
- ใช้คำสั่งอัพเดทระบบ และติดตั้ง 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 🧑🏻💻
- ใช้คำสั่งอัพเดทระบบ และติดตั้ง 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