J'ai une partition ext4 (LVM sur une machine virtuelle) avec une grande quantité de petits fichiers , que je dois étendre tous les 3-4 mois.
Concernant la quantité d'espace utilisée par les inodes.
L'un des systèmes de fichiers xfs, btrfs ou ext4 utilise-t-il moins d'espace?
En d'autres termes, le passage à btrfs ou xfs ralentira-t-il le remplissage d'une partition avec des inodes puis avec ext4?
mkfs.ext4 -t news
pour de meilleurs résultats. Aussi, je suggère de tester - créer (sur lvm, ou périphérique de bouclage par exemple) chacun des systèmes de fichiers à tour de rôle, et commencer à copier vos vrais fichiers jusqu'à ce qu'il se remplisse. Quand il se remplit, faitesdf -i
(oufind | wc -l
) pour trouver celui qui a réussi à stocker la plupart de vos fichiers - de cette façon, vous en serez sûr.-T
avec un T majuscule. Le fichier de configuration a également d'autres choix utilesmkfs.ext4 -T news
Réponses:
Pour commencer avec votre première question: oui, l'un de ces systèmes de fichiers utilise moins d'espace. Même sans plus de détails, il est peu probable qu'ils utilisent tous exactement la même quantité d'espace, étant donné qu'ils ont des implémentations différentes. On est donc obligé d'utiliser moins d'espace que tous les autres.
Btrfs a l'allocation dynamique des inodes, il n'y a donc pas de remplissage comme vous le faites avec les tables d'inodes pour ext4 (dont la taille est définie au moment de la création du système de fichiers ext4).
XFS est dynamique de manière similaire, mais a une limite (pourcentage du système de fichiers qui peut être utilisé pour les inodes), donc là, si vous remplissez votre allocation d'inode dépend du pourcentage défini ainsi que du nombre de fichiers / tailles de fichier
la source
xfs_growfs -m XX
Oui, et sachez que tout dépend de vos besoins:
Btrfs (prononcé comme Butter FS, Better FS ou B-Tree FS)
Étant donné que le btrfs sera capable de s'étendre sur plusieurs disques durs, c'est un très bon format qu'il peut prendre en charge 16 fois plus d'espace disque que l' ext4 . Une taille de partition maximale du système de fichiers btrfs est de 16 exbibytes, ainsi qu'une taille de fichier maximale de 16 exbibytes également.
Nombre maximum de fichiers: 2 ** 64
XFS
Le XFS est un système de fichiers de journalisation 64 bits hautes performances. XFS prend en charge la taille maximale du système de fichiers de 8 exbibytes pour le système de fichiers 64 bits. Maintenant, RHEL 7.0 utilise XFS comme système de fichiers par défaut, y compris la prise en charge de l'utilisation de XFS pour la
/boot
partition.Nombre maximum de fichiers: 2 ** 64
EXT4
L' ext4 est bien connu car il apporte les améliorations de vitesse par rapport à ext3. L'ext4 a quelques limites. La taille maximale d'un fichier est de 16 tébioctets (soit environ 17,6 téraoctets). Le plus grand volume / partition que vous pouvez avoir avec ext4 est de 1 exbibyte. Comme dans les systèmes de fichiers les plus modernes, c'est un système de fichiers de journalisation qui signifie qu'il gardera un journal de l'endroit où les fichiers sont principalement situés sur le disque et de toutes les autres modifications qui se produisent sur le disque. Indépendamment de toutes ses fonctionnalités, il ne prend pas en charge la compression transparente, le chiffrement transparent ou la déduplication des données. Les instantanés sont pris en charge techniquement, mais cette fonctionnalité est au mieux expérimentale.
Nombre maximum de fichiers: 4 milliards
XFS vs Btrfs
XFS n'a pas de RAID, tandis que Btrfs RAID n'est pas encore complètement stable et en est à ses débuts. XFS est de plus en plus mature que Btrfs , mais nous ne pouvons pas nier que Btrfs est puissant et un système de fichiers en pleine croissance.
Pour l'instant, XFS est mon choix - d'autant plus que c'est le FS par défaut sur RHEL 7 -, sauf si j'ai vraiment besoin de Btrfs.
la source
Je suppose que le problème que vous avez n'est pas la partition qui se remplit d'inodes en soi, mais qui manque de nombre d'inodes dans le système de fichiers. ext4 réserve les inodes statiquement lorsque le système de fichiers est créé, mais vous pouvez définir le nombre avec des options pour
mkfs.ext4
:Le manuel indique explicitement que le rapport d'octets par inode ne peut pas être modifié après la création du FS, mais le nombre total sera mis à l'échelle pour correspondre au rapport si le FS est redimensionné.
Vous pouvez également définir la taille de chaque inode. La valeur par défaut est de 256 octets sur "la plupart" des systèmes de fichiers, mais peut être réduite à 128 (la valeur par défaut pour les "petits" systèmes de fichiers). L'espace supplémentaire est utilisé pour stocker des attributs étendus (par exemple, les étiquettes SELinux), donc si vous n'en avez pas besoin, il devrait être sûr de réduire la taille au minimum.
df -i
devrait montrer le nombre d'inodes alloués et utilisés. Avec les options par défaut, une partition de 30 Go que j'ai examinée avait un inode pour 16 Ko, mais si vos fichiers sont très petits, vous pouvez définir, par exemple,-i 4096
un inode pour chaque bloc de données du système.Si vos fichiers sont inférieurs à 4096, vous souhaiterez peut-être également réduire la taille des blocs du système de fichiers, car tous les fichiers normaux nécessiteront de toute façon un bloc de données complet. (C'est-à-dire sur ext4. Je ne sais pas si d'autres systèmes de fichiers actuels emballent de petits fichiers.)
mkfs.ext4
a également l'-T <type>
option qui peut être utilisée comme raccourci pour tout ou partie de ceux-ci. Les paramètres sont dedans/etc/mke2fs.conf
, ce qui sur mon Debian rend par exemplemkfs.ext4 -T small
équivalent àCe qui n'est peut-être pas un mauvais ensemble d'options pour de nombreux petits fichiers (et pas de xattrs.)
Si vos fichiers sont encore plus petits que 1 Ko, un système de fichiers n'est peut-être pas le meilleur moyen de sauvegarder les données, mais quelque chose comme une base de données ou un système spécifique à une application devrait peut-être être envisagé.
la source