我在 Ubuntu 9.10 (Karmic) 上使用 LVM。我有一个 LVM 物理卷(和一个卷组)。
我在不再使用的 LVM 逻辑卷中有一个 ext3 文件系统,但目前我不想删除它。我试图弄清楚如何最大限度地减少它在我的 PV 内占用的空间。resize2fs 有 -M 选项,它可以很好地调整文件系统的大小以使其具有零可用空间,但这当然不会影响逻辑卷。网络上的大多数用于缩小 LV 内 ext3 的方法(例如这个),都遵循这种基本模式来缓解文件系统边界计算不准确等问题:
在我的情况下,这并不能完全解决问题,因为我希望 LV 大小由文件系统驱动,而不是相反。
我可以运行一个或多个命令来执行此操作吗?或者,我可以计算文件系统大小以有一定的信心给 lvresize 吗?
是否有更好的方法来加入已拆分的文件,而不仅仅是执行“cat”或“join”?这些命令只是将文件流复制到磁盘上的新文件中。更好的方法是操纵文件系统指针将文件连接成一个大的连续文件。当然,这将是特定于文件系统的。有什么可用于 ext2 或 ext3 的吗?
我使用 NetApp 设备作为 NAS 存储。我有很多小文件(30-60k)和目录。例如我有:30000 个目录和另外 1000-2000 个目录。
很多目录都是空的,但大多数目录都有很多文件(30k)。
我应该更改 Ext3 上的块大小吗?
我的硬盘驱动器似乎有问题,但我不确定是什么,或如何继续。任何问题的第一个迹象是:
我尝试在我的服务器上创建一个新目录,但是当我这样做时,它挂了大约 30 秒,然后给出了这个错误:
root@smallgames:~# mkdir derpherp
mkdir: cannot create directory `derpherp': Input/output error
Message from syslogd@smallgames at May 1 18:09:17 ...
kernel:[8731601.569393] journal commit I/O error
Run Code Online (Sandbox Code Playgroud)
然后我尝试运行fsck:
root@smallgames:~# fsck
fsck from util-linux 2.20.1
e2fsck 1.41.12 (17-May-2010)
/dev/vda1: recovering journal
fsck.ext3: Bad magic number in super-block while trying to re-open /dev/vda1
e2fsck: io manager magic bad!
Run Code Online (Sandbox Code Playgroud)
再次运行它会给出:
root@smallgames:~# fsck
fsck from util-linux 2.20.1
fsck.ext3: Unable to resolve 'UUID=e4565c70-2bcd-40c8-ac8a-dab5bab4167c'
Run Code Online (Sandbox Code Playgroud)
现在在任何东西上运行 ls 都会给我一个空目录。这是在 Proxmox 的 VM 中运行的 Debian。
dmesg在主服务器上运行提供了很多这些: …
我在 Rackspace 的 CloudServers 之一上托管了一台 linux 服务器,它显示我没有可用空间,但也显示我有 12GB 未在根分区上使用。该服务器的唯一工作是每晚通过 rsync 从另一台服务器 rsync 文件,并保留这些文件的紧急备份。
我找到了一个目录,其中包含一些不需要的备份文件,因此删除了这些文件,这就是给我 12GB 未使用空间的原因。删除文件会缩小“已用”空间,但不会给“可用”空间带来任何影响。
lsof没有表明它坚持任何东西,并df -i说我有很多空闲的 inode。
我也多次重新启动此服务器,但问题仍然存在。我什至重新启动到救援模式并fsck在设备上运行,但没有看到任何明显的错误:
root@RESCUE-nightly-snapshot:~# fsck /dev/xvdb1
fsck from util-linux 2.20.1
e2fsck 1.42 (29-Nov-2011)
/dev/xvdb1: recovering journal
Setting free inodes count to 20630768 (was 20630766)
Setting free blocks count to 2845985 (was 2755815)
/dev/xvdb1: clean, 340752/20971520 files, 81040087/83886072 blocks
root@RESCUE-nightly-snapshot:~#
Run Code Online (Sandbox Code Playgroud)
所以我有点卡住了,因为普通用户不能创建任何新文件,而 syslog 用户不能附加到任何日志文件。
最后,文件系统是 ext3,我脑子里的某个东西在说日志可能有些奇怪。我不知道这个空间是否可以被期刊占用,或者如何判断。
如果您有任何有关如何重新获得本应释放的空间的提示,我将不胜感激。
root@nightly-snapshot:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 315G 303G …Run Code Online (Sandbox Code Playgroud) 我有一个插入 CentOS 5.5 的 2TB USB 驱动器,该驱动器将使用 ext3 进行格式化,并且仅用于文件级备份。
我总是对我的驱动器进行分区,但不久前当我设置 Amazon EBS 时,文档说只格式化整个设备(例如 mkfs /dev/sdf 而不是 /dev/sdf1),ext3 会警告您但允许您这样做,它做到了。
据我了解,只有在我想从 USB 驱动器启动时才需要分区,这不会发生并且我真的想保存这 512 个字节。
跳过还是保留单个分区?为什么?
谢谢
假设平均文件大小为 8-30GB,在任何给定时间访问阵列的用户不超过 1-2 个,Ubuntu 10.10 的最佳文件系统是什么?
文件名在 EXT3 上的默认长度限制为 255 个字符。我有一个独特的要求,我需要更长的文件名(显然是因为 apache 的 mod_rewrite 使用文件名进行存储)。是否有任何设置我可以调整以将这个限制从 255 个字符增加?(或者,如果我可以更改 mod_rewrite 设置以不使用文件)
简单的答案是 1.) 移动到 ext4 和/或 2.) 以某种方式“分片”目录 - 通过将它们放在带有编号或字母的子文件夹中。
但是,这些更改并不容易,因此我正在寻找一些创造性的解决方案。有任何想法吗?
我有一个旧盒子(CentOS 5),它被格式化为 lvm 但现在我想将它转换为 ext3/4 文件系统而不会丢失数据。我有一些可以使用的空磁盘,那么有没有简单的方法来做到这一点?