首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RHEL5:不能在tmpfs中创建大于256‘t的稀疏文件

RHEL5:不能在tmpfs中创建大于256‘t的稀疏文件
EN

Server Fault用户
提问于 2010-04-30 21:07:04
回答 2查看 1.8K关注 0票数 5

当您登录时,/var/log/lastlog会被写入。此文件的大小基于系统中最大的UID。最大UID越大,这个文件就越大。幸运的是,它是一个稀疏文件,因此磁盘上的大小比大小ls报告小得多(ls -s报告磁盘上的大小)。

在我们的系统中,我们是针对Active服务器进行身份验证的,UID用户被分配的最终结果是非常非常大。比如说,给第一个AD用户提供900,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000个,等等。

这很奇怪但应该没问题。不过,这会导致/var/log/lastlog成为huuuuuge -一旦lastlog中的AD用户日志显示为280 as。谢天谢地,它的实际规模仍然很小。

/var/log/lastlog存储在ext3文件系统上的硬盘上时,这很好。但是,如果lastlog存储在tmpfs文件系统中,则会中断。然后,tmpfs上的任何文件的最大文件大小似乎是256 to,因此sessreg程序在试图写入lastlog时出错。

这256 it的限制是从哪里来的,我怎样才能提高它?

作为创建大型稀疏文件的简单测试,我一直在做以下工作:

代码语言:javascript
复制
dd if=/dev/zero of=sparse-file bs=1 count=1 seek=300GB

我尝试过搜索"tmpfs最大文件大小“、”256 for文件系统限制“、"linux文件大小”之类的内容。我没能找到多少。我唯一能找到的256 to文件系统是,具有2KB块的ext3文件系统仅限于256 to文件。但是我们的硬盘是用4K块格式化的,所以似乎不是这样的--更不用说,这发生在安装在硬盘上的tmpfs上,所以ext3分区不应该成为一个因素。

这一切都发生在64位红帽企业Linux 5.4系统上.有趣的是,在我的个人开发机器(32位Fedora 6盒)上,我可以在tmpfs文件系统中创建300GB+文件。在RHEL5.4 5.4系统上,这是不可能的。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2010-05-01 03:40:05

答案可以在Linux源代码中找到,特别是/usr/src/linux/mm/shmem.c,从我的系统上的第70行开始(Gentoo 2.6.31-ish):

代码语言:javascript
复制
/*
 * The maximum size of a shmem/tmpfs file is limited by the maximum size of
 * its triple-indirect swap vector - see illustration at shmem_swp_entry().
 *
 * With 4kB page size, maximum file size is just over 2TB on a 32-bit kernel,
 * but one eighth of that on a 64-bit kernel.  With 8kB page size, maximum
 * file size is just over 4TB on a 64-bit kernel, but 16TB on a 32-bit kernel,
 * MAX_LFS_FILESIZE being then more restrictive than swap vector layout.

2TB中的八分之一就是256 GB.32位内核可以有更大的大小,正如您在32位FC6测试系统中所发现的那样。

看起来,将页面大小可能是相关的更改为启用内核中的HugeTLB文件系统支持。但是,对于内核的内核,我还不太清楚,无法说明如何、为什么、需要采取哪些步骤来利用它,也不知道它可能会产生什么其他影响。要启用它,运行make menuconfig,导航到文件系统,然后是伪文件系统。所讨论的选项是HugeTLB文件系统支持。它的在线帮助是:

代码语言:javascript
复制
CONFIG_HUGETLBFS:

hugetlbfs is a filesystem backing for HugeTLB pages, based on
ramfs. For architectures that support it, say Y here and read
<file:Documentation/vm/hugetlbpage.txt> for details.

If unsure, say N.

也许StackOverflow也有必要运行这个程序。我希望这能帮到你。

票数 7
EN

Server Fault用户

发布于 2010-04-30 22:19:58

一个建议..。您能否在tmpfs中创建一个ext3映像并将其挂载,并将lastlog放入其中?类似于:

代码语言:javascript
复制
cd /tmp
dd if=/dev/zero of=lastlog.img bs=1024k count=10
losetup /dev/loop1 lastlog.img
mkfs.ext3 /dev/loop1
mount /dev/loop1 /var/lastlog
票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/137544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档