1.ext3文件系统在ext2的基础上添加了日志功能,如同数据库一样用日志来保证数据的一致性。
ext2:前写block,后写inode!
ext3:增添了日志区(有利于数据一致性),先写inode! 等数据写到文件系统后,清除日志
2. 然而像oracle,mysql这样的大型数据都是基于日志文件,可以做到日志数据分离,即保证了数据的一致性又保证了效率。ext3这种文件系统默认都是内含的,小型服务器不做考虑,若是大型服务器,一方面是磁盘I/0慢,另一方面直接影响数据写入和读取的效率,因此建立数据区与日志区隔离,即减小I/O负担,加快数据写入效率,同时方便恢复
下面我给出日志区隔离的步骤:
1> umount 卸载分区,确保分区未使用
2> dumpe2fs /dev/sda1 | egrep -i (journal|size) 查看信息
3> tune2fs -O ^has_journal /dev/sda1 去掉内部默认的日志功能
4> mke2fs -O journal_dev -b 1024 /dev/sda5 格式化一个日志设备
5> tune2fs -j -J device=/dev/sda5 /dev/sda1 将日志设备添加到分区上
3. 用户还可以自己指定日志同步到文件系统的频率:
mount -o commit=15 日志同步到文件的间隔,可能数据丢失
4. 日志型文件系统的工作模式:不同的工作模式,效率不同,数据安全性不同
data=ordered 默认只有元数据写入日志区
data=journal 数据,元数据都写入日志区
data=writeback 只有元数据写入,但是不保证提交的次序