Диск SSD и LinuxCNC
-
flenger
- Кандидат
- Сообщения: 92
- Зарегистрирован: 16 июл 2014, 12:49
- Репутация: -2
- Откуда: Москва
- Контактная информация:
Диск SSD и LinuxCNC
Добрый день,
Поставил на комп простенький диск ssd на 8 ГБ ( для работы хватает).
Как известно для работы с такими дисками необходимо чтобы в системе была функция TRIM.
Официальный дистрибутив ubuntu 10.04 lts, ядро 2.6.32. Проблема в том что TRIM работает на ядрах не старше 2.6.33. На сколько мне известно обновлять систему и ядро нельзя, слетит rti.
Интересует следующий вопрос: существуют ли сторонние программы/утилиты которые могут делать TRIM? Или можно забить на это?
Поставил на комп простенький диск 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
Не считайте авторов Linux глупее себя! 
Файловые системы в Linux (ext2/ext3/ext4/xfs) при удалении файлов никак не трогают блоки с содержимым файлов, а просто в специальной таблице делают отметку, что они стали свободными.
Файловые системы в Linux (ext2/ext3/ext4/xfs) при удалении файлов никак не трогают блоки с содержимым файлов, а просто в специальной таблице делают отметку, что они стали свободными.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
popcorn
- Мастер
- Сообщения: 252
- Зарегистрирован: 21 янв 2015, 00:20
- Репутация: 18
- Откуда: Янтарный край
- Контактная информация:
Re: Диск SSD и LinuxCNC
Собственно надо копать в сторону fstrim, про старые ядра не скажу, но в Arch wiki как-то так: https://wiki.archlinux.org/index.php/So ... B9%29#TRIM
-
flenger
- Кандидат
- Сообщения: 92
- Зарегистрирован: 16 июл 2014, 12:49
- Репутация: -2
- Откуда: Москва
- Контактная информация:
Re: Диск SSD и LinuxCNC
я не говорил что кто-то умнее/глупее, просто организация памяти механического HDD и SDD несколько разная. Со временем, если не делать TRIM скорость SDD резко падает. В новых версиях linux эта функция есть, в старых нет, вот и ищу варианты...UAVpilot писал(а):Не считайте авторов Linux глупее себя!
Файловые системы в Linux (ext2/ext3/ext4/xfs) при удалении файлов никак не трогают блоки с содержимым файлов, а просто в специальной таблице делают отметку, что они стали свободными.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Диск SSD и LinuxCNC
В Linux работа файловых систем организована так, чтобы делать минимум записей на "поверхность", посему TRIM просто теряет смысл.
У нас есть сервера, которые используют SSD как кэш при отдаче контента (т.е. с интенсивной перезаписью информации), некоторые такие сервера работают уже по 3 года и никакой заметной потери производительности не наблюдается. Максимум процентов на 5 время доступа увеличивается, и то это можно заметить на файлах размером примерно за полгига.
У нас есть сервера, которые используют SSD как кэш при отдаче контента (т.е. с интенсивной перезаписью информации), некоторые такие сервера работают уже по 3 года и никакой заметной потери производительности не наблюдается. Максимум процентов на 5 время доступа увеличивается, и то это можно заметить на файлах размером примерно за полгига.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
popcorn
- Мастер
- Сообщения: 252
- Зарегистрирован: 21 янв 2015, 00:20
- Репутация: 18
- Откуда: Янтарный край
- Контактная информация:
Re: Диск SSD и LinuxCNC
Ну, TRIM нужен, что бы диск знал, какие данные больше не нужны, и их можно не перегруппировывать и затереть. В вашем кейсе наверняка fs на весь раздел, а то и raid.UAVpilot писал(а):В Linux работа файловых систем организована так, чтобы делать минимум записей на "поверхность", посему TRIM просто теряет смысл.
У нас есть сервера, которые используют SSD как кэш при отдаче контента (т.е. с интенсивной перезаписью информации), некоторые такие сервера работают уже по 3 года и никакой заметной потери производительности не наблюдается. Максимум процентов на 5 время доступа увеличивается, и то это можно заметить на файлах размером примерно за полгига.
У меня 50 c гаком ssd, всё на одном разделе ext4, но tmp, firefox и прочее тусует на 6gb оперативки. TRIM активен, и при заходе в root иногда вручную делаю, особенно после крупных обновлений.
Эффективность TRIM зависит от заполнения раздела, в принципе, как и работа SSD.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Диск SSD и LinuxCNC
В файловой системе есть так называемым суперблок, в котором хранится информация и занятых и свободных блоках/секторах на диске. При удалении файла содержимое блоков, занятых файлом вообще никак не изменяется, просто в суперблоке делается пометка, что такие-то блоки теперь свободны и их можно использовать.popcorn писал(а):Ну, TRIM нужен, что бы диск знал, какие данные больше не нужны, и их можно не перегруппировывать и затереть.
А дисковый кэш в Linux устроен так, что он умеет при монтировании fs считывать суперблок в память и работать с ним только в памяти, а при размонтировании (или периодически) "сливать" изменения на диск.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
popcorn
- Мастер
- Сообщения: 252
- Зарегистрирован: 21 янв 2015, 00:20
- Репутация: 18
- Откуда: Янтарный край
- Контактная информация:
Re: Диск SSD и LinuxCNC
хм. А как контроллер SSD узнает, какие блоки/части блоков уже свободны, что бы сделать ремап данных?UAVpilot писал(а):В файловой системе есть так называемым суперблок, в котором хранится информация и занятых и свободных блоках/секторах на диске. При удалении файла содержимое блоков, занятых файлом вообще никак не изменяется, просто в суперблоке делается пометка, что такие-то блоки теперь свободны и их можно использовать.popcorn писал(а):Ну, TRIM нужен, что бы диск знал, какие данные больше не нужны, и их можно не перегруппировывать и затереть.
А дисковый кэш в Linux устроен так, что он умеет при монтировании fs считывать суперблок в память и работать с ним только в памяти, а при размонтировании (или периодически) "сливать" изменения на диск.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Диск SSD и LinuxCNC
Обычно контроллеры, управляющие флеш-памятью, понятия не имеют о файловой системе. Но они знают, что если ОС решила произвести запись в какой-то блок, то этот блок можно пометить как свободный. Физически запись произойдет (обязательно!) в другой свободный блок, но об этом будет знать только контроллер, а не ОС.popcorn писал(а):А как контроллер SSD узнает, какие блоки/части блоков уже свободны, что бы сделать ремап данных?
Это если грубо, "крупными мазками", на самом деле там масса нюансов.
Чудес не бывает. Бывают фокусы.
-
popcorn
- Мастер
- Сообщения: 252
- Зарегистрирован: 21 янв 2015, 00:20
- Репутация: 18
- Откуда: Янтарный край
- Контактная информация:
Re: Диск SSD и LinuxCNC
Эту часть я не понял.Сергей Саныч писал(а): Но они знают, что если ОС решила произвести запись в какой-то блок, то этот блок можно пометить как свободный.
Принцип работы SSD я примерно знаю, мне интересен ответ UAVpilot. Каким образом контроллер узнает о изменениях отдельных страниц в блоке данных на 4кб без TRIM?
Вот он пишет, что :
Но я знаю, что это не совсем так, и на ssd файловые системы эмулируются(имитируются) и контроллер пишет-ремапит данные по своему, а trim нужен, что бы дать ему знать о том, что страница или блок свободны, что бы он мог очистить блок целиком, или ремапнуть данные в другой.В файловой системе есть так называемым суперблок, в котором хранится информация и занятых и свободных блоках/секторах на диске.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Диск SSD и LinuxCNC
А зачем ему надо это знать? При освобождении блока (или его части) никаких изменений в блок не записывается. При любых изменениях в блоке перезаписывается весь блок. Способ перезаписи выбирает сам контроллер диска в зависимости от ситуации.popcorn писал(а):Каким образом контроллер узнает о изменениях отдельных страниц в блоке данных на 4кб без TRIM?
Для нормальной fs очищать блоки/сектора не требуется, просто когда потребуется в них будет записана новая информация.popcorn писал(а):что бы он мог очистить блок целиком, или ремапнуть данные в другой.
Это примерно как стену покрасить - не важно в какой цвет она была выкрашена раньше, важно только в какой цвет надо покрасить и какую именно стену.
Единственное, что имеет смысл адаптировать для SSD - это размер блока fs, его надо делать таким-же как и минимальный размер "кластера" у SSD, только вот не все производители его сообщают.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
popcorn
- Мастер
- Сообщения: 252
- Зарегистрирован: 21 янв 2015, 00:20
- Репутация: 18
- Откуда: Янтарный край
- Контактная информация:
Re: Диск SSD и LinuxCNC
Вот Вам статья на хабре, она, конечно старая, но для бюджетных ssd наверняка актуальна:UAVpilot писал(а):А зачем ему надо это знать? При освобождении блока (или его части) никаких изменений в блок не записывается. При любых изменениях в блоке перезаписывается весь блок. Способ перезаписи выбирает сам контроллер диска в зависимости от ситуации.popcorn писал(а):Каким образом контроллер узнает о изменениях отдельных страниц в блоке данных на 4кб без TRIM?
Для нормальной fs очищать блоки/сектора не требуется, просто когда потребуется в них будет записана новая информация.popcorn писал(а):что бы он мог очистить блок целиком, или ремапнуть данные в другой.
Это примерно как стену покрасить - не важно в какой цвет она была выкрашена раньше, важно только в какой цвет надо покрасить и какую именно стену.
Единственное, что имеет смысл адаптировать для SSD - это размер блока fs, его надо делать таким-же как и минимальный размер "кластера" у SSD, только вот не все производители его сообщают.
http://habrahabr.ru/post/242199/
Это из того, что я смог найти, где более или менее. Из неё станет понятно, почему я такие вопросы задавал, и считаю, что вы неправильно советуете, что trim не нужен.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Диск SSD и LinuxCNC
Статья справедлива для самых первых SSD. Современные SSD умеют сами оптимизировать процесс. Например если требуется перезаписать несколько байт в блоке, то весь блок (с изменёнными байтами) записывается в свободное место и новый блок получает адрес старого, а старый блок помечается как подлежащий очистке. Когда в одной странице набирается некоторое (вычисляется в зависимости от множества факторов) количество блоков подлежащих очистке, то контроллер перезаписывает всё ещё занятые блоки этой страницы в свободные блоки других страниц - в итоге страница полностью освобождается и может быть очищена.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
popcorn
- Мастер
- Сообщения: 252
- Зарегистрирован: 21 янв 2015, 00:20
- Репутация: 18
- Откуда: Янтарный край
- Контактная информация:
Re: Диск SSD и LinuxCNC
Встроенный сборщик хорошо, но надо смотреть по конкретной модели и контроллеру. На бюджете не всё так просто.UAVpilot писал(а):Статья справедлива для самых первых SSD. Современные SSD умеют сами оптимизировать процесс. Например если требуется перезаписать несколько байт в блоке, то весь блок (с изменёнными байтами) записывается в свободное место и новый блок получает адрес старого, а старый блок помечается как подлежащий очистке. Когда в одной странице набирается некоторое (вычисляется в зависимости от множества факторов) количество блоков подлежащих очистке, то контроллер перезаписывает всё ещё занятые блоки этой страницы в свободные блоки других страниц - в итоге страница полностью освобождается и может быть очищена.
Имхо, алгоритмы контроллера не известны, поэтому лучше с trim и запасом свободного места.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Диск SSD и LinuxCNC
Производители обычно не скрывают алгоритмы работы контроллеров своих SSD (скрывают детали их реализации). Лично видел оф. описания для Intel и KingFast.
Кстати, SSD от Intel просто "проглатывает" fstrim - видимо реально процесс чистки делает тогда, когда посчитает нужным...
Кстати, SSD от Intel просто "проглатывает" fstrim - видимо реально процесс чистки делает тогда, когда посчитает нужным...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
popcorn
- Мастер
- Сообщения: 252
- Зарегистрирован: 21 янв 2015, 00:20
- Репутация: 18
- Откуда: Янтарный край
- Контактная информация:
Re: Диск SSD и LinuxCNC
хм, я про сборщик мусора говорил, что не видел, что бы было описание его работы.UAVpilot писал(а):Производители обычно не скрывают алгоритмы работы контроллеров своих SSD (скрывают детали их реализации). Лично видел оф. описания для Intel и KingFast.
Кстати, SSD от Intel просто "проглатывает" fstrim - видимо реально процесс чистки делает тогда, когда посчитает нужным...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Диск SSD и LinuxCNC
Ну а я по твоему откуда это всё знаю?..popcorn писал(а):хм, я про сборщик мусора говорил, что не видел, что бы было описание его работы.
У меня один клиент (игровые сервера) очень серьёзно подходил к этому вопросу и выкладывал все найденные документы - на досуге надо будет поискать в нашей системе саппорта...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
