เป็นไปได้หรือไม่ที่จะมีโฟลเดอร์โฮมที่โฮสต์ด้วย NFS


30

ฉันวางแผนที่จะปรับใช้คอมพิวเตอร์ตู้บางและต้องการที่จะปล่อยให้พวกเขามี PENDRIVE ขนาดเล็กเป็นดิสก์, การเก็บรักษาส่วนที่เหลือที่ง่ายต่อการสำรองข้อมูลเซิร์ฟเวอร์ Ala LTSP

ตอนนี้ฉันครุ่นคิดสองตัวเลือก NFSed / home / หรือสำเนาโลคัลของ ~ / คัดลอกบนล็อกอิน, rsynced เมื่อล็อกเอาต์

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


คุณช่วยกรุณาแทนที่ "ปลอดภัย" ด้วยคำอื่นที่เกี่ยวข้องกับความปลอดภัยน้อยลงหรือไม่ อาจจะเป็นไปได้ที่merriam-webster.com/dictionary/feasible ?
Cristian Ciupitu

1
ความรู้สึกเล็กน้อยของเดจาวู มันไม่ใช่สิ่งเดียวกัน แต่เป็นสิ่งที่น่าสนใจที่พวกเขาไปถึงที่นั่น hardware.slashdot.org/story/09/06/23/1823201/…
เดินทางรอบโลก

คำตอบ:


30

ฉันใช้ NFS สำหรับไดเรกทอรีบ้านของฉันในสภาพแวดล้อมการผลิตของเรา มีเทคนิคสองสามอย่าง

  1. อย่าเมานต์ NFS /home- วิธีนี้คุณสามารถมีผู้ใช้โลคัลที่อนุญาตให้คุณในกรณีที่เซิร์ฟเวอร์ NFS หยุดทำงาน เราขึ้นสู่/mnt/nfs/home

  2. ใช้ซอฟต์เมาท์และการหมดเวลาอันสั้นมาก - นี่จะป้องกันไม่ให้กระบวนการปิดกั้นตลอดไป

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

    auto.master:
      +auto.master
      /mnt/nfs /etc/auto.home --timeout=300
    
    auto.home
       home -rw,soft,timeo=5,intr      home.bzzprod.lan:/home
    
  4. ใช้ระบบการลงชื่อเข้าใช้ครั้งเดียวเพื่อให้คุณไม่ต้องเจอกับปัญหาที่เกี่ยวข้องกับการอนุญาต ฉันมีเซิร์ฟเวอร์ OpenLDAP


ฉันมักจะพบว่าตัวนับยานยนต์นั้นไม่น่าเชื่อถือและมีแนวโน้มที่จะล็อคโดยเฉพาะอย่างยิ่งหากเซิร์ฟเวอร์ NFS หยุดทำงาน หากคุณเมานต์ที่ / mnt / nfs / home คุณจะตั้งค่าโฮมของผู้ใช้เป็น / etc / passwd หรือไม่
pjc50

2
การใช้ / etc / passwd และ NFS การติดตั้งที่บ้านเป็นความคิดที่ไม่ดีเนื่องจากคุณต้องทำให้ UID และ GID ให้ตรงกัน - ใช้บางอย่างเช่น OpenLDAP แต่ใช่ใช่ dir ที่บ้านของผู้ใช้ถูกตั้งค่าเป็น / mnt / nfs / home / ชื่อผู้ใช้
Aaron Brown

@AaronBrown ฉันยอมรับว่าหากคุณจะใส่ $ HOME ในเครือข่ายคุณควรใส่ข้อมูลประจำตัวและการรับรองความถูกต้องของผู้ใช้ในเครือข่ายเช่นกัน ไม่ว่าคุณจะทำอย่างนั้นอย่างไร $ HOME จะต้องมีการกำหนดไว้ที่ไหนสักแห่งและคุณได้ระบุว่าคุณต้องการตั้งค่าเป็น/mnt/nfs/homeแต่คุณจะใช้ประโยชน์ในพื้นที่ของคุณอย่างไรใน/homeช่วงที่ไฟดับ? โดยเฉพาะโปรดดูunix.stackexchange.com/questions/189404/…
JFlo

8

http://www.howtoforge.comเพิ่งโพสต์บทความเกี่ยวกับการใช้ GlusterFS แทน NFS / ทางเลือกคุณอาจต้องการตรวจสอบ

http://www.howtoforge.com/creating-an-nfs-like-standalone-storage-server-with-glusterfs-on-debian-lenny

นี่คือคำอธิบายสั้น ๆ ว่าทำไมจึงเป็นทางเลือกที่ 'เป็นไปได้' ที่ดีต่อ NFS จากหน้าโครงการ GlusterFS http://www.gluster.org/ :

"GlusterFS รักษาตัวเองได้ทันทีไม่มี fsck แบ็กเอนด์หน่วยเก็บข้อมูลสามารถเข้าถึงได้โดยตรงในรูปแบบไฟล์และโฟลเดอร์ปกติ (สไตล์ NFS) ด้วยการเปิดใช้งานการจำลองแบบ GlusterFS สามารถล้มเหลวของฮาร์ดแวร์ได้"

ข้อมูลเพิ่มเติมสามารถพบได้ในเอกสารประกอบโครงการ

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

หวังว่าสิ่งนี้จะช่วยหรืออย่างน้อยก็ช่วยชี้คุณในทิศทางที่ถูกต้อง!


7

ระวังด้วยซอฟต์เมาท์! การติดตั้งระบบไฟล์ NFS แบบนุ่มนวลหมายความว่า IO จะล้มเหลวหลังจากการหมดเวลา ให้แน่ใจว่าเป็นสิ่งที่คุณต้องการในไดเรกทอรีบ้านของผู้ใช้! ฉันเดาว่าคุณไม่ การใช้ฮาร์ดเมาท์ในโฮมไดเรกทอรีร่วมกับตัวเลือก intr รู้สึกปลอดภัยกว่ามากที่นี่

ยากจะไม่หมดเวลา: การดำเนินการ IO จะถูกลองใหม่อย่างไม่มีกำหนด ตัวเลือก intr ทำให้สามารถขัดจังหวะกระบวนการติดตั้งได้ ดังนั้นหากคุณเมานต์การส่งออกและประสบกับความล้มเหลวฮาร์ดเมาท์จะล็อคเซสชันของคุณ ตัวเลือก intr จะทำให้สามารถขัดจังหวะการเมาท์ได้ดังนั้นการรวมกันจึงค่อนข้างปลอดภัยและทำให้คุณมั่นใจได้ว่าข้อมูลของผู้ใช้จะไม่สูญหาย

อย่างไรก็ตาม autofs ทำให้ทั้งหมดนี้ง่ายขึ้น


1
โปรดทราบว่าintrตัวเลือกการเมานต์ได้รับการคัดค้านใน linux หลังเคอร์เนล 2.6.2 ดูเช่นaccess.redhat.com/solutions/157873
myrdd

4

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

แม้ว่าจะกู้คืนเซิร์ฟเวอร์ NFS ได้เว้นแต่คุณจะทำบางสิ่งเกี่ยวกับปัญหาการค้างจะยังคงอยู่ - คุณจะต้องฆ่ากระบวนการบนเครื่องติดตั้งและทำการติดตั้งใหม่ เหตุผลนี้คือเมื่อเซิร์ฟเวอร์ NFS กลับมามันกำหนดให้แตกต่างกันfsid- ดังนั้นอย่างน้อยคุณสามารถแก้ไขปัญหานี้ได้โดยการเข้ารหัสรหัสfsidบนเซิร์ฟเวอร์ NFS อย่างน้อย...

#. Home Directories
/usr/users \
  192.168.16.0/22(rw,sync,no_root_squash,fsid=1) \
  192.168.80.0/22(rw,sync,no_root_squash,fsid=1)

#. Scratch Space
/var/ftp/scratch \
  192.168.16.0/22(rw,async,no_root_squash,fsid=3) \
  192.168.80.0/22(rw,async,no_root_squash,fsid=3) \
  172.28.24.151(rw,async,root_squash,fsid=3)

exports(5)หน้าคนกล่าว ...

fsid=num
          This option forces the filesystem identification portion of the file handle
          and  file attributes used on the wire to be num instead of a number derived
          from the major and minor number of the block device on which the filesystem
          is  mounted.   Any 32 bit number can be used, but it must be unique amongst
          all the exported filesystems.

          This can be useful for NFS failover, to ensure that  both  servers  of  the
          failover  pair use the same NFS file handles for the shared filesystem thus
          avoiding stale file handles after failover.

... แม้ว่านั่นจะบ่งบอกว่าตราบใดที่หมายเลขหลัก / รองไม่เปลี่ยนแปลง (ซึ่งโดยปกติแล้วจะไม่เปลี่ยนแปลงยกเว้นเมื่อคุณส่งออก SAN / multipath ซึ่งอาจเปลี่ยนแปลงได้) ฉันพบว่าเรา ได้ลบปัญหาทั้งหมดแล้ว - เช่นถ้าเซิร์ฟเวอร์ NFS กลับมา - การเชื่อมต่อได้รับการกู้คืนอย่างรวดเร็ว - ฉันยังไม่รู้ว่าทำไมสิ่งนี้ถึงสร้างความแตกต่างให้กับอุปกรณ์เช่น/dev/sdaXตัวอย่างเช่น

ตอนนี้ฉันควรชี้ให้เห็นว่าข้อโต้แย้งของฉันส่วนใหญ่เป็นเรื่องเล็ก ๆ น้อย ๆ - มันไม่สมเหตุสมผลเลยว่าทำไมมันถึงแก้ไขปัญหาได้ แต่ดูเหมือนว่า "ดูเหมือน" ที่จะแก้ไขมัน - อย่างใด - อาจมีตัวแปรอื่น ๆ ยังไม่ได้ค้นพบ =)


คุณแน่ใจเกี่ยวกับ fsid "random" นี้ที่เซิร์ฟเวอร์ใช้หรือไม่
Cristian Ciupitu

สวัสดี Cristian - ฉันพยายามอธิบายด้านบน - แต่ฉันไม่สามารถอธิบายพฤติกรรมที่เกี่ยวกับรายละเอียดหน้าคนของธงได้ คุณเคยลองแล้วเห็นเป็นอย่างอื่นหรือไม่?
Xerxes

4

คำแนะนำทั่วไปบางประการที่จะนำไปใช้ไม่ว่าคุณจะใช้ระบบไฟล์เครือข่ายใด: หลาย ๆ โปรแกรมแคชข้อมูลในโฮมไดเร็กตอรี่ของผู้ใช้ซึ่งโดยทั่วไปจะทำอันตรายมากกว่าดีกว่าเมื่อเข้าถึงโฮมไดเร็กตอรี่ผ่านเครือข่าย

วันนี้คุณสามารถบอกหลาย ๆ โปรแกรมเพื่อเก็บแคชที่อื่น (เช่นบนดิสก์ภายในเครื่อง) โดยการตั้งค่าXDG_CACHE_HOMEตัวแปรสภาพแวดล้อมในสคริปต์การเข้าสู่ระบบ โปรแกรมจำนวนมาก (เช่น Firefox) ยังคงต้องการการกำหนดค่าด้วยตนเองดังนั้นคุณอาจต้องทำงานพิเศษเพิ่มเติมเพื่อระบุและกำหนดค่าในลักษณะที่เหมือนกันสำหรับผู้ใช้ทั้งหมดของคุณ


+1 ฉันมีปัญหาเรื่องประสิทธิภาพกับ Google Chrome และผู้ที่เป็นบ้านของ NFS แก้ไขโดยการย้ายไดเรกทอรีการทำงานของ Chrome กลับไปที่ระบบภายในจากนั้นวาง symlink จากโฮมเพ NFS (ที่ Chrome คาดว่าจะพบ dirs) กลับไปที่ไดเรกทอรีท้องถิ่น อาจมีวิธีที่ดีกว่าในการทำสิ่งที่ฉันทำ แต่ก็แก้ไขปัญหาให้ฉันได้
ไบรอัน

ไบรอัน (มีนาคม 9) ออกจากคำตอบบางส่วนที่ดี แต่ฉันต้องการที่จะอธิบายรายละเอียดเกี่ยวกับเรื่องนี้ กรุณาทำ ... ขอบคุณ .. คุณย้ายไดเร็คทอรี่สำหรับใช้งานไปที่เครื่องโลคัลและวาง symlink อย่างไร
Jason

ดูที่XDG_RUNTIME_DIRอธิบายสำหรับตำแหน่งฐานข้อมูล Dconf ที่: developer.gnome.org/dconf/unstable/dconf-overview.html
JKnight

3

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


2

ฉันใช้บ้าน NFSed และทำงานได้ดี แต่คุณต้องแน่ใจว่าเครือข่ายนั้นเร็วพอและมันจะไม่หยุด


2

ในทางปฏิบัติ NFS ทำงานได้ดีสำหรับโฮมไดเรกทอรีหากมีเครือข่ายสวิตช์ 100mbit หรือดีกว่า สำหรับมากกว่า 10-20 kiosks เซิร์ฟเวอร์ควรมีการเชื่อมต่อกิกะบิต คุณจะไม่ชนะการแข่งขันด้านประสิทธิภาพ แต่สิ่งต่าง ๆ เช่น Firefox และ Open Office จะใช้ได้ดี

การคัดลอกในโฮมไดเร็กตอรี่จะเป็นปัญหาใหญ่ในแง่ของความล่าช้าในการเข้าสู่ระบบ (บนเครือข่าย 100mbit ที่สูงสุด 12MB / s. โฮมไดเรกทอรี 100MB ใกล้ถึง 10 วินาที) Rsync จะทำให้คุณซิงค์แคชเว็บเบราว์เซอร์ ... นาทีและ 500 ไฟล์เจ็บ


1

มีลักษณะที่cachefilesd ฉันไม่ได้ใช้ด้วยตัวเอง แต่มันก็ดูดี

cachefilesd daemon จัดการไฟล์แคชและไดเร็กทอรีที่ถูกใช้โดยระบบไฟล์เครือข่ายเช่น AFS และ NFS เพื่อทำการแคชแบบถาวรไปยังโลคัลดิสก์

นอกจากนี้อย่าลืมปรับพารามิเตอร์ rsize และ wsize และใช้ Jumbo frames หากเป็นไปได้


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