Апр 14

Уже больше года у меня на mini-ITX компьютере (Intel D945GCLF2, Atom 330) крутился Debian Lenny x86. Все работало отлично, но вот скорость записи на NTFS-диски меня категорически не устраивала. Например,  операция копирования на внешний USB-NTFS диск свежескачанных файлов большого объема (пусть это будет инсталяционный набор на DVD какого-нибудь из дистрибутивов Linux  ;-)) занимала много времени со средней скоростью в районе 4-5Мб/сек из 26Мб/сек возможных. Это мне надоело, и, предположив, что все дело в старых версиях пакетов, используемых в Debian, я подключил нестабильные репозитарии и обновился...

В результате отвалилась графическая подсистема (часть нужных пакетов были только в stable репозитарии и не совместимы с новыми пакетами), а скорость не увеличилась.  Попробовав Ubuntu Server  9.10 x64 и Sabayon 5.2 x64 Gnome я получил схожие результаты. Причем на на других машинах со сравнимой производительностью процессора и скорость записи была похожая, а вот на значительно более мощных процессорах (например, Q8200) все летало так, как и должно было бы быть.  Правда, необходимо заметить, что при этом загрузка одного из ядер процессора Q8200 составляла 100%.

Откатившись назад к Debian и поискав в сети похожие случаи, я сделал вывод, что дело в низкой производительности драйвера FUSE NTFS-3G на слабых машинах, у которого, к тому же, наблюдается падение скорости записи при росте размера записываемого файла. Готовых опробованных решений, кроме переформатирования дисков в EXT3 или т.п. не было. Однако, есть коммерческие драйверы (kernel mode) для NTFS под Linux: разработки Paragon (NTFS for Linux 7.0 Express) и разработки Tuxera (Tuxera NTFS). Перспектива платить деньги за драйвер меня не порадовала, потому на английском сайте Paragon'a я нашел бесплатную для некоммерческого использования версию драйвера Paragon NTFS for Linux 7.0 Express, с незначительными для данного случая ограничениями по функционалу (нет утилиты проверки ФС, нет дефрагментатора, не поддерживаются динамические тома и пр, подробности у них на сайте).

Главные поддерживаемые функции (осталось их проверить на практике):

  • NTFS versions 1.2, 3.0 and 3.1 (Windows NT 4.0, 2000, XP, 2003, Vista)
  • Compressed files
  • Files and folders with security permissions
  • Sparse files support (NTFS)
  • File and folder names in national languages (pass file system code page name to driver), including support for Asian (hieroglyphic) languages
  • No system degradation during data transfers
  • Support for SMP kernels (multiprocessor systems)
  • No limitations in maximum file size (conforms to kernel and NTFS limitations)

Состав стенда:

  • процессорная плата Intel D945GCLF2, Atom 330, 1Gb RAM
  • системный диск WD 250Gb IDE
  • тестируемый накопитель WDC WD6400AACS-00D6B1, SATA
  • файловая система NTFS (отформатирована под Windows XP, один раздел на весь диск, свободно 180Гб). Специально не очищал диск для создания условий, приближенных к реальному использованию.
  • Debian Lenny (Linux lenny 2.6.26-2-686 #1 SMP; ntfs-3g 1.2531, установлены все обновления по 14.04.2010)

Драйвер поставляется в исходных кодах и собирается на месте под конкретное ядро. Под версией 2.6.26 у меня собирается, а под 2.6.27 и 2.6.31 уже нет, что подтверждается жалобами на форуме с участием представителей разработчика (тут). Необходимо заметить, что применять сабж нужно с осторожность, т.к. в ранних бета-версиях были обнаружены проблемы со стабильностью (линк). Сам драйвер "из коробки" собираться не хочет, требуется предварительно скачаные и собранные исходные коды текущего ядра, а также указание путей к ним (проще сделать символическую ссылку для той папки, в которой установщик будет искать коды ядра).

Для упрощения, тестирование проводилось измерением времени записи последовательности из нулей нужного размера (1.6 Гб, 3.3Гб, 6.6Гб, 16Гб, 33Гб) с помощью следующей команды (count менялся для изменения размера файла):

# dd if=/dev/zero of=/media/Music_640/test.bin count=50000 bs=32768

Результат тестирования сведен в одну диаграмму:

Разница по скорости последовательной записи очень значительная, и растет при увеличении размера записываемого файла. При этом при работе FUSE NTFS-3G драйвера на 100% загружены все 4 вычислительных потока процессора, чего нет при использовании драйвера Paragon. Похожие результаты были получены и тут. Полученный результат мне понравился, ведь теперь можно без потери производительности использовать NTFS под Linux. Правда, осталась нерешенной проблема совместимости драйвера с более свежими ядрами. В итоге, для полноценной работы NTFS с большими файлами под линукс на маломощных ЭВМ однозначно нужно прикручивать драйвер. С другой стороны, есть альтернативное решение -- разбить внешний диск на два раздела (FAT+EXT3), положить на FAT драйвера файловой системы EXT3 под Windows и далее уже пользоваться родной для Linux файловой системой.

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Автор: Vasiliy \\ Метки: , , ,


2 комментария к “Сборка Mini-ITX файл сервера. Часть 8. Linux и NTFS”

  1. 1. le_bul_de_sier пишет:

    дай какой-нибудь вывод: что с чем сравнивалось и что рулит?

    Ответить

    vasiliy Reply:

    Обновил описание, привел версию драйвера. Парагоновский драйвер однозначно рулит против штатного, разница достигает 26 раз. В общем то понятно, что под Linux рулят родные для него файловые системы: XFS на больших файлах, Reiser и EXT4 на мелких. Однако, и NTFS с нормальным драйвером отлично работает, а производительность ограничивается только возможностями накопителя. Так что выбирать надо под конкретную задачу. В данном случае я выбрал NTFS по нескольким причинам (наличие большого ассортимента ПО для восстановления данных, отлично реализованы методы дефрагментации, совместимость без дополнительных драйверов с Win).

    Ответить

Оставьте комментарий или два