Điểm:0

Sự khác biệt giữa các tính năng ext4 này là gì: dir_nlink so với large_dir

lá cờ sl

Từ trang hướng dẫn ext4(5):

dir_nlink
Thông thường, ext4 cho phép một nút có không quá 65.000 liên kết cứng. Điều này áp dụng cho các tệp thông thường cũng như các thư mục, có nghĩa là không thể có nhiều hơn 64.998 thư mục con trong một thư mục (vì mỗi mục nhập '.' và '..', cũng như mục nhập thư mục cho trong thư mục mẹ của nó được tính là một liên kết cứng). Tính năng này nâng giới hạn này bằng cách khiến ext4 sử dụng số lượng liên kết là 1 để chỉ ra rằng số lượng liên kết cứng tới một thư mục không được biết khi số lượng liên kết có thể vượt quá giới hạn số lượng tối đa.

large_dir
Tính năng này tăng giới hạn về số lượng tệp trên mỗi thư mục bằng cách tăng kích thước tối đa của các thư mục và đối với các thư mục b-tree được băm (xem dir_index), chiều cao tối đa của cây b đã băm được sử dụng để lưu trữ các mục nhập thư mục.

Được rồi, chúng ta hãy xem qua dir_index quá.

dir_index
Sử dụng b-tree đã băm để tăng tốc độ tra cứu tên trong các thư mục lớn. Tính năng này được hỗ trợ bởi các hệ thống tệp ext3 và ext4 và bị các hệ thống tệp ext2 bỏ qua.


Theo sự hiểu biết của tôi về trang người đàn ông:

  1. Khi không có mục nào trong một thư mục, có 2 liên kết cứng, đó là . (thư mục trỏ đến chính nó) và .. (điều này trỏ đến thư mục mẹ, nhưng liên kết cứng đề cập đến tham chiếu từ thư mục mẹ đến thư mục) và giá trị của st_nlink lĩnh vực trong thống kê cấu trúc là 2. Khi có 1 mục (giả sử 1 tệp) trong một thư mục, có 3 liên kết cứng và st_nlink nói 3;
  2. Do đó, để thể hiện số lượng liên kết cứng thực tế, st_nlink phải ít nhất 2. Kết quả là, giá trị 1 được tự do để đại diện cho một cái gì đó khác, thay vì chỉ có 1 liên kết cứng, điều này không có ý nghĩa gì;
  3. Nếu hệ thống tệp ext4 được định dạng mà không có dir_nlink, sau đó st_nlink không thể lớn hơn 65000và hệ thống từ chối thêm nhiều mục hơn khi đạt đến giới hạn (tôi đã đọc về các hạt nhân hiện đại có thể tự động bật dir_nlink, nhưng hãy bỏ qua điều này để đơn giản hóa cuộc thảo luận);
  4. Nếu hệ thống tệp ext4 được định dạng bằng dir_nlink, sau đó khi có nhiều hơn 65000 các mục trong một thư mục, giá trị 1 sẽ được viết cho st_nlink trường để chỉ ra "số lượng liên kết cứng không xác định". Các máy khách (mã sử dụng hệ thống tệp ext4) phải duyệt qua danh sách các tệp (khối dữ liệu của thư mục) để đếm số mục thực tế bên trong nó;
  5. large_dir tăng kích thước tối đa của thư mục;
  6. Nếu dir_index Được sử dụng, large_dir tăng chiều cao tối đa của B-Tree được băm.

Những câu hỏi của tôi

  1. Nếu dir_nlink một mình được sử dụng, kích thước tối đa của một thư mục là bao nhiêu? Tôi đã từng nghĩ rằng nó là vô tận miễn là có đủ khối dữ liệu để lưu trữ danh sách các tệp trong thư mục, nhưng bây giờ có vẻ như không phải vậy.
  2. tôi nghĩ rằng sử dụng large_dir một mình không có ý nghĩa, vì kích thước thư mục vẫn bị giới hạn bởi 65000. Tôi có đúng không?
  3. Nếu large_dir được sử dụng, kích thước tối đa của một thư mục là bao nhiêu?
  4. Có bất kỳ nhược điểm nào khi sử dụng không large_dir? Lý do tại sao tôi có câu hỏi này là trong Ubuntu 20.04 LTS, dir_nlink được đặt theo mặc định (xem /etc/mke2fs.conf, nó nằm trong danh sách tại [fs_types] > máy lẻ4 > Tính năng, đặc điểm), nhưng large_dir không phải.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.