ext3默认簇大小
第3讲 PQMAGIC软件的使用详解(20111109)
NTFS文件系统(续8)
尽管NTFS系统具有优秀的性能,但 对于1GB以下的硬盘来说,FAT32文件 系统比NTFS文件系统开销小且显示出更 大的吞吐量。因此,如果不考虑安全性, 并且硬盘(或分区)不是非常大,那么, 在Windows NT和Windows XP中使用 FAT32文件系统或许比NTFS文件系统 要好。
分区类型的可选项有:如下图所示:
第3讲 PQMAGIC软件使用
内容提要 在这一讲中,我们主要介绍 PQMAGIC软件的使用方法,在介绍 PQMAGIC的使用方法之前,我们先 介绍一下文件的格式。 • 文件的格式 • 硬盘分区的原则,逻辑磁盘的大小与 簇大小之间的关系。
文件系统
计算机中文件存储的最小单位为簇。 每个簇的容量是随着逻辑磁盘的大小而不 同。计算机中常用的文件格式有:FAT文 件系统和NTFS文件系统以及LINUX下所 用的文件格式。 FAT文件系统包括 FAT12、FAT16 和FAT32等三个文件系统格式。 NTFS文件系统 LINUX 系 统 下 使 用 的 ext2, ext3, linux swap等。
• 下面我们介绍一下实现各种分区的方法 • FAT16、FAT32通常都是在DOS下来完 成的。DOS下随DOS操作系统提供的可 执行文件为FDISK。
• 在DOS下利用FDISK软件,创建的FAT16 分 区,所有的逻辑分区容量总和为8GB,每个逻 辑分区的容量在10MB~2047 MB(2GB)。 若该硬盘还有剩余空间,也可以分配给FAT32、 NTFS、Linux等,也就是说在一个硬盘上可以 有多个分区。
pqmagic分区大师的主要功能
pqmagic分区大师的主要功能有:不 丢失文件,可以任意改变分区的大小。通 常我们所使用的主要功能有:创建分区、 删除分区、改变分区大小(调整分区大 小)、合并分区(对于合并分区也可以通 过调整分区大小与删除分区二者的结合来 完成)。下面我们就逐项功能介绍。
ext3 文件系统
以根用户身份键入以下命令来检查分区的错误:
/sbin/e2fsck -y /dev/ hdb1
然后通过键入以下命令来把分区重新挂载为 ext2 文件系统:
mount -t ext2 /dev/ hdb1 /mount/point
在以上命令中,把 /mount/point 替换成分区的挂载点。
1.4. 还原到 ext2 文件系统
因为 ext3 相对来说比较新,某些磁盘工具可能还不支持它。例如,你可能需要使用 resize2fs 来缩小某分区,该命令不支持 ext3。在这种情况下,可能会有必要把文件系统暂时还原成 ext2。
要还原分区,你必须首先卸载分区。方法是登录为根用户,然后键入:
umount /dev/ hdb X
在以上命令中,把 /dev/ hdb 替换成设备名称,把 X 替换成分区号码。本节以后的示例命令将会使用 hdb1 来代表设备t2,以根用户身份键入以下命令:
/sbin/tune2fs -O ^has_journal /dev/ hdb1
由 ext3 文件系统提供的登记报表方式意味着不洁系统关机后没必要再进行此类文件系统检查。使用 ext3 系统时,一致性检查只在某些罕见的硬件失效(如硬盘驱动器失效)情况下才发生。不洁系统关机后,ext 文件系统的恢复时间不根据文件系统的大小或文件的数量而定,而是根据用于维护一致性的 登记日志(journal) 的大小而定。根据你的硬件速度,默认的登记日志只需花大约一秒钟来恢复。
下一步,删除根目录下的 .journal 文件。方法是转换到分区的挂载目录中,然后键入:
rm -f .journal
你现在就有一个 ext2 分区了。
如果你永久地把分区改换成 ext2,请记住更新 /etc/fstab 文件。
Ext2和Ext3文件系统
Ext2和Ext3文件系统Ext2: 是GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。
其单一文件大小与文件系统本身的容量上限与文件系统本身的簇大小有关,在一般常见的x86 电脑系统中,簇最大为4KB, 则单一文件大小上限为2048GB, 而文件系统的容量上限为16384GB。
但由于目前核心 2.4 所能使用的单一分割区最大只有2048GB,因此实际上能使用的文件系统容量最多也只有2048GB。
Ext3: 顾名思义,它就是ext2 的下一代,也就是在保有目前ext2 的格式之下再加上日志功能。
目前它离实用阶段还有一段距离,也许在下一版的核心就可以上路了。
ext3是一种日志式文件系统。
日志式文件系统的优越性在于:由于文件系统都有快取层参与运作,如不使用时必须将文件系统卸下,以便将快取层的资料写回磁盘中。
因此每当系统要关机时,必须将其所有的文件系统全部卸下后才能进行关机。
如果在文件系统尚未卸下前就关机(如停电) 时,下次重开机后会造成文件系统的资料不一致,故这时必须做文件系统的重整工作,将不一致与错误的地方修复。
然而,此一重整的工作是相当耗时的,特别是容量大的文件系统,而且也不能百分之百保证所有的资料都不会流失。
故这在大型的伺服器上可能会造成问题。
为了克服此问题,业界经长久的开发,而完成了所谓‘日志式文件系统(Journal File System) ’。
此类文件系统最大的特色是,它会将整个磁盘的写入动作完整记录在磁盘的某个区域上,以便有需要时可以回朔追踪。
由于资料的写入动作包含许多的细节,像是改变文件标头资料、搜寻磁盘可写入空间、一个个写入资料区段等等,每一个细节进行到一半若被中断,就会造成文件系统的不一致,因而需要重整。
然而,在日志式文件系统中,由于详细纪录了每个细节,故当在某个过程中被中断时,系统可以根据这些记录直接回朔并重整被中断的部分,而不必花时间去检查其他的部分,故重整的工作速度相当快,几乎不需要花时间。
ext3文件系统目录限制问题
ext3⽂件系统⽬录限制问题昨晚排查了在KVM的build系统中的⼀个问题,跟踪到后⾯发现在⼀个下mkdir创建⽬录失败。
我⼿动试了⼀下,提⽰如下:cannot create directory `/home/master/jaytemp` too many links我发现是在⼀个⽬录下的⼀级⼦⽬录数量是有的,遂做了点实验和调查,结合⽹上⼈写的博客,得到如下的⼀些关于⽬录个数和⽂件个数限制的结论。
1.ext3⽂件系统⼀级⼦⽬录的个数默认为31998(个),准确地说是32000个。
为了cpu的搜索效率⽽规定的,要想改变数⽬限制需要重新编译内核。
我看到在kernel代码中有这样的:include/linux/ext2_fs.h:#define EXT2_LINK_MAX 32000include/linux/ext3_fs.h:#define EXT3_LINK_MAX 32000为什么说31998个呢?这是因为mkdir创建⼀个⽬录时,⽬录下默认就会创建两个⼦⽬录的,⼀个是.⽬录(代表当前⽬录),另⼀个是..⽬录(代表上级⽬录)。
这两个⼦⽬录是删除不掉的,“ rm . ” 会得到“rm: cannot remove `.' or `..'”的提⽰。
所以32000-2=31998。
另外,你可以通过如下的脚本来尝试。
#!/bin/bashmkdir tmpcd tmpi=1while [ $i -lt 35000 ]domkdir $iif [ $? -ne 0 ]; thenecho "cannot make dir $i"exitfi((i++))done运⾏这个脚本,你最后将得到“mkdir: cannot create directory `31999': Too many links”的错误信息。
另外,不建议在⼀个⽬录下有太多的⽂件或者⽬录,这回降低查找⽂件或⽬录的性能。
硬盘簇大小如何设置比较合适?
也许可以通过一些工具实现簇的修改并要满足大分区,但是那样肯定会带来问题。
是不是在容量所能支持的范围内,簇越小越合适?像你文本文件(小文件)比较多的话,这个提法是对的,但如果都是大文件的话就无所谓了。
PS:你这个问题很好,相信问完、回答完或后面来看完的人都能学到知识。:)
如果要获得大文件存储,选择NTFS才是明智的。
另外设置簇的大小设置多大?个人觉得可以归结为存储效率及运行效率来讨论,簇设置越小,存储效率越高,但产生磁盘碎片也越多。簇设置越大,存储效率越低,但产生的碎片少。
结论:
1、需要存储4GB以上的大文件,选用NTFS;
2、需要使用只支持读取FAT的如DOS,使用FAT32;
硬盘簇的大小设为多少才合适
在NTFS文件系统中如何设置簇的大小
默认的情况下,在格式化的时侯如果没有指定簇的大小,那么系统会根据分区
的大小选择默认的簇值。其实在NTFS文件系统中格式化的时候,可以在“Format”命
令后面添加“/a:UnitSize”参数来指定簇的大小,UnitSize表示簇大小的值,NTFS支持
3、想存储效率高,小文件较多(如文本文件),降低簇大小,但需要经常整理碎片;
4、存储块头大的媒体文件,增加簇大小可减少碎片。
不知道你觉得这个回答如何?
补充:这里有个表你看看
分区大小 FAT16簇大小 FAT32簇大小
16MB-32MB 2KB 不支持
使用压缩功能对簇大小的要求
在Windows 2000/XP系统中,为了使用压缩功能来节省磁盘空间,必须遵循两个
条件:一、磁盘分区必须是NTFS 文件系统;二、分区中簇的大小不得超过4KB(默认簇的大小,即4996字节)。
NTFS、FAT,和exFAT默认簇大小
NTFS、FAT,和exFAT 默认簇大小卷被格式化为NTFS、FAT 或exFAT 通过使用下列方法之一时,将由Windows 中使用下列默认值:∙使用FORMAT 命令从命令行没有指定簇大小。
∙格式化卷从Windows 资源管理器时该分配单元在格式对话框中的框列出了默认分配大小。
在Windows NT 4.0 和更高版本的NTFS 最小默认情况下,群集大小是4 千字节(KB),因为NTFS 文件压缩不可能更大的簇大小的驱动器上。
所以格式将永远不会使用大于4 KB 群集,除非用户明确覆盖默认值,通过使用/A: 开关(对于命令行格式)或通过在$ 格式中指定一个更大的簇大小在Windows 资源管理器对话框。
当您使用该Convert.exe 实用程序将FAT 分区转换为NTFS,Windows 始终使用原始的FAT 的簇大小为NTFS 的群集大小对于群集大小,最多4 KB。
是否大于4 KB FAT 的簇大小群集将转换到NTFS 为4 KB。
这是因为FAT 的结构群集边界上对齐,以便任何更大的簇大小将不允许转换为函数。
另请注意,在Windows NT 3.5 3.51,下的一个分区进行格式化时和4.0 设置是将分区是首先格式化为FAT 并因此簇大小也总是会如上文所述,在安装程序格式化分区后再转换为NTFS。
∙NTFS 的的默认簇大小下表描述了为NTFS 的默认的簇大小。
卷大小Windows 3.51NTWindows4.0 NTWindows 2000、Windows XP、 Windows Server 2003、WindowsVista 和Windows Server 20087 mb–512 MB 512 字节 4 KB 4 KB 512 mb–1 GB 1 KB 4 KB 4 KB 1gb gb–2 2 KB 4 KB 4 KB 2 gb–2 TB 4 KB 4 KB 4 KB 2 tb–16 TB 不支持* 不支持* 4 KB 16tb–32 TB 不支持* 不支持* 8 KB 32tb–64 TB 不支持* 不支持* 16 KB 64tb–128 TB 不支持* 不支持* 32 KB 128tb–256 TB 不支持* 不支持* 64 KB >256 TB 不支持不支持不支持注意 * 由于MBR 的限制,不支持的方法。
Linux对EXT3分区大小进行无损更改的步骤
这篇文章是关于如何对ext3分区的大小进行无损转换的。
文章具体说明了如何增大或缩小一个已有的ext3分区,以及如何合并两个ext3分区。
当你发现你已有的分区方案已经不满足实际需求,而又不想用LVM的时候,这种方式将非常有用。
当然,要达成这个目标,有很多不同的方法,而我是使用的这个方法,因此,我不保证对于所有人都是适用的。
1、基础事项:首先请注重,下面所有的命令都需要以root身份执行,所以假如你是ubuntu用户的话,使用sudo su命令来切换身份。
所有步骤都是在ubuntu Edgy Eft桌面系统中测试的,这个系统的所有文件都位于一个大的分区中(大概10GB,设备名/dev/sda1)。
就像这样:df -hFilesystem Size Used Avail Use% Mounted on/dev/sda1 9.5G 4.1G 4.9G 46% /varrun 94M 132K 94M 1% /var/runvarlock 94M 0 94M 0% /var/lockudev 10M 52K 10M 1% /devdevshm 94M 0 94M 0% /dev/shmlrm 94M 18M 77M 19% /lib/modules/2.6.17-10-generic/volatile需要被更改大小的分区在进行操作之前应该首先被卸载(umount),很显然,假如像本例中这种装有所有重要的系统文件的分区,这样的操作是不可行的。
因此,我们需要一张live-CD,当然是Linux的,一会就可以用它来帮忙启动系统。
假设你的操作对象是无法实际接触到的远程系统,就需要保证在该机器上拥有能够用于启动的,取代live-CD的rescue 系统,而且还需要附带以下工具:fdisk,umount,fsck,tune2fs,e2fsck,resize2fs。
从目前的情况看,绝大多数主机公司都会提供带rescue系统的相应的服务器。
Linux文件系统Ext2,Ext3,Ext4性能大比拼
Linux kernel 自2.6.28 开始正式支持新的文件系统Ext4。
Ext4 是Ext3 的改进版,修改了Ext3 中部分重要的数据结构,而不仅仅像Ext3 对Ext2 那样,只是增加了一个日志功能而已。
Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能:1. 与Ext3 兼容。
执行若干条命令,就能从Ext3 在线迁移到Ext4,而无须重新格式化磁盘或重新安装系统。
原有Ext3 数据结构照样保留,Ext4 作用于新数据,当然,整个文件系统因此也就获得了Ext4 所支持的更大容量。
2. 更大的文件系统和更大的文件。
较之Ext3 目前所支持的最大16TB 文件系统和最大2TB 文件,Ext4 分别支持1EB(1,048,576TB,1EB=1024PB,1PB=1024TB)的文件系统,以及16TB 的文件。
3. 无限数量的子目录。
Ext3 目前只支持32,000 个子目录,而Ext4 支持无限数量的子目录。
4. Extents。
Ext3 采用间接块映射,当操作大文件时,效率极其低下。
比如一个100MB 大小的文件,在Ext3 中要建立25,600 个数据块(每个数据块大小为4KB)的映射表。
而Ext4 引入了现代文件系统中流行的extents 概念,每个extent 为一组连续的数据块,上述文件则表示为“该文件数据保存在接下来的25,600 个数据块中”,提高了不少效率。
5. 多块分配。
当写入数据到Ext3 文件系统中时,Ext3 的数据块分配器每次只能分配一个4KB 的块,写一个100MB 文件就要调用25,600 次数据块分配器,而Ext4 的多块分配器“multiblock allocator”(mballoc)支持一次调用分配多个数据块。
6. 延迟分配。
Ext3 的数据块分配策略是尽快分配,而Ext4 和其它现代文件操作系统的策略是尽可能地延迟分配,直到文件在cache 中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。
LINUX下用户磁盘空间限制(Ext3)
不管磁盘空间有多么大,磁盘空间不够使用似乎是一个永远的事实。
Linux提供了限制用户磁盘空间的手段,以便促使每个用户合理有效地使用分配给他的空间。
用户磁盘空间的限制是以文件系统(分区)为单位,而不理会用户文件放在该文件系统中的哪个目录中。
1. 修改 /etc/fstab 文件.在文件系统相应的 mount 命令行中加入限额选项(如下的例子)。
/dev/hda7 /home ext3 defaults,usrquota,grpquota 1 22. 重新装载 Linux 分区,例如:[root@fileserver root]# mount -o remount /home继续。
3. 在欲加磁盘限额的文件系统的安装点目录建立 er 和 aquota.group 文件: [root@fileserver root]# cd /home (/home 为单个分区 /dev/hda7 的装载点)[root@fileserver home]# touch er (为用户设置磁盘限额)[root@fileserver home]# touch aquota.group (为用户组设置磁盘限额)这时生成的 er 和 aquota.group 是空的,不符合系统的要求。
请看下一步。
4. 生成符合系统要求的 er 和 aquota.group[root@fileserver home]# quotacheck /home (生成符合系统要求的 er)[root@fileserver home]# quotacheck -g /home (生成符合系统要求的 aquota.group)生成时,有错误提示。
这不要紧。
因为先前 touch 生成的是一个空文件,肯定格式不对。
这样正确的 er 和 aquota.group 生成啦。
继续下一步:5. 为用户设置磁盘空间限额:[root@fileserver home]# edquota [-u] user_name[root@fileserver home]# edquota -g group_name (对于用户组)本命令开启一个 vi 窗口,为用户设置磁盘空间和i节点数目的限额.其中 soft 限额为一个临时性的限额;hard 限额为一个永久性限额(soft 限额可略大于 hard 限额),编辑方法与 vi 完全相同,以 ZZ 或 :wq 命令退出.如要给若干用户 user1, user2,user3 指定相同的磁盘限额,可用下面的命令给这些用户赋予与 protuser 相同的限额:[root@fileserver home]# edquota [-u] -p protuser user1 user2 user3[root@fileserver home]# edquota -g -p protgroup group1 group2 group3设定soft quota和hard quota之间的时间:[root@fileserver home]# edquota -t出现一个 vi 窗口:Grace period before enforcing soft limits for users:Time units may be: days, hours, minutes, or secondsFilesystem Block grace period Inode grace period/dev/hda7 7days 7days修改成自己所需要的,并保存退出就设置这个时间啦。
fat32默认单元大小
fat32默认单元大小
FAT32文件系统是微软公司开发的一种经典的磁盘文件系统,它利用32位的文件分配表来管理和追踪文件和目录。
在FAT32文件系统中,默认的存储单元大小(簇大小)是4KB,即2的12次方字节。
这个簇大小是FAT32文件系统中的默认设置,但可以通过特定方法进行修改。
在FAT32文件系统中,每个簇都包含一个32位的文件分配表项,用于标记该簇是否已被分配给某个文件或目录。
当创建文件或目录时,它们会被分配一个或多个簇。
由于FAT32文件系统中的每个簇大小都是4KB,因此每个文件和目录的最小存储需求也是4KB。
需要注意的是,尽管FAT32文件系统允许修改簇大小,但在使用时需要谨慎对待。
在格式化分区并选择簇大小时,用户可以选择16KB、32KB、64KB等不同的值。
然而,需要小心的是,过小的簇大小可能会导致磁盘空间的浪费,因为即使文件小于簇大小,也会占据整个簇的空间。
而过大的簇大小可能会导致磁盘空间的浪费和性能下降,因为当文件大于簇大小时,会占据多个簇的空间,这会增加寻道时间和磁盘I/O负载。
因此,在设定簇大小时,需要综合考虑磁盘空间利用率和性能需求等因素。
RESIZE2FS 修改EXT2 EXT3文件系统的大小
RESIZE2FS 修改EXT2 EXT3文件系统的大小resize2fs 是ext2 文件系统大小调整工具可以扩大可以缩小原ext2分区(当然ext3只是多了Journal的ext2 也可以)rpm -qil e2fsprogs需要注意的是增大的话起始柱面不能变步骤就是:先fdisk 调整分区所谓调整也就是删了相关的分区再重建分区最后在分区上再用resize2fs 调整文件系统大小所以一个概念或者说对照就是文件系统(file system)是在分区(Partition)基础上的把/dev/sdd2合并到/dev/sdd1/dev/sdd2文件不见,/dv/sdd1还在#fdisk -l格式化为ext3#mkfs.ext3 /dev/sdd1#mkfs.ext3 /dev/sdd2#df -h/dev/sdd1挂载到/A目录下,里面有个文件A.tar.gz/dev/sdd2挂载到/B目录下,里面有个文件B.tar.gz把/dev/sdd1和/dev/sdd2卸载下来#fdisk /dev/sdd#Command (m for help):p 查看分区先把/dev/sdd2删除,再删除/dev/sdd1#Command (m for help):d 删除分区#partition number (1-4):2 删除第二个主分区#Command (m for help):d 删除分区#partition number (1-4):1 删除第一个主分区建立回/dev/sdd1分区输入n n是新建分区,d是删除分区,p是查看分区,t是类型改变输入p 分区类型为主分区(如果硬盘分区超过4个了,则选择扩展分区,再新建逻辑分区) e是扩展分区,p是主分区#Partition number (1-4): 1第1个主分区#First cylinder (1-44384, default 1):#Using default value 1起始磁柱这时选默认1#Last cylinder or +size or +sizeM or +sizeK (1-44384, default 44384): 最后一个圆柱大小这时选默认#Command (m for help): p 查看分区情况#Command (m for help): w 保存,切记要保存#resize2fs -p /dev/sdd1 12851968 删除前/dev/sdd1的大小#e2fsck -f /dev/sdd1#resize2fs -p /dev/sdd1完成B.tar.gz不在!!只保留了A.tar.gz。
重新调整ext3格式分区大小的方法
重新调整ext3格式分区大小的方法本篇文章主要介绍如何调整格式为ext3的分区的大小,并确保不丢失数据。
它将向你讲述如何增加或者缩小已存在的ext3分区的大小。
分区的调整必须在设备umount的情况下进行。
如果你要调整的分区为存放Linux系统重要文件的分区(比如:/、/boot),请事先准备一张Live Linux-CD启动盘(这个很容易就可以在网上找到),以备稍后使用;如果你仅仅只是调整普通分区的大小(比如:/home),则可以直接使用本机系统进行,而无须进入Live CD系统。
另外,请确保你的系统上已安装了以下工具:fdisk、umount、fsck、tune2fs、e2fsck、resize2fs,系统最小化安装时这些工具就已经集成在系统中了,直接使用就可。
如果你要在用于商业用途的Linux系统上调整分区大小,请先确保系统数据已备份完成。
下面我将以/dev/sda5分区举例。
先查看以下系统分区信息:[root@localhost ~]# df –B 4k[root@localhost ~]# df –h[root@localhost ~]# df -B 4kFilesystem 4K-blocks Used Available Use% Mounted on/dev/sda2 990087 500195 438786 54% //dev/sda5 3575306 41828 3348932 2% /home/dev/sda1 11659 2638 8419 24% /boottmpfs 67424 0 67424 0% /dev/shm[root@localhost ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda2 3.8G 2.0G 1.7G 54% //dev/sda5 14G 164M 13G 2% /home/dev/sda1 46M 11M 33M 24% /boottmpfs 264M 0 264M 0% /dev/shmdf –B 4k 以4k为以单位查看,这个稍后会用得到我的/dev/sda5设备对应/home目录,大小为14G[root@localhost ~]# fdisk –lDisk /dev/sda: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/sda1 * 1 6 48163+ 83 Linux/dev/sda2 7 515 4088542+ 83 Linux/dev/sda3 516 772 2064352+ 82 Linux swap / Solaris /dev/sda4 773 2610 14763735 5 Extended/dev/sda5 773 2610 14763703+ 83 Linux如果你修改的是/、/boot分区的大小,要先重启进入Live CD系统进行操作,因为调整时设备必须为umount,所以需要借助Live CD进行[root@localhost ~]# init 0重启进入Live的系统后,先进行设备卸载[root@localhost ~]# umount /dev/sda5接着运行[root@localhost ~]# fsck –n /dev/sda5fsck 1.39 (29-May-2006)e2fsck 1.39 (29-May-2006)/home: clean, 18/3691936 files, 157447/3690925 blocks-n表示只把一些简单的报告和问题输出到标准输出,而不去修复。
Linux文件系统格式之EXT3,EXT4和XFS
Linux⽂件系统格式之EXT3,EXT4和XFS
EXT3
(1)最多只能⽀持32TB的⽂件系统和2TB的⽂件,实际只能容纳2TB的⽂件系统和16GB的⽂件
(2)Ext3⽬前只⽀持32000个⼦⽬录
(3)Ext3⽂件系统使⽤32位空间记录块数量和i-节点数量
(4)当数据写⼊到Ext3⽂件系统中时,Ext3的数据块分配器每次只能分配⼀个4KB的块
EXT4是Linux系统下的⽇志⽂件系统,是EXT3⽂件系统的后继版本。
(1)Ext4的⽂件系统容量达到1EB,⽽⽂件容量则达到16TB
(2)理论上⽀持⽆限数量的⼦⽬录
(3)Ext4⽂件系统使⽤64位空间记录块数量和i-节点数量
(4)Ext4的多块分配器⽀持⼀次调⽤分配多个数据块
XFS
(1)根据所记录的⽇志在很短的时间内迅速恢复磁盘⽂件内容
(2)采⽤优化算法,⽇志记录对整体⽂件操作影响⾮常⼩
(3) 是⼀个全64-bit的⽂件系统,它可以⽀持上百万T字节的存储空间
(4)能以接近裸设备I/O的性能存储数据。
Linux中的EXT系列文件系统格式详解
Linux中的EXT系列⽂件系统格式详解Linux⽂件系统常见的硬盘如上图所⽰,每个盘⽚分多个磁道,每个磁道分多个扇区,每个扇区512字节,是硬盘的最⼩存储单元,但是在操作系统层⾯会将多个扇区组成块(block),是操作系统存储数据的最⼩单元,通常是8个扇区组成4K字节的块。
对于Linux⽂件系统,需要考虑以下⼏点:⽂件系统需要有严格的组织形式,使⽂件能够以块为单位存储⽂件系统需要有索引区,⽅便查找⼀个⽂件分成的多个块存在了什么位置如果有⽂件近期经常被读写,需要有缓存层⽂件应该⽤⽂件夹的形式组织起来⽅便管理和查询Linux内核要在⾃⼰的内存⾥维护⼀套数据结构,保持哪些⽂件被哪些进程打开和使⽤Linux⾥⾯⼀切皆⽂件,都有以下⼏种⽂件(从ls -l结果的第⼀位标识位可以看出来):- 表⽰普通⽂件d 表⽰⽂件夹c 表⽰字符设备⽂件b 表⽰块设备⽂件s 表⽰套接字socket⽂件l 表⽰软链接Inode和块存储下⾯就以EXT系列格式为例来看⼀下⽂件是如果存在硬盘上的。
⾸先⽂件会被分成⼀个个的块,分散得存在硬盘上,就需要⼀个索引结构来帮助我们找到这些块以及记录⽂件的⼀些元信息,这就是inode,其中i代表index。
inode数据结构如下:struct ext4_inode {__le16 i_mode; /* File mode */__le16 i_uid; /* Low 16 bits of Owner Uid */__le32 i_size_lo; /* Size in bytes */__le32 i_atime; /* Access time */__le32 i_ctime; /* Inode Change time */__le32 i_mtime; /* Modification time */__le32 i_dtime; /* Deletion Time */__le16 i_gid; /* Low 16 bits of Group Id */__le16 i_links_count; /* Links count */__le32 i_blocks_lo; /* Blocks count */__le32 i_flags; /* File flags */union {struct {__le32 l_i_version;} linux1;struct {__u32 h_i_translator;} hurd1;struct {__u32 m_i_reserved1;} masix1;} osd1; /* OS dependent 1 */__le32 i_block[EXT4_N_BLOCKS];/* Pointers to blocks */__le32 i_generation; /* File version (for NFS) */__le32 i_file_acl_lo; /* File ACL */__le32 i_size_high;__le32 i_obso_faddr; /* Obsoleted fragment address */union {struct {__le16 l_i_blocks_high; /* were l_i_reserved1 */__le16 l_i_file_acl_high;__le16 l_i_uid_high; /* these 2 fields */__le16 l_i_gid_high; /* were reserved2[0] */__le16 l_i_checksum_lo;/* crc32c(uuid+inum+inode) LE */__le16 l_i_reserved;} linux2;struct {__le16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */__u16 h_i_mode_high;__u16 h_i_uid_high;__u16 h_i_gid_high;__u32 h_i_author;} hurd2;struct {__le16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */__le16 m_i_file_acl_high;__u32 m_i_reserved2[2];} masix2;} osd2; /* OS dependent 2 */__le16 i_extra_isize;__le16 i_checksum_hi; /* crc32c(uuid+inum+inode) BE */__le32 i_ctime_extra; /* extra Change time (nsec << 2 | epoch) */__le32 i_mtime_extra; /* extra Modification time(nsec << 2 | epoch) */__le32 i_atime_extra; /* extra Access time (nsec << 2 | epoch) */__le32 i_crtime; /* File Creation time */__le32 i_crtime_extra; /* extra FileCreationtime (nsec << 2 | epoch) */__le32 i_version_hi; /* high 32 bits for 64-bit version */__le32 i_projid; /* Project ID */};其中__le32 i_block[EXT4_N_BLOCKS]存储了到数据块的引⽤,EXT4_N_BLOCKS定义如下:#define EXT4_NDIR_BLOCKS 12#define EXT4_IND_BLOCK EXT4_NDIR_BLOCKS#define EXT4_DIND_BLOCK (EXT4_IND_BLOCK + 1)#define EXT4_TIND_BLOCK (EXT4_DIND_BLOCK + 1)#define EXT4_N_BLOCKS (EXT4_TIND_BLOCK + 1)在ext2和ext3中i_block前12项存储了直接到数据块的引⽤,第13项存储的是到间接块的引⽤,在间接块⾥存储着数据块的位置,以此类推,第14项⾥存储着⼆次间接快的位置,第15项⾥存储着三次间接块的位置,如下图所⽰:不难看出,对于⼤⽂件,需要多次读取硬盘才能找到相应的块,在ext4中就提出了Extents Tree来解决这⼀问题,其核⼼思想就是把连续的块⽤开始位置加块的个数来表⽰,不再是⼀个⼀个去记录每⼀个块的位置,这样就能节约存储空间。
分区格式与簇的大小讲解
分区格式与簇的⼤⼩讲解分区格式与簇⼤⼩分区格式与簇的⼤⼩讲解。
有的玩家发现同⼀个⽂件在不同磁盘分区上所占的空间不⼀样⼤⼩,这是由于不同磁盘簇的⼤⼩不⼀样导致的。
是不是不太懂,快来看看吧。
簇的⼤⼩主要由磁盘的分区格式和容量⼤⼩来决定,其对应关系如表1所⽰。
⼩编的软盘采⽤FAT分区,容量1.44MB,簇⼤⼩为512 Byte(⼀个扇区);C盘采⽤FAT 32分区,容量为4.87GB,簇⼤⼩为8KB;D盘采⽤FAT 32分区,容量为32.3GB,簇⼤⼩为32KB。
计算⽂件所占空间时,可以⽤如下公式:簇数=取整(⽂件⼤⼩/簇⼤⼩)+1 所占空间=簇数×磁盘簇⼤⼩通过这个计算公式,就可以很轻易算出Ersave2.dat⽂件实际占⽤的空间。
需要注意的是,在这个公式中,⽂件⼤⼩和簇⼤⼩应以Byte为单位,否则可能会产⽣误差。
如果需要以KB为单位来进⾏计算的话,将字节数除以1024就可以了。
公式中⽂件⼤⼩和簇⼤⼩应以Byte为单位,否则可能会产⽣误差。
如果要以KB为单位,将字节数除以1024即可。
利⽤上述的计算公式,可以计算Ersave2.dat⽂件的实际占⽤空间。
可能有朋友要问了,怎么才能知道磁盘中簇的⼤⼩呢,下⾯给朋友们说三个⽅法:⼀、在WINDOWS的操作系统中,我们可以⽤Chkdsk命令来进⾏查看,打个⽐⽅,我们要查看C盘的簇⼤⼩,操作如下,⾸先点击【开始菜单】,选择【运⾏...】,在运⾏输⼊框键⼊“CMD”后回车,然后在⿊⾊DOS下键⼊“C:”后点回车键确认,再输⼊“Chkdsk”后点击回车键确认,就可以从它的分析结果中,得到C盘簇的⼤⼩。
不过在结果中会把簇称之为“分配单元”或者“Allocation unit”。
⼆、还可以借助PQ Magic等磁盘⼯具来检测。
⽬前很多磁盘⼯具都可以显⽰磁盘信息的详情。
例如在PQ Magic中,选择要查看的磁盘分区,然后单击右键选择【⾼级】,然后选择【调整簇的⼤⼩】,就可以从对话框中看到或者更改当前磁盘设置的簇⼤⼩。
NTFS 和 FAT 文件系统的默认簇大小
NTFS 和FAT 文件系统的默认簇大小如果您不指定用于格式化的簇大小,“Windows XP 磁盘管理”将根据卷大小来设置簇大小。
如果使用以下两种方法之一将卷格式化为NTFS,Windows XP 将使用默认值:●从命令行使用format命令,不指定簇大小例如:“format d: /fs:NTFS /a:2048”,表示将D盘用NTFS文件系统格式化,簇的值为2048B。
●在“磁盘管理”中格式化卷,不从格式化对话框中的默认更改分配单元大小∙下表显示了Windows XP 用于NTFS 格式化的默认值。
∙驱动器大小∙(逻辑卷)簇大小扇区∙---------------------------------------------------- ∙512 MB 或更小512 字节 1∙513 MB - 1 GB (1 KB) 2∙1GB - 2 GB (2 KB) 4∙2GB 及更大(4 KB) 8∙Windows XP 下最大的默认簇大小为4 千字节(KB),这是因为在具有更大分配单元的驱动器上无法进行NTFS 文件压缩。
Format 实用程序不会使用大于4 KB 的簇,除非您通过以下两种方法之一指定覆盖该默认值:对于命令行格式化使用/A:选项,或在“磁盘管理”的格式化对话框中指定更大的簇大小。
如果您使用Convert 实用程序将卷由FAT 转换为NTFS,Windows 总是使用512 字节簇大小。
FAT 结构按512 字节边界进行对齐;更大的簇大小则不允许转换。
同时请注意,在Microsoft Windows NT4.0 及更早版本中,如果在“Windows 安装程序”中格式化分区,分区会先被格式化为FAT,然后才转换为NTFS。
因此,如果在安装程序中格式化分区,簇大小总是512 字节。
(此信息不适用于“Microsoft Windows 2000 安装程序”或“Windows XP 安装程序”,这两者会根据所选的文件系统来格式化分区。
分区格式
Lay the foundation of computer.Go higher and higher step and step!Then we’ll become a computer superiorWindows/Linus分区格式Daniel2008-07-10从目前主流的操作系统来看,主要有windows和linus操作系统,其文件系统分区格式有:TAT16、FAT32、NTFS、Linus Ext2、Linus Ext3、Linus Swap。
Windows文件系统:FAT32是微软为解决大容量磁盘利用效率低的问题、在FAT16基础上开发的一种全新的分区格式。
FAT32采用32位文件分配表,磁盘管理能力比FAT16大大增强,突破了FAT16文件系统2GB的磁盘分区容量限制,最多可支持2TB 的磁盘容量。
在不超过8GB的分区中FAT32分区格式为每个簇容量固定为4KB,与FAT16相比,减少了磁盘的浪费空间,提高了利用率。
采用FAT32也有缺点:由于文件分配表的扩大,运行速度比FAT16分区的硬盘要慢,此外,采用FAT分区格式的操作系统的安全性很差。
NTFS文件系统是微软为解决FAT32在功能上不足,随windows NT系统而产生的,windows 2000/NT/XP/Server 2003都支持这种分区格式。
NTFS文件系统的磁盘管理功能更强大,而且在使用的过程中不易产生文件碎片,安全性和稳定性极其出色。
NTES提供了服务器或工作站的安全保障,支持随机控制和访问权限,对共享文件夹无论采用FAT还是NTES文件系统都可以指定权限,以免受到本地访问或远程访问的影响。
NTES对于存在计算上存储的文件夹或单个文件,或是通过连接访问共享文件夹的用户,都可以指定权限,用户只能按照指定的权限来进行操作。
NTES使用事务日志启动记录所有文件夹和文件更新,当出现系统损坏或电源故障引起操作失败后,可以自用日志文件重做或恢复未成功的操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以下是对ext3文件系统默认簇大小的分析:
簇大小是文件系统中用于存储数据的最小单元大小。
在ext3文件系统中,默认的簇大小是根据文件系统的性能和磁盘空间的使用情况来设置的。
默认情况下,ext3文件系统的簇大小为4KB。
簇大小对文件系统的性能和磁盘使用情况有重要影响。
如果簇大小设置得过大,会浪费磁盘空间,因为不是所有的簇都会被实际使用。
相反,如果簇大小设置得过小,会降低文件系统的性能,因为需要更多的I/O操作来读取和写入数据。
在ext3文件系统中,默认的簇大小是由系统配置参数决定的,这些参数是在创建文件系统时设置的。
在大多数情况下,ext3文件系统的簇大小是合理的,能够满足大多数应用的需求。
然而,在某些特殊情况下,如需要优化磁盘使用或提高文件系统性能时,可以调整簇大小。
要调整ext3文件系统的簇大小,需要编辑ext3文件系统的元数据目录中的fs.block_size参数。
这个参数的值决定了簇的大小,可以通过修改它来改变簇的大小。
需要注意的是,调整簇大小可能会影响文件系统的性能和磁盘使用情况,因此在进行更改之前,应该仔细评估当前的情况和需求。
总的来说,默认的ext3文件系统簇大小是在综合考虑了性能和磁盘使用情况后设置的。
在大多数情况下,默认的簇大小可以满足需求。
然而,在某些特殊情况下,如需要优化磁盘使用或提高文件系统性能时,可以调整簇大小。
在进行更改之前,应该仔细评估当前的情况和需求。
如果您需要了解更多关于ext3文件系统的详细信息,可以参考相关文档和资料。