<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[ext4禁用日志功能--听说ext4有丢失数据的可能。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Unix/LinuxC技术]]></category>
<pubDate>Wed, 03 Apr 2013 07:06:42 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	正在使用 Ext4 文件系统的同学可得当心了。据某些用户反映，它可能会造成你的数据丢失。国外一位 Kubuntu Jaunty 的用户称，使用 Ext4 文件系统使他丢失了大量的数据，相关描述可参见位于 launchpad 上的 bug 报告。<br/><br/>无独有偶，国内的 albert748 也遇到了类似的问题。他描述道，X 无缘无故死掉，断电重启后，发现 Firefox 的配置丢了很多。与上面那位国外用户一样，albert748 也使用 2.6.28 内核和 Ext4 文件系统。<br/><br/>今天，H-Online 刊登了一篇文章 Ext4 data loss; explanations and workarounds，其中对此进行了解释，并包含 Ext4 开发者 Ted Ts&#039;o 提供的解决方案，有兴趣的同学可去看看。<br/>http://linuxtoy.org/archives/ext4-data-loss.html<br/><br/><br/>ext4提供有很多特性，当然有一些是前一代文件系统ext3本身就具有的，比如日志功能，但有时候我们却并不需要这些特性，则我们可以禁用它们。ext4文件系统的日志功能就是在牺牲一定性能的情况下增强稳定性的一种手段，但在一些情况，比如Web Server上存在的大量小文件所在的文件系统就是一个典型示例，此时可以禁用ext4的日志功能。<br/>要使用ext4文件系统需要先打开内核对应的编译选项：<br/>[root@localhost linux-2.6.36]# cat .config &#124; grep EXT4<br/>CONFIG_EXT4_FS=m<br/>CONFIG_EXT4_FS_XATTR=y<br/>CONFIG_EXT4_FS_POSIX_ACL=y<br/>CONFIG_EXT4_FS_SECURITY=y<br/>CONFIG_EXT4_DEBUG=y<br/>[root@localhost linux-2.6.36]#<br/>然后下载对应的应用层工具：http://e2fsprogs.sourceforge.net/，“./configure，make，make install”编译获得相应的命令工具：<br/>[root@localhost misc]# pwd<br/>/home/lenky/ext4/tools/e2fsprogs-1.42/misc<br/>[root@localhost misc]# md5sum mke2fs<br/>a2aff0475abb34abdf86f7946b071b38&nbsp;&nbsp;mke2fs<br/>[root@localhost misc]# md5sum /sbin/mkfs.ext4<br/>a2aff0475abb34abdf86f7946b071b38&nbsp;&nbsp;/sbin/mkfs.ext4<br/>[root@localhost misc]#<br/>禁用日志功能可以在创建ext4文件系统时就指定：<br/>[root@localhost ext4]# mkfs.ext4 -O ^has_journal /dev/sdd1<br/>mke2fs 1.42 (29-Nov-2011)<br/>Filesystem label=<br/>OS type: Linux<br/>Block size=4096 (log=2)<br/>Fragment size=4096 (log=2)<br/>Stride=0 blocks, Stripe width=0 blocks<br/>262144 inodes, 1048233 blocks<br/>52411 blocks (5.00%) reserved for the super user<br/>First data block=0<br/>Maximum filesystem blocks=1073741824<br/>32 block groups<br/>32768 blocks per group, 32768 fragments per group<br/>8192 inodes per group<br/>Superblock backups stored on blocks:<br/>&nbsp;&nbsp;&nbsp;&nbsp;32768, 98304, 163840, 229376, 294912, 819200, 884736<br/> <br/>Allocating group tables: done<br/>Writing inode tables: done<br/>Writing superblocks and filesystem accounting information: done <br/> <br/>[root@localhost ext4]# dumpe2fs /dev/sdd1 &#124; grep &#039;Filesystem features&#039; &#124; grep &#039;has_journal&#039;<br/>dumpe2fs 1.42 (29-Nov-2011)<br/>[root@localhost ext4]#<br/>或动态（即在ext4文件系统已经创建后）指定，比如打开日志功能：<br/>[root@localhost ext4]# tune2fs -O has_journal /dev/sdd1<br/>tune2fs 1.42 (29-Nov-2011)<br/>Creating journal inode: done<br/>[root@localhost ext4]# dumpe2fs /dev/sdd1 &#124; grep &#039;Filesystem features&#039; &#124; grep &#039;has_journal&#039;<br/>dumpe2fs 1.42 (29-Nov-2011)<br/>Filesystem features:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize<br/>[root@localhost ext4]#<br/>再关闭：<br/><br/>[root@localhost ext4]# tune2fs -O ^has_journal /dev/sdd1<br/>tune2fs 1.42 (29-Nov-2011)<br/>[root@localhost ext4]# dumpe2fs /dev/sdd1 &#124; grep &#039;Filesystem features&#039; &#124; grep &#039;has_journal&#039;<br/>dumpe2fs 1.42 (29-Nov-2011)<br/>[root@localhost ext4]#<br/>动态关闭和打开日志功能后可能需要对文件系统进行fsck检查，避免出错：<br/>[root@localhost ext4]# fsck.ext4 -f /dev/sdd1<br/>e2fsck 1.42 (29-Nov-2011)<br/>Pass 1: Checking inodes, blocks, and sizes<br/>Pass 2: Checking directory structure<br/>Pass 3: Checking directory connectivity<br/>Pass 4: Checking reference counts<br/>Pass 5: Checking group summary information<br/>/dev/sdd1: 11/262144 files (0.0% non-contiguous), 18510/1048233 blocks<br/>[root@localhost ext4]#<br/>更多ext4特性的开启与关闭可以查看man手册：“man mkfs.ext4”的-O选项。<br/>禁用ext4的日志功能后有少许的性能提升：http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0390131ba84fd3f726f9e24fc4553828125700bb<br/>结果拷贝过来为：<br/>测试方案：iozone -T -t 4 s 2g -r 256k -T -I -i0 -i1 -i2<br/>测试结果：<br/> &nbsp;&nbsp;ext2&nbsp;&nbsp;ext4, default&nbsp;&nbsp;ext4, no journal<br/>initial writes&nbsp;&nbsp;13.0 MB/s&nbsp;&nbsp;15.4 MB/s&nbsp;&nbsp;15.7 MB/s<br/>rewrites&nbsp;&nbsp;13.1 MB/s&nbsp;&nbsp;15.6 MB/s&nbsp;&nbsp;15.9 MB/s<br/>reads&nbsp;&nbsp;15.2 MB/s&nbsp;&nbsp;16.9 MB/s&nbsp;&nbsp;17.2 MB/s<br/>re-reads&nbsp;&nbsp;15.3 MB/s&nbsp;&nbsp;16.9 MB/s&nbsp;&nbsp;17.2 MB/s<br/>random readers&nbsp;&nbsp;5.6 MB/s&nbsp;&nbsp;5.6 MB/s&nbsp;&nbsp;5.7 MB/s<br/>random writers&nbsp;&nbsp;5.1 MB/s&nbsp;&nbsp;5.3 MB/s&nbsp;&nbsp;5.4 MB/s<br/>地址：http://lenky.info/2012/02/02/ext4%e7%a6%81%e7%94%a8%e6%97%a5%e5%bf%97%e5%8a%9f%e8%83%bd/或 http://lenky.info/?p=990<br/><br/>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] ext4禁用日志功能--听说ext4有丢失数据的可能。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>