Вопрос: Какая файловая система Linux работает лучше всего с SSD


Из wiki:

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

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


113
2018-01-03 17:44


Источник




Ответы:


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

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

SWAP-раздел:

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

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

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

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

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


86
2017-08-30 06:05



GPT - это современный метод, использующий gdisk & grub 2.0.x, (Я думаю, кто-то упомянул об этом ниже в ответе), а MBR - это унаследованный метод, используя старый grub 0.9.7 а также fdisk.. вы можете найти здесь: wiki.archlinux.org/index.php/Solid_State_Drives - aliasgar
Нет необходимости указывать nodiratime когда вы также указываете noatime, Согласился, он выглядит круто и продвинут к сородичам, но с тех пор noatime отключает atime in inodes, а каталоги тоже inode, это похоже на высказывание «Мойте руки и мойте большие пальцы». :) - Redsandro
Из опыта я могу сказать, что никакой планировщик («noop») работает быстрее, чем срок. - drumfire
Нет, "Linux разделы подкачки по умолчанию выполняют операции TRIM, когда базовое блочное устройство поддерживает TRIM, с возможностью их отключения или для выбора между однократными или непрерывными операциями TRIM ». поэтому раздел подкачки должен быть размещен на SSD, чтобы воспользоваться быстрым время доступа, которое повлечет за собой много времени, когда происходит своп каждой страницы - phuclv
@Totor Как уже упоминалось в ссылке, мы также копируем все ответы, скопированные в другом месте в виде плагиата. (Или называть его по-другому, но это неприемлемо даже с атрибуцией). Пожалуйста, примите дополнительные вопросы к Meta. Я удалю это из темы темы. - slhck


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

  • выберите ext4, и либо смонтировать его с помощью discard вариант для ОТДЕЛКА поддержки или использования FITRIM (Смотри ниже). Также используйте noatime если вы боитесь «износа SSD».

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

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

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

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

  • Файловые:

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

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

ОТДЕЛКА функция очищает блоки SSD, которые больше не используются файловой системой. Это позволит оптимизировать долговременную производительность записи и рекомендуется на SSD из-за их дизайна. Это означает, что файловая система должна быть способна сообщить диску об этих блоках. discardвариант монтирования ext4 выдает такие ОТДЕЛКА команды, когда блоки файловой системы освобождаются. Это онлайн отменить,

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

  • Износ SSD:

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

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

Добавление замены 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 имеет некоторые оптимизации для SSD, и если он обнаруживает невращательную   которые могут поддерживать более высокую глубину очереди (несколько запросов в   полет одновременно), [...].

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

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

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

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

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

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

Чтобы использовать Deadline на SSD по умолчанию, вы можете создать файл, скажем, /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"

63
2018-02-12 23:45



Что вы подразумеваете под этим выравниванием секционирования, автоматически заботятся о последних дистрибутивах? Применяется ли это также при использовании ручного разделения во время, например, ubuntu или при разделении gparted? - jarno
@jarno в последних дистрибутивах (уже несколько лет), инструменты разбиения, из fdisk по графическим вещам, имеют тенденцию к автоматическому умолчанию для создания выравниваний разделов с кратным 1 Мб от начала устройства. Это упреждающее выравнивание с размерами блоков / кластеров размером 512 байт, 4k, 8k и половиной bazillion, которые имеют характер 2 ^ n. Это делает невозможным неверное выравнивание раздела, если вы не приложите для этого больших усилий. - killermist


Статья архивинок Твердотельные диски говорит в разделе Выбор файловой системы :

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

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

Ext4 
Ext4 - еще одна файловая система, поддерживающая SSD. Он считается стабильным с 2.6.28 и достаточно зрелым для ежедневного использования.   В отличие от Btrfs, ext4 автоматически не определяет природу диска;   пользователи должны явно включить поддержку команды TRIM, используя   отменить вариант монтирования в 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 не является основанием не использовать эту зрелую и превосходную файловую систему.


12
2017-08-30 05:59





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/

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


-2
2017-08-29 20:56