|
Á¦ ¸ñ : CentOS 5.x¿¡¼ ext4 ÆÄÀϽýºÅÛ »ç¿ë
ÀÛ¼ºÀÚ : ÁÁÀºÁøÈ£(truefeel, http://coffeenix.net/ )
ÀÛ¼ºÀÏ : 2009.8.28(±Ý)
¼öÁ¤ÀÏ : 2009.11.17(È) CentOS 5.4¿¡ ´ëÇÑ ³»¿ë Ãß°¡
CentOS 5.3 ¹öÀü¿¡¼ ±âº»ÀûÀ¸·Î Á¦°øÇÏ´Â Ä¿³Î¿¡¼´Â ext4 ÆÄÀϽýºÅÛÀÇ °³¹ß¹öÀü(ext4dev)À» »ç¿ëÇÒ ¼ö ÀÖ¾ú´Ù. ±× ÈÄ CentOS 5.4(RHEL 5.4)ÀÌ ³ª¿À¸é¼ ext4ÀÇ °³¹ß µüÁö¸¦ ¶¼¾î³ª°í, Á¤½ÄÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. /lib/modules/Ä¿³Î¹öÀü/kernel/fs/ext4/ ¾Æ·¡¸¦ »ìÆìº¸¸é ext4.ko (¶Ç´Â ext4dev.ko)µîÀÇ ext4 ÆÄÀϽýºÅÛ ¸ðµâÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
ext4 ÆÄÀϽýºÅÛ °ü·Ã ÅøÀÎ e4fsprogsÆÐŰÁö°¡ ¼³Ä¡µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì ¼³Ä¡ÇÑ´Ù.
|
# yum install e4fsprogs
# rpm -ql e4fsprogs
/etc/mke4fs.conf
/sbin/debuge4fs
/sbin/dumpe4fs
/sbin/e4fsck
/sbin/e4image
/sbin/e4label
/sbin/e4undo
/sbin/finde4fs
/sbin/fsck.ext4
/sbin/fsck.ext4dev
/sbin/mke4fs
/sbin/mkfs.ext4
/sbin/mkfs.ext4dev
/sbin/resize4fs
/sbin/tune4fs
| |
1. °£·«ÇÑ °úÁ¤ Á¤¸®
(¹æ¹ý 1) ext4 ÆÄÀнýºÅÛ »ý¼ºÇϱâ
1) mkfs.ext4 -L º¼·ý¸í /dev/ÆÄƼ¼Ç
2) /etc/fstab¿¡ ÇØ´ç ÆÄƼ¼Ç Á¤º¸¸¦ ¼³Á¤ÇÑ´Ù.
3) mount /dev/ÆÄƼ¼Ç
(¹æ¹ý 2) ext3 -> ext4·Î ÆÄÀϽýºÅÛ º¯°æÇϱâ
1) ext4·Î º¯°æÇÒ ÆÄƼ¼ÇÀ» ¸ÕÀú unmountÇÑ´Ù. ( umount /dev/ÆÄƼ¼Ç )
2) tune4fs -O extents,uninit_bg,dir_index /dev/ÆÄƼ¼Ç
3) fsck.ext4 -fpDC0 /dev/ÆÄƼ¼Ç
4) /etc/fstab¿¡¼ ext3 -> ext4·Î ¹Ù²ã ÀúÀåÇÑ´Ù.
5) mount /dev/ÆÄƼ¼Ç
2. ext4 ÆÄÀϽýºÅÛ »ý¼ºÇϱâ
ext2, ext3ÆÄÀϽýºÅÛ ¸¸µå´Â °Í°ú µ¿ÀÏÇÑ ¹æ¹ýÀ̹ǷΠµû·Î ¼³¸íÇÒ °Í Á¶Â÷ ¾ø´Ù. ¿¹Á¦¿¡¼´Â /dev/sdb1 ÆÄƼ¼ÇÀ¸·Î °¡Á¤ÇÑ´Ù.
|
# mkfs.ext4 -L /data /dev/sdb1 (-L Àº º¼·ý¸í. ¾Ë±â ½±°Ô ÀÓÀÇ·Î ÀûÀ¸¸é µÈ´Ù.)
# tune4fs -l /dev/sdb1
... »ý·« ...
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
... »ý·« ...
| |
ext4´Â ext3ÀÇ Á¦ÇÑÀÎ 2TBº¸´Ù ´õ Å« 16TB±îÁöÀÇ ÆÄÀϵµ »ý¼º °¡´ÉÇÏ´Ù. À§ÀÇ ÆÄÀϽýºÅÛ feature Áß¿¡¼ 'huge_file' ºÎºÐÀÌ ¹Ù·Î 2TBº¸´Ù ´õ Å« ÆÄÀÏÀ» »ý¼ºÇÒ ¼ö ÀÖÀ½À» ¶æÇÑ´Ù. ¶ÇÇÑ ext4¿¡¼´Â 32000ÀÇ ¼ºêµð·ºÅ丮 Á¦ÇÑÀ» ³Ñ¾î¼ 64000°³±îÁö ´Ã¾î³µ´Ù. ÀÌ¿¡ ´ëÇÑ °ÍÀº dir_nlink feature·Î Ç¥½ÃµÈ´Ù.
3. ext3 -> ext4·Î ÆÄÀϽýºÅÛ º¯°æÇϱâ
e4fsprogs ¼³Ä¡ ÈÄ tune2fs°¡ ¾Æ´Ñ tune4fs ¸í·ÉÀ¸·Î ext3ÆÄÀϽýºÅÛÀ» ext4·Î º¯°æÇÑ´Ù. tune4fs·Î º¯°æÇϱâ Àü¿¡ ÆÄƼ¼ÇÀº unmountÇÑ´Ù. /dev/sdb1 ÆÄƼ¼ÇÀ» ¿¹·Î µé¾îº¸ÀÚ.
|
# tune2fs -l /dev/sdb1 (º¯°æ Àü)
... »ý·« ...
Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem state: clean
... »ý·« ...
#
# tune4fs -O extents,uninit_bg,dir_index /dev/sdb1 (ÆÄƼ¼Ç ext4·Î º¯°æ)
tune4fs 1.41.1 (01-Sep-2008)
Please run e4fsck on the filesystem.
#
# tune4fs -l /dev/sdb1 (º¯°æ ÈÄ, fsck Àü)
... »ý·« ...
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent sparse_super large_file uninit_bg
Filesystem state: not clean
... »ý·« ...
| |
2TB~16TBÀÇ ÆÄÀÏÅ©±â¸¦ »ý¼ºÇÏ°í ½Í´Ù¸é tune4fs -O ¿É¼Ç¿¡ huge_file±îÁö, ¶Ç 32000°³ÀÇ ¼ºêµð·ºÅ丮 Á¦ÇÑÀ» ³Ñ¾î¼·Á¸é dir_nlink ±îÁö Ãß°¡ÇØÁÖ¸é µÈ´Ù. fsck.ext4 ¶Ç´Â e4fsck ·Î ÆÄÀϽýºÅÛÀ» °Ë»çÇÑ´Ù.
|
# fsck.ext4 -fpDC0 /dev/sdb1
/data: Group descriptor 0 checksum is invalid. FIXED.
/data: Group descriptor 1 checksum is invalid. FIXED.
/data: Group descriptor 2 checksum is invalid. FIXED.
/data: Group descriptor 3 checksum is invalid. FIXED.
/data: Group descriptor 4 checksum is invalid. FIXED.
... »ý·« ...
/data: Adding dirhash hint to filesystem.
/data: 32/8895488 files (3.1% non-contiguous), 455254/8889961 blocks
#
# tune4fs -l /dev/sdb1 (º¯°æ ÈÄ, fsck ÈÄ)
... »ý·« ...
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent sparse_super large_file uninit_bg
Filesystem flags: signed_directory_hash
Filesystem state: clean
... »ý·« ...
| |
4. ext4 ÆÄÀϽýºÅÛ ¸¶¿îÆ®Çϱâ
/etc/fstab¿¡¼ ÇØ´ç ÆÄƼ¼ÇÀÇ ÆÄÀϽýºÅÛ À¯ÇüÀ» ext4·Î º¯°æÇÑ´Ù. ±×¸®°í, mountÇÏ¸é ³¡.
|
# mount /data
# mount
/dev/sda7 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
... »ý·« ...
/dev/sdb1 on /data type ext4 (rw,nosuid)
| |
syslogÅëÇØ¼ ·Î±×´Â ´ÙÀ½°ú °°ÀÌ ³²´Â´Ù.
|
Oct 26 18:48:10 cnx1 kernel: kjournald2 starting: pid 2497, dev sdb1:8, commit interval 5 seconds
Oct 26 18:48:10 cnx1 kernel: EXT4 FS on sdb1, internal journal on sdb1:8
Oct 26 18:48:10 cnx1 kernel: EXT4-fs: delayed allocation enabled
Oct 26 18:48:10 cnx1 kernel: EXT4-fs: file extents enabled
Oct 26 18:48:10 cnx1 kernel: EXT4-fs: mballoc enabled
Oct 26 18:48:10 cnx1 kernel: EXT4-fs: mounted filesystem sdb1 with ordered data mode
| |
¡Ø CentOS 5.3¿¡¼ ±âº»Ä¿³ÎÀ» »ç¿ëÇÏ´Â °æ¿ì /etc/fstab¿¡ ext4dev·Î Àû¾î¾ß ÇÑ´Ù. mount °á°ú¿¡¼µµ ext4dev·Î Ç¥½ÃµÈ´Ù.
5. mountÇÒ ¶§ ¿¡·¯ (CentOS 5.3¿¡¼ ext4 °³¹ß¹öÀü(ext4dev)ÀÏ °æ¿ì)
mountÇÒ ¶§ ´ÙÀ½°ú °°Àº °æ°í ¸Þ½ÃÁö°¡ ³ª¿Ã ¼ö ÀÖ´Ù. ext4 Á¤½Ä¹öÀüÀ̸é fsck ÈÄ¿¡ mountÇÏ¸é ¹®Á¦¾øÀ» °ÍÀÌ´Ù. ±×·¯³ª ext4dev ¹öÀüÀÏ °æ¿ì¿¡´Â tune4fs·Î ¼³Á¤ º¯°æÀÌ ÇÊ¿äÇÏ´Ù.
|
# mount /data
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
| |
syslog ¿¡´Â ´ÙÀ½°ú °°Àº ·Î±×°¡ ³²¾ÆÀÖ´Ù.
|
Aug 28 11:11:55 cnx1 kernel: EXT3-fs: sdb1: couldn't mount because of unsupported optional features (40).
| |
tune4fs ·Î ¼³Á¤ º¯°æ ÈÄ tune4fs -l ·Î »ìÆìº¸¸é, ÆÄÀϽýºÅÛ flagÀÇ º¯È°¡ ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. ÀÌÈÄ mountÇÏ¸é ¹®Á¦¾øÀÌ ÇØ°áµÈ´Ù.
|
# mount -t ext4dev /dev/sdb1 /data
Aug 28 11:26:42 cnx1 kernel: EXT4-fs: sdb1: not marked OK to use with test code.
# lsmod | grep ext4
ext4dev 200029 0
jbd2 55513 1 ext4dev
crc16 6209 1 ext4dev
# tune4fs -E test_fs /dev/sdb1
tune4fs 1.41.1 (01-Sep-2008)
Setting test filesystem flag
# tune4fs -l /dev/sdb1
... »ý·« ...
Filesystem flags: signed_directory_hash test_filesystem
... »ý·« ...
| |
6. Âü°íÀÚ·á
* EXT ÆÄÀÏ ½Ã½ºÅÛ(ext1, ext2, ext3, ext4)
http://serna.tistory.com/7
* ext4
http://en.wikipedia.org/wiki/Ext4
* huge_file feature¿¡ ´ëÇÑ ±Û
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=509893
|