The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..., opennews (?), 10-Янв-12, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


32. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  –1 +/
Сообщение от Аноним (-), 11-Янв-12, 07:18 
> Неужели в Linux только сейчас начали избавляться от зависимости планирования дисковых операций
> от аппаратных особенностей усройств хранения?

Напротив, сделали планировщик специально для конкретного типа устройств хранения.

> планировщик I/O, которому в общем-то по барабану, с каким накопилем он
> работает — с HDD или SSD.

Ага, только проблема в том что для ssd и hdd удобны довольно разные "стили" обмена данными. Например, у SSD нет особого penalty за seek через полдевайса в отличие от винча. Зато ему очень удобно если данные валятся большими блоками, по размеру erase-block флеша и смещение этих данных - по началу блока накопителя. Еще файловая система может подыгрывать SSD высылая ему команду trim, указывающую что "мы больше вон те блоки не юзаем, можешь их подгрести GC'ом когда делать нечего". Сие улучшает скорость записи, т.к. контроллеру ssd приходится не решать проблемы по мере их возникновения, стопоря запись, а появляется шанс заранее дорогу расчистить, чтобы потом по ней "с ветерком" шпарить.

Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

67. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +2 +/
Сообщение от uniman (?), 11-Янв-12, 16:22 
> Еще файловая система может
> подыгрывать SSD высылая ему команду trim, указывающую что "мы больше вон
> те блоки не юзаем, можешь их подгрести GC'ом когда делать нечего".
> Сие улучшает скорость записи, т.к. контроллеру ssd приходится не решать проблемы
> по мере их возникновения, стопоря запись, а появляется шанс заранее дорогу
> расчистить, чтобы потом по ней "с ветерком" шпарить.

Гм, матчасть...

Вообще-то посылать TRIM - не дело слоя FS с бородатого года. В коде FS это вообще командо для контролеро как бы не обязано фигурировать.
Дело FS - файло по блокам абстрактного массива распихивать. Вот другой вопрос - как, учитывая пару л-тройке логических слоев до реального физического массива.

Насчет реализации TRIM ункутри FBSD. Да есть оно.
Насчет как работает - сам не тестировал, все как-то накопители без этого попадаются.

К примеру, кусочек кода, где меняется поведение очереди в зависимости от трям/не-трям контролера.
http://svnweb.FreeBSD.org/base/release/9.0.0/sys/cam/ata/ata...

/*
* Actually translate the requested transfer into one the physical driver
* can understand.  The transfer is described by a buf and will include
* only one physical transfer.
*/
static void
adastrategy(struct bio *bp)
{
.......    
        /*
         * Place it in the queue of disk activities for this disk
         */
        if (bp->bio_cmd == BIO_DELETE &&

            (softc->flags & ADA_FLAG_CAN_TRIM))
                bioq_disksort(&softc->trim_queue, bp);
        else
                bioq_disksort(&softc->bio_queue, bp);
........
}

Ответить | Правка | Наверх | Cообщить модератору

83. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от Аноним (-), 11-Янв-12, 18:27 
>> по мере их возникновения, стопоря запись, а появляется шанс заранее дорогу
>> расчистить, чтобы потом по ней "с ветерком" шпарить.
> Гм, матчасть...

Что - матчасть?

> Вообще-то посылать TRIM - не дело слоя FS с бородатого года.

ФС лучше всех остальных знает когда вон те данные на ФС уже никому не нужны. Стало быть, ей и инициировать это дело.

> В коде FS это вообще командо для контролеро как бы не обязано фигурировать.

Если честно - я не смотрел сорцы как это организовано. Я знаю что как минимум ext4 и btrfs это умеют, как и мое оборудование, и это работает. Если мне попадет шлея под хвост - ну ок, я сунусь и посмотрю как это сделано.

> Дело FS - файло по блокам абстрактного массива распихивать.

Ну так в этом процессе как раз и обнаружится что блоки по адресу от X до Y нам и не требуются уже. Логично захинтить накопитель о том фактк что их можно почистить. Как именно сделана отсылка trim я честно говоря не смотрел. Я только поигрался с этой механикой и заметил что это работает (есть вполне доступные методы проверки).

> Вот другой вопрос - как, учитывая пару л-тройке логических слоев
> до реального физического массива.

Если через эти слои можно адресно записывать блоки то почему нельзя их же и чистить?

> Насчет реализации TRIM ункутри FBSD. Да есть оно.

А я то думал что у ней внутри неонка :)

> Насчет как работает - сам не тестировал, все как-то накопители без этого
> попадаются.

Практически любой современный ssd например просто обязан trim уметь - фича уже довольно баянистая. А на механическом диске оно как-то и не надо - нет физического смысла. Это всего лишь хинт контроллеру накопителя что он может если хочет заранее стереть эти блоки. Чтобы не пришлось это делать в те моменты когда приперло по причине отсутствия чистых блоков, внепланово просрав скорость записи (erase блока флеша - довольно медленная операция).

Ответить | Правка | Наверх | Cообщить модератору

86. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  –1 +/
Сообщение от uniman (ok), 11-Янв-12, 19:01 
>>> по мере их возникновения, стопоря запись, а появляется шанс заранее дорогу
>>> расчистить, чтобы потом по ней "с ветерком" шпарить.
>> Гм, матчасть...
> Что - матчасть?
>> Вообще-то посылать TRIM - не дело слоя FS с бородатого года.
> ФС лучше всех остальных знает когда вон те данные на ФС уже
> никому не нужны. Стало быть, ей и инициировать это дело.

Иницировать - это да. Может быть.

>> В коде FS это вообще командо для контролеро как бы не обязано фигурировать.
> Если честно - я не смотрел сорцы как это организовано.
> Если через эти слои можно адресно записывать блоки то почему нельзя их
> же и чистить?

Блин :) Матчасть. Никто не "чистит блоки". В них есть функ запись, из них есть функ чтения.
Как бэ все.
В метаблоках он может быть помечен как занятый, может как свободный.
Прочитал метаблоки в память, пометил как свободные, синхронизировал метаблоки из памяти на диск - все.

Командой TRIM дополнительно информируется SSD при обновлении метаблоков, что, мол, воооон в те блоки с фуфлом в них - можно писать, ну и SSD весело в них пишет, если считает необходимым.
Говорят, это SSD облегчает его нелегкую кремниевую жизнь.

Традиционно FS логика Unix кроме чтения и записи особо никак не коммутировала с слоем драйверов. То есть пипл старался так делать.
Ну вот теперь традиции меняются :)

> Насчет реализации TRIM ункутри FBSD. Да есть оно.
> А я то думал что у ней внутри неонка :)

Некоторые так и думают, в своем мире. Судя по комментариям.

>> Насчет как работает - сам не тестировал, все как-то накопители без этого
>> попадаются.
> Практически любой современный ssd например просто обязан trim уметь - фича уже
> довольно баянистая.

Да хрен там. Может я такой невезучий. Или может прогресивное человечество ушло вперед, и унесло триманутое SSD с собой.

Ответить | Правка | Наверх | Cообщить модератору

110. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от Аноним (-), 11-Янв-12, 21:42 
> Иницировать - это да. Может быть.

Ну я при случае залезу в сорц и посмотрю как они это делают. Все-таки любопытно. Что-то не думаю что они там прямо из драйвера ФС напрямую накопителю команды кидают. Это было бы как-то совсем уж по хакерски. Они конечно любят что-то такое отмочить, но не настолько же? :)

>> Если через эти слои можно адресно записывать блоки то почему нельзя их
>> же и чистить?
> Блин :) Матчасть. Никто не "чистит блоки". В них есть функ запись,
> из них есть функ чтения.

Неправильно. У флеша есть три различных процедуры. Чтение - ну там все просто и понятно. А вот запись на самом деле является сочетанием 2 взаимодополняющих операций, гоняющих биты ячеек в разные стороны, как то program, когда желаемые данные пишутся в 1 чистую страницу, и erase, когда все страницы erase-блока очищаются одним чихом. CoW логика и уровень трансляции соответственно утрясают такие вот странные свойства своего физического уровня с желанием представить это как якобы диск с какими-то там якобы секторами, которых на самом деле нифига нет. Trim позволяет сборщику мусора контроллера флеша понять что блоки уже не используются и почистить их заранее. В противном случае у сборщика мусора в контроллере есть одна довольно тупая проблема: а он не знает, нужны вам еще вон те данные или уже нет. На них не написано! Как я понимаю, он может сделать выводы лишь на основе логики "если они вот это переписали, оно уже точно было не нужно". Что как-то не слишком оптимально. Trim позволяет реализовывать более удачную упреждащую логику сбора мусора заранее, до того как реально припрет что-то записать и обнаружить что надо оказывается чего-то там перелопатить.

> Как бэ все.

Как бэ щаззз.

> В метаблоках он может быть помечен как занятый, может как свободный.
> Прочитал метаблоки в память, пометил как свободные, синхронизировал метаблоки из памяти
> на диск - все.

Я не знаю кто такие метаблоки, но флеш оперирует двумя понятиями - относительно мелкие страницы на 1..4 кило и относительно большие erase block на 64...512 кило.

> Командой TRIM дополнительно информируется SSD при обновлении метаблоков,
> что, мол, воооон в те блоки с фуфлом в них - можно писать,

Еще один неандерталец, который явно не в курсе что у флеша нет понятия записи как таковой, а есть расщепление этой операции на две взаимодополняющие - erase и program.

>  ну и SSD весело в них пишет, если считает необходимым.
> Говорят, это SSD облегчает его нелегкую кремниевую жизнь.

Говорят, что это позволяет контроллеру на ssd понять что вон те блоки уже никому нафиг не нужны и можно заранее их erase'ануть. Это бы все-равно пришлось сделать потом для их использования, но если это делать когда приперло записать туда что-то - так сперва придется дождаться конца erase а только потом делать program. А это медленее чем немедленно вфигачить желаемое (program) в заранее очищенные страницы. С соответствующим результатом для скорости операции "записи" (которая по факту сочетание erase и program).

> Традиционно FS логика Unix кроме чтения и записи особо никак не коммутировала
> с слоем драйверов. То есть пипл старался так делать.
> Ну вот теперь традиции меняются :)

SSD вообще на диски не похожи. Какой козел придумал что он должен выглядеть как диск я не знаю но он заслуживает прогулки на эшафот. За создание геморроя остальным в "благих" целях обратной совместимости.

>> Насчет реализации TRIM ункутри FBSD. Да есть оно.
>> А я то думал что у ней внутри неонка :)
> Некоторые так и думают, в своем мире. Судя по комментариям.

Ну просто мало меня интересуют кишки этой вашей FBSD, просто потому что я не собираюсь ей пользоваться в обозримом будущем. Кишки флешатины или там пингвина - а почему бы и нет, собственно? Я и тем и другим пользуюсь и буду пользоваться в обозримом будущем. Такой я вот редиска.

>> Практически любой современный ssd например просто обязан trim уметь - фича уже
>> довольно баянистая.
> Да хрен там. Может я такой невезучий. Или может прогресивное человечество ушло
> вперед, и унесло триманутое SSD с собой.

У упомянутых арчеводов есть довольно простой и забавный метод проверки работы trim через смотрение в каком секторе лежит файл, его стирание и смотрение с тем что стало с этим сектором после sync. Правда у них разумеется применительно к линуксу и ext4, насколько их инструкции прокатят для bsd и тамошних ФС я не знаю.

Ответить | Правка | Наверх | Cообщить модератору

115. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  –1 +/
Сообщение от uniman (ok), 11-Янв-12, 21:59 
> Еще один неандерталец, который явно не в курсе что у флеша нет
> понятия записи как таковой, а есть расщепление этой операции на две
> взаимодополняющие - erase и program.

Ну спасибо. Теперь буду жить по другому. Стану бриться и перестану ругаться матом.

Ваще то я писал с точки зрения того самого интерфейса ATAPI/SCSI.
Если вы найдете в спецификации SCSI команду РАСЩЕПИТЬ и ЗАЩИМИТЬ, то даже стану носить галстук.

Ответить | Правка | Наверх | Cообщить модератору

116. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от Аноним (-), 11-Янв-12, 22:25 
> Ваще то я писал с точки зрения того самого интерфейса ATAPI/SCSI.
> Если вы найдете в спецификации SCSI команду РАСЩЕПИТЬ и ЗАЩИМИТЬ, то даже
> стану носить галстук.

Подляна состоит в том что нативную механику флеша вывешивать как некий интерфейс зассали и вместо этого сделали какие-то кривые костыли для представления этого как якобы какой-то там диск, похожий на то с чем привыкли работать ОСы. Осознав что в результате этих потуг получилась очень субоптимальная бнопня, сделали еще костылик в виде trim, позволяющий хоть как-то захинтить то что там на самом деле через тот интерфейс что есть. Теперь гланды через зад автогеном стало удалять в два раза забористее, приколитесь? :))

Ответить | Правка | Наверх | Cообщить модератору

120. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от uniman (ok), 11-Янв-12, 23:06 
>> Ваще то я писал с точки зрения того самого интерфейса ATAPI/SCSI.
>> Если вы найдете в спецификации SCSI команду РАСЩЕПИТЬ и ЗАЩИМИТЬ, то даже
>> стану носить галстук.
> Подляна состоит в том что нативную механику флеша вывешивать как некий интерфейс
> зассали и вместо этого сделали какие-то кривые костыли для представления этого
> как якобы какой-то там диск, похожий на то с чем привыкли
> работать ОСы.

Ну так. Мир несовершенен.
И я бы так сделал. Или вы хотите лет пяток подождать до внедрения SSD c жутко корректным интерфейсом? Писать системный код и отлаживать - проектные затраты, поэтому внедрение идет по пути наименьших стеднепрогнозных потерь на изменения.

Для многих встраиваемых систем смена HDD на SSD - уже благое дело, ибо резко повышает надежность по механике.
И значит, благое дело для всех нас, их пользователей.

Ответить | Правка | Наверх | Cообщить модератору

126. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от Аноним (-), 12-Янв-12, 07:25 
> Ну так. Мир несовершенен.

Ну так. А наша цель - этой механике подыграть. Тому что по факту есть, а не тому маразму через который это вывешено. Ну вот SCSI всего лишь средство, не более.

> И я бы так сделал. Или вы хотите лет пяток подождать до
> внедрения SSD c жутко корректным интерфейсом?

Да на самом деле у MS был бы чудный повод продать новую винду лохам с кульной новой фичой, а остальные могли бы быстро и эффективно работать с дисками, удачно раскладывая файловую систему по флешовым сущностям без большого онанизма. Просто тормозные корпорасты как обычно не понимают своего счастья и изобретают вместо этого костыли и подпорки.

> Писать системный код и отлаживать - проектные затраты, поэтому внедрение идет
> по пути наименьших стеднепрогнозных потерь на изменения.

Это делается так: берется 2 компа, ставится на один старая винда, на второй новая, на супермодный SSD. Показывается разница во времени загрузки в рекламе. Хомяки фигеют и строятся в очередь. Ну а остальные и сами разберутся. И уж наверное всякие линуксы бы без проблем бы подхватили. Ну во всяком случае поддержку флех прицепленных к процам напрямую они что-то делают вполне оперативно. Хотя если уж на то пошло, редизайнить надо и интерфейс передачи данных - для ssd его может быть мало. Вон некоторые делают ssd на pci-e шину. Потому что sata им не хватает.

> Для многих встраиваемых систем смена HDD на SSD - уже благое дело,
> ибо резко повышает надежность по механике.

Зато вносит препротивный лимит на объем записи на носитель. Если на винч можно писать хоть круглосуточно, то вот флехи от этого довольно быстро протираются и вскоре придется заменять флешку, хоть она и угроблена не механически а электрически. А еще они дорогие. Мало того что ssd объема сравнимого с топовыми винчами просто не делают, так еще и что-то хоть издали похожее на таковые стоит как половина самолета.

> И значит, благое дело для всех нас, их пользователей.

Да просто глупо тут то что сначала создали себе проблем а теперь вот героически их решают всякими неочевидными и кривыми костылями типа TRIM. Хотя могли бы и сделать некий набор команд типа ATAPI, но для флех, например. Ну подумаешь, в хучшем случае потребовался бы еще 1 драйвер под +1 тип накопителей. В лучшем таковой драйвер стал бы стандартной частью систем.

Ответить | Правка | Наверх | Cообщить модератору

142. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от uniman (ok), 12-Янв-12, 18:51 
> Да просто глупо тут то что сначала создали себе проблем а теперь
> вот героически их решают всякими неочевидными и кривыми костылями типа TRIM.
> Хотя могли бы и сделать некий набор команд типа ATAPI, но

Тебя ждали.

Ответить | Правка | Наверх | Cообщить модератору

144. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от Аноним (-), 12-Янв-12, 20:14 
> Тебя ждали.

Круто!

Ответить | Правка | Наверх | Cообщить модератору

117. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от uniman (ok), 11-Янв-12, 22:26 

> Говорят, что это позволяет контроллеру на ssd понять что вон те блоки
> уже никому нафиг не нужны и можно заранее их erase'ануть. Это ...

Да неужто? А зачем? Наверное, для того что бы в них можно было что-то записать?

Мне еще рассказывали, в магнитных накопителях такой вот шпиндель заранее раскручивают.
Что диск жужжал, и человек мог понять, что он работает.

> SSD вообще на диски не похожи. Какой козел придумал что он должен
> выглядеть как диск я не знаю но он заслуживает прогулки на
> эшафот. За создание геморроя остальным в "благих" целях обратной совместимости.

Не, товарищи производители должны были подождать, пока все разработчики напишут новый код под новую спецификацию интефейса SD00001BETA. А потом продавать. Через три-четыре года.

> Ну просто мало меня интересуют кишки этой вашей FBSD

Во первых, она такая же моя, как и товарища Петрова. Или ваша. Обчественное достояние.
Во вторых, ваше право чем-то не интересоваться. Чего писать об этом так уж?
В третьих, какая нахрен разница, код есть код.


> У упомянутых арчеводов есть довольно простой и забавный метод проверки работы trim

"Ну просто мало меня интересуют кишки этоих ваших арчеводов" :)

> через смотрение в каком секторе лежит файл, его стирание и смотрение
> с тем что стало с этим сектором после sync.

Угу. Через ATAPI интерфейс прям обращаясь к чипу EEPROM. В каком секторе лежит файл. Сильная методика. Жажду ссылки.

Ответить | Правка | К родителю #110 | Наверх | Cообщить модератору

127. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от Аноним (-), 12-Янв-12, 08:20 
>> Говорят, что это позволяет контроллеру на ssd понять что вон те блоки
>> уже никому нафиг не нужны и можно заранее их erase'ануть. Это ...
> Да неужто? А зачем? Наверное, для того что бы в них можно было что-то записать?

Да. Потому что в отличие от магнитного диска на флеше нельзя просто взять и перезаписать уже занятый данными произвольно выбранный сектор. У хардов все просто. Сказали перезаписать сектор? Ну он пошел, переместил головы в это место, нашел и перезаписал его. Правила игры флеша совсем иные. И если seek time у флеша близко к нулю и его можно вообще почти проигнорировать, то вот время erase обычно лежит в пределах скольких-то там миллисекунд и попасть на эту операцию в процессе записи данных - довольно нехорошо и ведет к сильной просадке скорости записи. Потому что сколько-то там миллисекунд вместо записи курили бамбук, ожидая пока блок сотрется и станет можно в него что-то записать. У арчеводов с их весьма дельной викой кстати на вике есть весьма доходчивые графики как все это выглядит не только в теории но и на практике - сравнение того что получается с trim и без оного ;)

> Мне еще рассказывали, в магнитных накопителях такой вот шпиндель заранее раскручивают.

Некорректная аналогия. В магнитном накопителе сектор можно записывать сразу, без какой-то выделенной процедуры предварительной подготовки оного, выполняемой как некая отдельная сущность в отдельный момент времени. И к тому же винчу не проблема перезаписать только вот эти 512 (или накрайняк 4096) байтов не трогая соседние. А вот ssd в силу своего устройства так не может чисто физически и эмулирует такое поведение крайне извращенскими и неоптимальными действиями. Провокации оного на эти действия следует максимально избегать, если волнует эффективность процесса. А поскольку истинной геометрии нам неизвестно - это избегание превращается в некую черную магию.

> Что диск жужжал, и человек мог понять, что он работает.

Какая чудная логика неандертальца ффтыкающего на микроволновку :)

[...]
> Не, товарищи производители должны были подождать, пока все разработчики напишут новый код
> под новую спецификацию интефейса SD00001BETA. А потом продавать. Через три-четыре года.

А что, MS как раз с удовольствием бы пошел барыжить новой системой с суперфичой :). Вообще, ATAPI же как-то внедрили, да? Ну потаскали некоторые системы некоторое время с собой кастомные драйвера cd-rom. А потом драйвера внедрили в все основные ОС и нужда в этом отпала. Не вижу никакой трагедии.

>> Ну просто мало меня интересуют кишки этой вашей FBSD
> Во первых, она такая же моя, как и товарища Петрова. Или ваша. Обчественное достояние.

Сами как-нибудь это ваше достояние юзайте. А для меня - поскольку я не собираюсь это использовать, то и детали его внутренней механики волнуют крайне слабо. Разве что как какое-то обобщенное знание, не более.

> Во вторых, ваше право чем-то не интересоваться. Чего писать об этом так уж?

Скорее, не совсем понятно на кой перец лезть с вашей bsd к линухоидам с их планировщиком. Хотя тут скорее больше в огород изена, этот вообще абстрактный теоретик. Флехи он судя по всему только на картинках в книжках видел :)

> В третьих, какая нахрен разница, код есть код.

Да просто не понятно какую самоценность он несет и что это по вашему мнению должно проиллюстрировать.

>> У упомянутых арчеводов есть довольно простой и забавный метод проверки работы trim
> "Ну просто мало меня интересуют кишки этоих ваших арчеводов" :)

Я это подозреваю, поэтому специально уточняю этот факт, предупреждая о том что эксперимент был опробован под вполне конкретную конфигурацию и работать в других так же не обязан а действия могут отличаться. Вам скорее всего придется напрячь мозг и как-то самому придумать эквивалентный по физическому смыслу набор действий для FBSD, если вдруг захочется повторить такой эксперимент.

>> через смотрение в каком секторе лежит файл, его стирание и смотрение
>> с тем что стало с этим сектором после sync.
> Угу. Через ATAPI интерфейс прям обращаясь к чипу EEPROM.

Во первых в флешовых носителях чипы не EEPROM а NAND-флеша. EEPROM где-то на совсем базовом уровне похож на "соседний" NOR-флеш, но в отличие от - может писаться хоть отдельными байтами в людском виде. Почему не юзают? Потому что плотность хранения данных никакая. Не надо никому носитель на несколько метров и по цене самолета.
Во вторых, набор команд у SSD вроде как ATA, а не ATAPI.
В третьих, нет, к сожалению напрямую обратиться в чип нельзя. Поэтому методика довольно хакерская и косвенная, продирающаяся через все эти костыли и слои абстракций к реальной физике.

> В каком секторе лежит файл. Сильная методика. Жажду ссылки.

Ага, сильная. Я тоже аж удивился. Правда извиняюсь, немного прогнал: ссылка на это у арчеводов, но сам эксперимент все-таки описан на другом сайте.

Арчеводовская вика по теме - https://wiki.archlinux.org/index.php/Solid_State_Drives и я бы сказал что это довольно дельный ресурс, независимо от используемой системы. В том плане что из него понятно в какую сторону и что можно крутить, а как это сделать в вашей системе - сами уже как-нибудь допирайте.

Статья на проверку поддержки TRIM в пингвине - http://techgage.com/article/enabling_and_testing_ssd_trim_su.../

(самое интересное, а именно проверка - на второй странице)

В меру моего понимания, эта проверка довольно сильно закладывается на механику работы файловых систем типа ext4 (как минимум, такой метод проверки имхо не прокатит для CoW файловых систем, а для остальных - в зависимости от того как они стирают файлы и требуют ли почистить при этом область занятую файлом через trim так или иначе) и допускает довольно характерную логику поведения контроллера в ssd, чего разумеется для произвольно взятого ssd никто не гарантирует. Тем не менее, упомянутая там механика и тест вполне работает на конфигурации отдаленно напоминающей авторскую. Ну то-есть, если все отработало как описано у авторов - TRIM определенно есть и работает "по факту", реально расчищая блоки когда об этом попросили.

Ответить | Правка | Наверх | Cообщить модератору

141. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от uniman (ok), 12-Янв-12, 18:43 

>> Мне еще рассказывали, в магнитных накопителях такой вот шпиндель заранее раскручивают.
>> Что диск жужжал, и человек мог понять, что он работает.
> Некорректная аналогия. В магнитном накопителе сектор можно записывать сразу, без какой-то ...

Батенька, вы еще не поняли что это издевка над вашим поучительством?

>> Не, товарищи производители должны были подождать, пока все разработчики напишут новый код
>> под новую спецификацию интефейса SD00001BETA. А потом продавать. Через три-четыре года.
> А что, MS как раз с удовольствием бы пошел барыжить новой системой
> с суперфичой :). Вообще, ATAPI же как-то внедрили, да? Ну потаскали
> некоторые системы некоторое время с собой кастомные драйвера cd-rom.

Стандарт CDROM IEC-19* хрен уже не помню, который потом ISO 9669 - 1986 года.
Стандарт ATAPI, АTA-4/ATAPI, включающий интерфейc к мультимедия CDROM - 1998 год.

12 лет. А таки потом сделали их интерфейс АТА и SCSI.

>А потом драйвера внедрили в все основные ОС и нужда в этом отпала.

Гениально!

> Не вижу никакой трагедии.

Точно. Тебе контакт генерального директора Тошибы али Самсунга подсказать, или сам найдешь?
Там такие как ты гении нужны. Не, вдруг на самом все в производстве-индустрии гораздо проще?

>>> Ну просто мало меня интересуют кишки этой вашей FBSD
>> Во первых, она такая же моя, как и товарища Петрова. Или ваша. Обчественное достояние.
> Сами как-нибудь это ваше достояние юзайте. А для меня

Меня мало волнуют и твои кишки. :)

> придется напрячь мозг и как-то самому придумать эквивалентный по физическому смыслу
> набор действий для FBSD, если вдруг захочется повторить такой эксперимент.

Не, теперь очередь этих, как его арчеводов.

>> через смотрение в каком секторе лежит файл, его стирание и смотрение
>>> с тем что стало с этим сектором после sync.
>> Угу. Через ATAPI интерфейс прям обращаясь к чипу EEPROM.
> Во первых в флешовых носителях чипы не EEPROM а NAND-флеша.

Он знал! Он знал! О великий магистр Йода! :)

Парень, тебя так самодовольно прет от твоих открытый после программирования флеш-чипов, что остальному человечесту просто остается грется в лучах твоего сияния.

Ответить | Правка | Наверх | Cообщить модератору

160. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от Аноним (-), 13-Янв-12, 20:26 
[...]
> Батенька, вы еще не поняли что это издевка над вашим поучительством?

Да ладно вам, не стесняйтесь, я тоже покушать люблю и вы оказались вполне пригодны, извините уж за честность :)

> Стандарт CDROM IEC-19* хрен уже не помню, который потом ISO 9669 -
> 1986 года.Стандарт ATAPI, АTA-4/ATAPI, включающий интерфейc к мультимедия CDROM - 1998 год.

Ага. Правда до этого сидиромы цепляли к звуковухам и было несколько несовместимых интерфейсов. До такого маразма как эмулировать из сидюка винч тогда к счастью не додумались и в результате оно доэволюционировало до чего-то вменяемого.

> 12 лет. А таки потом сделали их интерфейс АТА и SCSI.

Так флеш тоже появился в 80-х годах, если не в конце 70-х.

>>А потом драйвера внедрили в все основные ОС и нужда в этом отпала.
> Гениально!

Конечно!

[...]
> Там такие как ты гении нужны. Не, вдруг на самом все в
> производстве-индустрии гораздо проще?

Разумеется. Хотя честно говоря я не понимаю чего ои упустили возможность слупить бабла на ровном месте. Мелкомякоть могли бы продавать винду с поддержкой нового интрфейса лузерам за суперцену, производители флещатины тоже в минусе бы не остались, ну и так далее :). Видимо влом им что-то разрабатывать уже. Проще купоны стричь на патентной грызне.

> Меня мало волнуют и твои кишки. :)

Так я и не предлагаю их изучать :P.

>> придется напрячь мозг и как-то самому придумать эквивалентный по физическому смыслу
>> набор действий для FBSD, если вдруг захочется повторить такой эксперимент.
> Не, теперь очередь этих, как его арчеводов.

Угу, арчеводы в отличие от некоторых как ни странно оказались парнями ориентирующимися на фактический результат, а не теоретические бсдения о скази-интерфейсах. Поэтому они будучи дотошными парнями нашли и статейку с описальником как проверить что trim реально работает в некоей конфигурации.

> Он знал! Он знал! О великий магистр Йода! :)
> Парень, тебя так самодовольно прет от твоих открытый после программирования флеш-чипов,
> что остальному человечесту просто остается грется в лучах твоего сияния.

Кто ж виноват что такие как вы видели флеш только на картинке, зато потеоретизировать насчет скази и книжек 1999 года - горазды.

Ответить | Правка | Наверх | Cообщить модератору

165. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от uniman (ok), 13-Янв-12, 21:32 
>> Стандарт CDROM IEC-19* хрен уже не помню, который потом ISO 9669 -
>> 1986 года.Стандарт ATAPI, АTA-4/ATAPI, включающий интерфейc к мультимедия CDROM - 1998 год.
> Ага. Правда до этого сидиромы цепляли к звуковухам и было несколько несовместимых
> интерфейсов. До такого маразма как эмулировать из сидюка винч тогда к
> счастью не додумались и в результате оно доэволюционировало до чего-то вменяемого.

А пока, вы, батенька, предлагагате прицепить флешь-накопители на soundblaster.
Ок. Хорошее предложение, у меня для этого и sb16 остался, вполне еще рабочий.

Боюсь только, разработчики и покупатели встраиваемого оборудования ваших мысленных флаек не поймут.

>> 12 лет. А таки потом сделали их интерфейс АТА и SCSI.
> Так флеш тоже появился в 80-х годах, если не в конце 70-х.

А спустя 20 лет появился анонимус в форуме на опеннете.

Процесс разработки расширений на стандарты интефейсов идет постоянно.
Открой для себя комитет T13
http://www.t13.org

Фперед, с предложениями туда. Там отпушут, куда тебе идти дальше.

>>>А потом драйвера внедрили в все основные ОС и нужда в этом отпала.
>> Гениально!
> Конечно!

Вам осталось убедить всего пару-тройку корпораций в вашей гениальности.
Ну хотя бы свою кошку.

> Кто ж виноват что такие как вы видели флеш только на картинке,
> зато потеоретизировать насчет скази и книжек 1999 года - горазды.

Вы сам-то поняли, батенька анонимус, что написали?

Ответить | Правка | Наверх | Cообщить модератору

178. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от Аноним (-), 17-Янв-12, 20:45 
>> Ага. Правда до этого сидиромы цепляли к звуковухам и было несколько несовместимых
>> интерфейсов. До такого маразма как эмулировать из сидюка винч тогда к
>> счастью не додумались и в результате оно доэволюционировало до чего-то вменяемого.
> А пока, вы, батенька, предлагагате прицепить флешь-накопители на soundblaster.

Прикольный вывод! Дерзайте! :)

> Ок. Хорошее предложение, у меня для этого и sb16 остался, вполне еще рабочий.

А, круто. Теперь дизайньте контроллер под этот интерфейс, чтоли :)

> не поймут.

А их вообще никто не будет спрашивать, независимо ни от чего.

> Фперед, с предложениями туда. Там отпушут, куда тебе идти дальше.

А что, есть опыт взаимодействия с оными?

> Вам осталось убедить всего пару-тройку корпораций в вашей гениальности.
> Ну хотя бы свою кошку.

Прикольно наверное когда у вас кошка - корпорация :)

> Вы сам-то поняли, батенька анонимус, что написали?

Что-то написал. Правда среди этого не было книжек.

Ответить | Правка | Наверх | Cообщить модератору

179. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от uniman (ok), 17-Янв-12, 20:53 
>Что-то написал. Правда среди этого не было книжек.

Так вы обратились к кому-либо со своими перспективными идеями создать новый интерфейс для флеш-накопителей, или только на опеннет анонимусом горазды?

Результат когда будет?

Ответить | Правка | Наверх | Cообщить модератору

184. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от netch (ok), 23-Янв-12, 21:56 
>>> через смотрение в каком секторе лежит файл, его стирание и смотрение
>>> с тем что стало с этим сектором после sync.
>> Угу. Через ATAPI интерфейс прям обращаясь к чипу EEPROM.
> Во первых в флешовых носителях чипы не EEPROM а NAND-флеша. EEPROM где-то
> на совсем базовом уровне похож на "соседний" NOR-флеш, но в отличие
> от - может писаться хоть отдельными байтами в людском виде.

Вообще-то про NOR все пишут, что оно тоже может байтами писаться. Та же википедия пишет.
Врут?

> Почему
> не юзают? Потому что плотность хранения данных никакая. Не надо никому
> носитель на несколько метров и по цене самолета.
> Во вторых, набор команд у SSD вроде как ATA, а не ATAPI.

Ну имелось в виду, как я понял, с кастомным обращением не с блочными операциями, а значит - ATAPI.

> (самое интересное, а именно проверка - на второй странице)

Проверили, что нули... ничего интересного. Кстати, в случае SCSI спецификации не требуют нули, хотя и рекомендуют.


Ответить | Правка | К родителю #127 | Наверх | Cообщить модератору

188. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от Аноним (-), 01-Фев-12, 17:07 
> Вообще-то про NOR все пишут, что оно тоже может байтами писаться. Та
> же википедия пишет.
> Врут?

Зависит от чипа. Зачастую - натурально может (под записью я имею в виду PROGRAM). А иногда только страницами, зависит от конкретиики реализации. Исторически, страничные режимы (для ускорения чтения-записи) появились позже побайтовых (а точнее, пословных, поскольку байт на, допустим, 16-битной шине - нечто довольно странное и не существующее физически). Но даже если запись и можно делать индивидуально, это будет с противной оговоркой: в NOR можно индивидуально спустить битики из 1 в 0 но вот обратно в 1 их загнать можно только ERASE'ом всего огромного блока. Кстати этот фокус позволял штукам типа JFFS писать в NOR 1 байт без стирания несколько раз: если нужное значение делается из того что уже записано только спуском битов - стирать не требуется. В современном мире однако ж чипы чаще всего NAND, а обмен чаще всего только страницами (по поводу чего указанный хак в jffs работать перестал и им пришлось немного переделать эту логику).

У "настоящего" EEPROM наиболее заметное отличие от флеша - отсутствие блоков. Оно адресуется влоб по ячейкам. Стирание и запись ячеек индивидуальны, в отличие от. Туда всегда можно записать любой байт в любую ячейку и это будет сделано без стирания больших блоков. Так намного удобнее для программ, но за это воздается очень низкой емкостью чипа т.к. на кристалле получается намного больше проводников к ячейкам, etc. Поэтому емкость чипов EEPROM не может конкурировать с NOR и тем более NAND, так что они используются там где не надо большой емкости а индивидуальная запись ячеек - удобна.

>> (самое интересное, а именно проверка - на второй странице)
> Проверили, что нули... ничего интересного.

Контроллер SSD отпедалил даденый ему хинт и потер блок. Вот так вот через такой хакЪ это и проверили :)

> Кстати, в случае SCSI спецификации не требуют нули, хотя и рекомендуют.

А это вытекает из физики работы флеша, а вовсе не. Это просто стертый блок. Контроллер SSD получив хинт через TRIM, выдал чипу флеша где ранее лежал тот сектор команду на ERASE блока, оттуда и нули (в случае NOR блок стирается наоборот во все единицы, а в NAND вот так вот). На запрос чтения сектора контроллер честно слазил в сектор и доложил что там нули, что и доказывает что упомянутая механика по цепочке отработала :)

Ответить | Правка | Наверх | Cообщить модератору

183. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от netch (ok), 23-Янв-12, 21:48 
>>  ну и SSD весело в них пишет, если считает необходимым.
>> Говорят, это SSD облегчает его нелегкую кремниевую жизнь.
> Говорят, что это позволяет контроллеру на ssd понять что вон те блоки
> уже никому нафиг не нужны и можно заранее их erase'ануть. Это
> бы все-равно пришлось сделать потом для их использования, но если это
> делать когда приперло записать туда что-то - так сперва придется дождаться
> конца erase а только потом делать program.

Кроме того, это показывает, что если пересобирается новый комплект блоков, то можно указанные блоки не спасать из очищаемого диапазона.

>> Традиционно FS логика Unix кроме чтения и записи особо никак не коммутировала
>> с слоем драйверов. То есть пипл старался так делать.
>> Ну вот теперь традиции меняются :)
> SSD вообще на диски не похожи. Какой козел придумал что он должен
> выглядеть как диск я не знаю но он заслуживает прогулки на
> эшафот. За создание геморроя остальным в "благих" целях обратной совместимости.

А какая альтернатива? Опишите, пожалуйста, как выглядели бы они при другом подходе.

Ответить | Правка | К родителю #110 | Наверх | Cообщить модератору

69. "Для ядра Linux представлен планировщик ввода-вывода FIOPS дл..."  +/
Сообщение от uniman (?), 11-Янв-12, 16:52 
>[оверквотинг удален]
> Ага, только проблема в том что для ssd и hdd удобны довольно
> разные "стили" обмена данными. Например, у SSD нет особого penalty за
> seek через полдевайса в отличие от винча. Зато ему очень удобно
> если данные валятся большими блоками, по размеру erase-block флеша и смещение
> этих данных - по началу блока накопителя. Еще файловая система может
> подыгрывать SSD высылая ему команду trim, указывающую что "мы больше вон
> те блоки не юзаем, можешь их подгрести GC'ом когда делать нечего".
> Сие улучшает скорость записи, т.к. контроллеру ssd приходится не решать проблемы
> по мере их возникновения, стопоря запись, а появляется шанс заранее дорогу
> расчистить, чтобы потом по ней "с ветерком" шпарить.

PS

Собственно, поскольку как-то указывать что за ху из ху ниже файловой системы к железяке, приходят к таким решениям. Ну и сотвественно маленько меняется логика FS в отношении нижнего слоя.

# man newfs
....
     -t      Turn on the TRIM enable flag.  If enabled, and if the underlying
             device supports the BIO_DELETE command, the file system will send
             a delete request to the underlying device for each freed block.
             The trim enable flag is typically set when the underlying device
             uses flash-memory as the device can use the delete command to
             pre-zero or at least avoid copying blocks that have been deleted.
...

# less /usr/src/sys/ufs/ufs/ufsmount.h

/* This structure describes the UFS specific mount structure data. */                                          
struct ufsmount {
...
        int     um_candelete;                   /* devvp supports TRIM */
...
}

# less /usr/src/sys/ufs/ffs/ffs_alloc.c

        /*
         * Nothing to delay if TRIM is disabled, or the operation is
         * performed on the snapshot.
         */
        if (!ump->um_candelete || devvp->v_type == VREG) {
                ffs_blkfree_cg(ump, fs, devvp, bno, size, inum, dephd);
                return;
        }

И так далее.
# svn log /usr/src/sys/ufs/ffs/ffs_alloc.c
------------------------------------------------------------------------
r216796 | kib | 2010-12-29 15:25:28 +0300 (Wed, 29 Dec 2010) | 16 lines

Add kernel side support for BIO_DELETE/TRIM on UFS.

The FS_TRIM fs flag indicates that administrator requested issuing of
TRIM commands for the volume. UFS will only send the command to disk
if the disk reports GEOM::candelete attribute.

Since disk queue is reordered, data block is marked as free in the bitmap
only after TRIM command completed. Due to need to sleep waiting for
i/o to finish, TRIM bio_done routine schedules taskqueue to set the
bitmap bit.

Based on the patch by:  mckusick
Reviewed by:    mckusick, pjd
Tested by:      pho
MFC after:      1 month

В данном примере, если правильно понял, если стоит флаг трим и трям, то битовые операции проводить в снимке системы.

Там еще всякое.

Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру