相关疑难解决方法(0)

与 ext4 结合使用的透明压缩文件系统

我正在尝试使用 ext4 文件系统测试需要压缩存储的项目,因为我使用的应用程序依赖于 ext4 功能。

是否有任何用于在 ext4 上进行透明压缩的生产/稳定解决方案?

我尝试过的:

启用压缩的ZFS 卷上的Ext4。这实际上产生了不利影响。我尝试创建一个启用 lz4 压缩的 ZFS 卷,并在 /dev/zvol/... 上创建一个 ext4 文件系统,但 zfs 卷显示实际使用量翻了一番,压缩似乎没有任何效果。

# du -hs /mnt/test
**1.1T**    /mnt/test
# zfs list
NAME        USED  AVAIL  REFER  MOUNTPOINT
pool       15.2T  2.70G   290K  /pool
pool/test  15.2T  13.1T  **2.14T**  -
Run Code Online (Sandbox Code Playgroud)

ZFS 创建命令

zpool create pool raidz2 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde2 /dev/sdf1 /dev/sdg1 /dev/sdh2 /dev/sdi1
zfs set recordsize=128k pool
zfs create -p -V15100GB pool/test
zfs set compression=lz4 pool/test
mkfs.ext4 -m1 -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink …
Run Code Online (Sandbox Code Playgroud)

linux zfs filesystems compression ext4

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

子目录的数量如何影响 Linux 上的驱动器读/写性能?

我在 Linux CentOS 服务器上有一个 EXT3 格式的驱动器。这是一个 Web 应用程序数据驱动器,包含每个用户帐户(有 25,000 个用户)的目录。每个文件夹都包含该用户上传的文件。总的来说,这个驱动器上大约有 250GB 的数据。

使用所有这些目录构建驱动器是否会影响驱动器读/写性能?它会影响我不知道的其他一些性能方面吗?

以这种方式构建事物是否存在本质上的错误或不好的地方?也许只是文件系统的错误选择?

我最近尝试合并两个数据驱动器并意识到 EXT3 仅限于 32,000 个子目录。这让我想知道为什么。考虑到每个文件都有一个与数据库中的 id 相对应的唯一 id,我以这种方式构建它似乎很愚蠢。唉...

linux performance filesystems ext4 ext3

11
推荐指数
4
解决办法
3445
查看次数

高目录文件比对 XFS 的影响

我们正在构建一个可能会生成非常大的 XFS 卷的产品,我正在尝试发现在给定架构的情况下我们可能遇到的扩展瓶颈。

当我们操作文件时,它们被放置在 XFS 卷上的目录中。由于我们处理的文件数量,文件数量肯定在数千万,并且在发布后不久可能会达到数亿。我们知道这一点是因为我们当前的产品是这样运行的,所以我们有理由期待我们的下一个产品也有类似的表现。

因此,正确的早期工程是有序的。

本周的文件基于以下粗略布局:

$ProjectID/$SubProjectID/[md5sum chunked into groups of 4]/file
Run Code Online (Sandbox Code Playgroud)

这给出了看起来有点像的目录:

0123456/001/0e15/a644/8972/19ac/b4b5/97f6/51d6/9a4d/file
Run Code Online (Sandbox Code Playgroud)

分块 md5sum 的原因是为了避免“一个目录中的大堆文件/目录”问题。由于 md5sum 分块,这意味着 1 个文件会导致创建 8 个目录。这对 inode 的影响非常明显,但我不清楚一旦我们达到规模,这些影响将对 XFS 产生什么影响。

有哪些影响?

顺便说一下,这是使用内核 2.6.32,目前是 CentOS 6.2(如果需要,可以更改)。

在测试中,我使用默认值创建了 xfs 卷,并且没有使用任何挂载选项。这是为了尽早解决问题。noatime很简单,因为我们不需要它。总体 XFS 调整是我需要解决的另一个问题,但现在我担心我们现在设计的元数据乘数效应。


我已经知道更好的解决方案是什么,我只是不知道我是否有理由推动改变。

由于 md5sums 的前几个数字非常独特,并且单个子项目很少超过 500 万个文件,在我看来,我们只需要前两个块。这将产生如下布局:

0123456/001/0e15/a644/897219acb4b597f651d69a4d/file
Run Code Online (Sandbox Code Playgroud)

一个完整的第一级和第二级在每个第一级目录中将有 2 16个一级目录和 2 16个二级目录,卷上总共有 2 32 个目录。

因此,假设的 500 万个文件子项目将有 2 16个一级目录,每个目录中大约有 76 (+/- 2) 个二级目录,每个二级目录中有一个或两个第三级目录。

这种布局的元数据效率更高。我只是不知道是否值得努力改变现在的情况。

linux xfs filesystems inode

6
推荐指数
1
解决办法
1082
查看次数

标签 统计

filesystems ×3

linux ×3

ext4 ×2

compression ×1

ext3 ×1

inode ×1

performance ×1

xfs ×1

zfs ×1