Cách tốt nhất để ngăn chặn hệ thống gốc lấp đầy khi mount không thành công?


16

Chúng tôi có một máy chủ web nội bộ (ảo hóa, lưu trữ ReviewBoard, nhưng không liên quan lắm) và chúng tôi có chế độ thất bại tương đối phù hợp với các kết nối NFS không thành công gây ra / lấp đầy. Phân phối là Ubuntu (đừng hỏi) nếu một giải pháp phụ thuộc vào một bản phân phối khác, thì việc triển khai sẽ chậm hơn.

Các bản sao lưu đang được thực hiện thành / mnt / backup /, được cho là gắn kết NFS với hệ thống khác. Thật không may, khi việc gắn kết không thành công hoặc bị mất, các bản sao lưu được thực hiện trên hệ thống tập tin gốc, như bạn có thể tưởng tượng không mất nhiều thời gian trước khi / đã đầy, và sau đó các dịch vụ bắt đầu thất bại.

Một số giải pháp có thể đã được thảo luận.

  1. Giám sát / mnt / sao lưu và đảm bảo nó không root. Có lẽ là một công việc định kỳ.

  2. Trước tiên, sử dụng / mnt / bảo vệ / sao lưu và gắn kết / bảo vệ cho một hệ thống tệp nhỏ, có lẽ là một vòng lặp gắn kết với một tệp cục bộ để nó ít có khả năng thất bại hơn.

  3. Chmod a-rwx / mnt / backups (điểm gắn kết hệ thống tập tin gốc). Tôi không chắc chắn nếu gắn trên giám đốc được bảo vệ sẽ làm việc, tôi nghĩ rằng nó làm.

  4. Trên cây được gắn kết, tạo một thư mục có tên "Sao lưu", sau đó liên kết mềm "ln - s / mnt / backup / Backups / Backups". Sử dụng / Sao lưu để sao lưu sẽ thất bại trừ khi / mnt / sao lưu được gắn kết, vì cây cục bộ không chứa thư mục con.

  5. Thực hiện kiểm tra xem thư mục được gắn chính xác trong tập lệnh sao lưu.

Tôi quan tâm đến bất kỳ phản hồi nào về các cách tiếp cận này, ưu điểm hoặc bất kỳ kỹ thuật bổ sung nào mà mọi người sử dụng như một cách tiêu chuẩn để bảo vệ hệ thống tệp gốc khỏi loại khó chịu này.

Câu trả lời:


13

Số 5 - Đặt một bài kiểm tra trong tập lệnh sao lưu của bạn để đảm bảo rằng thư mục được gắn kết trước khi tiếp tục. Kịch bản sẽ thất bại nếu mount không có sẵn hoặc hiện tại. Hoặc bạn chỉ có thể đảm bảo mọi thứ được gắn kết trước khi chạy bản sao lưu.

Hãy thử mountpointlệnh, kiểm tra xem một thư mục được chỉ định có phải là mountpoint không:

mountpoint -q /mnt/backups || mount /mnt/backups


Hmm, tôi đoán tôi sẽ thêm | | echo "Mount / mnt / backups fail" 2> & 1 Hoặc có lẽ chỉ tồn tại ở đó. Dù sao cũng cảm ơn!!!
Peter

22

Giải pháp chống lỗi nhiều nhất là làm cho điểm gắn kết không thể ghi được. Đây sẽ là giải pháp số 3 của bạn. Tuy nhiên, có một bước bổ sung bạn nên thực hiện. chattr +i /mnt/backups. Điều này là do ngay cả khi không có quyền, root vẫn có thể ghi vào thư mục. Với chattr +i(bộ cờ bất biến), ngay cả root cũng không thể ghi vào nó. Khi gắn kết được gắn kết, các quyền không quan trọng vì các quyền sẽ thuộc về thư mục từ xa, không phải là quyền cục bộ.


1
Đó là một mẹo khá gọn gàng - không bao giờ nghĩ đến việc sử dụng 'chattr'
warren

1
Tôi sử dụng kỹ thuật này trên tất cả các điểm gắn kết của tôi.
3dinfluence

1
Tôi đã thử điều này với encfsmột hệ thống tập tin cầu chì. Nó báo lỗi:fusermount: user has no write access to mountpoint
ctrl-alt-delor

Đây là giải pháp tôi thường sử dụng và tôi nghĩ nó nên là câu trả lời được chấp nhận.
shodanshok

3

Những gì ewwhite nói. Ngoài ra, một số giám sát bổ sung cho sức khỏe hệ thống cơ sở sẽ không phải là một ý tưởng tồi.

Một cái gì đó như Monit có thể kiểm tra để xem còn lại bao nhiêu không gian . Nếu bạn muốn đi sâu vào giám sát hệ thống, bạn có thể nhìn vào Nagios, nhưng Monit có trọng lượng nhẹ và sẽ làm những điều cơ bản.

Vì bạn đang sử dụng Ubuntu, Monit đã có trong repo, vì vậy bạn có thể thực hiện "sudo apt-get install monit", sau đó bắt đầu xem các tệp cấu hình để yêu cầu nó gửi thông báo đến đúng nơi, theo dõi các dịch vụ phù hợp, v.v. Đây là một hướng dẫn nhanh .


1

Đây là một lớp lót mà bạn có thể chạy như một công việc định kỳ, nó giả sử giá trị được đề cập là trong fstab:

if mountpoint -q /mnt ; then : ; else mount /mnt ; fi

0

Đối với một giải pháp dài hạn hơn: Không chắc chắn cách thực hiện điều này trên Ubuntu (Tôi là trung tâm của RH) hoặc nếu nó có giá trị trong khi (nếu bạn chỉ có một máy) nhưng một phương pháp đã hoạt động cho chúng tôi trong NHIỀU năm là tạo ra logic riêng biệt khối lượng, hệ thống tập tin thậm chí nhóm khối lượng trên máy chủ. Vì vậy, như một vấn đề thực hành tiêu chuẩn, chúng tôi tạo ra các khối logic LVM cho /, / tmp. / usr, / usr / local, / opt, / home, / var, hoán đổi không gian và một phân vùng riêng cho / boot. Cách tiếp cận này làm cho các hệ thống tập tin lấp đầy và vô hiệu hóa hệ thống trở nên khó khăn hơn. Trên thực tế phương pháp này sẽ làm cho gần như không thể lấp đầy hệ thống / tập tin. Tất nhiên bạn vẫn cần xem / tmp, / var. Nếu chúng ta cần lưu trữ dữ liệu thì chúng ta tạo một nhóm âm lượng hoàn toàn khác cho nó. Cách tiếp cận này cũng có những lợi ích khác, mở rộng hệ thống tệp theo ý muốn, di chuyển chúng xung quanh, tạo hệ thống mới, v.v.


Vì vậy, giải pháp của bạn để ngăn chặn hệ thống tập tin lấp đầy nếu một mount không thành công là thêm nhiều mount? Gì?
Patrick
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.