headermask image
Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

ext4: Еще тестируется или уже работает?

В анонсе 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 :)?

Оригинал