Có khả thi để có thư mục nhà được lưu trữ với NFS không?


30

Tôi đang lên kế hoạch triển khai một số máy tính kiosk và muốn để lại chúng với một ổ đĩa nhỏ làm đĩa khởi động, giữ phần còn lại ở một máy chủ dễ sao lưu, ala LTSP .

Ngay bây giờ tôi đang cân nhắc hai lựa chọn. Một NFSed / home /, hoặc một bản sao cục bộ ~ / được sao chép khi đăng nhập, được đăng nhập khi đăng xuất.

Nỗi sợ hãi của tôi là làm việc với các tệp có thể trở nên quá chậm hoặc mạng của tôi có thể bị tắc .


Bạn có thể vui lòng thay thế "an toàn" bằng một từ khác ít liên quan đến bảo mật không? Có lẽ khả thi merriam-webster.com/dipedia/feasible ?
Cristian Ciupitu

1
Một cảm giác nhẹ của déja vu. Đó không phải là điều tương tự chính xác, nhưng đó là một chủ đề thú vị mà họ đã có ở đó. phần
cứng.slashdot.org/story/

Câu trả lời:


30

Tôi sử dụng NFS cho các thư mục nhà của tôi trong môi trường sản xuất của chúng tôi. Có một vài mánh khóe.

  1. Không gắn NFS vào /home- theo cách đó bạn có thể có một người dùng cục bộ cho phép bạn tham gia trong trường hợp máy chủ NFS gặp sự cố. Chúng tôi gắn kết với/mnt/nfs/home

  2. Sử dụng giá treo mềm và thời gian chờ rất ngắn - điều này sẽ ngăn các quá trình chặn vĩnh viễn.

  3. Sử dụng công cụ tự động . Điều này sẽ giảm mức sử dụng tài nguyên và cũng có nghĩa là bạn không cần phải lo lắng về việc khởi động lại dịch vụ khi máy chủ NFS xuất hiện nếu nó bị hỏng vì một số lý do.

    auto.master:
      +auto.master
      /mnt/nfs /etc/auto.home --timeout=300
    
    auto.home
       home -rw,soft,timeo=5,intr      home.bzzprod.lan:/home
    
  4. Sử dụng một hệ thống đăng nhập duy nhất để bạn không gặp phải các vấn đề liên quan đến quyền. Tôi có một máy chủ OpenLDAP.


Tôi luôn thấy máy tự động không đáng tin cậy khủng khiếp và dễ bị khóa, đặc biệt là nếu máy chủ NFS bị hỏng. Nếu bạn gắn kết với / mnt / nfs / home, đó có phải là nơi bạn đặt nhà của người dùng trong / etc / passwd không?
pjc50

2
Chà, sử dụng / etc / passwd và NFS gắn kết thư mục nhà là một ý tưởng tồi, vì bạn phải giữ UID và GID đồng bộ - sử dụng một cái gì đó như OpenLDAP, nhưng vâng, thư mục nhà của người dùng được đặt thành / mnt / nfs / home / tên người dùng.
Aaron Brown

@AaronBrown Tôi đồng ý rằng nếu bạn định đưa $ HOME lên mạng, bạn cũng nên đặt danh tính người dùng và xác thực trên mạng. Bất kể bạn làm điều đó như thế nào, $ HOME phải được xác định ở đâu đó và bạn đã cho biết rằng bạn muốn đặt nó hơn /mnt/nfs/homenhưng làm thế nào để bạn sử dụng địa phương của mình /hometrong khi bị cúp? Cụ thể, vui lòng xem unix.stackexchange.com/questions/189404/ trên
JFlo

8

http://www.howtoforge.com gần đây đã đăng một bài viết về việc sử dụng GlusterFS như một sự thay thế / thay thế NFS, bạn có thể muốn kiểm tra nó.

http://www.howtoforge.com/creating-an-nfs-like-standopol-st Storage-server-with-glusterfs-on-debian-lenny

Dưới đây là một mô tả ngắn về lý do tại sao nó là một giải pháp thay thế 'khả thi' tốt cho NFS, từ trang dự án GlusterFS http://www.gluster.org/ :

"GlusterFS tự phục hồi khi đang di chuyển. Không có fsck. Phần cuối lưu trữ có thể truy cập trực tiếp như các tệp và thư mục thông thường (kiểu NFS). Với tính năng sao chép, GlusterFS có thể bị lỗi phần cứng."

Thông tin thêm có thể được tìm thấy trong các tài liệu dự án.

Ngoài ra, một điều thú vị khác khi sử dụng GlusterFS là nếu bạn cần thêm dung lượng trên SAN, bạn chỉ cần thêm một khối lưu trữ khác (nút máy chủ) và bạn có thể mở rộng / tăng lưu trữ của mình song song khi có nhu cầu.

Hy vọng điều này sẽ giúp hoặc ít nhất là giúp bạn đi đúng hướng!


7

Hãy cẩn thận với các gắn kết mềm! Gắn mềm một hệ thống tập tin NFS có nghĩa là IO sẽ thất bại sau khi hết thời gian. Hãy chắc chắn rằng đó là những gì bạn muốn trên thư mục nhà của người dùng! Tôi đoán là bạn không. Sử dụng một gắn kết cứng trên các thư mục nhà kết hợp với tùy chọn xâm nhập cảm thấy an toàn hơn rất nhiều ở đây.

Hard sẽ không hết thời gian: Các hoạt động IO sẽ được thử lại vô thời hạn. Tùy chọn xâm nhập làm cho nó có thể làm gián đoạn quá trình gắn kết. Vì vậy, nếu bạn gắn kết xuất và gặp sự cố, ổ cứng sẽ khóa phiên của bạn. Tùy chọn xâm nhập sẽ giúp có thể làm gián đoạn việc gắn kết, vì vậy sự kết hợp này khá an toàn và đảm bảo bạn sẽ không dễ dàng mất dữ liệu của người dùng.

Dù sao, autofs làm cho tất cả điều này thậm chí còn dễ dàng hơn.


1
lưu ý rằng intrtùy chọn gắn kết đã bị phản đối trong linux sau kernel 2.6.2, xem ví dụ: access.redhat.com/solutions/157873
myrdd

4

Một điều cần lưu ý là khi máy chủ NFS không hoạt động - các mount của bạn sẽ bị đóng băng - thực hiện một mount mềm sẽ không chặn để bản thân "đóng băng" có thể tránh được, tuy nhiên điều đó sẽ không khắc phục được vấn đề của các thư mục nhà như không có nhà thư mục, người dùng được vít nào.

Ngay cả khi máy chủ NFS phục hồi, trừ khi bạn làm gì đó với nó, vấn đề đóng băng sẽ vẫn còn - bạn sẽ phải hủy quy trình trên máy lắp và kể lại. Lý do cho điều này là khi máy chủ NFS hoạt động trở lại, nó đã chỉ định khác fsid- vì vậy, ít nhất bạn có thể khắc phục vấn đề này bằng cách mã hóa cứng các fsids trên máy chủ NFS, ví dụ ...

#. 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)

Các exports(5)trang người đàn ông khẳng định ...

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.

... Trong khi điều đó chỉ ra rằng miễn là các số chính / phụ không thay đổi (mà chúng thường không thay đổi, ngoại trừ khi bạn xuất khối lượng SAN / bội, nơi có thể thay đổi), tôi đã thấy rằng chúng tôi Tôi đã loại bỏ hoàn toàn vấn đề - tức là, nếu máy chủ NFS hoạt động trở lại - kết nối đã được khôi phục nhanh chóng - tôi vẫn thực sự không biết tại sao điều này lại tạo ra sự khác biệt cho các thiết bị chẳng /dev/sdaXhạn.

Bây giờ tôi nên chỉ ra rằng đối số của tôi chủ yếu là giai thoại - thực sự không có lý do tại sao nó đã khắc phục vấn đề, nhưng dường như "đã khắc phục nó - bằng cách nào đó - có thể có các biến khác đang diễn ra ở đây mà tôi đã chơi chưa được khám phá =)


Bạn có chắc chắn về fsid "ngẫu nhiên" này được sử dụng bởi máy chủ không?
Cristian Ciupitu

Xin chào Cristian - Tôi đã cố gắng giải thích ở trên - nhưng tôi không thể giải thích đầy đủ hành vi liên quan đến mô tả trang cờ của người đàn ông. Bạn đã thử nó và thấy khác?
Xerxes

4

Một số lời khuyên chung sẽ áp dụng cho dù bạn áp dụng hệ thống tệp mạng nào: nhiều chương trình lưu trữ dữ liệu trong thư mục chính của người dùng, điều này thường gây hại nhiều hơn là tốt khi thư mục chính được truy cập qua mạng.

Ngày nay, bạn có thể yêu cầu nhiều chương trình lưu trữ bộ nhớ cache của chúng ở nơi khác (ví dụ: trên đĩa cục bộ) bằng cách đặt XDG_CACHE_HOMEbiến môi trường trong tập lệnh đăng nhập. Tuy nhiên, rất nhiều chương trình (ví dụ: Firefox) vẫn yêu cầu cấu hình thủ công, do đó bạn có thể sẽ phải thực hiện một số công việc bổ sung để xác định và định cấu hình chúng một cách thống nhất cho tất cả người dùng của bạn.


+1 Tôi đã gặp vấn đề về hiệu suất với các thư mục nhà của Google Chrome và NFS. đã sửa nó bằng cách di chuyển các thư mục làm việc của Chrome trở lại hệ thống cục bộ, sau đó đặt một liên kết tượng trưng từ thư mục nhà NFS (nơi Chrome dự kiến ​​sẽ tìm thấy các thư mục), trở lại thư mục cục bộ. Có thể có một cách tốt hơn để làm những gì tôi đã làm, nhưng nó đã giải quyết vấn đề cho tôi.
Bryan

Bryan (tháng 9) đã để lại một câu trả lời tốt, tuy nhiên, tôi muốn giải thích về vấn đề này. Xin vui lòng ... Cảm ơn bạn .. Làm thế nào bạn di chuyển các thư mục làm việc vào máy cục bộ và đặt symlink.
Jason

Đồng thời xem xét XDG_RUNTIME_DIRvị trí được mô tả cho vị trí cơ sở dữ liệu Dconf tại: developer.gnome.org/dconf/unurdy/dconf-overview.html
JKnight

3

Tôi rất nhiều nơi tôi đã làm việc sử dụng các thư mục nhà gắn NFS. Hiệu suất thường không có sự khác biệt lớn (và người dùng kiosk có lẽ ít đòi hỏi hơn một chút so với các nhà phát triển biết cách nắm bắt anh chàng IT địa phương của họ). Một vấn đề tôi đã thấy là những gì xảy ra khi tôi đăng nhập vào máy tính để bàn Gnome và máy chủ NFS biến mất vì bất kỳ lý do gì. Mọi thứ trở nên không phản hồi.


2

Tôi sử dụng một ngôi nhà NFSed và nó hoạt động tốt. nhưng bạn phải chắc chắn rằng mạng đủ nhanh và nó sẽ không bao giờ ngừng hoạt động.


2

Trên cơ sở thực tế, NFS hoạt động tốt cho thư mục chính nếu có mạng chuyển đổi 100mbit trở lên. Để có hơn 10-20 kiốt, máy chủ phải có kết nối gigabit. Bạn sẽ không giành chiến thắng trong các cuộc thi hiệu suất, nhưng những thứ như Firefox và Open Office sẽ hoạt động tốt.

Sao chép trong thư mục chính sẽ là một vấn đề lớn về sự chậm trễ khi đăng nhập (trên mạng 100mbit tối đa 12MB / s. Thư mục chính 100 MB gần 10 giây.) Rsync sẽ đánh bại bạn đồng bộ hóa bộ đệm của trình duyệt web ... 10 Phút và 500 tập tin bị tổn thương.


1

Có một cái nhìn vào bộ nhớ cache . Tôi đã không sử dụng nó cho mình, nhưng nó có vẻ đầy hứa hẹn.

Trình nền cache của bộ nhớ cache quản lý các tập tin và thư mục bộ đệm được sử dụng bởi các hệ thống tập tin mạng như AFS và NFS để lưu bộ đệm liên tục vào đĩa cục bộ.

Ngoài ra, đừng quên điều chỉnh các tham số rsize và wsize và sử dụng khung Jumbo nếu có thể.


Tôi đã thử dùng bộ nhớ cache trong vài năm nhưng đã bỏ cuộc vì tất cả sự không ổn định mà nó mang lại. YMMV
JFlo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.