ºìÁªLinuxÃÅ»§
Linux°ïÖú

Ext4ÎļþϵͳºÍExt3ÎļþϵͳÐÔÄܶԱÈ

·¢²¼Ê±¼ä:2009-02-12 10:39:16À´Ô´:ºìÁª×÷Õß:Segim
À´Ô´£ºhttp://hi.baidu.com/augustinezl

ÎÒ¶ÔUbuntu9.04ÖÐмÓÈëµÄEXt4Îļþϵͳһֱ·Ç³£ºÃÆæ£¬½ñÌìûʾÍÕÒÁËÕÒÏà¹ØµÄ×ÊÁϸú´ó¼Ò·ÖÏíһϣ¬EXT4ºÍEXT3Ïà±È¾ßÓÐÄÄЩ¸Ä½ø¡£

Ext4 ÊÇ Ext3 µÄ¸Ä½ø°æ£¬ÐÞ¸ÄÁË Ext3 Öв¿·ÖÖØÒªµÄÊý¾Ý½á¹¹£¬¶ø²»½ö½öÏñ Ext3 ¶Ô Ext2 ÄÇÑù£¬Ö»ÊÇÔö¼ÓÁËÒ»¸öÈÕÖ¾¹¦ÄܶøÒÑ¡£Ext4 ¿ÉÒÔÌṩ¸ü¼ÑµÄÐÔÄܺͿɿ¿ÐÔ£¬»¹ÓиüΪ·á¸»µÄ¹¦ÄÜ¡£
Linux kernel ×Ô 2.6.28 ¿ªÊ¼Õýʽ֧³ÖеÄÎļþϵͳ Ext4¡£ Ext4 ÊÇ Ext3 µÄ¸Ä½ø°æ£¬ÐÞ¸ÄÁË Ext3 Öв¿·ÖÖØÒªµÄÊý¾Ý½á¹¹£¬¶ø²»½ö½öÏñ Ext3 ¶Ô Ext2 ÄÇÑù£¬Ö»ÊÇÔö¼ÓÁËÒ»¸öÈÕÖ¾¹¦ÄܶøÒÑ¡£Ext4 ¿ÉÒÔÌṩ¸ü¼ÑµÄÐÔÄܺͿɿ¿ÐÔ£¬»¹ÓиüΪ·á¸»µÄ¹¦ÄÜ£º

1. Óë Ext3 ¼æÈÝ¡£Ö´ÐÐÈô¸ÉÌõÃüÁ¾ÍÄÜ´Ó Ext3 ÔÚÏßÇ¨ÒÆµ½ Ext4£¬¶øÎÞÐëÖØÐ¸ñʽ»¯´ÅÅÌ»òÖØÐ°²×°ÏµÍ³¡£Ô­ÓÐ Ext3 Êý¾Ý½á¹¹ÕÕÑù±£Áô£¬Ext4 ×÷ÓÃÓÚÐÂÊý¾Ý£¬µ±È»£¬Õû¸öÎļþϵͳÒò´ËÒ²¾Í»ñµÃÁË Ext4 ËùÖ§³ÖµÄ¸ü´óÈÝÁ¿¡£

2. ¸ü´óµÄÎļþϵͳºÍ¸ü´óµÄÎļþ¡£½ÏÖ® Ext3 ĿǰËùÖ§³ÖµÄ×î´ó 16TB ÎļþϵͳºÍ×î´ó 2TB Îļþ£¬Ext4 ·Ö±ðÖ§³Ö 1EB£¨1,048,576TB£¬ 1EB=1024PB£¬ 1PB=1024TB£©µÄÎļþϵͳ£¬ÒÔ¼° 16TB µÄÎļþ¡£

3. ÎÞÏÞÊýÁ¿µÄ×ÓĿ¼¡£Ext3 Ŀǰֻ֧³Ö 32,000 ¸ö×ÓĿ¼£¬¶ø Ext4 Ö§³ÖÎÞÏÞÊýÁ¿µÄ×ÓĿ¼¡£

4. Extents¡£Ext3 ²ÉÓüä½Ó¿éÓ³É䣬µ±²Ù×÷´óÎļþʱ£¬Ð§Âʼ«ÆäµÍÏ¡£±ÈÈçÒ»¸ö 100MB ´óСµÄÎļþ£¬ÔÚ Ext3 ÖÐÒª½¨Á¢ 25,600 ¸öÊý¾Ý¿é£¨Ã¿¸öÊý¾Ý¿é´óСΪ 4KB£©µÄÓ³Éä±í¡£¶ø Ext4 ÒýÈëÁËÏÖ´úÎļþϵͳÖÐÁ÷ÐÐµÄ extents ¸ÅÄÿ¸ö extent Ϊһ×éÁ¬ÐøµÄÊý¾Ý¿é£¬ÉÏÊöÎļþÔò±íʾΪ¡°¸ÃÎļþÊý¾Ý±£´æÔÚ½ÓÏÂÀ´µÄ 25,600 ¸öÊý¾Ý¿éÖС±£¬Ìá¸ßÁ˲»ÉÙЧÂÊ¡£

5. ¶à¿é·ÖÅä¡£µ±Ð´ÈëÊý¾Ýµ½ Ext3 ÎļþϵͳÖÐʱ£¬Ext3 µÄÊý¾Ý¿é·ÖÅäÆ÷ÿ´ÎÖ»ÄÜ·ÖÅäÒ»¸ö 4KB µÄ¿é£¬Ð´Ò»¸ö 100MB Îļþ¾ÍÒªµ÷Óà 25,600 ´ÎÊý¾Ý¿é·ÖÅäÆ÷£¬¶ø Ext4 µÄ¶à¿é·ÖÅäÆ÷¡°multiblock allocator¡±£¨mballoc£© Ö§³ÖÒ»´Îµ÷Ó÷ÖÅä¶à¸öÊý¾Ý¿é¡£

6. ÑÓ³Ù·ÖÅä¡£Ext3 µÄÊý¾Ý¿é·ÖÅä²ßÂÔÊǾ¡¿ì·ÖÅ䣬¶ø Ext4 ºÍÆäËüÏÖ´úÎļþ²Ù×÷ϵͳµÄ²ßÂÔÊǾ¡¿ÉÄܵØÑÓ³Ù·ÖÅ䣬ֱµ½ÎļþÔÚ cache ÖÐдÍê²Å¿ªÊ¼·ÖÅäÊý¾Ý¿é²¢Ð´Èë´ÅÅÌ£¬ÕâÑù¾ÍÄÜÓÅ»¯Õû¸öÎļþµÄÊý¾Ý¿é·ÖÅ䣬ÓëǰÁ½ÖÖÌØÐÔ´îÅäÆðÀ´¿ÉÒÔÏÔÖøÌáÉýÐÔÄÜ¡£

7. ¿ìËÙ fsck¡£ÒÔǰִÐÐ fsck µÚÒ»²½¾Í»áºÜÂý£¬ÒòΪËüÒª¼ì²éËùÓÐµÄ inode£¬ÏÖÔÚ Ext4 ¸øÃ¿¸ö×éµÄ inode ±íÖж¼Ìí¼ÓÁËÒ»·ÝδʹÓà inode µÄÁÐ±í£¬½ñºó fsck Ext4 Îļþϵͳ¾Í¿ÉÒÔÌø¹ýËüÃǶøÖ»È¥¼ì²éÄÇЩÔÚÓÃµÄ inode ÁË¡£

8. ÈÕ־УÑé¡£ÈÕÖ¾ÊÇ×î³£ÓõIJ¿·Ö£¬Ò²¼«Ò×µ¼Ö´ÅÅÌÓ²¼þ¹ÊÕÏ£¬¶ø´ÓË𻵵ÄÈÕÖ¾Öлָ´Êý¾Ý»áµ¼Ö¸ü¶àµÄÊý¾ÝË𻵡£Ext4 µÄÈÕ־УÑ鹦ÄÜ¿ÉÒԺܷ½±ãµØÅжÏÈÕÖ¾Êý¾ÝÊÇ·ñË𻵣¬¶øÇÒËü½« Ext3 µÄÁ½½×¶ÎÈÕÖ¾»úÖÆºÏ²¢³ÉÒ»¸ö½×¶Î£¬ÔÚÔö¼Ó°²È«ÐÔµÄͬʱÌá¸ßÁËÐÔÄÜ¡£

9. ¡°ÎÞÈÕÖ¾¡±£¨No Journaling£©Ä£Ê½¡£ÈÕÖ¾×ܹéÓÐһЩ¿ªÏú£¬Ext4 ÔÊÐí¹Ø±ÕÈÕÖ¾£¬ÒÔ±ãijЩÓÐÌØÊâÐèÇóµÄÓû§¿ÉÒÔ½è´ËÌáÉýÐÔÄÜ¡£

10. ÔÚÏßË鯬ÕûÀí¡£¾¡¹ÜÑÓ³Ù·ÖÅä¡¢¶à¿é·ÖÅäºÍ extents ÄÜÓÐЧ¼õÉÙÎļþϵͳË鯬£¬µ«Ë鯬»¹ÊDz»¿É±ÜÃâ»á²úÉú¡£Ext4 Ö§³ÖÔÚÏßË鯬ÕûÀí£¬²¢½«Ìṩ e4defrag ¹¤¾ß½øÐиö±ðÎļþ»òÕû¸öÎļþϵͳµÄË鯬ÕûÀí¡£

11. inode Ïà¹ØÌØÐÔ¡£Ext4 Ö§³Ö¸ü´óµÄ inode£¬½ÏÖ® Ext3 ĬÈ쵀 inode ´óС 128 ×Ö½Ú£¬Ext4 ΪÁËÔÚ inode ÖÐÈÝÄɸü¶àµÄÀ©Õ¹ÊôÐÔ£¨ÈçÄÉÃëʱ¼ä´Á»ò inode °æ±¾£©£¬Ä¬ÈÏ inode ´óСΪ 256 ×Ö½Ú¡£Ext4 »¹Ö§³Ö¿ìËÙÀ©Õ¹ÊôÐÔ£¨fast extended attributes£©ºÍ inode ±£Áô£¨inodes reservation£©¡£

12. ³Ö¾ÃÔ¤·ÖÅ䣨Persistent preallocation£©¡£P2P Èí¼þΪÁ˱£Ö¤ÏÂÔØÎļþÓÐ×ã¹»µÄ¿Õ¼ä´æ·Å£¬³£³£»áÔ¤ÏÈ´´½¨Ò»¸öÓëËùÏÂÔØÎļþ´óСÏàͬµÄ¿ÕÎļþ£¬ÒÔÃâδÀ´µÄÊýСʱ»òÊýÌìÖ®ÄÚ´ÅÅ̿ռ䲻×ãµ¼ÖÂÏÂÔØÊ§°Ü¡£Ext4 ÔÚÎļþϵͳ²ãÃæÊµÏÖÁ˳־ÃÔ¤·ÖÅä²¢ÌṩÏàÓ¦µÄ API£¨libc ÖÐµÄ posix_fallocate()£©£¬±ÈÓ¦ÓÃÈí¼þ×Ô¼ºÊµÏÖ¸üÓÐЧÂÊ¡£

13. ĬÈÏÆôÓà barrier¡£´ÅÅÌÉÏÅäÓÐÄÚ²¿»º´æ£¬ÒÔ±ãÖØÐµ÷ÕûÅúÁ¿Êý¾ÝµÄд²Ù×÷˳Ðò£¬ÓÅ»¯Ð´ÈëÐÔÄÜ£¬Òò´ËÎļþϵͳ±ØÐëÔÚÈÕÖ¾Êý¾ÝдÈë´ÅÅÌÖ®ºó²ÅÄÜд commit ¼Ç¼£¬Èô commit ¼Ç¼дÈëÔÚÏÈ£¬¶øÈÕÖ¾ÓпÉÄÜË𻵣¬ÄÇô¾Í»áÓ°ÏìÊý¾ÝÍêÕûÐÔ¡£Ext4 ĬÈÏÆôÓà barrier£¬Ö»Óе± barrier ֮ǰµÄÊý¾ÝÈ«²¿Ð´Èë´ÅÅÌ£¬²ÅÄÜд barrier Ö®ºóµÄÊý¾Ý¡££¨¿Éͨ¹ý "mount -o barrier=0" ÃüÁî½ûÓøÃÌØÐÔ¡££©

Ext4 Ëæ Linux kernel 2.6.28 Õýʽ·¢²¼ÒÑÓÐÊýÖÜ£¬Ò»Ö±¿àÓÚÕÒ²»µ½²âÊÔÓõĴÅÅÌ£¬ÕýÇÉÄêǰ Intel ËÍÀ´¼¸¿é SSD ²âÊÔÑùÆ·£¬ÕâÁ½Ìì¾Í˳´ø°Ñ SSD Ò²²âÁË¡£²âÊÔËùʹÓÃµÄ Linux Äں˰汾Ϊ 2.6.28.2£¬²âÊÔ¹¤¾ßΪ IOzone 3.318¡£

IOzone ²âÊÔÃüÁîΪ£º

time /opt/iozone/bin/iozone -a -s 4G -q 256 -y 4 >|/root/ext4-iozone-stdout.txt

ÉÏÊöÃüÁîµÄ˵Ã÷ÈçÏ£º

Auto Mode
File size set to 4194304 KB
Using Maximum Record Size 256 KB
Using Minimum Record Size 4 KB
Command line used: /opt/iozone/bin/iozone -a -s 4G -q 256 -y 4
Output is in Kbytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 Kbytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.

²âÊÔ½á¹û³ýÁ˱íÃ÷ Intel SSD µÄ¶ÁдËÙ¶È¿ìµÃÁîÈËÕ¦ÉàÖ®Í⣬»¹¿ÉÒÔ˵Ã÷ Ext4 µÄ¸÷·½ÃæÐÔÄܶ¼³¬¹ýÁËÉÏÒ»´ú Ext3£¬ÉõÖÁÔÚ´ó¶àÊýÇé¿öÏ£¬±ÈûÓÐÈÕÖ¾¹¦ÄÜµÄ Ext2 »¹Òª¿ì³ö²»ÉÙ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 5 ÌõÆÀÂÛ

  1. ´ó±¦ ÓÚ 2009-02-19 22:05:05·¢±í:

    »¹Ð´Â©ÁËÒ»Ï¸ú×ÙдÈë¼¼Êõ(ºÇºÇ£¬ÎÒÊÇÕâô·­ÒëµÄ)£¬¾ÍÊǾ¡Á¿½«Í¬Ò»Îļþ(¾ÍËãÖ®ºó½øÐÐÁËÐÞ¸Ä)Á¬ÐøµØÐ´Èëͬһ¿ÕÏдæÖü¿Õ¼äÖÐ

  2. smqt ÓÚ 2009-02-19 17:19:49·¢±í:

    ext4ÊÇÒ»¸ö¹ý¶ÈÐÔµÄÎļþϵͳ£¬ÒÔºóÃæÏòÆÕͨÓû§µÄÎļþϵͳÊÇbtrfs(ʵÏÖzfsµÄ´ó²¿·Ö¹¦ÄÜ£¬¶ÔÆÕͨÓû§×ã¹»ÁË£©£¬·þÎñÆ÷µÄÓÐtux3ºÍhummerfs(¾ùÔÚ¿ª·¢ÖУ¬ºÅ³Æ¿ÉÒÔÈ«Ãæ³¬Ô½zfs)

  3. LinuxSpace ÓÚ 2009-02-17 09:25:43·¢±í:

    µÈа汾³öÀ´ºóÎÒÂíÉÏ»»³ÉEXT4

  4. cwqing1973 ÓÚ 2009-02-16 14:51:24·¢±í:

    дµÃ²»´í°¡¡£ÓÐÉî¶È£¡Ò²ºÜ͸ÇÐ

  5. tlze ÓÚ 2009-02-12 21:04:23·¢±í:

    ºÜºÃµÄ¼¼ÊõÎÄÕ£¬Êղء£