Questions tagged «filesystems»

文件系统是计算机中文件的存储,命名和组织方式的规范。此标记应用于一般文件系统问题。对于特定的文件系统问题(FAT,NTFS,ext4等),请使用适当的标记。


2
ext4可以将文件系统写入内容缓存多长时间?
前一段时间,已经有一些关于ext4的讨论,它们可能会在不干净的卸载后留下空文件,本文对此进行了很好的总结。基本上,由于分配延迟,写操作可以在写缓存中保留的时间比ext日志的默认提交间隔(5秒)更长。 这些问题似乎已在修补程序中得到修复,该修补程序在某些情况下会强制分配块,从而默认情况下最多在5秒后将数据强制插入磁盘。 我想知道当应用程序覆盖文件的现有部分而不截断或附加文件本身时会发生什么。还会在5秒内将其强行插入磁盘吗? 似乎与附加到文件的情况不同:附加时,文件大小会更改,这是元数据更改;因此,必须在5秒钟之内提交日志,并且由于data = ordered的原因,出于安全考虑,必须在此之前写入数据(否则,其他用户的已删除文件的某些部分可能会显示为附件的所有者)文件)。 仅覆盖文件数据时,没有理由为什么在元数据日志提交之前就必须进行数据写入,因为旧数据与新数据属于同一用户。那么写是否在提交之前进行,还是可以延迟比日志提交间隔更长的时间?如果是这样,需要多长时间? 更新:我知道做正确的事情,即使用fsync()时,所有这些都无关紧要。(这是所有有关ext4和数据丢失的讨论的主要原因-问题仅涉及应用程序未进行fsync()处理或在适当的时候出现。)我不是在编写自己的应用程序,而是因为我我不知道我所有的应用程序是否都做对了,我想知道这种“危险”写入的大概时间。问的原因是我的图形驱动程序会定期导致内核崩溃,并且我想知道是否要担心最后5秒钟的数据写入。
14 filesystems  ext4 


4
在BTRFS文件系统上托管虚拟磁盘映像的原因
我已经阅读了一段时间有关BTRFS和ZFS的文章,尽管我很欣赏CoW在托管重要文件时的好处,但目前我对以下困境感到困惑: 考虑到ZFS和BTRFS在托管受随机写入影响的大文件(例如QCOW2,VDI等)时似乎都遭受性能下降,为什么有人会选择BTRFS作为托管VM的FS? 我知道在BTRFS的情况下,您可以使用chattr或nodatacow挂载选项有选择地关闭CoW,从而减少碎片和CoW造成的降级... 但是,根据Redhat所说,这也“禁用了数据和元数据的校验和验证,从而降低了数据完整性”。(除了压缩损失外,自然还有所需的CoW)。 基于此我问:为什么有人会选择BTRFS而不是说XFS over LVM over MD RAID?




3
断电时NTFS是否可以进行故障保护吗?
万一断电,NTFS文件系统会受到损害吗?例如损坏或导致文件损坏?在断电的情况下,是否可以保证动态磁盘上的NTFS内置镜像能够使文件保持一致状态? 我的观点是日记文件系统是专门设计用来容忍此类问题的。NTFS文件系统不能保证用户数据,但是数据库管理系统之类的应用程序具有保护数据的事务管理器。 摘自一本伟大的书籍《Microsoft Windows Internals》: NTFS NTFS包括许多高级功能。其最重要的功能之一是可恢复性。如果系统意外停止,则FAT卷的元数据可能会保持不一致状态,从而导致大量文件和目录数据损坏。NTFS以事务方式记录对元数据的更改,以便可以将文件系统结构修复到一致状态而不会丢失文件或目录结构信息。(但是,文件数据可能会丢失。) NTFS设计目标和功能 高端文件系统要求 从一开始,NTFS就被设计为包括企业级文件系统所需的功能。为了在遇到意外的系统中断或崩溃时最大程度地减少数据丢失,文件系统必须确保始终保证其元数据的完整性。最后,文件系统必须允许基于软件的数据冗余,作为保护用户数据的硬件冗余解决方案的低成本替代方案。 可恢复性 NTFS使用原子事务来实现其文件系统恢复功能。如果程序启动了更改NTFS卷结构的I / O操作(即更改目录结构,扩展文件,为新文件分配空间等等),则NTFS将该操作视为原子事务。它保证事务已完成,或者如果系统在执行事务时失败,则回滚。 此外,NTFS使用冗余存储来存储重要的文件系统信息,因此,如果磁盘上的某个扇区损坏,NTFS仍可以访问该卷的关键文件系统数据。 数据冗余和容错 除了文件系统数据的可恢复性之外,一些客户还要求其自身的数据不因停电或灾难性的磁盘故障而受到威胁。NTFS恢复功能确实可以确保卷上的文件系统保持可访问性,但是它们不能保证完全恢复用户文件。通过数据冗余为不会冒丢失数据风险的应用程序提供保护。 用户文件的数据冗余是通过Windows分层驱动程序模型实现的,该模型提供了容错磁盘支持。卷管理器可以将一个磁盘上的数据镜像或复制到另一磁盘上,以便始终可以检索冗余副本。 NTFS恢复支持 NTFS恢复支持可确保在发生电源故障或系统故障时,不使文件系统操作(事务)不完整,并且无需运行磁盘修复实用程序即可保留磁盘卷的结构。NTFS Chkdsk实用程序用于修复由I / O错误(例如,坏扇区,电气异常或磁盘故障)或软件错误引起的灾难性磁盘损坏。但是有了NTFS恢复功能,很少需要Chkdsk。 可恢复文件系统 尽管在系统崩溃的情况下NTFS不能保证对用户数据的保护-某些更改可能会从缓存中丢失-应用程序可以利用NTFS的直写和现金刷新功能来确保将文件修改记录在磁盘以适当的时间间隔。高速缓存直写-强制将写操作立即记录在磁盘上-和现金冲洗-强制将内容写到磁盘上-是高效的操作。此外,与FAT文件系统不同,NTFS保证用户数据将保持一致,并且在直写操作或现金透支后立即可用,即使系统随后发生故障也是如此。

2
如何更改位于设备/ dev / sdb1上的vfat文件系统上的文件系统标签?
我只是按照Cyber​​citi.biz的指示格式化我的Kingston USB驱动器。 我将驱动器格式化为vfat,而不是ext2。我在使用mkfs.vfat(网页未提及)时忘记使用命名选项,而在尝试使用时却mren得到: sudo mren /dev/sdb1 KINGSTON Can't open /dev/fd0: No such device or address Cannot initialize 'A:' 有没有一种方法可以重命名文件系统,还是只需要等到下次重新格式化文件系统?

2
文件系统的逻辑结构(包括符号链接目标)可以用单个轻量级文件(非二进制文件)表示吗?
多年以来,在使用多个SQL和NoSQL数据库后,我觉得确保以数据为中心的个人应用程序中的可移植性的最佳方法是完全避免使用所有真正的数据库。我认为文件系统是一种精美的数据库范例,可移植,可人工阅读,因此具有足够的寿命,足以满足我正在编写的个人应用程序的类型。这就像一个图数据库,它强制执行树结构(适合分区),并带有符号链接来表示多对一关系。 有没有办法将整个文件系统拓扑导出为单个文件?find命令的输出很有希望,但是没有标准化的方法可以导出表示符号链接指向的数据。我不想自己选择find输出格式,例如: /home/me/photos/beach/me_and_my_dog.jpg -> /home/me/photos/beach/1.jpg 如果以前有人完成过建立文件系统拓扑导出格式的工作。 另一个候选对象是JSON文件: home : [{ me : [{ photos : [{ beach : [{ 1.jpg, { me_and_my_dog.jpg : ./1.jpg } }] }] } }] 但是同样有多种表示文件类型的方式,我想知道是否有人已经完成了建立标准的工作。 请注意,我不希望导出文件的内容-这会使导出的内容超出所需的范围。


3
目录消耗多少空间?
空目录需要多少空间? 在Windows和NTFS文件系统中,它说“ 0字节”是不可能的。 目录实际上占用了多少?它取决于文件系统还是操作系统?

2
磁盘上最快的Linux文件系统
对瓦状驱动器有很大的兴趣。这些将数据磁道紧密地排列在一起,以至于如果不破坏下一磁道就无法写入一个磁道。这可能会使容量增加20%左右,但会导致写入放大问题。针对Shingled驱动器进行了优化的文件系统正在进行中,例如,请参见:https : //lwn.net/Articles/591782/ 诸如Seagate 8TB存档之类的带碎片的磁盘具有用于随机写入的缓存区域,从而在通用文件系统上提供了不错的性能。在某些常见的工作负载上,磁盘甚至可以非常快,写入速度高达200MB /秒。但是,可以预料的是,如果随机写缓存溢出,则性能可能会受到影响。大概是,某些文件系统通常更擅长避免随机写入,或者在这种驱动器中发现的随机写入模式可能会溢出写入缓存。 与ext4相比,Linux内核中的主流文件系统是否能够更好地避免磁盘碎片导致的性能下降?

6
du计算文件/目录的数量而不是大小
我正在尝试清理多年来积累了各种废话的硬盘驱动器。du虽然有助于减少磁盘使用量,但总的来说,这并不是很笨拙,这并不是由于总大小,而是由于文件和目录的总数非常大。 有什么办法可以执行类似du但不计算文件大小,而是计算文件和目录数量的方法吗?例如:一个文件是1,而目录是其中的文件/目录的递归数+ 1。 编辑:我应该更清楚了。我想不仅知道的文件/目录总数/,而且在/home,/usr等,并在其子目录,递归,如du确实为大小。

7
如何在Linux上安全地清理tmp文件夹
我使用RAM作为我的tmpfs / tmp,2GB,确切地说。通常情况下,这已足够,但有时,进程会在其中创建文件,并且无法自行清理。如果它们崩溃就会发生这种情况我需要删除这些孤立的tmp文件,否则将来的进程将耗尽/ tmp上的空间。 我怎样才能安全地收集垃圾/ tmp?有些人通过检查上次修改时间戳来做到这一点,但这种方法是不安全的,因为可能有长时间运行的进程仍然需要这些文件。更安全的方法是将最后修改时间戳条件与没有进程具有文件的文件句柄的条件组合。是否有一个程序/脚本/等体现了这种方法或其他方法也是安全的? 顺便提一下,Linux / Unix是否允许创建文件的模式,其中创建过程终止时删除创建的文件,即使它是从崩溃中删除的?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.