ext3日志模式

ext3日志模式

http://blog.sina.com.cn/s/blog_5d4ab4b40100dosx.html

ext3支持多种日志模式

ext3 是ext2文件系统的高一级版本,完全兼容ext2,与ext2主要区别便是具有快速更新文件的存储功能。计算机自磁盘上读取或写入数据开始就必须保证文 件系统中文件与目录的一致性,所有日志文件中的数据均以数据块的形式存放在存储设备中,当磁盘分区时文件系统即被创建,按照文件形式、目录形式支持存储数 据和组织数据。Linux的文件和目录采用层次结构文件系统,文件系统一般是在安装系统时通过使用“mount”命令安装上的,用于使用的文件链表存储在 文件/etc/fstab中,用于维护而安装的文件链表则存放在/etc/mtab中。

ext3提供多种日志模式,即无论改变文件系统的元数据,还是改变文件系统的数据(包括文件自身的改变),ext3 文件系统均可支持,以下是在/etc/fstab文件引导时激活的三种不同日志模式:

◆data=journal日志模式
     日志中记录包括所有改变文件系统的数据和元数据。它是三种ext3日志模式中最慢的,但它将发生错误的可能性降至最小。使用“data= journal” 模式要求ext3将每个变化写入文件系统2次、写入日志1次,这将降低文件系统的总性能,但它的确是使用者最心爱的模式。由于记录了在ext3中元数据和 数据更新情况,当一个系统重新启动的时候,这些日志将起作用。

◆data=ordered日志模式
    仅记录改变文件系统的元数据,且溢出文件数据要补充到磁盘中。这是缺省的ext3日志模式。这种模式降低了在写入文件系统和写入日志之间的冗余,因此速度 较快,虽然文件数据的变化情况并不被记录在日志中,但它们必须做,而且由ext3的daemon程序在与之相关的文件系统元数据变化前执行,即在记录元数 据前要修改文件系统数据,这将稍微降低系统的性能(速度),然而可确保文件系统中的文件数据与相应文件系统的元数据同步。

◆data=writeback日志模式
     仅记录改变文件系统的元数据,但根据标准文件系统,写程序仍要将文件数据的变化记录在磁盘上,以保持文件系统一致性。这是速度最快的ext3日志模 式。因为它只记录元数据的变化,而不需等待与文件数据相关的更新如文件大小、目录信息等情况,对文件数据的更新与记录元数据变化可以不同步,即ext3是 支持异步的日志。缺陷是当系统关闭时,更新的数据因不能被写入磁盘而出现矛盾,这一点目前尚不能很好解决。

不同日志模式间有差别,但设置的方法一样方便。可以使用ext3文件系统指定日志模式,由/etc/fstab启动时完成。例如,选择data=writeback日志模式,可以做如下设置:
    /dev/hda5 /opt ext3 data=writeback 1 0

在一般情况下,data=ordered日志模式是ext3文件系统的缺省模式。

选择日志模式

1.考虑数据完整性
     使用ext3文件系统,在非正常关机时,数据完整性能得到可靠的保障,而且可以选择数据保护的类型和级别。例如,可以选择保证文件系统一致、允许文 件系统上的数据在非正常关机时受损,这样可以在某些状况下提高一些速度(但非所有状况)。另外,也可以选择保持数据与文件系统一致的情况,这意味着在非正 常关机后,不会在新近写入的文件中看到任何数据垃圾。这种保持数据与文件系统一致的安全性选择通常是缺省设置的情况。

在大多数情况下,用户都是在文件的末尾增加写入数据。仅仅在某些情况下(例如数据库),用户在现存文件的中间写入数据,甚至覆盖现存文件。这种操作一般是 先截断该文件,然后再写入数据。如果选择data=ordered模式,系统正在写文件时崩溃,那么数据块可能被部分改写,但是新增加的数据写入过程并没 有完成,所以这种不完整数据块将不能作为文件数据的一部分。崩溃后要得到残存数据块的惟一办法是,在崩溃过程中有一个程序正在重写现存文件的中部,该程序 使用了 fsync()和O_SYNC强制写操作,才能保证在这种情况下按特定顺序写入。

2.考虑速度
    ext3写入数据的次数要多于ext2,尽管如此,ext3的速度仍然快于ext2(即使是对高速数据流)。这是因为ext3的日志具有优化硬盘磁头转动 的功能。通过选择3种日志模式中的某一种,可以选择优化速度,但这会或多或少地造成一些数据的不完整,下面就来比较一下这三种日志模式。

◆ 使用选项data=writeback可以显著地提高速度,但同时会降低对数据一致性的保护。选择其它日志模式,数据一致性的保护基本上与ext2文件系 统相同。不同的是在正常操作时,系统要不断地维护文件系统的完整性,包括频繁的共享写操作创建和删除大量的小文件。如果从ext2切换到ext3,发现应 用程序性能大幅度下降,选项data=writeback可能会对提高性能有帮助。即使没有获得数据一致性保护措施,仍然可以享受ext3的优势(文件系 统总是保持一致)。在很多日志文件系统中,将这种模式设置为缺省模式。
    ◆data=ordered(缺省模式)能提供保持数据与文件系统的一致,这意味着在非正常关机时,不会在新近写入的文件中看到任何垃圾数据。
    ◆为了保证在多数情况下获得适中的速度,data=journal模式需要大一些的日志。当然在非正常关机后需要的恢复时间也长一些,但在某些数据库操作时速度较快。

一般情况下,建议使用缺省模式。如果要改变模式,要在/etc/fstab文件中为相应的文件系统加上data=模式选项。

这样,可以在速度和文件数据完整性两方面权衡利弊,并且可以为某些特殊的应用调整速度。

Linux 操作系统是近年来用户数量增长最快的操作系统,ext3作为第一个正式支持的日志文件系统,全面兼容ext2的。ext3提供了多种日志模式支持,改进了 Linux系统的性能,解决系统中存在的不一致性的问题。ext3文件系统是一个优秀的、极具发展前景的文件系统。

时间: 2024-08-25 22:24:18

ext3日志模式的相关文章

informix数据库的日志模式

今天操作数据库进行批量DML操作的时候,报了一个以前没有见过的错误, java.sql.SQLException: No Transaction Isolation on non-logging db's,特此写一遍记录一下自己的解决过程. 首先,我从上述报错看出大体就是此库不记录日志,但是以前我们的事务操作是一定会有日志的.所以展开了如下搜索. 1,查看日志模式: onmonitor --> Logical-logs -->Databases  看各个库的 Log Status 一看,状态果

ondblog 修改informix日志模式

-N No Logging 没有日志-U Unbuffered Logging   非缓冲日志-B Buffered Logging   缓冲日志-A Unbuffered Logging, Mode ANSI   ANSI模式No Logging 没有日志----"没有日志"模式只向逻辑日志写很少的信息,它只记录执行的DDL语句,这些语句影响到的行并不被写入日志中,只记录命令本身以及返回的代码.一个不带日志的数据库环境可以具有很高的吞吐率,但在发生严重的实例失败时没有能力重建对数据库

有意思的代码--利用系统信号切换日志模式

看到Kite里面的源码,有段代码挺有意思. 上代码先: // SetupSignalHandler listens to signals and toggles the log level to DEBUG // mode when it received a SIGUSR2 signal. Another SIGUSR2 toggles the log // level back to the old level. func (k *Kite) SetupSignalHandler() { c

【调试】启用日志模式进行程序调试

import logging logging.basicConfig(level=logging.DEBUG, format=' %(asctime)s - %(levelname)s: %(message)s') #format显示格式可按自己喜好调整 #logging.disable(logging.CRITICAL) #调试日志是否显示开关 logging.debug('程序现在开始!') #调试日志开始标记 def factorial(n): logging.debug('开始执行:fa

ext3文件系统基础

http://blog.csdn.net/haiross/article/category/1488205/2 block size: 是文件系统最小的单位,Ext2/Ext3/Ext4 的区块大小可以是 1024.2048 或 4096 字节. (Compaq Alpha 可 以使用 8192 字节区块) mke2fs 一般缺省会把小于 512 MiB 的文件系统使用 1024 字节区块格式化,等于或大于 512 MiB 的文件系统使用 4096 字节区块.(实际是视乎 mke2fs.conf

Ext3文件系统及JDB介绍

Ext3介绍 对于ext3文件系统,磁盘空间划分一系列block groups,每个group有位图来跟踪inode和data块的分配和范围.其物理布局如下: Superblock:位于group内第0个block,为了保证兼容,前1024B字节为0,SB从1024B偏移处存储,大小1024B.存储的是文件系统相关信息,在多个group中有备份(0,1,3,5,7,9,25,37,49,81等).大部分信息在格式化时确定,并只读.可以用dumpe2fs命令查看: Group Descriptor

linux文件系统日志介绍

我们将inode 块与block块称为数据存放区域或普通数据块,superblock.block块位图.inode位图等称为中间数据或者元数据,因为元数据经常变化,会存在与实际数据不一致的情况.所以就有了文件系统日志功能. ext3文件系统日志:首先将待写的块的一个副本放入日志中,当发往日志的IO数据发送到日志中后(将数据提交到日志中),块即将写入文件系统,当发往文件系统的IO数据完毕时,( 把数据提交到了文件系统中),日志中的块副本就丢弃. 事实上,元数据的日志记录可以恢复文件系统结构的一致性

oracle中的日志文件模式

在oracle数据库中有两种日志模式,分别是:非归档日志模式和归档日志模式. 在oracle数据库系统中,为了避免日志文件中的内容在循环使用时被覆盖,oracle系统 将已经写满的日志文件通过文件复制保存到指定的地方,这个过程叫做"归档",复制保存下来 的日志文件叫做"归档日志".在归档日志文件中记录了用户对数据库的所有的修改操作,通过 归档日志文件,数据库管理员可以对数据库进行恢复操作. 日志文件的归档操作主要由后台进程ARCn自动完成.在必要的情况下,数据库管理

ext3是对ext2文件系统的一个扩展高性能日志文件系统

嵌入式开发者所做的最重要的决定之一就是部署哪种文件系统.有些文件系统性能比较高有些文件系统空间利用率比较高,还有一些文件系统设备故障或者意外断电后恢复数据比较方便. linux文件系统概念 分区 分区是对物理设备的逻辑划分,而文件系统就存在于这个设备上.一个物理设备可以只包含一个分区,占据所有可用空间,或者,它可以被分成多个分区,以适合某个特定任务的要求.一个分区可以被看成一个逻辑盘,它上面可以存储一个完整的文件系统.一个分区就是物理媒介的一个逻辑部分,这个分区中数据的组织形式遵循此分区类型的相