The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Не работает TRIM на SSD с ext 4 c выключенным журналом, !*! Adblog, 28-Апр-13, 19:58  [смотреть все]
Делал следующее:

tune2fs -O ^has_journal /dev/sda1

В /etc/fstab :

UUID=e16fe214-ee19-49c0-8e5a-041e67eed0de /               ext4    noatime,nodiratime,discard,errors=remount-ro,commit=60 0       1

Затем проверяю:

1. dd if=/dev/urandom of=tempfile count=10 bs=512k oflag=direct //запись 5Мб рандомных данных

2. hdparm --fibmap tempfile //Ищем любой стартовый LBA адрес у файла

3. hdparm --read-sector [ADDRESS] /dev/sda //Читаем данные со стартового LBA адреса файла, замените [ADDRESS] на свой Starting LBA address из вывода предыдущей команды

4. rm tempfile //Теперь удалим временный файл и синхронизируем ФС:
5. sync

Повторяем пункт 3 — и смотрим на вывод консоли.

Получаю стабильно НЕ нули!!! Что я делаю не так и как мне таки включить TRIM?

  • Не работает TRIM на SSD с ext 4 c выключенным журналом, !*! aurved, 23:57 , 28-Апр-13 (1)
    могут быть и не нули а единицы (ffff)
    бывает еще что "обнуление" происходит не сразу, а позже.
    • Не работает TRIM на SSD с ext 4 c выключенным журналом, !*! Adblog, 08:31 , 29-Апр-13 (2)
      > могут быть и не нули а единицы (ffff)
      > бывает еще что "обнуление" происходит не сразу, а позже.

      Нет там не ffff, а совершенно произвольные данные, ждал 20 минут, ничего не изменилось.

      ЗЫ О проблеме в гугле находится куча результатов, что она есть, но не одного решения ((

      • Не работает TRIM на SSD с ext 4 c выключенным журналом, !*! pavlinux, 10:37 , 29-Апр-13 (3)
        >> могут быть и не нули а единицы (ffff)
        >> бывает еще что "обнуление" происходит не сразу, а позже.
        > Нет там не ffff, а совершенно произвольные данные, ждал 20 минут, ничего
        > не изменилось.

        Не должно там быть ни нулей, ни единиц.  
        ---


        $ shred -uz tempfile
        $ hdparm --read-sector  6700559 /dev/sda

        /dev/sda:
        reading sector 6700559: succeeded
        0000 0000 0000 0000 0000 0000 0000 0000
        0000 0000 0000 0000 0000 0000 0000 0000
        0000 0000 0000 0000 0000 0000 0000 0000
        0000 0000 0000 0000 0000 0000 0000 0000
        0000 0000 0000 0000 0000 0000 0000 0000
        0000 0000 0000 0000 0000 0000 0000 0000
        0000 0000 0000 0000 0000 0000 0000 0000


        ---
        > ЗЫ О проблеме в гугле находится куча результатов, что она есть, но не одного решения ((

        Проблему создали идиоты, не понимающие принципов работы файловых систем.


        Решение: alias rmz=`shred -uz`;  

        • Не работает TRIM на SSD с ext 4 c выключенным журналом, !*! aurved, 15:32 , 29-Апр-13 (4)
          у меня при включенном discard на ext4, после удаления файла вот что получается:

          hdparm --read-sector 251971584 /dev/sda

          /dev/sda:
          reading sector 251971584: succeeded
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff
          ffff ffff ffff ffff ffff ffff ffff ffff

          Диск OCZ Vertex 4

        • Не работает TRIM на SSD с ext 4 c выключенным журналом, !*! Adblog, 20:33 , 29-Апр-13 (5)
          > $ shred -uz tempfile

          Я не могу удалять файлы на SSD исключительно этой командой, надо чтобы TRIM работал на все операции.

          > Проблему создали идиоты, не понимающие принципов работы файловых систем.

          иду особенностей методов удаления, обычно применяемых в файловых системах, накопители «не знают», какие сектора/страницы действительно используются, а какие могут считаться незанятыми. Операции удаления обычно ограничиваются пометкой блоков данных как «неиспользуемых» в файловой системе. В отличие от, например, операции перезаписи, удаление не приведёт к физической записи в затрагиваемые сектора, содержащие данные. Поскольку накопитель не имеет доступа к структурам файловой системы — таким как список неиспользуемых кластеров — накопитель остаётся в неведении об освобождении блоков. Хотя это часто позволяло восстановить удалённые данные на традиционных HDD, несмотря на то, что они были отмечены как «удалённые» операционной системой, так же это означало, что когда позже операционная система произведёт операцию записи в один из секторов, считающихся свободным местом, эта операция будет считаться операцией перезаписи с точки зрения накопителя. Для традиционных жёстких дисков эта операция никак не отличается от записи в незанятый сектор, но из-за того, как на низком уровне функционируют SSD, перезапись данных существенно отличается от записи в незанятый сектор, потенциально ухудшая производительность дальнейших операций записи.
          SSD хранят данные в ячейках флеш-памяти, сгруппированных (в MLC SSD) в «страницы» (обычно по 4 Кбайт каждая), которые, в свою очередь, сгруппированы в блоки (обычно 128 страниц или 512 Кбайт суммарно) Ячейки NAND-флеш-памяти могут быть непосредственно записаны лишь в том случае, когда они чисты. В случае, когда они хранят данные, содержимое ячеек должно быть очищено, прежде чем в них будут записаны новые данные. В SSD накопителях операция записи может быть проделана только для страниц, однако из-за аппаратных ограничений команда удаления всегда выполняется на весь блок. В результате, запись на SSD-носитель выполняется очень быстро до тех пор, пока существуют чистые страницы, но значительно замедляется, если необходимо очищать предварительно записанные страницы. Так как очистка ячеек в странице необходима перед тем, как в них можно будет записывать снова, но только целый блок может быть очищен, процесс перезаписи инициирует цикл чтение-очистка-модификация-запись: содержимое целого блока должно быть сохранено в кеше перед тем, как оно может быть удалено с накопителя, перезаписываемые данные модифицируются в кеше и только после этого целый блок (с обновленной страницей) записывается на накопитель. Это явление известно как усиление записи (англ.).
          В своих SSD-контроллерах производители используют различные техники для оптимального распределения операций записи по всему флеш-накопителю. Это делается не только для того, чтобы оптимизировать скорость путем минимизации усиления записи, но также для увеличения продолжительности жизни флеш-ячеек, так как обычные MLC-флеш-ячейки выдерживают 3000-5000 циклов записи. Другой подход заключается в том, чтобы использовать лишнюю память, не задекларированную операционной системе, для предоставления чистых страниц для операций записи как можно дольше перед тем, как начать перезаписывать другие страницы.
          Эффективность этих методов по большей части зависит от обмена информацией между ОС и контроллером SSD о том, какие страницы могут считаться занятыми, а какие — свободными. Традиционно большинство ОС не информируют накопители об удаленных секторах/страницах, что препятствует контроллерам SSD оптимально распределять свободное пространство. Команда TRIM была введена чтобы исправить это, очищая неиспользуемые ячейки до того, как в них будет произведена запись, таким образом уменьшая время доступа.

          discard/nodiscard
          Controls whether ext4 should issue discard/TRIM commands to the underlying block device when blocks are freed. This is useful for SSD devices and sparse/thinly-provisioned LUNs, but it is off by default until sufficient testing has been done.

          Что в этом понимании неправильного?

          > Решение: alias rmz=`shred -uz`;

          см. выше надо чтобы любое удаление вызывало трим, а не только когда удаляем через shred. так можно просто fstrim руками запускать




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

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