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

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


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

ใน CentOS/RHEL 8 เวอร์ชัน NFS ที่รองรับคือ NFSv3 และ NFSv4 และเวอร์ชัน NFS เริ่มต้นคือ 4.2 ซึ่งมีคุณสมบัติรองรับรายการควบคุมการเข้าถึง ( ACL), สำเนาฝั่งเซิร์ฟเวอร์, ไฟล์กระจัดกระจาย, การสำรองพื้นที่, NFS ที่ติดป้ายกำกับ, การปรับปรุงเค้าโครง และอื่นๆ อีกมากมาย

ในบทความนี้ คุณจะได้เรียนรู้วิธีการติดตั้งและกำหนดค่า เซิร์ฟเวอร์ NFS และ ไคลเอนต์ NFS บนระบบปฏิบัติการ CentOS/RHEL 8 Linux

ข้อกำหนดเบื้องต้น:

  1. คู่มือการติดตั้ง CentOS 8
  2. RHEL 8 การติดตั้งขั้นต่ำ
  3. เปิดใช้งานการสมัครสมาชิก RHEL ใน RHEL 8
  4. ตั้งค่าที่อยู่ IP แบบคงที่ใน CentOS/RHEL 8

สภาพแวดล้อมการทดสอบของเรา:

NFS Server IP:	10.20.20.8
NFS Client IP:	10.20.20.9	

การตั้งค่าเซิร์ฟเวอร์ NFS บน CentOS 8

1. ขั้นแรก ให้เริ่มต้นด้วยการติดตั้งแพ็คเกจที่จำเป็นบนเซิร์ฟเวอร์ NFS แพ็คเกจคือ nfs-utils ซึ่งจัดเตรียม daemon สำหรับเคอร์เนลเซิร์ฟเวอร์ NFS และเครื่องมือที่เกี่ยวข้อง เช่น โปรแกรม showmount

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

dnf install nfs-utils

2. เมื่อการติดตั้งเสร็จสมบูรณ์ ให้เริ่มบริการ nfs-server เปิดใช้งานให้เริ่มโดยอัตโนมัติเมื่อบูตระบบ จากนั้นตรวจสอบสถานะโดยใช้คำสั่ง systemctl

systemctl start nfs-server.service
systemctl enable nfs-server.service
systemctl status nfs-server.service

โปรดทราบว่าบริการอื่นๆ ที่จำเป็นสำหรับการเรียกใช้เซิร์ฟเวอร์ NFS หรือการติดตั้ง NFS ที่ใช้ร่วมกัน เช่น nfsd, nfs-idmapd, rpcbind, rpc.mountd, ล็อค, rpc.statd, rpc.rquotad และ rpc.idmapd จะเริ่มโดยอัตโนมัติ

ไฟล์คอนฟิกูเรชันสำหรับเซิร์ฟเวอร์ NFS คือ:

  • /etc/nfs.conf – ไฟล์การกำหนดค่าหลักสำหรับ NFS daemons และเครื่องมือ
  • /etc/nfsmount.conf – ไฟล์การกำหนดค่าการเมานต์ NFS

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

mkdir -p  /mnt/nfs_shares/{Human_Resource,Finance,Marketing}
mkdir  -p /mnt/backups
ls -l /mnt/nfs_shares/

4. จากนั้นส่งออกระบบไฟล์ข้างต้นในไฟล์การกำหนดค่า /etc/exports ของเซิร์ฟเวอร์ NFS เพื่อกำหนดระบบไฟล์ทางกายภาพในเครื่องที่ไคลเอ็นต์ NFS สามารถเข้าถึงได้

/mnt/nfs_shares/Human_Resource  	10.20.20.0/24(rw,sync)
/mnt/nfs_shares/Finance			10.20.10.0/24(rw,sync)
/mnt/nfs_shares/Marketing		10.20.30.0/24(rw,sync)
/mnt/backups				10.20.20.9/24(rw,sync,no_all_squash,root_squash)

ต่อไปนี้คือตัวเลือกการส่งออกบางส่วน (อ่าน การส่งออกโดยมนุษย์ สำหรับข้อมูลเพิ่มเติมและตัวเลือก การส่งออก):

  • rw – อนุญาตการเข้าถึงทั้งแบบอ่านและเขียนบนระบบไฟล์
  • ซิงค์ – บอกให้เซิร์ฟเวอร์ NFS เขียนการดำเนินการ (เขียนข้อมูลลงดิสก์) เมื่อมีการร้องขอ (ใช้ตามค่าเริ่มต้น)
  • all_squash – แมป UID และ GID ทั้งหมดจากคำขอของไคลเอ็นต์ไปยังผู้ใช้ที่ไม่ระบุชื่อ
  • no_all_squash - ใช้เพื่อแมป UID และ GID ทั้งหมดจากคำขอไคลเอ็นต์ไปยัง UID และ GID ที่เหมือนกันบนเซิร์ฟเวอร์ NFS
  • root_squash – แมปคำขอจากผู้ใช้รูทหรือ UID/GID 0 จากไคลเอนต์ไปยัง UID/GID ที่ไม่ระบุชื่อ

5. หากต้องการส่งออกระบบไฟล์ด้านบน ให้รันคำสั่ง exportfs ด้วยแฟล็ก -a หมายถึงส่งออกหรือยกเลิกการส่งออกไดเรกทอรีทั้งหมด - r หมายถึงการส่งออกไดเรกทอรีทั้งหมดอีกครั้ง การซิงโครไนซ์ /var/lib/nfs/etab กับ /etc/exports และไฟล์ภายใต้ /etc/exports.d และ -v เปิดใช้งานเอาต์พุตแบบละเอียด

exportfs -arv

6. หากต้องการแสดงรายการส่งออกปัจจุบัน ให้รันคำสั่งต่อไปนี้ โปรดทราบว่าตาราง การส่งออก ยังใช้ตัวเลือก การส่งออก เริ่มต้นบางส่วนที่ไม่ได้กำหนดไว้อย่างชัดเจนดังที่แสดงในภาพหน้าจอต่อไปนี้

exportfs  -s

7. ถัดไป หากคุณมีบริการ ไฟร์วอลล์ ทำงานอยู่ คุณจะต้องอนุญาตการรับส่งข้อมูลไปยังบริการ NFS ที่จำเป็น (ติดตั้ง, nfs , rpc-bind) ผ่านไฟร์วอลล์ จากนั้นโหลดกฎไฟร์วอลล์ใหม่เพื่อใช้การเปลี่ยนแปลง ดังต่อไปนี้

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload

การตั้งค่าไคลเอนต์ NFS บนระบบไคลเอนต์

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

dnf install nfs-utils nfs4-acl-tools         [On CentOS/RHEL]
sudo apt install nfs-common nfs4-acl-tools   [On Debian/Ubuntu]

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

showmount -e 10.20.20.8

9. จากนั้น สร้างระบบไฟล์/ไดเร็กทอรีในเครื่องสำหรับติดตั้งระบบไฟล์ NFS ระยะไกล และต่อเชื่อมเป็นระบบไฟล์ ntf

mkdir -p /mnt/backups
mount -t nfs  10.20.20.8:/mnt/backups /mnt/backups

10. จากนั้นยืนยันว่าระบบไฟล์ระยะไกลได้รับการติดตั้งแล้วโดยการรันคำสั่ง mount และกรองการเมานต์ nfs

mount | grep nfs

11. หากต้องการเปิดใช้งานการเมานต์ให้คงอยู่แม้หลังจากรีบูตระบบแล้ว ให้รันคำสั่งต่อไปนี้เพื่อป้อนรายการที่เหมาะสมใน /etc/fstab

echo "10.20.20.8:/mnt/backups     /mnt/backups  nfs     defaults 0 0">>/etc/fstab
cat /etc/fstab

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

touch /mnt/backups/file_created_on_server.text     [On NFS Server]
ls -l /mnt/backups/file_created_on_server.text     [On NFS client]

จากนั้นทำย้อนกลับ

touch /mnt/backups/file_created_on_client.text     [On NFS Client]
ls -l /mnt/backups/file_created_on_client.text     [On NFS Server]

13. เพื่อยกเลิกการต่อเชื่อมระบบไฟล์ระยะไกลบนฝั่งไคลเอ็นต์

umount /mnt/backups

โปรดทราบว่าคุณไม่สามารถถอนติดตั้งระบบไฟล์ระยะไกลได้ หากคุณใช้งานระบบดังกล่าวดังที่แสดงในภาพหน้าจอต่อไปนี้

แค่นั้นแหละ! ในคู่มือนี้ เราได้แสดงวิธีการติดตั้งและกำหนดค่าเซิร์ฟเวอร์และไคลเอ็นต์ NFS ใน CentOS/RHEL 8 หากคุณมีความคิดเห็นใดๆ ที่จะแบ่งปันหรือมีคำถาม ให้ใช้แบบฟอร์มแสดงความคิดเห็น ด้านล่างเพื่อติดต่อกลับหาเรา