it-swarm-vi.com

Dành không gian cho root trên một hệ thống tập tin - tại sao?

Tôi hiểu rằng theo mặc định, các hệ thống tệp mới được tạo sẽ được tạo với 5% không gian được phân bổ cho root. Tôi cũng biết bạn có thể thay đổi không gian được xác định bằng:

tune2fs -m 1 /dev/sdXY

Điều tôi tò mò là, mục đích thực sự của không gian dành riêng này là gì. Nó có phục vụ bất kỳ mục đích thực tế nào có thể chiếm hơn 5% không gian trong một số trường hợp không?

Lý do tôi vấp phải câu hỏi này là vì gần đây chúng tôi đã xây dựng một filestore 1TB và không thể hiểu tại sao một df -h lại khiến chúng tôi mất 5% công suất.

108
suitedupgeek

Tiết kiệm không gian cho các quá trình root quan trọng (và các hành động giải cứu có thể) là một lý do.

Nhưng có một cái khác. Ext3 khá tốt trong việc tránh phân mảnh hệ thống tập tin, nhưng một khi bạn đã đầy đủ hơn 95%, hành vi đó rơi ra khỏi vách đá và đột nhiên hiệu năng của hệ thống tập tin trở thành một mớ hỗn độn. Vì vậy, để lại 5% dành riêng cho bạn một bộ đệm chống lại điều này.

Ext4 nên tốt hơn về điều này, vì được giải thích bởi nhà phát triển hệ thống tập tin Linux/guru Theodore Ts'o :

Nếu bạn đặt số khối dành riêng thành 0, nó sẽ không ảnh hưởng nhiều đến hiệu suất trừ khi bạn chạy trong thời gian dài (với rất nhiều tệp được tạo và xóa) trong khi hệ thống tệp gần như đầy đủ (nghĩa là trên 95%), tại thời điểm đó bạn sẽ phải chịu các vấn đề phân mảnh. Công cụ cấp phát đa khối của Ext4 có khả năng phân mảnh cao hơn nhiều, vì nó khó tìm kiếm các khối liền kề hơn rất nhiều, vì vậy ngay cả khi bạn không bật các tính năng ext4 khác, bạn sẽ thấy kết quả tốt hơn chỉ đơn giản là gắn hệ thống tệp ext3 bằng ext4 trước hệ thống tệp được hoàn toàn đầy đủ.

Nếu bạn chỉ sử dụng hệ thống tệp để lưu trữ lâu dài, nơi các tệp không thay đổi thường xuyên (nghĩa là, một cửa hàng mp3 hoặc video khổng lồ), rõ ràng điều đó không thành vấn đề.

106
mattdm

Ví dụ, nếu bạn cho phép người khác đăng nhập vào hệ thống của mình, thông qua ssh, việc bảo lưu các khối 5% này đảm bảo người dùng bên ngoài không thể lấp đầy đĩa. Ngay cả khi bạn không cho phép người khác đăng nhập vào hệ thống của mình, các khối dành riêng sẽ ngăn các chương trình không chạy bằng root để lấp đầy đĩa của bạn.

45
LawrenceC

Với các khối dành riêng cho người dùng của bạn và các dịch vụ đang chạy với tư cách là người dùng cụ thể thay vì chạy bằng root, không thể lấp đầy tệp tin và có khả năng phá vỡ những thứ khác cần ghi vào hệ thống tệp đã nói - mặc dù các dịch vụ vẫn chạy bằng root vẫn có thể làm cho nó hoàn toàn đầy đủ tất nhiên.

Nó cũng cung cấp cho bạn một số không gian để làm việc khi người dùng phàn nàn rằng đĩa đã đầy hoặc các dịch vụ bắt đầu bị lỗi vì hệ thống tệp đã đầy. Chẳng hạn, bạn có thể lưu trữ một số tệp vào kho lưu trữ Zip/gz/7Zip trước khi xóa chúng (mặc dù nếu hệ thống tệp hoàn toàn đầy đủ, rất có thể bạn có một số hệ thống tệp khác có sẵn để thay vào đó bạn có thể tạo tệp lưu trữ).

5% đã được mặc định cho thời gian dài, từ khi các đĩa nhỏ hơn nhiều (hàng chục megabyte thay vì hàng trăm gigabyte) nên 5% không quá nhiều. May mắn thay, nó có thể dễ dàng được điều chỉnh xuống một tỷ lệ nhỏ hơn như bạn nói hoặc đặt thành một số khối cụ thể nếu bạn sử dụng tune2fs-r tùy chọn thay vì -m. Trong cả hai trường hợp, bạn có thể đưa ra một tham số bằng 0 để tắt hoàn toàn đặt chỗ - Tôi sẽ không làm điều này cho /, /tmp, /var v.v., nhưng bạn có thể muốn một hệ thống tệp chỉ đóng vai trò lưu trữ người dùng (giả sử chia sẻ tệp toàn cầu) hoặc một tệp chỉ giữ các tệp có kích thước cố định (như VM có kích thước cố định) sẽ chỉ phát triển khi bạn tạo cái mới.

22
David Spillett

Mặc định 5% có nghĩa là cho các phân vùng hệ thống. Ví dụ: nếu không gian đĩa của bạn lấp đầy, hệ thống sẽ ghi lại (/var/log) và hộp thư gốc (/var/mail/root) vẫn có thể nhận được thông tin quan trọng. Cho một /home hoặc phân vùng lưu trữ dữ liệu chung, không cần phải chừa bất kỳ khoảng trống nào cho root. Đối với các nhu cầu đặc biệt, bạn có thể thay đổi người dùng nhận được không gian khẩn cấp (tune2fs -u 1234).

Có một lý do khác để không cho phép một hệ thống tập tin ext [234] đầy đủ, đó là phân mảnh .