Bir dosya sisteminin içerebileceği maksimum dosya sayısı nedir?


34

Ubuntu'daki bir ext4 dosya sistemindeki bir dizin girişinin mevcut yapısı göz önüne alındığında, bir dosya sisteminin içerebileceği maksimum dosya sayısı nedir?

Bir dosya sisteminin içerebileceği maksimum dosya sayısını hesaplamanın genel yöntemi nedir?

Yanıtlar:


37

Ext4, her dosyayı tanımlamak için kullandığı inode numarasının boyutu ile sınırlanan teorik bir 4 milyar dosya sınırına sahiptir (ext4, 32 bit inode numaralarını kullanır). Bununla birlikte, John'un dediği gibi, ext4 inode tablolarını statik olarak tahsis eder, böylece dosya sistemi oluşturulduğunda gerçek limit belirlenir.

Df komutu, dosya sisteminizde size bir dizi boş düğüm gösterir:

$ df -i

Filesystem        iused     ifree  %iused  Mounted on
/dev/disk0s3   55253386  66810480    45%   /
/dev/disk1s3   55258045  66805821    45%   /Volumes/Clone

Ext4 ayrıca, dizin başına sınırsız sayıda alt dizini de destekler, ancak varsayılan olarak 64.000 sınırına kadar çıkabilir. Bu yapılandırılabilir - Çekirdek Yeni Başlayanlar'daki ext4 makalesine bakın .

Daha fazla bilgi için, bkz . Yeni ext4 dosya sistemi: mevcut durum ve 2007 Linux Sempozyumu'ndan gelecek planlar .


9

Başta bir tane yoktur; değişir. Bir ext4 dosya sistemi oluşturduğunuzda, sırayla dosya sisteminin bir kerede tutabileceği toplam dizin ya da dosyayı yöneten inode tablosunun boyutuna karar verirsiniz .


8
tune2fs -l /path/to/deviceBelirli bir dosya sistemi için sınırın ne olduğunu bulmak için Inode count değerini çalıştırabilir ve arayabilirsiniz

1
Inode sayısını artırabilir miyiz? Bildiğim kadarıyla, inodes, bağlı bir liste olarak saklanır, bu yüzden sadece bağlı listeye daha fazla düğüm eklemek gibi. Sanırım, soru bağlantılı bir listenin maksimum uzunluğu ne kadar olabilir?

4
Ext4'te, inode tablosu dosya sistemi oluşturulduğunda statik olarak tahsis edilir. Bunu arttırmanın tek yolu dosya sistemini yeniden oluşturmak. -N veya -i seçenekleri, oluşturulan inode sayısını ayarlamak için kullanılır.

1
Ayrıca dizinlerin dosya olduğunu ve bu şekilde sayılması gerektiğine dikkat etmek önemlidir.
dmckee,

1
Semboller gibi. Cihazların, FIFO'ların ve soketlerin sayılıp sayılmadığından emin değilim.
hızlı

1

Ubuntu değil, Redhat'te Linux gibi temel komutlar, 3 milyon dosya içeren bir dizine karşı çalışırken çok fazla argüman hatasıyla başarısız oluyor. ls hiçbir parametre eklenmemişse başarılı bir şekilde çalışır, ancak filtre parametreleri eklendiğinde aynı hatayla başarısız olur.

Bu tür temel komutların güvenilirliğini varsaymak zorunlu bir gereksinimdir, 3 milyon dosyanın çok fazla olduğunu söyleyebilirim.


3
Ancak bu bir dosya sistemi kısıtlaması değil.
user9517

1
İyi bir nokta! FS onu destekleyebilir, ancak aletlerin onunla başa çıkma zorluğu artacaktır.
Csaba Toth
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.