No Image

Linux какую файловую систему выбрать для ssd

СОДЕРЖАНИЕ
11 просмотров
11 марта 2020

Недавно, хороший человек подарил мне SSD. Неделю он пролежал у меня на столе, т.к. времени перенастраивать систему под его использование не было. Когда же время появилось, прочитав вот этот пост habrahabr.ru/post/129551, и перелопатив немало форумов, узнал много нового.

Ниже предлагаю компиляцию всего усвоенного в одном тексте.

Итак, сперва теория:

1. ССД диск имеет ограниченное количество циклов перезаписи. Т.е. в один и тот же блок диска, в среднем, можно записать информацию 3000-5000 раз (на дорогие модели дисков можно и больше).

2. Что бы выравнивать износ диска, нужно как можно реже писать в одно и то же место, т.е. сперва использовать незанятые блоки диска, и только когда они кончатся, писать поверх.

3. В незанятый блок, ССД диск пишет намного быстрее чем в занятый.

4. Диск не «знает», о том, какие блоки заняты, т.к. эта информация сохраняется в файловой системе, и при удалении файла, фактически диску об этом не сообщается. Но когда файловая система решит повторно использовать блок, который уже когда то использовался, он может быть еще не очищен от информации которая там была, т.к. диск не знал, что его можно освобождать. И запись в такой блок займет много времени.

5. В отличие от HDD, в ячейку флеш-памяти NAND нельзя перезаписать новые данные поверх старых, не очистив ее перед этим. Ячейки памяти SSD сгруппированы в страницы (обычно по 4 Кбайт каждая), страницы сгруппированы в блоки (64-128 страниц). Данные можно вписать на чистую страницу, но стирать можно только блоки целиком. Запись на SSD-носитель выполняется очень быстро до тех пор, пока существуют чистые страницы, но значительно замедляется, если необходимо очищать предварительно записанные страницы. Чтобы вернуть в обращение ячейки блока, содержащего смесь актуальных данных и мусора (невалидных данных), контроллер копирует нужное (валидные данные) на пустую страницу нового блока, а затем стирает весь исходный блок. После этого ячейки блока будут готовы принять новые данные.

Так вот, что бы сообщать диску о освободившихся блоках, для равномерного использования диска, и для предварительной очистки блоков для последующей перезаписи, в интерфейсе ATA существует команда TRIM.

Что бы система начала использовать эту команду при удалении файлов:

1. диск должен поддерживать эту команду.

2. файловая система должна поддерживать эту команду.

3. функция TRIM в файловой системе должна быть включена.

А теперь все это на практике

Чтобы проверить поддерживает ли TRIM диск:

root@citadel:/home/serp# hdparm -I /dev/sdd|grep "TRIM supported"
* Data Set Management TRIM supported (limit 1 block)

Если получаем «Data Set Management TRIM supported (limit 1 block)», то поддерживается. Если слева от этой строки стоит звездочка, то функция активирована.

TRIM поддерживается в BTRFS, XFS, JFS и EXT4.

На данный момент, наиболее пригодна для использования EXT4.

Включить TRIM для файловой системы можно, если добавить discard в опции монтирования в /etc/fstab, или с помощью tune2fs -o discard /dev/sdaX (добавит discard в опции по умолчанию для данной ФС)

Проверить смонтирована ли ФС в данный момент с этой опцией можно посмотрев вывод mount:

/dev/sdd1 on / type ext4 (rw,discard,errors=remount-ro)

ВНИМАНИЕ. Нельзя отключать журналирование, т.к. функция TRIM без него работать не будет. Если верить вот этому источнику (https://wiki.archlinux.org/index.php/SSD#Partition_Alignment), то разница в количестве операций записи с журналом и без него не существенна, т.е. на время жизни диска особо влиять не будет (если только вы не используете его в режиме только для чтения, и хотите чтобы он жил вечно).

В интернетах часто советуют проверить включен ли TRIM таким способом:
1. dd if=/dev/urandom of=tempfile count=10 bs=512k oflag=direct //запись 5Мб рандомных данных

2. hdparm –fibmap tempfile //Ищем любой стартовый LBA адрес у файла

3. hdparm –read-sector [ADDRESS] /dev/sdX //Читаем данные со стартового LBA адреса файла, замените [ADDRESS] на свой Starting LBA address из вывода предыдущей команды

4. rm tempfile //Теперь удалим временный файл и синхронизируем ФС:
5. sync

Повторяем пункт 3 — и смотрим на вывод консоли. Если выведутся нули — то трим работает. Если вы исправили fstab, перезагрузились, но трим не активировался — ищите ошибки в неверном отключении журналирования.

Так вот у меня не выдал нули. Но у меня из 60Гиг харда занято всего 20 (точнее занято всего 8, а 20 это размер раздела.) Я подозреваю, что диск не триммит данные пока не приспичит, или пока не появится много свободного времени.

Вот тут: sites.google.com/site/lightrush/random-1/checkiftrimonext4isenabledandworking по этому поводу написано, что если при таком тестировании, после шага 3, вы видите нули, значит TRIM однозначно работает. Если же вы нулей не увидели, то это еще не значит, что TRIM не работает. Возможно диск обнулит блок позже.

Читайте также:  Дизайн этикеток для бутылок

Для ускорения работы системы, за одно с перенастройкой под SSD я под шумок перенес /run и /tmp на tmpfs.

Скорость работы системы ЗНАЧИТЕЛЬНО ускорилась, точнее быстрее стали загружаться приложения, и быстрее загружается сама система.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

реклама

реклама

В прошлый раз мы тестировали производительность файловой системы ReFS в Windows 10. Там мы затронули некоторые ФС из мира Linux, которые показали достаточно вялые результаты, поскольку из-за ограничений Windows чтение и запись были недостаточно хорошо реализованы. На сей раз подобная несправедливость будет устранена, теперь роли меняются, и файловые системы NTFS, FAT32 и exFAT уже сами становятся гостями. Методика тестирования была усовершенствована, теперь все операции выполняются специальным скриптом, с точностью до миллисекунды замеряющим время, затраченное на определенную операцию. Кроме того был изменен набор данных, вместо поочередного копирования групп различных файлов проводится копирование сразу всех файлов разных типов. Также тестирование теперь не ограничивается только жестким диском, здесь были задействованы более актуальные в настоящее время твердотельные и flash накопители. На каждом из них для размещения тестовых данных был создан раздел объемом 4 Гб, вторым устройством для перемещения данных выступал созданный в оперативной памяти раздел объемом 2304 Мб с файловой системой TMPFS. Поскольку flash-память имеет ограниченное количество циклов перезаписи, то в оценке производительности на данном типе носителей участвовали только нежурналируемые файловые системы.

реклама

Тестовая система:

  • Процессор: Xeon E5440 @ 3.4 ГГц
  • GIGABYTE GA-P35-DS3L
  • Оперативная память: 3584 МБ DDR2-800
  • Жесткий диск: Seagate Barracuda 7200.10 3250410AS 250 ГБ
  • Твердотельный накопитель: SanDisk SDSSDHII-120G-G25 120 ГБ
  • MicroSD карта SanDisk Ultra 16 Гб UHS-I, поключенная с помощью адаптера MXT
  • Ubuntu 16.04 x64 с последними обновлениями

реклама

Набор данных:

  • 100 MP3 файлов – 681,3 Мб
  • 880 JPEG изображений 268,8 Мб
  • 4 видеоролика в формате MP4 – 492,7 Мб
  • 1 ISO образ – 583 Мб
  • Суммарный объем:

реклама

Краткая характеристика участников тестирования:

EXT2 – расширенная версия первой файловой системы EXT для ОС на ядре Linux.

EXT3 – журналируемая EXT2.

EXT4 – значительно расширенная по функционалу EXT3.

BTRFS – прогрессивная файловая система, использующая СУБД-подобную структуру , а также предлагающая множество современных опций.

F2FS – файловая система от Samsung, предназначенная для использования на flash-памяти.

ReiserFS – журналируемая ФС от компании Namesys, позволяющая изменять свой размер на лету без размонтирования.

XFS – высокопроизводительная 64-битная журналируемая файловая система, созданная компанией Silicon Graphics.

JFS – 64-битная журналируемая ФС, разработанная IBM с прицелом на высокую производительность, надёжность и масштабируемость для многопроцессорных компьютеров.

HFS+ – файловая система, использующаяся в macOS.

NTFS – ФС для Windows NT, выросшая из HPFS, совместной разработки IBM и Microsoft для OS/2.

FAT32 – усовершенствованная версия файловой системы FAT для DOS и Windows.

exFAT – расширенная версия FAT32, предназначенная для flash-накопителей.

Результаты тестов:

Итак, для начала запишем наши данные на жесткий диск с гораздо более быстрой оперативной памяти. Считывание происходит моментально, а вот скорость записи служит характеристикой быстродействия конкретной файловой системы для данного типа накопителя.

Новая файловая система F2FS демонстрирует отличный результат, опережая своих оппонентов. За ней следуют продвинутые журналируемые ФС, в основном использующиеся в NIX системах. Гости из Windows, а также устаревшие EXT2 и EXT3 заметно отстают.

Теперь проделаем тоже самое, но уже с быстрым твердотельным накопителем.

Разрыв между первым и замыкающим участниками заметно вырос. На сей раз в лидерах созданная профессионалами Sun Microsystems система XFS, которая показала результат близкий к максимальной пропускной способности интерфейса SATA-II. BTRFS, все еще считающая в некоторых аспектах не совсем стабильной, находится в нижней части списка. Работающая в пользовательском пространстве с помощью специального драйвера, NTFS показала почти в четверо более низкий результат, чем XFS.

А теперь данные будут переноситься наоборот с дисков в ОЗУ. Так как запись происходит очень быстро, то распределение файловых систем в диаграмме будет зависеть от их производительности при считывании.

Ситуация похожа на ту, которая была продемонстрирована в первом тесте. Но тут FAT32 поднялась сразу на семь позиций, а на ее место переехала BTRFS. Устаревшие EXT2 и EXT3 снова замыкают список.

Теперь очередь за SSD.

Видно, что разница сократилась, поскольку и твердотельный накопитель и оперативная память довольно быстрые устройства, и одно лишь это устраняет различные недостатки, присущие каждой их файловых систем. XFS выдала просто ошеломительный результат, практически уперевшись в пропускную способность SATA-II. Более усложненная BTRFS на второй позиции. Несмотря на прослойку в виде FUSE, NTFS заняла довольно почетное место.

Читайте также:  Где зарегистрирован номер мобильного телефона

Настала очередь flash-накопителей.

exFAT обошла F2FS в тесте записи примерно на 18%. EXT2, как и в предыдущих испытаниях, плетется в конце.

Ну и, наконец, чтение с flash-памяти.

FAT32 показывает, кто здесь царь. Несмотря на почтенный возраст, она и не собирается сдавать своих позиций. К сожалению максимальный размер файла в FAT32 ограничен четырьмя гигабайтами, что совершенно не подходит для тех же фильмов в высоком качестве. Однако, ее замена в лице exFAT отменяет данный изъян ценой всего лишь десятипроцентной потери производительности.

И ради интереса был проведен еще один тест с участием только RAM-дисков (копирование ISO-образа).

Заключение

Мир Linux открывает перед пользователями Windows множество граней, одной из которых является наличие гораздо большего количества различных файловых систем. Каждая из них имеет свои достоинства и недостатки, кто-то силен в одних ситуациях, кто-то в других. И в проведенном тестировании мы попытались выявить данное распределение сил.

В результате наших проверок выяснилось, что более новые и хорошо отлаженные файловые системы стремятся показать более высокую производительность. И наоборот, устаревшие системы уменьшают скорость выполнения операций чтения-записи. Но данное правило не всегда строго выполняется, так как характеристики конкретной файловой системы могут не всегда соответствовать определенным в текущий момент условиям использования, для которых подходит пусть менее передовая, но более подходящая система.

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

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

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

4 ответа

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

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

SWAP-раздел:

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

Разделение разделов:

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

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

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

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

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

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

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

  • Файловые системы:

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

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

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

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

Читайте также:  Модем не обнаружен мтс коннект

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментировать
11 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector