Яка файлова система Linux найкраще працює з SSD


119

З вікі:

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

Отже, яка файлова система найкраще працює на SSD і підтримує вирівнювання розділів TRIM + під час встановлення та чи доступна вона на Ubuntu?

Відповіді:


89

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

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

Розділ SWAP:

  • Переконайтеся, що у вас немає місця на SWAP на SSD, щоб зменшити цикли запису.
  • Якщо у вас механічний привід, вам слід створити простір SWAP на механічному приводі і уникати його на SSD.

Вирівнювання розділу:

  • Розділ повинен починатися на чистій межі 1 Мб, щоб розмір блоку Файлової системи вирівнювався з розміром блоку SSD.

Тому використовуйте EXT4 + TRIM із SWAP на механічному жорсткому диску або без SWAP на SSD.

Сказане можна реалізувати, посилаючись на джерело: Як максимально збільшити продуктивність SSD .


GPT - це сучасний метод, що використовує gdisk& grub 2.0.x, (я думаю, хтось згадав про це нижче у відповіді), а MBR - це застарілий метод, використовуючи старий grub 0.9.7і fdisk.. ви можете знайти більше тут: wiki.archlinux.org/index.php/Solid_State_Drives
aliasgar

7
Не потрібно вказувати, nodiratimeколи ви також вказуєте noatime. Погоджено, це виглядає круто і прогресивно для колег-дурнів, але оскільки noatimeвимкнено аніме на inode, і каталоги також є inode, це як сказати "мийте руки, і мийте великі пальці теж". :)
Редсандро

З досвіду можу сказати, що жоден планувальник ("noop") не працює швидше, ніж термін.
барабанне вогнище

5
Ні, " Linux swap-розділи за замовчуванням виконують операції TRIM, коли базовий блок пристрою підтримує TRIM, з можливістю їх вимкнути або вибрати між одноразовими або безперервними операціями TRIM." тому розділ swap повинен бути розміщений на SSD, щоб скористатися швидким часом доступу, який потребує багато часу, коли відбудеться кожен
замін

2
@aliasgar Чи хороший вибір F2FS проти ext4?
SebMa

67

Коротка відповідь

  • Виберіть 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 має обмежений термін служби в цьому плані. Не переживайте занадто сильно, однак , найгірший на сьогодні SSD на 128 ГБ може підтримувати щонайменше 20 ГБ письмових даних на день протягом більше 5 років (1000 циклів запису на комірку). Кращі (а також і більші) можуть тривати набагато довше: ви, ймовірно, замінили його до того часу.

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

Додавання 2097148k своп на / dev / sda1. Пріоритет: -1 розширення: 1 поперек: 2097148k SS

  • Планувальники вводу / виводу:

Крім того, я погоджуюся з більшою відповіддю псевдоніму (навіть якщо більшість із них було - юридично? - скопійовано з цього веб-сайту ), але я частково не погоджуюся з частиною планувальника . За замовчуванням термін планувальник буде оптимізований для обертання дисків , як він реалізує алгоритм ліфта . Отже, давайте уточнимо цю частину.

Довга відповідь на планувальників

Починаючи з ядра 2.6.29, SSD-диски автоматично виявляються, і ви можете перевірити це за допомогою:

cat /sys/block/sda/queue/rotational

Вам слід отримати 1жорсткі диски та 0SSD.

Тепер, планувальник CFQ може адаптувати свою поведінку, виходячи з цієї інформації. З linux 3.1 cfq-iosched.txtфайл документації ядра говорить :

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

Також планувальник термінів намагається обмежити невпорядковані рухи головою на обертових дисках, виходячи з номера сектора. Цитуючи ядро ​​doc deadline-iosched.txt, fifo_batch опис опції :

Запити групуються у `` партії '' певного напрямку даних (читати чи записувати), які обслуговуються у порядку збільшення сектора.

Однак налаштування цього параметра на 1 при використанні SSD може бути цікавим:

Цей параметр налаштовує баланс між затримкою на запит та сукупною пропускною здатністю. Коли низька затримка є основною проблемою, менша краща (де значення 1 приносить поведінку першим, хто прийшов у першу чергу). Збільшення fifo_batch, як правило, покращує пропускну здатність за рахунок зміни затримки.

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

Однак, кращим орієнтиром буде спробувати використати Deadline за допомогою fifo_batch=1.

Щоб використовувати Дедлайн на 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"

Що ви маєте на увазі під таким вирівнюванням розділів, що автоматично піклується про останні розповсюдження? Чи застосовується це також, коли ви використовуєте ручне розділення під час, наприклад, встановлення ubuntu або при розділі за допомогою gparted?
jarno

2
@jarno в останніх дистрибутивах (ось уже кілька років) інструменти розділення, починаючи від fdisk і закінчуючи графічними речами, мають тенденцію до автоматичного замовчування для створення вирівнювання розділів у кратних розмірах 1 Мб від початку пристрою. Це попередньо узгоджується з розмірами 512 байт, 4 к, 8 к і півмільярда інших розмірів блоків / кластерів, які за природою мають 2 ^ n. Це робить неможливим неправильне вирівнювання розділу, якщо ви не докладете значних зусиль для цього.
вбивця

13

Стаття Archlinux Solid Solid Drives говорить у розділі Вибір файлової системи :

Для файлових систем існує багато варіантів, включаючи Ext2 / 3/4, Btrfs тощо.


Підтримка Btrfs Btrfs включена до основного випуску 2.6.29 випуску ядра Linux. Деякі вважають, що він недостатньо зрілий для використання у виробництві, в той час як є й ранні користувачі цього потенційного наступника 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 це робиться вручну, додаючи "відкинути" до списку параметрів кріплення для кожного розділу 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/

Сподіваюся, що це допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.