我试图将两个挂载点聚合到一个目录中,以便它将两个文件中的文件合并到一个挂载点中。我正在使用overlayfs 进行一些测试并且已经能够创建合并的挂载点,但是当我从这个合并的目录中删除文件时问题就出现了。
我知道overlayfs有一个上层和一个下层文件系统,如果你从下层删除一些东西,它会在上层文件系统上创建一个“whiteout”,基本上只是将文件从下层隐藏起来,从“穿透”到合并层。该文件仍占用较低文件系统上的空间;它只是没有显示为可用。
我的问题是:如何从上层和下层文件系统中删除文件并回收已删除文件使用的空间,而不仅仅是隐藏它?我可以手动从合并目录中删除文件,然后从较低的目录中删除文件(这是一件坏事吗?)但df -ha仍然显示合并目录占用空间:
none 6.8G 1.9G 4.6G 30% /var/www/merged
/dev/loop0 380M 2.3M 354M 1% /mnt/lower1
/dev/loop1 380M 2.3M 354M 1% /mnt/lower2
/dev/loop2 380M 2.3M 354M 1% /mnt/upper
none 380M 2.3M 354M 1% /mnt/merged
Run Code Online (Sandbox Code Playgroud)
从overlayfs文件系统中删除文件并正确报告准确的磁盘使用情况的正确方法是什么?
我使用 Rackspace 的 CloudBlockStorage 作为设备在 3 个 Rackspace CloudServer 上使用 mdadm 创建了 3 个 RAID0 阵列。每个阵列都有自己的一组 CBS 卷。RS-CBS 的驱动器上限为 1TB,我需要更大的存储空间。其中一台服务器用于数据存储,第二台是该服务器的实时镜像,第三台是夜间快照。我使用以下命令在每台服务器上创建了数组:
mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/xvdb1 /dev/xvdd1 /dev/xvde1
Run Code Online (Sandbox Code Playgroud)
当需要扩展阵列时,由于这是我第一次扩展阵列,我从最不重要的服务器开始:快照服务器。我添加了一个新卷,并稍微摆弄了一下,想出了这个命令:
mdadm --grow /dev/md0 --raid-devices=4 --add /dev/xvdf1
Run Code Online (Sandbox Code Playgroud)
根据 mdadm 手册页,它说您无法扩展 RAID0,因此 mdadm 将其转换为 RAID4,进行扩展,然后再转换回来。(它永远不会转换回来,但这是另一个问题)。数组会重塑,但大小永远不会改变。我的假设是新驱动器刚刚成为阵列的奇偶校验驱动器。所以为了获得我需要的空间,我添加了另一个卷:
mdadm --grow /dev/md0 --raid-devices=5 --add /dev/xvdg1
Run Code Online (Sandbox Code Playgroud)
这重塑了我并为我提供了我希望的额外 500GB,所以我做到了resize2fs /dev/md0并且很高兴;2TB 空间。
所以这就是奇怪的地方。我切换到在镜像服务器上增长阵列。从前面的步骤知道我需要添加两个卷来获得我需要的额外空间,我使用这个命令:
mdadm --grow /dev/md0 --raid-devices=5 --add /dev/xvdf1 /dev/xvdg1
Run Code Online (Sandbox Code Playgroud)
它可以重塑并且看起来很好,但是当我执行resize2fs /dev/md0接下来的 a 时,df -hal我发现它确实增长了并且报告了 2.5TB 的空间,而不是我期望的 2.0TB。就好像它没有创建奇偶校验驱动器,我认为它从第一次运行开始就创建了并使用了阵列的所有可用空间。
看起来不同的一件事是mdadm -D /dev/md0镜像服务器上的重塑后的输出。我在 RAID …
我需要为大约 30 个客户重新颁发 SSL 证书。我希望有一种简单的方法来获取他们当前 CSR 的内容,将它们导入openssl req -new ...并生成一组全新的 CSR 和新密钥。我在 openssl 手册页上看到您可以执行openssl x509 -x509toreq -in cert.pem -out req.pem -signkey key.pem此操作,但这需要已经创建了 key.pem。
除了查看每个单独证书的内容并将复制粘贴到新请求之外,任何人都可以帮助解决此问题吗?
谢谢!
我在 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)