ค้นหาเว็บไซต์

วิธีการติดตั้งเซิร์ฟเวอร์ NFS และไคลเอนต์บนการกระจาย RHEL


ใน Linux มีโปรโตคอลการแชร์ไฟล์สองสามแบบที่ใช้ในการแชร์พื้นที่เก็บข้อมูลและไฟล์ผ่านเครือข่าย ที่ใช้กันอย่างแพร่หลายคือ Samba และ NFS

Samba เป็นชุดแอปพลิเคชันโอเพนซอร์สยอดนิยมที่ทำงานในสถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์ มีความเข้ากันได้ข้ามแพลตฟอร์มทำให้สามารถแชร์ไฟล์ได้อย่างราบรื่นบนระบบปฏิบัติการ Linux, Windows และ macOS การแชร์ไฟล์ที่โฮสต์บนระบบ Linux สามารถเข้าถึงได้จากแพลตฟอร์มที่หลากหลาย จึงส่งเสริมการทำงานร่วมกัน

โปรโตคอลการแชร์ไฟล์ที่ใช้กันอย่างแพร่หลายอีกวิธีหนึ่งคือ NFS ย่อมาจาก Network File Share เช่นเดียวกับ Samba มันทำงานบนโมเดลไคลเอ็นต์-เซิร์ฟเวอร์ และอนุญาตให้ผู้ใช้แชร์ไดเร็กทอรีและไฟล์ผ่านเครือข่ายกับผู้ใช้ไคลเอ็นต์ระยะไกลหลายราย

ในคู่มือนี้ เราจะดูวิธีติดตั้งเซิร์ฟเวอร์และไคลเอ็นต์ NFS บนการกระจายแบบ RHEL เช่น Fedora, CentOS Stream, Rocky Linux และ AlmaLinux

บริการ NFS

ปัจจุบัน NFS มี 3 เวอร์ชัน โดยเวอร์ชันล่าสุดคือ NFSv4 ซึ่งมีคุณลักษณะต่างๆ เช่น ความสามารถในการทำงานผ่านอินเทอร์เน็ตและไฟร์วอลล์ นอกจากนี้ยังมี NFSv3 และ NFSv2 ซึ่งเป็นโปรโตคอลที่เก่าแก่ที่สุด

บริการ NFS ประกอบด้วย เซิร์ฟเวอร์ NFS และ ไคลเอนต์ เซิร์ฟเวอร์ NFS ประกอบด้วยไฟล์คีย์ต่อไปนี้:

  • เซิร์ฟเวอร์ nfs – ช่วยให้ระบบไคลเอ็นต์สามารถเข้าถึงไฟล์ที่แชร์กับ NFS
  • rpcbind – แปลงโปรแกรม RPC ให้เป็นที่อยู่สากล
  • nfs-idmap – ดำเนินการแปลรหัสผู้ใช้และกลุ่มเป็นชื่อและชื่อผู้ใช้และกลุ่มเป็นรหัส
  • portmap – นี่คือเซิร์ฟเวอร์ที่แปลงหมายเลขโปรแกรม RPC เป็นหมายเลขพอร์ต IP
  • nfslock – ในกรณีที่เซิร์ฟเวอร์ NFS ขัดข้อง nfslock จะเริ่มกระบวนการ RPC ที่จำเป็น

บริการการกำหนดค่า NFS

ต่อไปนี้เป็นไฟล์การกำหนดค่าหลักบางส่วนสำหรับ NFS:

  • /etc/exports – ไฟล์การกำหนดค่าหลัก ซึ่งกำหนดระบบไฟล์หรือไดเร็กทอรีที่จะส่งออกและเข้าถึงโดยผู้ใช้ระยะไกล
  • /etc/fstab – นี่คือไฟล์ที่มีรายการพาร์ติชั่นที่เมาท์ ใน NFS ไฟล์ประกอบด้วยรายการของไดเร็กทอรีหรือระบบไฟล์ที่ใช้ร่วมกันของ NFS ซึ่งได้รับการเมาท์อย่างถาวรและสามารถรีบูตได้
  • /etc/sysconfig/nfs – กำหนดพอร์ตที่จำเป็นระหว่างการเรียกใช้บริการ RPC

การตั้งค่าเซิร์ฟเวอร์ NFS และไคลเอนต์

หากต้องการตั้งค่าการแชร์ NFS เราจำเป็นต้องมีเครื่อง Linux/Unix อย่างน้อยสองเครื่อง ในบทช่วยสอนนี้ ฉันจะใช้เซิร์ฟเวอร์สองตัว

  • เซิร์ฟเวอร์ NFSRHEL 9 ที่มี IP 10.128.15.213
  • ไคลเอนต์ NFSRHEL 9 ที่มี IP 10.128.15.214

ติดตั้ง NFS บนเซิร์ฟเวอร์และไคลเอนต์

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

sudo dnf update 

เมื่อการอัปเดตเสร็จสมบูรณ์ ให้ดำเนินการต่อและติดตั้งบริการ NFS ที่จำเป็น

sudo dnf install rpcbind nfs-utils -y

ขั้นตอนต่อไปคือการเปิดใช้งานบริการ NFS ตามที่แสดง

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

อย่าลืมเริ่มบริการ NFS ด้วย

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

สิ่งสำคัญคือต้องตรวจสอบว่าบริการ NFS ทั้งหมดกำลังทำงานอยู่

sudo systemctl status nfs-server
sudo systemctl status rpcbind

อย่าลืมกำหนดค่าไฟร์วอลล์เพื่ออนุญาตบริการ NFS ขาเข้าดังต่อไปนี้

sudo firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}
sudo firewall-cmd --reload

สร้างไดเร็กทอรีการแชร์ NFS

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

ในกรณีนี้ เราจะสร้างไดเร็กทอรีที่ใช้ร่วมกันของ NFS ชื่อ my_nfsshare ในโฮมไดเร็กทอรีของเรา

mkdir -p /home/tecmint/my_nfsshare

ถัดไป กำหนดสิทธิ์ไดเรกทอรี เพื่อวัตถุประสงค์ในการสาธิต เราจะกำหนดสิทธิ์ทั่วโลกที่จะให้สิทธิ์ในการอ่าน เขียน และดำเนินการกับไคลเอ็นต์ NFS

sudo chmod 777 -R /home/tecmint/my_nfsshare

ส่งออกไดเร็กทอรีการแชร์ NFS

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

sudo vim /etc/exports

เพิ่มรายการต่อไปนี้ อย่าลืมแทนที่เซิร์ฟเวอร์-ip ด้วยที่อยู่ IP ของเซิร์ฟเวอร์ NFS ของคุณ

/home/tecmint/my_nfsshare server-ip/24(rw,no_root_squash)

ในที่สุดก็ส่งออกไดเร็กทอรีแชร์ NFS หรือระบบไฟล์

sudo exportfs -rv

รันคำสั่งต่อไปนี้เพื่อดูการแชร์ NFS

showmount -e localhost

กำหนดค่าไคลเอ็นต์ NFS

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

showmount -e 10.128.15.213

ขั้นตอนต่อไปคือการเมานต์การแบ่งใช้ NFS จากเซิร์ฟเวอร์ไปยังไคลเอนต์ เพื่อที่จะทำสิ่งนี้ เราต้องสร้างไดเร็กทอรี mount ก่อน ในกรณีนี้ เราจะสร้างไดเรกทอรีชื่อ nfs_backup

mkdir nfs_backup

หลังจากนั้น เราจะเมานต์การแบ่งใช้ NFS ไปยังไดเร็กทอรีเมานต์ที่เราเพิ่งสร้างขึ้นในโฮมไดเร็กทอรีราก

mount -t nfs 10.128.15.213:/home/tecmint/my_nfsshare  ~/nfs_backup 

หากต้องการคงการแชร์ NFS ไว้ ให้แก้ไขไฟล์ /etc/fstab

vim /etc/fstab

จากนั้นเพิ่มรายการต่อไปนี้

10.128.15.213:/home/tecmint/my_nfsshare    /root/nfs_backup  nfs     defaults 0 0

บันทึกและออกจากไฟล์การกำหนดค่า

การทดสอบการตั้งค่า NFS

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

ทางฝั่งเซิร์ฟเวอร์ เราจะสร้างไฟล์ในไดเร็กทอรีแชร์ NFS

sudo touch my_nfsshare/file{1..4}.txt

เพื่อตรวจสอบว่าไฟล์ถูกสร้างขึ้น เราจะดำเนินการคำสั่ง ls:

ls -l my_nfsshare/

กลับไปที่ฝั่งไคลเอ็นต์ ตรวจสอบว่าไฟล์มีอยู่ในไดเร็กทอรีเมาต์โดยไม่มีการรีเฟรชบริการหรือรีสตาร์ทบริการใด ๆ ดังที่เห็นในผลลัพธ์ต่อไปนี้

ls -l nfs_backup/

การถอดการติดตั้ง NFS

หากคุณไม่ต้องการไดเร็กทอรีที่เมาท์บนระบบของคุณอีกต่อไป คุณสามารถ ถอนเมานท์ ไดเร็กทอรีเหล่านั้นจากฝั่งไคลเอ็นต์ได้โดยใช้คำสั่ง umount ต่อไปนี้:

umount ~/nfs_backup

คำสั่งแชร์ NFS

คำสั่งที่สำคัญบางประการสำหรับ NFS

  • showmount -e – แสดงการแชร์ที่มีอยู่ในเครื่องของคุณ
  • showmount -e ip-address – แสดงรายการ การแชร์ ที่เซิร์ฟเวอร์ ระยะไกล
  • showmount -d – แสดงรายการไดเรกทอรีย่อยทั้งหมด
  • exportfs -v – แสดงรายการ ไฟล์ และ ตัวเลือก ที่แชร์บนเซิร์ฟเวอร์
  • exportfs -a – ส่งออกหุ้นทั้งหมดที่อยู่ใน /etc/exports หรือชื่อที่กำหนด
  • exportfs -u – ยกเลิกการส่งออกหุ้นทั้งหมดที่อยู่ใน /etc/exports หรือชื่อที่กำหนด
  • exportfs -r – รีเฟรชรายการเซิร์ฟเวอร์หลังจากแก้ไข /etc/exports
บทสรุป

นี่เป็นการสรุปคำแนะนำของเราเกี่ยวกับวิธีติดตั้งเซิร์ฟเวอร์และไคลเอนต์ NFS บนการกระจายแบบ RedHat เราได้ติดตั้งบริการ NFS บนเซิร์ฟเวอร์ สร้างไดเร็กทอรีการแชร์ NFS และสุดท้ายเมาต์ไดเร็กทอรีการแชร์บนไคลเอ็นต์ สุดท้ายนี้ เราได้ตรวจสอบการตั้งค่า NFS โดยการเข้าถึงไฟล์ที่สร้างบนเซิร์ฟเวอร์จากฝั่งไคลเอ็นต์