Ubuntu 10.04.3 LTS x86_64,我看到以下内容/var/log/messages:
EXT4-fs warning (device sda3): ext4_dx_add_entry: Directory index full!
Run Code Online (Sandbox Code Playgroud)
来自 dumpe2fs 的相关信息:
Filesystem features: has_journal ext_attr resize_inode dir_index filetype
needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg
dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Free blocks: 165479247
Free inodes: 454382328
Block size: 2048
Inode size: 256
Run Code Online (Sandbox Code Playgroud)
我已经阅读了一些其他问题,例如ext3_dx_add_entry: Directory index full and rm on a directory with Millions files;这些让我觉得在某个地方一定有一个包含大量项目的目录。
由于它是一个相当复杂的目录组织,我有一个基本问题:如何找到生成这些消息的目录?
设置:运行在 MDADM LVM 之上的 RAID6 (MDADM) 加密设置中的 12 个 1TB 驱动器在 LVM 上的加密驱动器 EXT4 上运行
背景:我向 RAID 添加了一个新驱动器(从 11 个驱动器增加到 12 个驱动器),并通过层(MDADM 等)“冒泡”以重新调整 ext4 分区的大小。这台机器用作摄影的集中存储库和备份服务器(适用于 Windows 和 Mac 机器),因此将其关闭以添加驱动器并等待调整大小,一切都不是真正的选择。所以我几天前就开始了resize操作。HTOP 报告 resize2fs 操作现在运行了 81 小时。DMESG 和 syslog 都清晰,驱动器仍然可以访问。resize 命令报告它已开始对分区进行联机调整大小,因此该进程正在运行,并且它正在 100% 地烧毁我的一个核心。
问题:手术持续这么长时间是正常的还是出现了可怕的错误?我该从哪里开始寻找麻烦的迹象?
我正在尝试将现有的 ext4 分区更改为 Centos 6.3 64 位中的 reiserFS。
我已将内核更新为 Centos Plus:
首先,我更新了/etc/yum.repos.d/CentOS-Base.repo:
在该[centosplus]部分:
enabled=1
includepkgs=kernel*
Run Code Online (Sandbox Code Playgroud)然后我跑了yum ypdate,我的内核更新为 Centos Plus:
[root@vappsil disk]# uname -r
2.6.32-279.11.1.el6.centos.plus.x86_64
Run Code Online (Sandbox Code Playgroud)
然后,我已将其添加到 /etc/yum.repos.d/CentOS-Base.repo
进入[centosplus]部分:
includepkgs=kernel* jfsutils reiserfs-utils
Run Code Online (Sandbox Code Playgroud)进入[base]和[updates]部分:
includepkgs=kernel* jfsutils reiserfs-utils
Run Code Online (Sandbox Code Playgroud)但是当尝试执行时:
yum install reiserfs-utils
Run Code Online (Sandbox Code Playgroud)
我得到:
No package reiserfs-utils available.
Run Code Online (Sandbox Code Playgroud)
如何安装 reiserFS-utils 包来创建 reiserFS 分区?
我正在尝试加速用于开发/自动化测试环境的虚拟机的站立,并希望验证有关磁盘写入缓存的一些假设。
我ext4用于 VM 中的根文件系统,我并不真正关心断电情况。如果断电和磁盘损坏,整个机器可以在几分钟内重建。对我来说,这意味着可以安全地应用以下选项,它应该对应用程序没有影响——它们只会影响缓冲数据写入磁盘本身的方式,但缓存的内存表示将始终准确:
这样对吗?是否还有其他 ext4 参数我应该查看以提高性能?
我在 arch wiki 上读到,不建议在磁盘上创建 ZFS 文件系统之前对其进行分区。我搜索但没有找到任何关于 ext4 的声明。
所以我的问题:
我有一个 ext4 卷,在特定目录中有很多文件。
每当我尝试在其中创建具有特定名称的文件时,都会收到“设备上没有剩余空间”错误。
$ touch /data/lake/http:____images__br037__319854_366_tp.jpg
touch: cannot touch ‘/data/lake/http:____images__br037__319854_366_tp.jpg’: No space left on device
Run Code Online (Sandbox Code Playgroud)
如果我更改文件名的一个字母,它就可以工作。
这是该卷的磁盘使用情况和 inode 使用情况:
# df -h /dev/xvdf
Filesystem Size Used Avail Use% Mounted on
/dev/xvdf 985G 679G 256G 73% /data
# df -i /dev/xvdf
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/xvdf 65536000 24751661 40784339 38% /data
Run Code Online (Sandbox Code Playgroud)
我还运行了 fsck 以确保它不是磁盘损坏问题。
# e2fsck -y /dev/xvdf
e2fsck 1.42.9 (4-Feb-2014)
/dev/xvdf: clean, 24751661/65536000 files, 182020406/262144000 blocks
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我如何进一步调试它。
我正面临 .s 报告的 fs 空间错误的问题df。
我们谈论的是裸机 Ubuntu 14.04 服务器,/分区由 LVM 管理。
报告df的大小与 fs 超级块报告的大小不同。还从du -skh(在与/分区相关的目录上)计算大小证明df显示的结果不正确。
这是报道的内容df:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rootvg-lv_root 20G 16G 2.8G 86% /
Run Code Online (Sandbox Code Playgroud)
这是超级块报告的内容(3616906*4096/1024**2=14128 MB free):
Last mounted on: /
Filesystem magic number: 0xEF53
Filesystem state: clean
Filesystem OS type: Linux
Inode count: 1290240
Block count: 5242880 << exactly 20 GB
Reserved block count: 227170
Free blocks: 3616906 …Run Code Online (Sandbox Code Playgroud) 在我们公司,我们在多台服务器上有很多 kvm 客户端,大多数客户端都运行 ubuntu 16.04 及其主机系统。
选择的文件系统变成了 EXT4,用于客户端和主机。最近我使用 BTRFS 提供的一些很棒的快照功能来设置一个带有增量备份的备份服务器。
一些研究提供了一条线索,KVM 主机从不使用 BTRFS,因为 FS 的碎片会减慢客户端的速度,直到它们最终甚至冻结。
在 KVM 客户端上使用 BTRFS 有什么建议/做/不做吗?
我们正在重新考虑客户端和主机的 FS 选择,使用 XFS 是否比 EXT4(客户端/主机或仅一侧)有优势?
我目前正在尝试不同的方法来使用快速 NVMe 设备提高 Debian 上相当大的、基于旋转磁盘的软件突袭 (mdadm) 阵列的写入速度。
我发现使用一对这样的设备(raid1,镜像)来存储文件系统的日志会产生有趣的性能优势。我用来实现这一点的安装选项是noatime,journal_aync_commit,data=journal.
在我的测试中,我还发现添加该barrier=0选项在写入性能方面提供了显着的好处。但是,我不确定在我的特定文件系统配置中使用此选项是否安全。这是内核文档关于 ext4 写屏障的说明:
写屏障强制对日志提交进行适当的磁盘排序,使易失性磁盘写入缓存可以安全使用,但会降低一些性能。如果您的磁盘以一种或另一种方式由电池供电,则禁用屏障可以安全地提高性能。
我使用的特定 NVMe 设备是Intel DC P3700,它具有内置断电保护功能,这意味着在意外关机的情况下,由于储备能量,临时缓冲区中仍然存在的任何数据都可以安全地提交到 NAND 存储贮存。
所以我的问题是,如果日志存储在具有电池后备缓存的设备上,而文件系统的其余部分本身位于没有此功能的磁盘上,我是否可以安全地禁用 ext4 写屏障?
我有一个 64 GB 的 Linux 磁盘映像,分区中有大约 50 GB 的未使用空间。该文件是稀疏的,因此它只需要大约 14 GB 的磁盘空间。
但是如果我dd是图像,它会写入完整的 64 GB,这需要很长时间。
有什么方法可以对dd if=os.img of=/dev/sdb这个图像做等效的处理,而不必写 50 GB 的零?
是否有足够智能的工具来执行此操作,即具有 EXT4 文件系统意识的成像工具?
ext4 ×10
filesystems ×5
linux ×5
ubuntu ×2
btrfs ×1
centos ×1
df ×1
disk-image ×1
hard-drive ×1
lvm ×1
mdadm ×1
nvme ×1
partition ×1
performance ×1
reiserfs ×1
yum ×1
zfs ×1