Можна отримати SSD TRIM (відкинути), що працює над ext4 + LVM + програмним RAID в Linux?


18

Ми використовуємо RAID1 + 0 з md на Linux (на даний момент 2.6.37) для створення пристрою md, потім використовуємо LVM для забезпечення управління гучністю поверх пристрою, а потім використовуємо ext4 як нашу файлову систему в групах томів LVM.

Якщо SSD є накопичувачами, ми хотіли б, щоб команди TRIM розповсюджувалися через шари (ext4 -> LVM -> md -> SSD) на пристрої.

Схоже, що в останніх ядрах 2.6.3x було додано багато нової підтримки TRIM, пов’язаної з SSD, включаючи набагато більше висвітлення сценаріїв Deper Mapper, але ми все ще не можемо зробити це, щоб воно зруйноване.

Це можливо ще? Якщо так, то як? Якщо ні, чи досягається якийсь прогрес?


Дивіться оновлений сервер defaultfault.com/a/229486/67675 :)
poige

Відповіді:


7

Неможливо, оскільки Linux Soft RAID не підтримує це (ще?).

UPD. : Дякую Водіну за те, що він повідомив мене - згідно lkml.org/lkml/2012/3/11/261 цей функціонал був доданий запропонований нещодавно. запропоновано ! = прийнято , хоча.


Ви все ще можете мінус цю відповідь, але це не змусить LSR підтримувати TRIM :)
poige

3
Це робить і зараз. lkml.org/lkml/2012/3/11/261
Водін

@Wodin, я не можу знайти запропоновані зміни навіть у 3.5. Вони, схоже, не приймаються.
poige

14

Станом на 2.6.37 він повинен бути присутнім ( джерело ) . Ядро не робить це у фоновому режимі, процес блокування блоку в даний час призначений для запуску на вимогу (сценарій cron!). Підтримка Dm-crypt ще не існує.

13 січня 2011 року виправлення було об’єднано у dm-raid1.c, який глазує:

dm raid1: support discard

Enable discard support in the DM mirror target.
Also change an existing use of 'bvec' to 'addr' in the union.

Я не на 100%, але я думаю, що це вікно злиття для 2.6.38.

EXT4 додав підтримку деякий час тому, як і LVM. RAID - єдиний ключ, який не має підтримки. Станом на 13.01.2011, схоже, підтримка була додана. Шукайте це в 2.6.38 або, можливо, 2.6.39.


Час минув, і підтримка TRIM, безумовно, включена в ядро ​​3,7 . Комісія для RAID10 читає :

Це робить md raid 10 підтримкою TRIM. Якщо один диск підтримує відмову, а інший ні, або інший має discard_zero_data, а інший ні, між даними таких дисків може виникнути непослідовність. Але це не має значення, викинути дані марно. Це додасть додаткову копію при відновленні.


Побачив цей потік і пов'язані з ним зобов’язання, але, як я вже сказав у запитанні - це означає, що він буде правильно проходити не тільки LVM (Device Mapper), але і md (Software RAID)?
Дон Макаскілл

1
Це звучить багатообіцяюче, але я розумію, що dmraid в основному використовується для так званих апаратних RAID-контролерів "fakeRAID". Те, про що я говорю, - це більш типовий програмний масив mdadm RAID-1 (+0) з + LVM зверху. AFAIK, це налаштування не виграє від нової знайденої здатності dmraid обробляти викиди. Правильно?
Дон Макаскілл

1
@DonMacAskill У файлі 'raid1.c' немає жодних комісій, що посилаються на TRIM, FITRIM або 'dispose'. Отже, схоже на mdadm - створення RAID-підтримки ще не існує.
sysadmin1138

@ sysadmin1138 Я думаю, ви маєте на увазі discard, що це називається в ядрі Linux. І цей виправлення, схоже, посилається на відкидання.
Майкл Хемптон

1

Mdtrim може знадобитися більше працюючих:

Cyberax-mdtrim-0a40e8d# ./mdtrim.py -m /dev/md4 -s /home
Scratch directory is /home, trimmer file size is 0 GB 790 MB
Found slave sdc2 on /dev/sdc with MD offset 0 and partition offset 249856
Creating trimmer file
252,2: device not found in /dev
Traceback (most recent call last):
  File "./mdtrim.py", line 120, in <module>
    if lines[2].find("assuming %d byte sectors" % sector_size) == -1:
IndexError: list index out of range

0

Ви можете використовувати мій сценарій MDTRIM ( https://github.com/Cyberax/mdtrim/ ) для TRIM порожнього простору на RAID рівнях рівня 1. Ми починаємо його періодично з cron, і це чудово працює для нас.

Додавання підтримки для інших рівнів RAID можливо, але я не маю часу (або потреби) на це.


0

Як запропоновано тут, Ви можете використовувати

lsblk -D

щоб перевірити, чи блокові пристрої проходять через команди відкидання.

Також зауважте, що пристрої розділу в lvm.conf містять опцію issue_discards. Побачити

man 5 lvm.conf

для отримання додаткової інформації.

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