Ext3 提供三种数据日志记录方式: data=writeback 、 data=ordered (默认) data=journal。
1 data=writeback 方式
data=writeback方式下,ext3根本不执行任何形式的数据日志记录,提供给您的是和在XFS,JFS和 ReiserFS文件系统中找到的类似的日志记录(仅元数据)。这会让最近修改的文件在出现意外的重新引导事件中被毁坏。如果不考虑这个缺点, data=writeback 方式在大多数情况下应该能够提供最佳的ext3性能。
2 data=ordered 方式
data=ordered方式下,ext3只是正式记录元数据,而在逻辑上将元数据和数据块分组到称为事务的单个单元中。到了将新的元数据写到磁盘上的时候, 首先写的是相关的数据块。
data=ordered方式有效地解决了在 data=writeback 方式下和大多数其它日志记录文件系统中发现的毁坏问题,而这是在不需要完整数据日志记录的情况下做到的。一般说来,data=ordered ext3文件系统执行的速度比data=writeback文件系统执行的速度稍微慢一些,但比对应的完整数据日志记录还是要快出许多。
将数据附加到文件时,data=ordered方式提供了ext3完整数据日志记录方式提供的所有完整性保证。
不过,如果正在覆盖某一部分文件,而此时系统崩溃,那么有可能所写的区将包含原始块和在其中散布了更新块的组合。这是因为 data=ordered 不提供首先覆盖哪一个数据块的保证,因此不能假设只是因为更新了被覆盖的块 x,也就更新了被覆盖的块 x-1。
data=ordered让写操作顺序由硬盘的写高速缓存决定。这个限制并不经常具有负面影响,因为附加的文件一般比覆盖的文件更普遍。出于这个原因,data=ordered 方式是对完整数据日志记录的一个很好的更高性能的替代。
3 data=journal 方式
data=journal 方式提供了完整数据和元数据日志记录。所有新数据首先写入日志,然后再写入它的最终位置。在崩溃情况下,可以重放日志,使数据和元数据处于一致的状态。
要指定日志方式,可以使用如下方式:
1 向/etc/fstab的选项节添加适当的字符串例如 data=journal
2 在调用 mount 时直接指定 -o data=journal 命令行选项。
如果您愿意指定用于根文件系统的数据日志记录方法data=ordered是缺省值,则可以使用名为 rootflags 的特殊内核引导选项。因此,要将根文件系统置于完整数据日志记录方式下,则向内核引导选项添加rootflags=data=journal 。
[root@rac4 ~]# dmesg | grep -B 1 "mounted filesystem"
kjournald starting. Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
--
EXT3 FS on sda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
--
EXT3 FS on sdb1, internal journal
EXT3-fs: mounted filesystem with journal data mode.
--
EXT3 FS on sdb1, internal journal
EXT3-fs: mounted filesystem with writeback data mode.
用dmesg这个工具来查看一些硬件的信息,命令记录对所以文件系统mount的信息,对/home/yang 进行mount和umount操作,会在dmesg 命令输出中显示出来!
[root@rac4 yang]# mount -o data=journal /dev/sdb1 /home/yang
[root@rac4 yang]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 26G 12G 13G 48% /
/dev/sda1 99M 12M 83M 13% /boot
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /home/yang
[root@rac4 yang]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 26G 12G 13G 48% /
/dev/sda1 99M 12M 83M 13% /boot
tmpfs 2.0G 0 2.0G 0% /dev/shm
[root@rac4 yang]# mount -o data=writeback /dev/sdb1 /home/yang
[root@rac4 yang]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 26G 12G 13G 48% /
/dev/sda1 99M 12M 83M 13% /boot
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /home/yang