В анонсе Fedora 9 в одной из первых строчек упоминается о экспериментальной поддержке файловой системы ext4. В этой статье я расскажу о том какая же польза может быть от замены файловой ext3 на ext4 и какие дополнительные риски появятся у вас, если вы решитесь на этот шаг.
Чем лучше ext4
- ext4 быстрее, особенно при работе с большими файлами (очень заметно при удалении).
- размер файла — до 16Т, файловой системы — до 1024Р
- появились “расширенные атрибуты в inode” для SElinux, beagle, samba. В определённых ситуациях могут ускориться mkfs и fsck.
- Можно просто монтировать имеющиеся разделы ext3 как ext4
- Разрабатывается дефрагментатор наподобие имеющегося в XFS. Он будет уметь: собирать файл в непрерывную область, собирать файлы из одной директории вместе, собирать пустое пространство в непрерывную область. Производительность при этом должна возрастать
Как перейти с ext3 на ext4
В production-варианте ext3 можно будет смонтировать как ext4. Сейчас процедура немного сложнее.
Пускай на диск /dev/sdc1 у нас установлена ext3. С помощью blkid видим как идентифицирует файловую систему ядро.
[root@ad mnt]# blkid /dev/sdc1 /dev/sdc1: LABEL="/var/www/img" UUID="77d69541-cd2e-47d5-91fc-bdb5606aa8fb" SEC_TYPE="ext2" TYPE="ext3"
Пока у нас будет TYPE=”ext3″, мы не сможем подмонтировать диск под ext4. Фиксим эту проблему
[root@ad mnt]# debugfs -w /dev/sdc1 debugfs 1.40.8 (13-Mar-2008) debugfs: set_super_value s_flags 4 debugfs: quit
проверяем:
[root@ad mnt]# blkid /dev/sdc1 /dev/sdc1: LABEL="/var/www/img" UUID="77d69541-cd2e-47d5-91fc-bdb5606aa8fb" SEC_TYPE="ext2" TYPE="ext4dev"
Тут нет ошибки, сейчас файловая система называется ext4dev.
Можно монтировать:
[root@ad mnt]# mount -t ext4dev -o extents /dev/sdc1 ./test
Как форматнуть раздел под ext4
# mke2fs -E test_fs /dev/sdc1 # tune2fs -j /dev/sdc1
Где уже сейчас разумно использовать ext4
Могу сказать точно, что не в директории /var/lib/mysql. Я уже сейчас использую ext4dev, в разделе где складывается кеш nginx, а также весь фото-контент (при отдаче статики для nginx важна скорость работы с файловой системой).
Чтоб не рисковать, я менял файловую систему путем форматирования и заливки контента на чистый диск. Во время этой процедуры случился небольшой курьёз. В ext3 все файлы занимали 97G, после перезаливки на новый отформатированый раздел ext4dev получилось 90G. Врубил сравнение папок в mc, сравнивало полдня – все Ok :). Почему произошла экономия я сейчас сказать не могу, возможно, данные на ext3 были сильно фрагментированы (там было очень много директорий с мелкии файлами).
Какие риски?
Риски очевидны, это экспериментальная поддержка – возможно все! При переходе с ext2 на ext3 в любой момент можно было отказаться от ext3 и подмонтировать ext3 как ext2, если вы уже перешли на ext4 – назад дороги нет!
Можно монтироваться с опцией -o noextents и тогда будет возможность откатить все в ext3, но эта опция отрубает практически все прелести ext4.
В случае “слета” файловой системы нужно быть готовым к применению tune2fs.
Может быть вы уже решились перевести директорию /tmp на ext4 :)?