标签: ext3

如何模拟ext3文件系统损坏?

我想模拟文件系统损坏,以便测试我们的嵌入式系统如何对它做出反应,并最终使它们尽可能优雅地失败.我们使用不同类型的块设备模拟闪存存储器来经常修改并且不适合存储在NAND/NOR中的数据.

因为我非常清楚在文件树的不同部分修改数据的频率以及存储敏感数据的位置.我想在特定区域注入错误,而不仅仅是随机.

在紧急情况下,我们将其fsck -y用作最后的手段,以便尝试启动系统并报告处于非常糟糕的状态.我非常希望引发错误,这些错误会触发fsck尝试修复,以便研究对系统恢复能力的影响.

dd if=/dev/random因为它不能轻易用于注入受控错误,所以对我的目的来说不够精确.还有其他工具或方法可以更好地满足我的需求,还是我必须创造自己的?

linux filesystems testing fault-tolerance ext3

15
推荐指数
1
解决办法
3011
查看次数

如何创建具有特定inode编号的文件?

如何在具有特定inode编号的ext3文件系统中创建文件?(例如:我想创建一个inode-number = 12253的文件)

ext3

13
推荐指数
2
解决办法
5652
查看次数

ext4规格?

我在哪里可以找到ext4文件系统规范?

(非正式的草案是好的,只要它们是合理的最新;如果不可用,ext3也可以.)

ext3 ext4

9
推荐指数
1
解决办法
2791
查看次数

在复制大量小文件时,为什么NTFS文件系统与EXT3文件系统相比如此之慢?

我运行以下测试我使用此批处理创建了一个包含15,000个400字节文件的文件夹:

@ECHO off
SET times=15000

FOR /L %%i IN (1,1,%times%) DO (
    fsutil file createnew filename%%i.txt 400
)
Run Code Online (Sandbox Code Playgroud)

然后我使用此命令在我的Windows计算机上复制它:

robocopy LargeNumberOfFiles\ LargeNumberOfFiles2\
Run Code Online (Sandbox Code Playgroud)

完成后我可以看到传输速率为915810字节/秒,小于1 MB/s.我花了几秒钟复制7 MBytes请注意,这是非常慢的.

我尝试使用单个文件为50 MB的文件夹,传输速率为1219512195 Bytes/sec.(是的GB/s)瞬间.

为什么复制大量文件需要花费很多时间 - 在Windows文件系统上重新编写资源?

请注意,我试图在Linux系统上执行相同的操作,该系统在具有ext3文件系统的虚拟机(vmware播放器)中的同一台计算机上运行.

我使用cp命令,副本是即时的!

另请注意以下事项:

  • 没有防病毒软件
  • 我已经在多台Windows计算机上测试了这种行为(总是ntfs)我总是得到可比较的结果(传输速率低于1MB/s平均7-8秒复制7 MB)
  • 我已经在多个linux ext3系统上进行了测试,副本总是瞬间完成(1500字节的15000个文件)
  • 问题是如何理解是什么让windows文件系统复制大量文件比例如linux的文件慢.

linux windows filesystems ntfs ext3

9
推荐指数
0
解决办法
3097
查看次数

Android文件系统日记功能

ext3有3个日记选项:journal,ordered和writeback.根据维基百科条目,这些范围从最小风险到最危险的崩溃恢复.出于某种原因,Android的Linux版本仅支持后两个选项,默认为回写.(我正在经营Froyo)

有没有办法添加对日记模式的支持?我想在/ data分区上执行此操作,这是ext3,也是大多数文件写入的地方.我的设备没有电池,所以当有人断电时,我需要确保它是防撞的.

如果有人感兴趣,Linux选项在kernel/fs/ext3/Kconfig中定义.具体选项是EXT3_DEFAULTS_TO_ORDERED.

linux filesystems android ext3 journaling

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

访问EXT3/EXT4期刊

ext3和ext4文件系统具有日志功能.有没有机会获得有关文件的详细信息和事件?

某种API允许User Space程序访问文件的日记条目.甚至是Journal事件(比如文件x被删除)

这似乎是某种文档,但我不确定它是否是正确的东西.

linux filesystems ext3 journaling ext4

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

hadoop中的JBOD是什么类型的?和COW with hadoop?

hadoop的新手,只设置了3个debian服务器集群进行练习.

我正在研究hadoop的最佳实践并遇到过:JBOD没有RAID文件系统:ext3,ext4,xfs - 没有你用zfs和btrfs看到的那些花哨的COW东西

所以我提出这些问题......


我读到JBOD的地方比hadoop中的RAID要好,而且最好的文件系统是xfs,ext3和ext4.除了完全有意义的文件系统之外,为什么那些是最好的...你如何实现这个JBOD?你会看到我的混乱,如果你自己搜索谷歌,JBOD暗示一个线性附属物或只是一堆磁盘的组合,有点像一个逻辑卷,至少这是一些人如何解释它,但hadoop似乎想要一个JBOD没有结合.没有身体扩展...

  • 问题1)hadoop世界中的每个人对JBOD意味着什么,你是如何实现的?
  • 问题2)将每个磁盘安装到不同的目录是否一样简单?
  • 问题3)这是否意味着hadoop在JBOD上运行得最好,每个磁盘都安装在不同的目录上?
  • 问题4)然后你只是将hadoop指向那些data.dirs?

  • 问题5)我看到JBODS有两种方式,要么是每个磁盘进入单独的安装,要么是线性连续的磁盘,这可以做到mdadm - 线性模式,或者lvm我敢打赌也可以这样做,所以我看不到大的处理那个......如果是这样的话,可以使用mdadm --linear或lvm,因为JBOD人员所指的是这个磁盘的连续性,那么这是"JBOD"或线性连接磁盘的最佳方式Hadoop的?


这是偏离主题的,但有人可以验证这是否也是正确的?使用cow,写入时复制的文件系统,比如zfs和btrfs,只会减慢hadoop的速度,但不仅仅是因为hadoop是牛的实现.

  • 问题6)为什么COW和像RAID这样的东西浪费在hadoop上?我看到它好像你的系统崩溃并且你使用if恢复它的重要性,当你恢复系统时,对hdfs进行了如此多的更改它可能只是认为该机器有故障而且它会更好从头开始重新加入它(把它作为一个全新的datanode)......或者hadoop系统将如何看待旧的datanode?我的猜测是它不会认为它的旧的或新的甚至是datanode,它只会把它看作垃圾...... Idk ......

  • 问题7)如果hadoop看到一个从集群上掉下来的数据节点,然后datanode重新上线,数据稍微老一点,会发生什么?数据的年龄有多大?这个话题怎么样?


提出问题1 THRU 4

  • 我刚刚意识到我的问题很简单,但我很难解释它我必须把它分成4个问题,我仍然没有得到我正在寻找的答案,听起来像是非常聪明的人,所以我必须重新提出不同的问题..

  • 在纸面上,我可以很容易地或用绘图......我会再次尝试用词.

  • 如果对我在JBOD问题中提出的问题感到困惑......

  • **只是想知道每个人在hadoop世界中指的是什么样的JBOD都是**

  • 在正常的世界中,JBOD与hadoop的定义不同,我想知道如何在jbods(sda + sdb + sdc + sdd)的concat上实现hadoop的最佳方法,或者只留下磁盘(sda,sdb,sdc) ,SDD)

  • 我认为下面的图形表示解释了我最好的问题

(JBOD方法1)

  • 普通世界:jbod是磁盘的连接 - 然后如果你要使用hadoop,你会将data.dir(其中hdfs virtualy sites)覆盖到这个磁盘内的目录中,所有磁盘都会显示为1 ..所以如果你的节点中有sda和sdb以及sdc作为你的数据磁盘,那么你会把它看作是某个entity1(主板的硬件或mdadm或lvm),这是sda和sdb和sdc的线性连接. .然后你将这个entity1挂载到Unix命名空间中的文件夹,如/ mnt/jbod /,然后设置hadoop在其中运行.

  • 文本摘要:如果磁盘1和磁盘2以及磁盘3分别为100gb和200gb以及300gb,则此jbod将为600gb大,并且来自此节点的hadoop将获得600gb的容量

* TEXTO-GRAPHICAL OF LINEAR CONCAT OF DISKS BEING A JBOD: * disk1 2 and 3 used for datanode for hadoop * disk1 is sda 100gb * disk2 is sdb 200gb * disk3 is sdc …

raid hadoop zfs ext3

6
推荐指数
2
解决办法
4788
查看次数

SD卡写性能

我正在编写一个小应用程序,它在SD卡上以恒定速率写入jpeg图像.我选择了一个EXT3文件系统,但是在EXT2文件系统中观察到了相同的行为.

我的写循环看起来像这样:

get_image()
fwrite()
fsync()
Run Code Online (Sandbox Code Playgroud)

或者像这样:

get_image()
fopen() 
fwrite()
fsync()
fclose()
Run Code Online (Sandbox Code Playgroud)

我还显示了一些时序统计信息,我可以看到我的程序有时会被阻止几秒钟.平均速率仍然很好,因为如果我将传入的图像保持为fifo,那么我将在这样的停顿之后的短时间内写出许多图像.您知道操作系统是否存在问题,或者它是否与SD卡本身有关?我怎么能接近实时?我不需要强大的实时性,但是停滞几秒钟是不可接受的.

一些精度:是的,每个文件后都需要fsync,因为我希望图像在磁盘上,而不是在某些用户或内核缓冲区中.没有fsyncing,我有更好的吞吐量,但仍然是不可接受的失速.我不认为这是一个缓冲区问题,因为第一次失速发生在写入50 MB之后.根据手册页,fsync正是为了确保没有数据缓冲.

关于平均写入速率的精确度:我正在以我正在使用的卡可持续的速率写入.如果我在等待fsync完成时堆叠传入的图像,那么在此停顿之后写入传输速率将增加,我将很快回到平均速率.平均传输速率约为1.4 MB/s.

系统是一台现代笔记本电脑运行ubuntu 8.04与库存记录(2.6.24.19)

linux real-time sd-card fsync ext3

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

文件名的长度如何影响磁盘上剩余的存储空间?

文件名的长度如何影响磁盘上剩余的存储空间?

我意识到这是依赖于文件系统的.特别是我在考虑EXT系列文件系统.我不完全了解inode如何影响磁盘空间以及文件名本身的存储方式.很难获得这个问题的相关搜索结果.这就是我在这里问的原因.在linux上,最大文件名长度通常为255或256个字符.创建文件系统时,每个文件名的"保留"空间量是多少?换句话说,磁盘存储是否不受实际文件名的影响,因为已经使用了最大值?还是比这更复杂?

假设我有一个名为"joe.txt"的文件并将其重命名为"joe2.txt".此后可用磁盘空间量是否减少了?那些更长的名字如"joe_version.txt"或"joe_original_version_with_bug_that_Jim_solved.txt"呢?我担心8,16,32,64等字符的阈值.我将存储数百万张图片.我之前从未担心过这样的问题,所以我不能完全确定它是如何工作的.

虽然EXT是我正在使用的唯一文件系统,但讨论FAT和其他可能对其他有类似问题的人有用.

filesystems filenames diskspace ext3 ext4

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

如何对 ext3 上的目录进行“碎片整理”?

我正在运行一个守护进程,它分析目录中的文件,然后删除它们。如果守护进程由于某种原因没有运行,文件就会堆积在那里。今天该目录中有 90k 个文件。再次启动守护进程后,它处理了所有文件。

然而,目录仍然很大;“ls-dh”。返回大小为 5.6M。我如何对该目录进行“碎片整理”?我已经发现重命名该目录并创建一个具有相同名称和权限的新目录可以解决问题。然而,由于文件随时写入其中,似乎没有一种安全的方法来重命名目录并创建新目录,因为目标目录暂时不存在。

那么 a) 有没有一种方法/一个(shell)程序可以对 ext3 文件系统上的目录进行碎片整理?或者 b) 有没有办法在目录上创建锁,以便尝试写入文件会阻塞,直到重命名/创建完成为止?

filesystems directory ext3

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