วิธีการตั้งค่าเซิร์ฟเวอร์ NFS และไคลเอนต์บน CentOS 8
ระบบไฟล์เครือข่าย (NFS) หรือที่เรียกว่าระบบไฟล์ไคลเอ็นต์/เซิร์ฟเวอร์ เป็นระบบไฟล์แบบกระจายที่ได้รับความนิยม ข้ามแพลตฟอร์ม และแบบกระจาย ซึ่งใช้ในการส่งออกระบบไฟล์ในเครื่องผ่านเครือข่าย ดังนั้น ที่ไคลเอนต์สามารถแชร์ไดเร็กทอรีและไฟล์กับผู้อื่นผ่านเครือข่ายและโต้ตอบกับสิ่งเหล่านั้นราวกับว่าถูกติดตั้งในเครื่อง
ใน CentOS/RHEL 8 เวอร์ชัน NFS ที่รองรับคือ NFSv3 และ NFSv4 และเวอร์ชัน NFS เริ่มต้นคือ 4.2 ซึ่งมีคุณสมบัติรองรับรายการควบคุมการเข้าถึง ( ACL), สำเนาฝั่งเซิร์ฟเวอร์, ไฟล์กระจัดกระจาย, การสำรองพื้นที่, NFS ที่ติดป้ายกำกับ, การปรับปรุงเค้าโครง และอื่นๆ อีกมากมาย
ในบทความนี้ คุณจะได้เรียนรู้วิธีการติดตั้งและกำหนดค่า เซิร์ฟเวอร์ NFS และ ไคลเอนต์ NFS บนระบบปฏิบัติการ CentOS/RHEL 8 Linux
ข้อกำหนดเบื้องต้น:
- คู่มือการติดตั้ง CentOS 8
- RHEL 8 การติดตั้งขั้นต่ำ
- เปิดใช้งานการสมัครสมาชิก RHEL ใน RHEL 8
- ตั้งค่าที่อยู่ 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 หากคุณมีความคิดเห็นใดๆ ที่จะแบ่งปันหรือมีคำถาม ให้ใช้แบบฟอร์มแสดงความคิดเห็น ด้านล่างเพื่อติดต่อกลับหาเรา