Tôi sẽ cắt máy tự động FreeBSD thành từng mảnh nhỏ và đun sôi chúng trong dầu


40

Tôi đang cố gắng để hiển thị một hệ thống phân cấp các thư mục nhà cho một số nhà tù FreeBSD. Các thư mục nhà được cấu hình sao cho mỗi thư mục là một bộ dữ liệu ZFS duy nhất. Các nhà tù được sử dụng cho công việc phát triển và do đó được tạo ra và phá hủy một cách thường xuyên.

Suy nghĩ đầu tiên của tôi chỉ đơn giản là sử dụng nullfs để gắn kết /homebên trong nhà tù, nhưng nullfs không cung cấp bất kỳ cách nào để truy cập các hệ thống tập tin cấp dưới.

Suy nghĩ thứ hai của tôi là xuất các thư mục thông qua NFS và sau đó chạy trình nền tự động (amd) bên trong mỗi nhà tù. Điều này sẽ chỉ hoạt động ... nếu có thể thực hiện gắn kết NFS trong nhà tù. Nhưng nó không phải là.

Suy nghĩ thứ ba của tôi là chạy amd trên máy chủ và cung cấp nullfs mount vào nhà tù ... nhưng hỗ trợ amd cho nullfs không tồn tại.

Suy nghĩ thứ tư của tôi là quay trở lại xuất các thư mục bằng NFS, vì dĩ nhiên amd hoạt động với NFS, phải không? Thật không may, thay vì gắn một thư mục trên mountpoint đích, amd thích gắn mọi thứ vào một vị trí tạm thời ( /.amd_mnt/...) và sau đó tạo một liên kết tượng trưng ... tất nhiên là vô dụng trong môi trường tù.

Vì vậy, có lẽ bạn có thể sử dụng nullfs để phơi bày một thư mục con của /.amd_mntnhà tù? Không! Điều này đưa chúng tôi trở lại với nỗ lực đầu tiên của tôi, trong đó chúng tôi thấy rằng không có cách nào để truy cập các hệ thống tập tin cấp dưới bằng cách sử dụng nullfs .

Và rồi đầu tôi nổ tung.

Có một giải pháp tốt cho những gì tôi đang cố gắng làm không? Một giải pháp tồi sẽ là chạy một kịch bản sau khi khởi động nhà tù sẽ tạo ra nhiều điểm kết nối nullfs cho mỗi thư mục chính, nhưng điều này khá khó hiểu - nó sẽ cần được chạy định kỳ để tính đến các thư mục mới hoặc các thư mục bị xóa. Vì vậy, về cơ bản tôi sẽ phải viết một thiết bị tự động xấu.

Phải có cách tốt hơn. Giúp tôi với, Serverfault, bạn là hy vọng duy nhất của tôi!

CẬP NHẬT 1 : Tôi nhận ra rằng tôi có thể giải quyết được một phần của vấn đề pam_mount, mặc dù điều này tốt nhất là không đầy đủ. Ngoài ra, không rõ tài liệu pam_mountcó thể tự động tạo điểm gắn kết đích hay không . Nếu nó yêu cầu điểm gắn kết để tồn tại một ưu tiên, giải pháp này sẽ không tốt hơn so với thiết bị tự động xấu mà tôi đã đề xuất.

CẬP NHẬT 2 : Như đã thảo luận trong các câu trả lời dưới đây, cài đặt VFCF_JAILtrên hệ thống tệp NFS sẽ cho phép các tù nhân thực hiện các gắn kết NFS. Thật không may, thiết bị tự động tiếp tục hành xử không có ích, và khi chạy trong nhà tù dường như rất giỏi trong việc kết nối theo cách mà cần phải khởi động lại hệ thống để loại bỏ quá trình nhập.


1
Và nếu bạn sẵn sàng chuyển các tính năng đó sang FreeBSD thì điều đó thật tuyệt vời. Nghiêm túc mà nói, hành vi của trình tự động Linux tiêu chuẩn cũng sẽ hoàn hảo cho việc này, vì nó thực sự gắn kết các hệ thống tệp trên điểm gắn kết đích, thay vì sử dụng liên kết tượng trưng.
larsks

4
Tôi đổ lỗi cho một thiếu thời gian nghiêm trọng. Và có lẽ chỉ là một chút thiếu động lực ...>.>
Ignacio Vazquez-Abrams

15
+1 Hoàn toàn cho tiêu đề tuyệt vời. :)
Shauna

4
Nó liên quan đến tôi về phương pháp thực hiện cụ thể của bạn cụ thể như thế nào
Mark Henderson

2
Ồ, @Wilshire, bạn không vui đâu.
larsks

Câu trả lời:


26

Tại sao, xin chào Lars! Đó là một câu hỏi hấp dẫn bạn đã hỏi, và sau một số nghiên cứu tôi có thể đã tìm thấy câu trả lời cho bạn.

Theo điều này và các bài đăng khác ngoài đó, có thể đặt VFCF_JAIL thuộc tính trên nhà cung cấp hệ thống tập tin NFS, theo lý thuyết sẽ cho phép các tù nhân thực hiện các gắn kết NFS. Điều này có thể, đến lượt nó, cho phép một người chạy amd trong nhà tù ... sẽ giải quyết gọn gàng vấn đề này.

Tôi sẽ thử xây dựng lại kernel tối nay để xem mọi thứ diễn ra như thế nào. Đây không hẳn là giải pháp tốt nhất (vì điều đó có nghĩa là bạn cần đảm bảo thay đổi này vẫn tồn tại trong các bản cập nhật kernel trong tương lai), nhưng sẽ rất thú vị nếu nó hoạt động.

Và nhớ ...

           ___________    ____                                           
    ______/   \__//   \__/____\                             
  _/   \_/  :           //____\\                             
 /|      :  :  ..      /        \                         
| |     ::     ::      \        /                             
| |     :|     ||     \ \______/     Don't try to rebuild the
| |     ||     ||      |\  /  |        kernel remotely because
 \|     ||     ||      |   / | \         you know you're just
  |     ||     ||      |  / /_\ \        going to hose the server.
  | ___ || ___ ||      | /  /    \    
   \_-_/  \_-_/ | ____ |/__/      \   
                _\_--_/    \      /   
               /____             /  
              /     \           /    
              \______\_________/     

6
Cảm ơn, Lars; Tôi ước tôi đã nghe lời khuyên của bạn, vì bây giờ tôi không thể truy cập máy chủ và tôi sẽ phải đợi cho đến khi về nhà để dùng thử.
larsks

10
+1 cho LOL. Ngoài ra, hãy coi đây là quyền của một lối đi - Lái xe đến máy chủ của bạn vào giữa đêm để khởi động KernEL.OLD (hoặc KernEL.GENERIC - Bạn có giữ một GENERIC cập nhật trên hệ thống của mình không? Nếu không, bạn nên bắt đầu.) dạy nhiều bài học ...
voretaq7

Tôi cũng giữ một bản sao có khả năng khởi động mạng của mfsbsd , điều này đã cứu tôi khỏi một số vấn đề liên quan đến bộ tải khởi động.
larsks

1
Cài đặt VFCF_JAILđã thực hiện gắn kết NFS hoạt động, nhưng thiết bị tự động tiếp tục làm phiền tôi.
larsks

1
Ơ, tôi đã sử dụng automount cho các thư mục nhà trong hơn một thập kỷ ở nhiều môi trường khác nhau và tôi rất hài lòng với nó. Xin lưu ý bạn, đây là máy tự động Linux (và Solaris), không phải amd.
larsks
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.