การเปลี่ยนแปลง NFS Server ในไฟล์ / etc / exports ต้องเริ่มบริการใหม่หรือไม่


30

ฉันมีเซิร์ฟเวอร์ NFSv4 (บน RHELv6.4) และลูกค้า NFS บน (CentOSv6.4) สมมติว่าใน/etc/exports:

/shares/website1      <ip-client-1>(rw,sync,no_subtree_check,no_root_squash)
/shares/website2      <ip-client-2>(rw,sync,no_subtree_check,no_root_squash)

จากนั้นเมื่อใดก็ตามที่ฉันทำการเปลี่ยนแปลงบางอย่างในนั้น (สมมติว่ามีการเปลี่ยนแปลงเท่านั้นclient-2) เช่น:

/shares/website1      <ip-client-1>(rw,sync,no_subtree_check,no_root_squash)
/shares/xxxxxxxx      <ip-client-2>(rw,sync,no_subtree_check,no_root_squash)

service nfs restartแล้วฉันเสมอ และแล้วในที่สุด .. ติดจุดบนclient-1ได้ไม่ตอบสนอง (ไม่สามารถเปิดไฟล์ ฯลฯ ) (ทำไมเพราะ RESTART)

แต่ตามที่อธิบายไว้ฉันแค่แก้ไขบรรทัดสำหรับclient-2เท่านั้น ทุกอย่างสำหรับclient-1ยังไม่มีใครแตะต้อง

ดังนั้นคำถามของฉันที่นี่:

  • เมื่อใดก็ตามที่ฉันแก้ไขฉัน/etc/exportsควรrestartให้บริการหรืออะไร
  • หาก i service nfs restartทำไม Mount-Point ของลูกค้ารายอื่นถึงได้รับผลกระทบในที่สุด (สำหรับเครื่องไคลเอนต์ที่ไม่มีการเปลี่ยนแปลงใด ๆ ใน/etc/exportsเครื่อง)

ซึ่งหมายความว่าเมื่อใดก็ตามที่ฉันจะทำให้การเปลี่ยนแปลงใน/etc/exportsและrestartบริการที่ฉันจะต้องไปRE-MOUNTไดเรกทอรีในลูกค้าทุกในรายการส่งออกเพื่อให้มีการติดจุดทำงานอีกครั้ง

มีความคิดอะไรมั้ย


1
หลังจากการปรับเปลี่ยนให้ลองเพียงแค่ทำงานเป็นราก/etc/exports exportfs -raดูman exportfsรายละเอียดที่
John1024

ถ้าอย่างนั้นฉันก็ไม่ต้องการnfs restartอีกแล้วเหรอ?
夏期劇場

คำตอบ:


53

คุณไม่ควรจะต้องเริ่มต้นใหม่ NFS /etc/exportsทุกครั้งที่คุณทำการเปลี่ยนแปลงไป สิ่งที่ต้องการคือการออกคำสั่งที่เหมาะสมหลังจากแก้ไข/etc/exportsไฟล์:

$ exportfs -ra

ข้อความที่ตัดตอนมาจากเอกสารอย่างเป็นทางการของ Red Hat หัวข้อ: 21.7 / etc / ส่งออกแฟ้มการกำหนดค่า

สิ่งที่สกัดมา

เมื่อออกด้วยตนเองคำสั่ง / usr / sbin / exportfs อนุญาตให้ผู้ใช้รูทเลือกเอ็กซ์พอร์ตหรือยกเลิกการเอ็กซ์พอร์ตไดเร็กทอรีโดยไม่ต้องรีสตาร์ทเซอร์วิส NFS เมื่อกำหนดอ็อพชันที่เหมาะสมคำสั่ง / usr / sbin / exportfs จะเขียนระบบไฟล์ที่เอ็กซ์พอร์ตไปยัง / var / lib / nfs / xtab เนื่องจาก rpc.mountd อ้างถึงไฟล์ xtab เมื่อตัดสินใจสิทธิ์การเข้าถึงระบบไฟล์การเปลี่ยนแปลงในรายการของระบบไฟล์ที่เอ็กซ์พอร์ตจะมีผลทันที

อ่านexportfsรายละเอียดเพิ่มเติมได้ที่หน้า man page โดยเฉพาะในส่วน "DESCRIPTION" ซึ่งอธิบายทั้งหมดนี้และอีกมากมาย

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

  The exportfs command maintains the current table of exports for the NFS 
    server.  The master export table is kept in  a  file  named
    /var/lib/nfs/etab.  This file is read by rpc.mountd when a client sends 
    an NFS MOUNT request.

  Normally  the  master  export  table  is  initialized  with the contents 
    of /etc/exports and files under /etc/exports.d by invoking exportfs -a.  
    However, a system administrator can choose to add or delete exports 
    without modifying  /etc/exports  or  files  under /etc/exports.d by 
    using the exportfs command.

โปรดทราบถึงตัวเลือกที่เราใช้-ra:

   -a     Export or unexport all directories.
   -r     Reexport all directories, synchronizing /var/lib/nfs/etab with 
          /etc/exports and files  under  /etc/exports.d.   This  option
          removes  entries  in  /var/lib/nfs/etab which have been deleted 
          from /etc/exports or files under /etc/exports.d, and removes
          any entries from the kernel export table which are no longer
          valid.

มีข้อได้เปรียบอะไรกับ-raแทนที่จะเป็นเพียงแค่-r?
Mvorisek

@Morork - มันชัดเจน
slm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.