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


105

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.


1
Được rồi, bây giờ đó là một sự lãng phí lớn của không gian 'không có sẵn'. Có lẽ 5% nên được giới hạn ở kích thước ổ đĩa nhỏ hơn X (ví dụ: 5% dung lượng ổ đĩa tối đa là 100MB).
tshepang

3
Trên hệ thống tập tin 8 TB của tôi, 400 GB đã biến mất - đây là sự lãng phí dung lượng thực sự !! :)
Ilia Rostovtsev

Câu trả lời:


101

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, như đượ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 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 đó sẽ không thành vấn đề.


3
Như đã lưu ý tại superuser.com/a/1257550/38062 , những con số "90%" và "95%" này có nguồn gốc từ các phép đo chống lại Berkeley FFS được thực hiện vào những năm 1980. Trong những thập kỷ kể từ đó, những người khác đã thách thức sự khôn ngoan nhận được nhiều lần này.
JdeBP

1
Không có giảm thiểu hiệu suất cho người dùng bình thường với không gian dành riêng này. Họ chỉ đơn giản là sẽ không có không gian trên thiết bị sớm hơn dự kiến. Tuy nhiên, root sẽ có đủ chỗ để khắc phục bất cứ vấn đề gì đang làm đầy đĩa.
bác sĩ

44

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.


Cảm ơn vì điều này, thực sự đã đấu tranh với câu trả lời nào để đánh dấu là chính xác - câu trả lời được nêu lên như lần đầu tiên và tại chỗ, mattdm được đánh dấu là chính xác do nền tảng và chi tiết bổ sung giúp tôi hiểu thêm về "Tại sao".
phù hợp vào

22

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 như 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 trong một thời gian dài , từ khi trở lại 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 nó có thể dễ dàng được điều chỉnh xuống đến một tỷ lệ nhỏ hơn như bạn nói, hoặc thiết lập để một số cụ thể của khối nếu bạn sử dụng tune2fs's -rlựa chọn thay vì -m. Trong cả hai trường hợp, bạn có thể cung cấp một tham số từ 0 đến biến các đặt phòng tắt hoàn toàn - Tôi sẽ không làm điều này cho /, /tmp, /varvà vân vân, nhưng bạn có thể muốn cho một hệ thống tập tin mà chỉ đóng vai trò như lưu trữ sử dụng (nói một File- toàn cầu chia sẻ) hoặc một tệp chỉ chứa các tệp có kích thước cố định (như các máy ảo có kích thước cố định) sẽ chỉ phát triển khi bạn tạo một tệp mới.


22

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 ghi nhật ký ( /var/log) và hộp thư gốc ( /var/mail/root) vẫn có thể nhận được thông tin quan trọng. Đối với /homephân vùng lưu trữ dữ liệu chung hoặc 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à sự phân mảnh .

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.