nikolay
Dmitry
Δαρθ
Dmitry
Для 4k диска это запись в один сектор, для 512 это в 8 секторов. На сколько это разница во времени?
Я не силен во внутренностях дисков.
central
nikolay
с помощью hdparm тоже можно
Δαρθ
George
Dmitry
Их еще не купили, не на чем провести тесты
Dmitry
И нет свободных, чтобы проверить
Autumn
Dmitry
Dmitry
Платформа боевая и критичная, потестить не удастся.
Но что нить придумаю.
nikolay
И так стоит ashift=12
повторюсь, если опасаетесь что будут проблемы выставьте для новых дисков размер сектора = 4 кб принудительно.
George
George
Autumn
512е диски при чтении физически считывают 4к сектор, затем бьют его на куски по 512 и отдают ОС нужный кусок. На скорость чтения никак такая процедура не влияет, т.е. все решается современными буферами в 128-256МБ.
Autumn
При записи 512е диск считает 4к целиком, разобьет на 8х512(исправил), выберет те 512 которые уже записаны (например если записано 2 блока по 512 то их он и выберет), допишет к ним новые 512 (допустим мы хотим записать еще 2 блока по 512), сформирует новый блок 4к и зафигачит все на винт.
Autumn
Мне мыслится, если указать ашифт=12 для 512е диска, то он будет читать и писать блоками по 4к, как будто это был бы нативный диск 4к, просто в промежутке он возможно будет блок 4к бить на 4х512, а потом собирать и разбирать его. Но т.к. мы ему будем подавать куски по 4к, то процедура чтения и записи(где он там бьет 4 на 8х512(исправил) и дописывает куски в 512) будет упрощена до банального - разбили/собрали так и записали.
nikolay
Autumn
Так что никаких потерь в производительности быть не должно, я по крайней мере не видел.
nikolay
дикий перерасход места, и от этого как раз спасает принудительное выставление размера сектора в 4к и zvol block size больше дефолтового, например в 16кб или в 32 кб
nikolay
что безусловно может повлиять на перформанс
nikolay
Autumn
Autumn
Autumn
nikolay
и в raidz2 например таких блоков по 4к будет выделено 3 штуки
nikolay
George
George
мы ща всё в кашу смешаем)
George
для мирроров hdd хорошая практика - всегда ставить ashift=12
George
а для ssd - 13, уж слишком часто они врут
Autumn
оттуда, что при условной записи блочка в 512байт будет выделяться 4к сектор
да, но писаться частично, это заложено в логике работы таких дисков, это не моя задумка, я читал это в доке толи у ХП то ли у Делл - он берет 4к блок, бьет на куски по 512, считывает уже записанные куски, к ним дописывает новые куски по 512 либо пока блок 4к не закончится, либо пока куски не закончатся, формирует новый блок 4к и физически пишет на диск.
nikolay
у топикстартера мирроры
видимо пропустил.. но насчет практики - ashift=12 также норм для raidz, при условии выполнения некоторых условий. причем в случае dataset с дефолтовым record size=128к это вообще не влияет, при использовании zvol нужно просто поменять vol block size на больший.
George
Autumn
Так что и чтение и запись все равно физически идет блоками по 4к до полного заполнения блока, потери будут только если мы не заполним блок 4к целиком, но это будет точно так же и при нативном 4к диске - если нам надо записать 10к на диск, то и на диске 512е и 4к он займет 2 блока по 4к + половина блока 4к, т.е. потери будут идентичными
George
уже обсуждался вопрос увеличения дефолтного volblocksize кстати, думаю продавим
George
до 16ти
nikolay
nikolay
а вообще интересно - zfs же не учитывает внутреннюю логику работы контроллера диска и не может упорядочить каким либо образом уже записанные данные (дефрагментация не поддерживается). есть к чему стремиться. нетапп например умеет процедуру compaction, когда блоки записанные частично могут быть объединены в один 4кб блок. очень полезная фишка для cow fs
Autumn
Т.е. при ашифт=12 зфс будет диску скармливать блоки по 4к, он их будет хавать и так же пихать блоками 4к физически на диск, просто попутно разбирая на 8 блоков по 512 и обратно собирая, и больше ничего не делая, т.к. у него готовый кусок в 4к. Проблема как я писал выше будет лишь с блоками меньше или больше 4к, но только с запись. Импакта на потери дискового пространства или на чтение не будет.
Fedor
А команды скази предусматривают запись не посекторально, а целым куском, чтоб диск сам решил, как ему записывать?
nikolay
nikolay
Autumn
Fedor
Ну внутри то да.
Fedor
Хм. Провести бы тесты, аж интересно стало
nikolay
Autumn
Нашел доку о которой говорил
Autumn
https://i.dell.com/sites/csdocuments/Shared-Content_data-Sheets_Documents/en/512e_4Kn_Disk_Formats_120413.pdf
Autumn
тут подробно описано как работает 512е диск
Fedor
Autumn
Старница 5
Autumn
с картинками в цвете =)
Autumn
Спасибо! Схоронил.
сам почитаю, надо бы освежить память, но вот когда-то я читал ее и для себя сделал вывод - что диски 4к что 512е я в зфс загоняю с ашифт=12
nikolay
Fedor
А кто нибудь не ковырял их емс прям низкоуровнево?
nikolay
nikolay
и то мало вероятно. пример трабла с ssd у hp, cisco и того же dell с ограничением по кол-ву часов наработки, или как оно там правильно называлось
nikolay
Autumn
у делла тоже самое, попытка запихнуть оригинальный сигейт/вд/хитачи в сервак очень плохо сказывается на психике сервера, т.к. он не верно читает то что отдает ему диск
Autumn
nikolay
поставь в такой сервер обычный lsi/broadcom и онбудет хавать все диски без проблем. проверено не раз
Autumn
nikolay
Autumn
т.е. модификация прошивки все же есть, вопрос только в модели диска и глубине модификации, но тут я хз, че они там делают, меняют ли алгоритмы под свои нужды, думаю в каких-то моделях меняют