在ext4 wiki 文章中,我看到 ext4 最多可以使用 1 EiB,但只建议使用最多 16 TiB。为什么会这样?为什么建议将 XFS 用于较大的文件系统?
(ELICS:像我是 CS 学生一样解释我,但对文件系统了解不多)
在我的设置中,我有两个磁盘,每个磁盘都按以下方式格式化:
(GPT)
1) 1MB BIOS_BOOT
2) 300MB LINUX_RAID
3) * LINUX_RAID
Run Code Online (Sandbox Code Playgroud)
引导分区映射在 /dev/md0 中,rootfs 映射在 /dev/md1 中。md0 用 ext2 格式化,md1 用 XFS 格式化。(我知道必须在 md 设备上而不是在 sd 上进行格式化 - 请告诉我这是否有误)。
如何正确设置 GRUB,以便在一个驱动器出现故障时,另一个仍能启动?并且通过扩展,替换驱动器也将自动包含 GRUB?当然,如果这甚至可能的话。
我们已经看到操作系统在 fork 进程时进行 Copy on Write 优化。原因是大多数情况下 fork 都在 exec 之前,所以我们不想承担页面分配和从调用者地址空间不必要地复制数据的成本。
那么在带有 ext4 或 xfs(日志)文件系统的 linux 上执行 CP 时,是否也会发生这种情况?如果它没有发生,那为什么不呢?
根据这篇博客,
XFS 是旧文件系统,处理小文件时运行缓慢。
阅读本文时,我的第一印象是 XFS 不好。
然而有人告诉我 XFS 使磁盘性能更好,这个基准测试没有意义。
因此,我对此进行了更多研究,并发现了以下事实。
维基百科说
XFS 是由 Silicon Graphics, Inc (SGI) 于 1993 年创建的高性能 64 位日志文件系统。它是 SGI 的 IRIX 操作系统从 5.3 版开始的默认文件系统。XFS 于 2001 年移植到 Linux 内核;截至 2014 年 6 月,大多数 Linux 发行版都支持 XFS,其中一些将其用作默认文件系统。
维基百科又...
XFS 中的元数据操作历来比其他文件系统慢,导致例如删除大量文件等操作性能不佳。
而howtogeek说,
XFS 在处理大文件时性能较好,但在处理大量小文件时性能比其他文件系统差。它对于主要需要处理大文件的某些类型的服务器可能很有用。
这些事实和基准是否正确?
我已经在我的机器上安装了 centOS 7,过去 4-5 个月我一直在使用它,它运行良好。但是几天前由于停电(不正确关闭),我的机器发生了一些不好的事情。现在,当我启动系统时,它一开始就给了我这条消息。
XFS (dm-0): Internal error XFS_WAIT_CORRUPTED at line 1600 of file fs/xfs/libxfs/xfs_alloc.c. Caller xfs_free_extent+0xf9/0x130 [xfs]
XFS (dm-0): Failed to recover EFIs
Run Code Online (Sandbox Code Playgroud)
带有结束错误消息
...
Mounting /sysroot...
[ ***] A start job is running for /sysroot (3min 59s / 4min 31s)[240.527013] INFO: task mount:406 blocked for more than 120 seconds.
[ 240.527056] "echo 0 > /proc/sys/kernel/hung_task_timeout+secs" disables this message."
[FAILED] Failed to mount /sysroot.
See 'systemctl status sysroot.mount' for more details.
[DEPEND] Dependency failed for Initrd Root File …Run Code Online (Sandbox Code Playgroud) 我有一个包含日志文件的目录,我将用户启动的脚本中的日志放入其中。在这种情况下,似乎不可能使用 syslog 进行记录。(非守护进程 rsync)
我希望用户对日志文件只有写权限。问题是,必须进一步限制写入权限,以便用户(脚本)只能附加到该文件。底层文件系统是 XFS。
以下不起作用:
# chattr +a test.log
chattr: Inappropriate ioctl for device while reading flags on test.log
Run Code Online (Sandbox Code Playgroud)
有没有其他解决方案?谢谢你的提示。
操作系统:RHEL8 文件系统:xfs
我猜测某个僵尸进程正在占用该空间,但我找不到它。
问题在于/var/lib/pgsql/14,它df表示正在使用 1.1TB 的空间:
$ sudo df -T -xtmpfs -xdevtmpfs -h --sync
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 xfs 126G 14G 113G 11% /
/dev/sda1 xfs 2.0G 658M 1.4G 33% /boot
/dev/mapper/pgsql14vg-pgsql141v xfs 5.4T 1.1T 4.4T 20% /var/lib/pgsql/14
/dev/mapper/pglogvg-pglog1v xfs 15G 292M 15G 2% /var/log/postgresql
FISPFILNAS01.xxxxxxxxxxxx:/DB_backups_TAPb nfs4 15T 2.3T 13T 16% /var/lib/pgsql/14/backups
Run Code Online (Sandbox Code Playgroud)
然而,du说它只有 12GB 的文件:
$ du -x -d2 -h /var/lib/pgsql/14 | sort -k2
12G /var/lib/pgsql/14
12G /var/lib/pgsql/14/data
42M …Run Code Online (Sandbox Code Playgroud) 我尝试使用 dm-crypt 和 LVM 设置 Fedora 25,但很难使 TRIM 工作。
$ sudo fstrim -av
/boot: 28.6 MiB (30003200 bytes) trimmed
/: 56.5 GiB (60672704512 bytes) trimmed
$ sudo fstrim -av
/boot: 0 B (0 bytes) trimmed
/: 56.5 GiB (60671877120 bytes) trimmed
Run Code Online (Sandbox Code Playgroud)
从上面的输出中可以看出,重复运行fstrim在未加密的ext4 上有效 /boot,但似乎对/(在同一磁盘上)没有影响。
设置是 SSD -> dm-crypt -> LVM -> XFS
$ lsblk -D
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda 0 512B 2G 0
??sda2 0 512B 2G 0
? ??luks-dd5ce54a-34c9-540c-a4cf-2a712b8a3a5e 0 512B …Run Code Online (Sandbox Code Playgroud) 我有一个包含大量小文件的 ext4 分区(VM 上的 LVM),我必须每 3-4 个月扩展一次。
关于 inode 使用的空间量。
xfs、btrfs 或 ext4 文件系统之一是否使用较少的空间?
换句话说,切换到 btrfs 或 xfs 会使分区填充 inode 比使用 ext4 慢吗?