标签: ext3

磁盘满了,du 就不同了。如何进一步调查?

我在服务器(硬件 Raid 1)中有一个 SCSI 磁盘,32G,ext3 文件系统。df告诉我磁盘已 100% 已满。如果我删除 1G,这将正确显示。

但是,如果我运行 adu -h -x /然后du告诉我只使用了 12G(我使用-x是因为一些 Samba 安装)。

所以我的问题不是关于 du 和 df 命令之间的细微差别,而是关于我如何找出造成这种巨大差异的原因?

我为 fsck 重新启动了机器,但没有错误。我应该跑badblocks吗?lsof向我显示没有打开的已删除文件,lost+found是空的,并且消息文件中没有明显的警告/错误/失败语句。

请随时询问有关设置的更多详细信息。

linux ext3 disk-space-utilization scsi

149
推荐指数
9
解决办法
23万
查看次数

rm 在包含数百万个文件的目录上

背景:物理服务器,大约两年,7200-RPM SATA 驱动器连接到 3Ware RAID 卡,ext3 FS 挂载 noatime 和 data=ordered,不在疯狂负载下,内核 2.6.18-92.1.22.el5,正常运行时间 545 天. 目录不包含任何子目录,只有数百万个小(~100 字节)文件,还有一些更大的(几 KB)文件。

我们有一台服务器在过去几个月中出现了一些问题,但我们直到前几天才注意到它,因为它开始无法写入目录,因为它包含太多文件。具体来说,它开始在 /var/log/messages 中抛出这个错误:

ext3_dx_add_entry: Directory index full!
Run Code Online (Sandbox Code Playgroud)

有问题的磁盘有大量剩余的 inode:

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda3            60719104 3465660 57253444    6% /
Run Code Online (Sandbox Code Playgroud)

所以我猜这意味着我们达到了目录文件本身可以有多少条目的限制。不知道会有多少文件,但正如您所见,不能超过三百万左右。不是那么好,请注意!但这是我的问题之一:上限到底是多少?是可调的吗?在我被骂之前——我想把它调低;这个庞大的目录导致了各种各样的问题。

无论如何,我们在生成所有这些文件的代码中找到了问题,我们已经更正了它。现在我坚持删除目录。

这里有几个选项:

  1. rm -rf (dir)

    我先试过这个。在它运行了一天半没有任何明显影响后,我放弃并杀死了它。

  2. 目录上的 unlink(2):绝对值得考虑,但问题是通过 fsck 删除目录中的文件是否比通过 unlink(2) 删除更快。也就是说,以某种方式,我必须将这些 inode 标记为未使用。当然,这假设我可以告诉 fsck 不要删除 /lost+found 中文件的条目;否则,我只是转移了我的问题。除了所有其他问题之外,在阅读更多内容之后,结果证明我可能不得不调用一些内部 FS 函数,因为我能找到的 unlink(2) 变体都不允许我随意删除一个包含条目的目录。呸。
  3. while [ true ]; do ls -Uf | head -n 10000 | xargs rm -f 2>/dev/null; …

ext3 directory kernel rm

118
推荐指数
6
解决办法
5万
查看次数

55
推荐指数
6
解决办法
10万
查看次数

你如何让 e2fsck 显示进度信息?

我在一个非常大的(1TB+)ext3 磁盘上运行 e2fsk

e2fsck -v /dev/sda1
Run Code Online (Sandbox Code Playgroud)

来自使用 PXE 启动的 RIPLinux。

我得到

e2fsck 1.41.6 (30-May-2009)
/dev/sda1 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Run Code Online (Sandbox Code Playgroud)

然后是很长的停顿……

我如何了解活动?

理想情况下,完成项目的计数与总数和某种 ETA。

linux ext3 fsck

49
推荐指数
3
解决办法
7万
查看次数

如何在 ext3/linux 上使 `rm` 更快?

我使用默认选项安装了 ext3 文件系统。在它上面我有一些 ~ 100GB 的文件。

删除任何此类文件需要很长时间(8 分钟)并会导致大量 io 流量,从而增加服务器负载。

有什么方法可以使 rm 不那么具有破坏性?

linux performance ext3 rm unlink

32
推荐指数
3
解决办法
3万
查看次数

文件系统单个目录中的大量文件

好的,不是那么大,但我需要使用一些东西,其中大约 60,000 个平均大小为 30kb 的文件存储在单个目录中(这是一个要求,因此不能简单地分成具有较少文件数量的子目录)。

这些文件将被随机访问,但一旦创建,将不会写入同一文件系统。我目前正在使用 Ext3,但发现它很慢。有什么建议?

linux ext3

31
推荐指数
5
解决办法
5万
查看次数

在 Linux 上存储和备份 1000 万个文件

我运行一个网站,其中大约 1000 万个文件(书籍封面)存储在 3 个级别的子目录中,范围为 [0-f]:

0/0/0/
0/0/1/
...
f/f/f/
Run Code Online (Sandbox Code Playgroud)

这导致每个目录大约有 2400 个文件,这在我们需要检索一个文件时非常快。这也是许多问题建议的做法。

但是,当我需要备份这些文件时,仅浏览包含 10m 文件的 4k 目录就需要很多天。

所以我想知道我是否可以将这些文件存储在一个容器(或 4k 容器)中,每个文件系统都完全像一个文件系统(某种安装的 ext3/4 容器?)。我想这几乎与直接访问文件系统中的文件一样有效,并且这将具有非常有效地复制到另一台服务器的巨大优势。

关于如何做到最好的任何建议?或者任何可行的替代方案(noSQL,...)?

linux storage filesystems ext4 ext3

26
推荐指数
4
解决办法
7230
查看次数

CentOS 认为磁盘繁忙,无法挂载或 fsck

我是一个长期用户,也是第一次提交问题。我花了一整天时间在这个网站和许多其他网站上搜索解决方案,但我必须求助于请求帮助来解决我的情况。

历史:我们的 HP Proliant、Centos 5.9 服务器昨天在没有正确关机程序的情况下关机。从那时起,/home 分区一直处于我们无法 fsck、挂载或卸载它的状态。umount 表示它没有挂载,而 mount/fsck 表示它正忙或已经挂载。这最初导致服务器无法启动。我们最终从 /etc/fstab 中删除了磁盘/分区,以便启动不会失败。

# mount -t ext3 /dev/cciss/c0d0p1 /home
mount: /dev/cciss/c0d0p1 already mounted or /home busy

# fsck /dev/cciss/c0d0p1 
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
fsck.ext3: Device or resource busy while trying to open /dev/cciss/c0d0p1
Filesystem mounted or opened exclusively by another program?
Run Code Online (Sandbox Code Playgroud)

如您所见,磁盘没有以任何方式挂载。

df输出:

# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/cciss/c0d1p3    198381228  24920704 163220696  14% /
/dev/cciss/c0d1p2    267818128    191652 253802544   1% /logs
/dev/cciss/c0d1p1       194442     33575    150828 …
Run Code Online (Sandbox Code Playgroud)

ext3 hard-drive mount centos fsck

26
推荐指数
1
解决办法
5万
查看次数

一个 ext3 目录中的最大文件数同时仍能获得可接受的性能?

我有一个写入 ext3 目录的应用程序,随着时间的推移,该目录已增长到大约 300 万个文件。不用说,读取这个目录的文件列表是慢得无法忍受的。

我不怪 ext3。正确的解决方案是让应用程序代码写入子目录,例如./a/b/c/abc.ext而不是仅使用./abc.ext.

我正在更改这样的子目录结构,我的问题很简单:我应该期望在一个 ext3 目录中存储大约多少文件,同时仍能获得可接受的性能?你有什么经验?

或者换句话说;假设我需要在结构中存储 300 万个文件,该结构应该有多少层深./a/b/c/abc.ext

显然,这是一个无法准确回答的问题,但我正在寻找一个球场估计。

linux filesystems ext3 capacity-planning linux-kernel

25
推荐指数
3
解决办法
2万
查看次数

resize2fs 在 1TB 分区上需要多长时间?

我在大学里买了一台新电脑,当我注意到这台机器的前一个用户ext3只使用了一个巨大的 1TB分区时,我几乎为自己设置了一切。

我通常保持/home在一个单独的分区上,我也更喜欢使用 LVM,所以我决定使用缩小分区resize2fs,然后在我释放的空间中创建我常用的 LVM 内容。(整个硬盘只有30G左右的数据,应该问题不大)。

我使用 live CD 重新启动并要求resize2fs将分区缩小到更合理的大小(50G),它似乎在前一刻钟左右的时间内非常密集地移动数据(从硬盘的噪音判断) .

现在它已经运行了三个多小时,尽管 CPU 使用率为100%,但 HD 几乎听不到任何噪音。

  1. 这是正常的吗?
  2. 是否resize2fs出于某种原因在后台进行了一些密集的数字运算,这就是为什么我听不到 HD 发出的噪音?
  3. 调整整个分区的大小需要多长时间?

linux filesystems ext3

20
推荐指数
2
解决办法
5万
查看次数