116

Из вики:

Основная функция TRIM поддерживается ОС Linux, начиная с ядра 2.6.33 (доступно в начале 2010 года). Тем не менее, поддержка различных файловых систем по-прежнему противоречива или отсутствует. Правильное выравнивание разделов также не выполняется установочным программным обеспечением.

Итак, какая файловая система лучше всего работает для SSD и поддерживает выравнивание разделов TRIM + во время установки и доступна в Ubuntu?

4 ответа4

89

Файловая система EXT4 + TRIM:

  • EXT4 с TRIM повышает производительность за счет сокращения ненужных циклов записи на SSD-накопитель, поскольку они ограничивают циклы записи-перезаписи.
  • Ubuntu и некоторые другие версии Linux поддерживают EXT 4 с TRIM из коробки.

SWAP-раздел:

  • Убедитесь, что у вас нет пространства SWAP на SSD, чтобы уменьшить цикл записи.
  • Если у вас есть механический привод, вы должны создать пространство SWAP на механическом диске и избегать его на SSD.

Выравнивание раздела:

  • Раздел должен начинаться с чистой границы в 1 МБ, чтобы размер блока файловой системы совпадал с размером блока SSD.

Поэтому используйте EXT4 + TRIM с SWAP на механическом жестком диске или без SWAP на SSD.

Вышесказанное можно реализовать, обратившись к источнику: Как максимизировать производительность SSD.

64

Короткий ответ

  • Выберите ext4 и либо смонтируйте его с опцией discard для поддержки TRIM , либо используйте FITRIM (см. Ниже). Также используйте опцию noatime если вы боитесь "износа SSD".

  • Не изменяйте планировщик ввода-вывода по умолчанию (CFQ) на серверах с несколькими приложениями , поскольку он обеспечивает справедливость между процессами и имеет автоматическую поддержку SSD. Тем не менее, используйте Deadline на настольных компьютерах, чтобы получить лучшую отзывчивость под нагрузкой.

  • Чтобы легко гарантировать правильное выравнивание данных, начальный сектор каждого раздела должен быть кратным 2048 (= 1 МиБ). Вы можете использовать fdisk -cu /dev/sdX для их создания. В последних выпусках он автоматически позаботится об этом за вас.

  • Подумайте дважды, прежде чем использовать своп на SSD. Вероятно, он будет намного быстрее по сравнению со свопом на жестком диске, но он также будет быстрее изнашивать диск (что может быть не актуально, см. Ниже).

Длинный ответ

  • Файловые:

Ext4 - самая распространенная файловая система Linux (в хорошем состоянии). Он обеспечивает хорошую производительность с SSD и поддерживает функцию TRIM (и FITRIM), чтобы поддерживать хорошую производительность SSD с течением времени (это очищает неиспользуемые блоки памяти для быстрого последующего доступа к записи). NILFS разработан специально для накопителей флэш - памяти, но не на самом деле лучше , чем ext4 на тестах. Btrfs все еще считается экспериментальным (и на самом деле не работает лучше , либо).

  • Производительность SSD и TRIM:

Функция TRIM очищает блоки SSD, которые больше не используются файловой системой. Это оптимизирует долгосрочную производительность записи и рекомендуется для SSD из-за их дизайна. Это означает, что файловая система должна иметь возможность сообщать накопителю об этих блоках. Параметр discard монтирования ext4 будет выдавать такие команды TRIM, когда блоки файловой системы освобождаются. Это онлайн сброс.

Однако такое поведение подразумевает небольшую потерю производительности. Начиная с Linux 2.6.37, вы можете избегать использования discard и иногда вместо этого делать периодический пакетный сброс с FITRIM (например, из crontab). Это делает утилита fstrim (онлайн), а также опция -E discard в fsck.ext4 . Однако вам понадобится "недавняя" версия этих инструментов.

  • Износ SSD:

Возможно, вы захотите ограничить записи на вашем диске, так как SSD имеют ограниченный срок службы в этом отношении. Не беспокойтесь слишком сильно : современные жесткие диски емкостью 128 ГБ могут поддерживать не менее 20 ГБ записанных данных в день в течение более 5 лет (1000 циклов записи на ячейку). Лучшие (а также большие) могут длиться гораздо дольше: вы, вероятно, замените его к тому времени.

Если вы хотите использовать своп на SSD, ядро заметит невращающийся диск и будет случайным образом использовать своп (выравнивание уровня износа ядра): вы увидите SS (Solid State) в сообщении ядра, когда своп включен:

Добавление 2097148k своп на /dev /sda1. Приоритет:-1 экстенты:1 через:2097148k SS

  • Планировщики ввода / вывода:

Кроме того, я согласен с большинством ответов aliasgar (даже если большая их часть была незаконно скопирована с этого веб-сайта), но я должен частично не согласиться с частью планировщика . По умолчанию срок планировщик оптимизирован для вращения дисков , как он реализует алгоритм лифта . Итак, давайте уточним эту часть.

Длинный ответ по планировщикам

Начиная с ядра 2.6.29, SSD-диски автоматически обнаруживаются, и вы можете проверить это с помощью:

cat /sys/block/sda/queue/rotational

Вы должны получить 1 для жестких дисков и 0 для SSD.

Теперь планировщик CFQ может адаптировать свое поведение на основе этой информации. Начиная с linux 3.1, в документации ядра cfq-iosched.txt говорится:

CFQ имеет некоторые оптимизации для твердотельных накопителей, и если он обнаруживает невращающиеся носители, которые могут поддерживать большую глубину очереди (несколько запросов в полете за раз), [...].

Кроме того, планировщик Deadline пытается ограничить неупорядоченные движения головки на вращающихся дисках, основываясь на номере сектора. Цитирование ядра doc deadline-iosched.txt , описание опции fifo_batch:

Запросы сгруппированы в «пакеты» определенного направления данных (чтение или запись), которые обслуживаются в порядке возрастания сектора.

Однако настройка этого параметра на 1 при использовании SSD может быть интересной:

Этот параметр настраивает баланс между задержкой на запрос и совокупной пропускной способностью. Когда первостепенное значение имеет низкая задержка, чем меньше, тем лучше (где значение 1 соответствует поведению «первым пришел - первым обслужен»). Увеличение fifo_batch обычно улучшает пропускную способность за счет изменения задержки.

Некоторые тесты показывают, что разница в производительности между разными планировщиками невелика. Тогда почему бы не порекомендовать справедливость? когда CFQ редко бывает плохим на скамейке запасных. Тем не менее, при настройке настольного компьютера вы, как правило, будете лучше реагировать на использование Deadline под нагрузкой из-за его дизайна (хотя, возможно, с более низкой пропускной способностью).

Тем не менее, лучший тест будет использовать Deadline с fifo_batch=1 .

Чтобы использовать Deadline на твердотельных накопителях по умолчанию, вы можете создать файл, скажем /etc/udev.d/99-ssd.rules следующим образом:

# all non-rotational block devices use 'deadline' scheduler
# mostly useful for SSDs on desktops systems
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"
12

В статье archlinux Solid State Drives говорится в разделе Выбор файловой системы :

Существует множество опций для файловых систем, включая Ext2/3/4, Btrfs и т.д.

Btrfs
Поддержка Btrfs была включена в основную версию 2.6.29 ядра Linux. Некоторые считают, что он недостаточно зрел для промышленного использования, хотя есть также ранние последователи этого потенциального преемника ext4. Пользователям предлагается прочитать статью Btrfs для получения дополнительной информации.

Ext4
Ext4 - еще одна файловая система с поддержкой SSD. Он считается стабильным с 2.6.28 и достаточно зрел для ежедневного использования. В отличие от Btrfs, ext4 не определяет автоматически характер диска; пользователи должны явно включить поддержку команд TRIM, используя опцию discard mount в fstab (или с помощью tune2fs -o discard /dev /sdaX).

И Btrfs, и Ext4 отвечают двум основным требованиям для эффективного использования SSD:

  • Файловая система должна иметь возможность выдавать команды ATA_TRIM на базовый SSD
  • Файловая система не должна выполнять ненужные записи на диск

Для производительности есть два других требования:

  • Разделы должны быть выровнены по размеру блока SSD
  • TRIM должен быть явно включен для каждого отформатированного раздела Ext4

Первый в настоящее время автоматический с большинством установщиков Linux. fdisk также создаст разделы на границе 1024 КБ, если будет запущен с флагами "-cu".

Второй вариант - автоматический для Btrfs, но для Ext4 это делается вручную путем добавления "discard" в список параметров монтирования для каждого раздела Ext4 в файле «/etc/fstab». Для более подробной информации смотрите это руководство.

На мой взгляд, это потребовало немного возиться с fstab для Ext4 - это не причина не использовать эту зрелую и превосходную файловую систему.

-2

BTRFS IMO. В Ubuntu 8.04 и более поздних версиях включены версии GRUB, поддерживающие GPT. С GPT и Gdisk он выровняет ваши разделы для вас. Я верю, что fdisk сделает то же самое.

В любом случае, вот ссылка на установку Ubuntu в файловой системе BTRFS.

http://www.linuxbsdos.com/2011/05/05/how-to-install-ubuntu-11-04-on-a-btrfs-file-system/

Надеюсь, это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .