Диск SSD и LinuxCNC

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
flenger
Кандидат
Сообщения: 92
Зарегистрирован: 16 июл 2014, 12:49
Репутация: -2
Откуда: Москва
Контактная информация:

Диск SSD и LinuxCNC

Сообщение flenger »

Добрый день,
Поставил на комп простенький диск ssd на 8 ГБ ( для работы хватает).
Как известно для работы с такими дисками необходимо чтобы в системе была функция TRIM.
Официальный дистрибутив ubuntu 10.04 lts, ядро 2.6.32. Проблема в том что TRIM работает на ядрах не старше 2.6.33. На сколько мне известно обновлять систему и ядро нельзя, слетит rti.
Интересует следующий вопрос: существуют ли сторонние программы/утилиты которые могут делать TRIM? Или можно забить на это?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение Serg »

Не считайте авторов Linux глупее себя! :)
Файловые системы в Linux (ext2/ext3/ext4/xfs) при удалении файлов никак не трогают блоки с содержимым файлов, а просто в специальной таблице делают отметку, что они стали свободными.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
popcorn
Мастер
Сообщения: 252
Зарегистрирован: 21 янв 2015, 00:20
Репутация: 18
Откуда: Янтарный край
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение popcorn »

Собственно надо копать в сторону fstrim, про старые ядра не скажу, но в Arch wiki как-то так: https://wiki.archlinux.org/index.php/So ... B9%29#TRIM
Изображение
flenger
Кандидат
Сообщения: 92
Зарегистрирован: 16 июл 2014, 12:49
Репутация: -2
Откуда: Москва
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение flenger »

UAVpilot писал(а):Не считайте авторов Linux глупее себя!
Файловые системы в Linux (ext2/ext3/ext4/xfs) при удалении файлов никак не трогают блоки с содержимым файлов, а просто в специальной таблице делают отметку, что они стали свободными.
я не говорил что кто-то умнее/глупее, просто организация памяти механического HDD и SDD несколько разная. Со временем, если не делать TRIM скорость SDD резко падает. В новых версиях linux эта функция есть, в старых нет, вот и ищу варианты...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение Serg »

В Linux работа файловых систем организована так, чтобы делать минимум записей на "поверхность", посему TRIM просто теряет смысл.
У нас есть сервера, которые используют SSD как кэш при отдаче контента (т.е. с интенсивной перезаписью информации), некоторые такие сервера работают уже по 3 года и никакой заметной потери производительности не наблюдается. Максимум процентов на 5 время доступа увеличивается, и то это можно заметить на файлах размером примерно за полгига.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
popcorn
Мастер
Сообщения: 252
Зарегистрирован: 21 янв 2015, 00:20
Репутация: 18
Откуда: Янтарный край
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение popcorn »

UAVpilot писал(а):В Linux работа файловых систем организована так, чтобы делать минимум записей на "поверхность", посему TRIM просто теряет смысл.
У нас есть сервера, которые используют SSD как кэш при отдаче контента (т.е. с интенсивной перезаписью информации), некоторые такие сервера работают уже по 3 года и никакой заметной потери производительности не наблюдается. Максимум процентов на 5 время доступа увеличивается, и то это можно заметить на файлах размером примерно за полгига.
Ну, TRIM нужен, что бы диск знал, какие данные больше не нужны, и их можно не перегруппировывать и затереть. В вашем кейсе наверняка fs на весь раздел, а то и raid.
У меня 50 c гаком ssd, всё на одном разделе ext4, но tmp, firefox и прочее тусует на 6gb оперативки. TRIM активен, и при заходе в root иногда вручную делаю, особенно после крупных обновлений.
Эффективность TRIM зависит от заполнения раздела, в принципе, как и работа SSD.
Изображение
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение Serg »

popcorn писал(а):Ну, TRIM нужен, что бы диск знал, какие данные больше не нужны, и их можно не перегруппировывать и затереть.
В файловой системе есть так называемым суперблок, в котором хранится информация и занятых и свободных блоках/секторах на диске. При удалении файла содержимое блоков, занятых файлом вообще никак не изменяется, просто в суперблоке делается пометка, что такие-то блоки теперь свободны и их можно использовать.
А дисковый кэш в Linux устроен так, что он умеет при монтировании fs считывать суперблок в память и работать с ним только в памяти, а при размонтировании (или периодически) "сливать" изменения на диск.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
popcorn
Мастер
Сообщения: 252
Зарегистрирован: 21 янв 2015, 00:20
Репутация: 18
Откуда: Янтарный край
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение popcorn »

UAVpilot писал(а):
popcorn писал(а):Ну, TRIM нужен, что бы диск знал, какие данные больше не нужны, и их можно не перегруппировывать и затереть.
В файловой системе есть так называемым суперблок, в котором хранится информация и занятых и свободных блоках/секторах на диске. При удалении файла содержимое блоков, занятых файлом вообще никак не изменяется, просто в суперблоке делается пометка, что такие-то блоки теперь свободны и их можно использовать.
А дисковый кэш в Linux устроен так, что он умеет при монтировании fs считывать суперблок в память и работать с ним только в памяти, а при размонтировании (или периодически) "сливать" изменения на диск.
хм. А как контроллер SSD узнает, какие блоки/части блоков уже свободны, что бы сделать ремап данных?
Изображение
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение Сергей Саныч »

popcorn писал(а):А как контроллер SSD узнает, какие блоки/части блоков уже свободны, что бы сделать ремап данных?
Обычно контроллеры, управляющие флеш-памятью, понятия не имеют о файловой системе. Но они знают, что если ОС решила произвести запись в какой-то блок, то этот блок можно пометить как свободный. Физически запись произойдет (обязательно!) в другой свободный блок, но об этом будет знать только контроллер, а не ОС.
Это если грубо, "крупными мазками", на самом деле там масса нюансов.
Чудес не бывает. Бывают фокусы.
popcorn
Мастер
Сообщения: 252
Зарегистрирован: 21 янв 2015, 00:20
Репутация: 18
Откуда: Янтарный край
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение popcorn »

Сергей Саныч писал(а): Но они знают, что если ОС решила произвести запись в какой-то блок, то этот блок можно пометить как свободный.
Эту часть я не понял.
Принцип работы SSD я примерно знаю, мне интересен ответ UAVpilot. Каким образом контроллер узнает о изменениях отдельных страниц в блоке данных на 4кб без TRIM?
Вот он пишет, что :
В файловой системе есть так называемым суперблок, в котором хранится информация и занятых и свободных блоках/секторах на диске.
Но я знаю, что это не совсем так, и на ssd файловые системы эмулируются(имитируются) и контроллер пишет-ремапит данные по своему, а trim нужен, что бы дать ему знать о том, что страница или блок свободны, что бы он мог очистить блок целиком, или ремапнуть данные в другой.
Изображение
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение Serg »

popcorn писал(а):Каким образом контроллер узнает о изменениях отдельных страниц в блоке данных на 4кб без TRIM?
А зачем ему надо это знать? При освобождении блока (или его части) никаких изменений в блок не записывается. При любых изменениях в блоке перезаписывается весь блок. Способ перезаписи выбирает сам контроллер диска в зависимости от ситуации.
popcorn писал(а):что бы он мог очистить блок целиком, или ремапнуть данные в другой.
Для нормальной fs очищать блоки/сектора не требуется, просто когда потребуется в них будет записана новая информация.
Это примерно как стену покрасить - не важно в какой цвет она была выкрашена раньше, важно только в какой цвет надо покрасить и какую именно стену.

Единственное, что имеет смысл адаптировать для SSD - это размер блока fs, его надо делать таким-же как и минимальный размер "кластера" у SSD, только вот не все производители его сообщают.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
popcorn
Мастер
Сообщения: 252
Зарегистрирован: 21 янв 2015, 00:20
Репутация: 18
Откуда: Янтарный край
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение popcorn »

UAVpilot писал(а):
popcorn писал(а):Каким образом контроллер узнает о изменениях отдельных страниц в блоке данных на 4кб без TRIM?
А зачем ему надо это знать? При освобождении блока (или его части) никаких изменений в блок не записывается. При любых изменениях в блоке перезаписывается весь блок. Способ перезаписи выбирает сам контроллер диска в зависимости от ситуации.
popcorn писал(а):что бы он мог очистить блок целиком, или ремапнуть данные в другой.
Для нормальной fs очищать блоки/сектора не требуется, просто когда потребуется в них будет записана новая информация.
Это примерно как стену покрасить - не важно в какой цвет она была выкрашена раньше, важно только в какой цвет надо покрасить и какую именно стену.

Единственное, что имеет смысл адаптировать для SSD - это размер блока fs, его надо делать таким-же как и минимальный размер "кластера" у SSD, только вот не все производители его сообщают.
Вот Вам статья на хабре, она, конечно старая, но для бюджетных ssd наверняка актуальна:
http://habrahabr.ru/post/242199/
Это из того, что я смог найти, где более или менее. Из неё станет понятно, почему я такие вопросы задавал, и считаю, что вы неправильно советуете, что trim не нужен.
Изображение
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение Serg »

Статья справедлива для самых первых SSD. Современные SSD умеют сами оптимизировать процесс. Например если требуется перезаписать несколько байт в блоке, то весь блок (с изменёнными байтами) записывается в свободное место и новый блок получает адрес старого, а старый блок помечается как подлежащий очистке. Когда в одной странице набирается некоторое (вычисляется в зависимости от множества факторов) количество блоков подлежащих очистке, то контроллер перезаписывает всё ещё занятые блоки этой страницы в свободные блоки других страниц - в итоге страница полностью освобождается и может быть очищена.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
popcorn
Мастер
Сообщения: 252
Зарегистрирован: 21 янв 2015, 00:20
Репутация: 18
Откуда: Янтарный край
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение popcorn »

UAVpilot писал(а):Статья справедлива для самых первых SSD. Современные SSD умеют сами оптимизировать процесс. Например если требуется перезаписать несколько байт в блоке, то весь блок (с изменёнными байтами) записывается в свободное место и новый блок получает адрес старого, а старый блок помечается как подлежащий очистке. Когда в одной странице набирается некоторое (вычисляется в зависимости от множества факторов) количество блоков подлежащих очистке, то контроллер перезаписывает всё ещё занятые блоки этой страницы в свободные блоки других страниц - в итоге страница полностью освобождается и может быть очищена.
Встроенный сборщик хорошо, но надо смотреть по конкретной модели и контроллеру. На бюджете не всё так просто.
Имхо, алгоритмы контроллера не известны, поэтому лучше с trim и запасом свободного места.
Изображение
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение Serg »

Производители обычно не скрывают алгоритмы работы контроллеров своих SSD (скрывают детали их реализации). Лично видел оф. описания для Intel и KingFast.

Кстати, SSD от Intel просто "проглатывает" fstrim - видимо реально процесс чистки делает тогда, когда посчитает нужным...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
popcorn
Мастер
Сообщения: 252
Зарегистрирован: 21 янв 2015, 00:20
Репутация: 18
Откуда: Янтарный край
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение popcorn »

UAVpilot писал(а):Производители обычно не скрывают алгоритмы работы контроллеров своих SSD (скрывают детали их реализации). Лично видел оф. описания для Intel и KingFast.

Кстати, SSD от Intel просто "проглатывает" fstrim - видимо реально процесс чистки делает тогда, когда посчитает нужным...
хм, я про сборщик мусора говорил, что не видел, что бы было описание его работы.
Изображение
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Диск SSD и LinuxCNC

Сообщение Serg »

popcorn писал(а):хм, я про сборщик мусора говорил, что не видел, что бы было описание его работы.
Ну а я по твоему откуда это всё знаю?.. :)
У меня один клиент (игровые сервера) очень серьёзно подходил к этому вопросу и выкладывал все найденные документы - на досуге надо будет поискать в нашей системе саппорта...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

Вернуться в «LinuxCNC»