วิธีการติดตั้งเซิร์ฟเวอร์ 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 อย่างน้อยสองเครื่อง ในบทช่วยสอนนี้ ฉันจะใช้เซิร์ฟเวอร์สองตัว
- เซิร์ฟเวอร์ NFS – RHEL 9 ที่มี IP 10.128.15.213
- ไคลเอนต์ NFS – RHEL 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 โดยการเข้าถึงไฟล์ที่สร้างบนเซิร์ฟเวอร์จากฝั่งไคลเอ็นต์