Linux 文件系统选择 | LinuxSir.Org

来源:百度文库 编辑:神马文学网 时间:2024/04/28 11:38:48
三、Linux 文件系统的选择和安全性;
如果做为专业人士来说,应该说哪个文件系统都是安全的;用Linuxfish的话来说“哪个文件系统的设计者都不是傻子,他们应该明白自己的作品是怎么回事。”。做为文件系统的设计者来说,我们一般在使用的过程中所遇到的问题,他们都应该有解决办法。但我们毕竟不是专业从事文件系统研究的,所以我们有必要从使用角度来说明文件系统的安全性;对于初学Linux的弟兄,一定会遇到文件系统的选择左右为难的情况,因为大多新手并不知道哪个文件系统更好;现在我们来谈谈文件系统的选择;
1、Linux操作系统安装过程中的文件系统的选择;

1)ext2 文件系统;

ext2文件系统应该说是Linux正宗的文件系统,早期的Linux都是用ext2,但随着技术的发展,大多Linux的发行版本目前并不用这个文件系统了;比如Redhat和Fedora 大多都建议用ext3 ,ext3文件系统是由ext2发展而来的。对于Linux新手,我们还是建议您不要用ext2文件系统;ext2支持undelete(反删除),如果您误删除文件,有时是可以恢复的,但操作上比较麻烦; ext2支持大文件; ext2文件系统的官方主页是: http://e2fsprogs.sourceforge.net/ext2.html
2)ext3 文件系统:是由ext2文件系统发展而来;

ext3 is a Journalizing file system for Linux(ext3是一个用于Linux的日志文件系统),ext3支持大文件;但不支持反删除(undelete)操作; Redhat和Fedora都力挺ext3;至于ext3文件系统的更多特性,请访问 《Linux 文件系统(filesystem)资源索引》 ;
3)reiserfs 文件系统;

reiserfs 文件系统是一款优秀的文件系统,支持大文件,支持反删除(undelete);在我的测试ext2、reiserfs 反删除文件功能的过程中,我发现reiserfs文件系统表现的最为优秀,几乎能恢复 90%以上的数据,有时能恢复到100%;操作反删除比较容易;reiserfs 支持大文件;
4)Linux文件系统对大文件支持的对比;
请参考http://www.suse.de/~aj/linux_lfs.html Filesystem File Size Limit Filesystem Size Limit ext2/ext3 with 1 KiB blocksize 16448 MiB (~ 16 GiB) 2048 GiB (= 2 TiB) ext2/3 with 2 KiB blocksize 256 GiB 8192 GiB (= 8 TiB) ext2/3 with 4 KiB blocksize 2048 GiB (= 2 TiB) 8192 GiB (= 8 TiB) ext2/3 with 8 KiB blocksize (Systems with 8 KiB pages like Alpha only) 65568 GiB (~ 64 TiB) 32768 GiB (= 32 TiB) ReiserFS 3.5 2 GiB 16384 GiB (= 16 TiB) ReiserFS 3.6 (as in Linux 2.4) 1 EiB 16384 GiB (= 16 TiB) XFS 8 EiB 8 EiB JFS with 512 Bytes blocksize 8 EiB 512 TiB JFS with 4KiB blocksize 8 EiB 4 PiB NFSv2 (client side) 2 GiB 8 EiB NFSv3 (client side) 8 EiB 8 EiB Note Kernel Limitations: The table above describes
limitations of the on-disk format. The following kernel limits
exist:
  • On 32-bit systems with Kernel 2.4.x: The size of a file and a
    block device is limited to 2 TiB. By using LVM several block
    devices can be combined enabling the handling of larger file
    systems.
  • 64-bit systems: The sizes of a filesytem and of a file are
    limited by 263 (8 EiB). But there might be hardware
    driver limits that do not allow to access such large devices.
  • Kernel 2.6: For both 32-bit systems with option CONFIG_LBD set
    and for 64-bit systems: The size of a file system is limited to
    273 (far too much for today). On 32-bit systems
    (without CONFIG_LBD set) the size of a file is limited to 2 TiB.
    Note that not all filesystems and hardware drivers might handle
    such large filesystems.

Note in the above:
1024 Bytes = 1 KiB;
1024 KiB = 1 MiB;
1024 MiB = 1 GiB; 1024 GiB = 1 TiB; 1024 TiB = 1 PiB; 1024 PiB = 1
EiB (check http://physics.nist.gov/cuu/Units/binary.html)
Maximum Number of Partitions An IDE disk has 64 minors, one is used for the full disk and therefore 63 partitions are possible. A SCSI disk has 16 minors and therefore only 15 partitions maximal.
2、文件系统的安全性;
任何一个文件系统在专家眼中都是安全的,就象MS说Windows是安全性是可靠的类似,如果MS专家来用Windows绝对没有任何问题,毕竟人家是专家,我们是使用者;专家和使用者还是有很大区别的;因为我们不是专家,所以我们才要选择更为安全易用的文件系统,下面我们对比一下ext2、ext3和reiserfs;
1)ext2、ext3和reiserfs 文件系统自动修复能力对比;

ext2、ext3及reiserfs 都能自动修复损坏的文件系统,也都是在开机时进行。从表现来看reiserfs更胜一筹;ext2和ext3文件系统在默认的情况下是“This filesystem will be automatically checked every 21 mounts or 180 days, whichever comes first”,也就是每间隔21次挂载文件系统或每180天,就要自动检测一次。通过实践来看ext2和ext3在auto check上是存在风险,有时文件系统开机后就进入单用户模式,并且把整个系统 “扔”进lost+found"目录,如果要恢复系统,就得用fsck 来进行修复;当然fsck 也同样存在风险;所以我们对ext2和ext3文件系统的使用,对新手来说的确需要心里准备;毕竟修复已经损坏的ext2和ext3文件系统是有困难的;另外ext2和ext3文件系统对于意外关机和断电,也可能导致文件系统损坏,所以我们在使用过程中,必须是合法关机;比如执行poweroff指令来关掉机器; reiserfs 文件系统也能自动修复,他在自动检测和修复上具有很强的功能,几乎很少出现ext2和ext3的情况,另外从速度来说他也比ext2、ext3文件系统的速度要快;通过我两个月的测试来看,reiserfs 对于意外断电表现最佳。为了验证reiserfs 文件系统的在意外断电的安全性上,我每天都直接断掉电源关机,但我们不应该说reiserfs 是安全的直接断电了事,直接断电有时也会造成硬盘物理损伤;reiserfs文件系统从未出现象ext2和ext3那样用手动方式来进行修复的情况。从这方面来说reiserfs 还是极为安全的;
2)ext2、ext3和reiserfs 反删除功能对比;
从文件系统的反删除来看,ext2和reiserfs 都支持反删除,对于一般使用者来说应该是安全的,但对于保密单位来说可能意味着不安全。从反删除角度来说明文件系统的安全性,也是有两方面;昨天和Linuxfish 讨论了这个问题,他说在Windows中引入了文件粉碎机这个可笑的工具,目的就是不让恢复已删除的文件。如果您的工作是从事比较机密的,用ext3比较好,因为ext3一旦删除文件,是不可恢复的,虽然网上也有几个关于反删除恢复操作在ext3中,但实践来看,并不是那么容易;因为反删除能恢复相应的绝秘资料的泄秘,所以ext3可能更适合您;如果您是一般使用者,我还是建议用reiserfs文件系统,他支持反删除功能,反删除操作也比较容易;但也会存在一点问题。比如在Fedora或Redhat中,有一个关于系统安全的selinux,在默认情况下,可能在reiserfs 中不支持selinux ;不过值得一说的是selinux是一个绝对庞大、功能丰富、涉及面极广的安全工具,selinux并不是一般使用者就能驾驭的了的;所以我们建议初学者在使用Linux系统时先关掉selinux 功能;但您可以慢慢尝试熟悉使用它;在Fedora和Redhat最新的版本中,reiserfs文件系统的确是不支持selinux,所以您在Fedora或Redhat中采用了reiserfs ,并且还想用selinux ,还是自己找解决办法,可能要打内核补丁才行;至于其它Linux发行版本是否存在这个问题,还得需要您来尝试;
四、Linux 支持的文件系统;
Linux目前几乎支持所有的Unix类的文件系统,除了我们在安装Linux操作系统时所要选择的ext3、reiserfs和ext2外,还支持苹果MACOS的HFS,也支持其它Unix操作系统的文件系统,比如XFS、JFS、Minix fs 及UFS等,您可以在kernel的源码中查看;如果您想要让系统支持哪些的文件系统得需要把该文件系统编译成模块或置入内核;关于如何编译内核,请参考《内核管理概述》;当然Linux也支持Windows文件系统NTFS和fat,但不支持NTFS文件系统的写入;支持fat文件系统的读写;请参考《在Fedora core 4.0 加载NTFS和FAT32分区详述》 Linux也支持网络文件系统,比如NFS等;挂载nfs文件系统的办法是: mount -t nfs 服务器地址:/目录 挂载点 下面是一个例子,比如我在192.168.1.4的机器做了一个NFS服务器,提供192.168.1.x网段上的所有机器都可以用NFS;具体做NFS服务器的过程省略,此处只讲怎么挂载;[root@localhost ~]# showmount -e 192.168.1.4  首先查看NFS服务器共享的文件文件夹;
Export list for 192.168.1.4:
/opt/sirnfs *  注:位于 192.168.1.4机器上的 /opt/sirnfs 目录

[root@localhost ~]# mkdir /mnt/sirnfs  注:在本地机器建一个目录,做为NFS挂载点;

[root@localhost ~]# mount -t  nfs 192.168.1.4:/opt/sirnfs  /mnt/sirnfs   注:挂载NFS;

[root@localhost ~]# df -h   注:查看本地机挂载NFS是不是成功了;
Filesystem            容量  已用 可用 已用% 挂载点
/dev/hda7              11G  7.4G  2.9G  72% /
/dev/shm              236M     0  236M   0% /dev/shm
/dev/hda9              22G  837M   22G   4% /opt/data
192.168.1.4:/opt/sirnfs
                       63G   47G   17G  74% /mnt/sirnfs   注:这是挂载成功后的显示;

五、文件系统的特性;
Linux文件系统的特性决定文件的属性,比如我们通过chattr +i 来避免某个文件被改动,通过chattr+i 来改其为只读文件,在ext2和ext3下是可以的,但在reiserfs 这样做是不能起任何作用的;不同的文件系统有不同的特性,这种特性往往决定着在文件系统文件和目录的属性,这也是我为何本文的主要原因;通过本文,我能引出在Linux中文件和目录属性的的操作;每个文件系统都有一系列的工具,包括创建、修复、备份等,值得一说的是大多文件系统都有修复工具,在您的文件系统极为正常的情况下,最好不要用修复工具来检测和修复;比如最好不要用运行fsck工具,这个工具可能会使您的系统被破坏;请参考:《Linux 创建文件系统及挂载文件系统流程详解》
六、在Linux中,文件系统的创建和挂载;
请参考《Linux 创建文件系统及挂载文件系统流程详解》 七、关于本文;文件系统太广,此文档的确不太好写;但还是勉强写出来,虽然并不专业;或许对Linux新手还有点帮助;八、参考文档; http://www.suse.de/~aj/linux_lfs.html
http://www.xenotime.net/linux/linux-fs.html