Автор Тема: TRIM на SSD на ниво EXT4, LVM или Software RAID...  (Прочетена 9433 пъти)

wfw

  • Напреднали
  • *****
  • Публикации: 249
  • Distribution: Debian
  • Window Manager: none
    • Профил
Здравейте,
имам следната схема - домашната ми машина - debian 10 има 2 SSD диска, върху които на 95% от мястото има създадени софтуерни раид дялове. Тези два дяла са в софтуерен RAID1 (btw скоростта на ребилд стигна малко над 350мб/сек, доволен съм). Върху софтуерния раид има инсталиран LVM (трябва ми да мога да си вдигам виртуалки, а не искам тъпия qcow2). На него пък е root дяла, който е EXT4.

Логичния въпрос е, къде точно да тримвам дафак...?
Активен

makeme

  • Напреднали
  • *****
  • Публикации: 895
  • Distribution: Many
  • Window Manager: KDE
    • Профил
Re: TRIM на SSD на ниво EXT4, LVM или Software RAID...
« Отговор #1 -: Aug 16, 2019, 13:21 »
На теория, вътре самите виртуалки. Въпросът е виртуализатора дали го поддържа и дали е настроен.

https://superuser.com/questions/193650/virtual-machines-and-trim

Предполагам, че ползваш либвирт. Гледам че за qcow-a го има, така че би трябвало и за лвм, да може да се настрои.
https://blog.zencoffee.org/2016/05/trim-support-kvm-virtual-machines/
« Последна редакция: Aug 16, 2019, 13:33 от makeme »
Активен

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...

ji

  • Напреднали
  • *****
  • Публикации: 124
  • Distribution: Slackware, Suse
  • Window Manager: KDE
    • Профил
Re: TRIM на SSD на ниво EXT4, LVM или Software RAID...
« Отговор #2 -: Aug 16, 2019, 20:46 »
Трябва да пуснеш TRIM на всички I/O слоеве на абстракция. TRIM командата ще бъде транслирана от слой към слой докато достигне SSD-то.

How to active TRIM on Linux? The first thing to know is that TRIM should be enabled on all I/O abstraction layers. This means that if you have an ext4 partition on top of LVM, which in turn is on top of an encrypted volume with LUKS/dm-crypt, then you must enable support for TRIM in these three layers: The filesystem, LVM and dm-crypt. There is no point in enabling it at the filesystem level if you don’t enable it also on the other layers. The TRIM command should be translated from one layer to another until reaching the SSD.

http://blog.neutrino.es/2013/howto-properly-activate-trim-for-your-ssd-on-linux-fstrim-lvm-and-dmcrypt/
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Re: TRIM на SSD на ниво EXT4, LVM или Software RAID...
« Отговор #3 -: Aug 17, 2019, 11:27 »
Трябва да пуснеш TRIM на всички I/O слоеве на абстракция. TRIM командата ще бъде транслирана от слой към слой докато достигне SSD-то.

Замислих се как работи този трим....Това означава ли, че всеки следващ слой ще преработва TRIM командата докато стигне последният слой където са самите сектори - LBA на диска?

Например за ext4 се знае кои сектори са освободени, но тези 'сектори' могът да отговарят на съвсем други LBA според райда. Значи командата трябва да се преработи???

За райд0 и  райд1 добре. Ами как ще стои въпросът за райд5/6? там изобщо ще има ли смисъл от ТРИМ?

И още един въпрос ТРИМ-а веднага ли предивиква търкане на блокове от диска или ТРИМ-а само го информира, че блоковете са вече свободни.....А пък диска по-късно си решава какво да прави с тези блокове и кога да ги търка?


-----
Относно ребилда. за md райдовете има една опция 'bitmap'. Като се пусне това ребилда става много много бърз.
Вече не помня как беше ??? ???....ама си мисля че при неправилно изключване (dirty) много бързо...за секунди ги оправяше.

« Последна редакция: Aug 17, 2019, 11:36 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

wfw

  • Напреднали
  • *****
  • Публикации: 249
  • Distribution: Debian
  • Window Manager: none
    • Профил
Re: TRIM на SSD на ниво EXT4, LVM или Software RAID...
« Отговор #4 -: Aug 17, 2019, 22:15 »
Явно да - всеки слой трябва да поддържа TRIM и да предава на следващите слоеве. Всъщност се окава, че TRIM е доста полезна и за тънко провизираните дялове, защото може да оптимизира размера на sparse файла или да намали размера, който заема дяла при използването на direct attached storage.

Доколкото четох при RAID5,6 и производните им mdadm не поддържа TRIM.

Доколкото видях fstrim връща веднага размера на секторите, които ще бъдат освободени и това е препоръчителния начин на работа (не се препоръчва да се изполва възможността във fstab, защото амортизира диска напразно и извиква TRIM при всяко изтриване на файл). Дали фирмуера на диска ще се съобрази с това - не било много сигурно, защото част от дисковете отлагали изпълняването на TRIM при ниско натоварване.

И просто за инфо, ако някой търси - LVM конфигурацията отнасяща се за TRIM е само при изтриване на дял, а не при текущото му ползване.

Също така, ако се вдигат виртуалки на Windows, които поддържат TRIM, това май значи win7 и по-нови и windows 2008r2 и по-нови - TRIM се прави с defrag, но задължително трябва диска е в режим virtio scsi.

Ако диска имал много свободно място не се налагало използването на TRIM, въпреки че не съм много сигурен.

И като обобщение, за всяка инсталирана ОС трябва да се вика програма, която прави TRIM поотделно - както на хипервайзора, така и на виртуалките. За дебиан 10 всичко идва out of the box.
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Re: TRIM на SSD на ниво EXT4, LVM или Software RAID...
« Отговор #5 -: Aug 19, 2019, 16:40 »
(не се препоръчва да се изполва възможността във fstab, защото амортизира диска напразно и извиква TRIM при всяко изтриване на файл).
Цитат
Running fstrim frequently, or even using mount -o discard, might
       negatively affect the lifetime of poor-quality SSD devices.  For most
       desktop and server systems a sufficient trimming frequency is once a
       week.  Note that not all devices support a queued trim, so each trim
       command incurs a performance penalty on whatever else might be trying
       to use the disk at the time.

Тези твърдения както ги казват ми се виждат меко казани странни, даже неверни. Нали блокът във флаш паметта все някога трябва да се изтрие. Дали ще е веднага след trim командата или след време - трябва да се изтрие, за да се подготви за бъдещо вероятно писане в него. Най-вероятно, firmware след първоначалното триене го отбелязва само като изтрит.

Това е свързано с начина на работа на Флаш паметите. Ако трябва да се запише нещо първо се търка блока, а след това се записва. - две операции са. Не е както другите видове памет, където е само запис.

Хич не ми се вярвя да има толкова тъпи дискове, че при всяка команда trim за едно и също свободно място да правят пак търкане и търкане и търкане.... на вече изтъркан блок. Ако е така ще е ебати и тъпия firmware.



« Последна редакция: Aug 19, 2019, 17:18 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

4096bits

  • Напреднали
  • *****
  • Публикации: 6137
    • Профил
Re: TRIM на SSD на ниво EXT4, LVM или Software RAID...
« Отговор #6 -: Aug 19, 2019, 17:20 »
За какъв дефраг се споменава? Не е ли с директен достъп?
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Oтново за Software - RAID
Настройка на хардуер
elmo 4 3094 Последна публикация Aug 09, 2005, 00:09
от desrever
Software RAID проблем
Хардуерни и софтуерни проблеми
sudo 4 3627 Последна публикация Jan 10, 2006, 09:42
от
Software RAID 0
Настройка на хардуер
Constantinff 11 4048 Последна публикация Oct 22, 2010, 17:08
от bombe
SSD + TRIM + RAID
Сървъри
globaluty 5 4359 Последна публикация Jun 21, 2017, 03:47
от jet
Software RAID 1
Настройка на хардуер
mimosh 5 3428 Последна публикация Apr 18, 2018, 13:05
от Naka