LINUX.ORG.RU
Ответ на: комментарий от Pinkbyte

Если ты про размещение корня на ZFS - ты прав

Причем здесь корень? Или ты хочешь сказать, что memory-mapped i/o только для отображения сегментов либ в адресное пространство процесса используется? Тогда у меня для тебя плохие новости. Было врeмя, когда memory-mapped i/o давало преимущества в скорости в сравнении с обычным read/write, и было очень популярно прикручивать его везде где ни попадя, так что помимо системы и куча приложений может его испольовать в хвост и в гриву. Так что читать эти ваши интернеты - оно, конечно, полезно, но иногда и голову включать тоже.

Однако, если ты больше знаешь об организации кэша, не затруднит тебя пояснить, почему кэш ZFS отображается как ЗАНЯТАЯ память в Linux(а не как дисковой кэш собственно), что приводит к очень веселым последствиям, если на сервере кроме хранения данных нужно что-то еще требовательное к RAM?

Ну это же элементарно, Ватсон! Достаточно посмотреть, что делают zio_buf_alloc()/zio_data_buf_alloc() и вопрос должен отпасть сам собой.

anonymous
()
Ответ на: комментарий от DALDON

Получилось у меня в онлайн провести замену диска, и расширение. :)

Нашел чему радоваться! Было бы странно, если бы не получилось.

anonymous
()
Ответ на: комментарий от anonymous

Достаточно посмотреть, что делают zio_buf_alloc()/zio_data_buf_alloc() и вопрос должен отпасть сам собой.

Для тех, кто понимает в потрохах ядра - да. Я же честно признаюсь, что исходники ядра и модулей к нему для меня - китайская грамота.

Pinkbyte ★★★★★
()
Ответ на: комментарий от DALDON

Получилось у меня в онлайн провести замену диска, и расширение. :)

У меня не было ни малейших сомнений, что именно так и будет. Проблема ушла?

King_Carlo ★★★★★
() автор топика
Ответ на: комментарий от axelroot

они ее используют по всякому, интересно почему они выбрали ZFS а не бтр

не хотят связываться с изначально ущербным проектом.

anonymous
()
Ответ на: комментарий от King_Carlo

Пока в логах тишина. :) Так что да... Вполне возможно ушла. Но вывод то каков..? Вывод такой, что: (по-крайней мере) zfs, при сбое чтения с диска, начинает чудить, и фризиться, вместо того, чтобы выкинуть сразу из массива сбойный диск. Хотя, у меня сбоило, одновременно, два диска. Ну в общем, как-то так, надо ещё всё же просматривать dmesg иногда.

DALDON ★★★★★
()
Ответ на: комментарий от anonymous

Каких только чудес не увидишь в этих ваших линуксах, был неправ. Тогда, для полноты картины, что ещё за ограничения?

EvgGad_303 ★★★★★
()
Ответ на: комментарий от axelroot

у zfs нет механизма взаимодействия с дисковым тлер, отключать тлер.

У zfs и не должно быть такого механизма, выбрасывать сбойный диск должен контроллер, а zfs просто фиксирует факт, что диск пропал, и тлер тут в помощь как раз, не будет длительных попыток прочитать сбойный сектор.

King_Carlo ★★★★★
() автор топика
Ответ на: комментарий от King_Carlo

выбрасывать сбойный диск должен контроллер

каким образом? zfs хочет прямой доступ к диску в режиме jbod, в этом случае контролер все еще может вмешаться в работу и дать понять zfs что диск мертв? просто проводил опыты - втыкал диски (без тлер) с бедблоками в массив zfs, все работало как и работало, без фризов, диски контроллером не выбрасывались, как и когда zfs должен послать на покой говнодиск для меня загадка. А окончание дисковых транзакций zfs может ждать сколь угодно долго, поэтому и думаю что источником непонятных фризов является именно дисковый tler.

axelroot
()
Ответ на: комментарий от King_Carlo

вот тут NiTr0 поясняет:

если аппаратный рэйд - TLER нужен, если рэйд из JBOD на аппаратном контроллере - могут быть варианты, в зависимости от драйвера/контроллера, в прочих случаях (контроллер как HBA или набортный AHCI/ATA контроллер) - на TLER глубоко пофиг.

axelroot
()
Ответ на: комментарий от DALDON

каким образом? zfs хочет прямой доступ к диску в режиме jbod, в этом случае контролер все еще может вмешаться в работу и дать понять zfs что диск мертв?

На мой взгляд - нет, не может вмешаться, ровном счётом, никак.

DALDON ★★★★★
()
Ответ на: комментарий от DALDON

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

NiTr0 ★★★★★
()
Ответ на: комментарий от DALDON

Короче SSD падал в режим readonly и zpool status -v показывал degraded массив. Никаких зависонов не было.

King_Carlo ★★★★★
() автор топика
Ответ на: комментарий от axelroot

Либо на нём все данные разом пропадают, либо он в ro падает.

King_Carlo ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Если приложение использует mmap, то можно оставить кэш только под метаданные. Но это касается и линукса, так что не легенда, а скорее реальность с исключением.

EvgGad_303 ★★★★★
()
Ответ на: комментарий от EvgGad_303

Если приложение использует mmap, то можно оставить кэш только под метаданные.

Можно-то оно можно, вот только стоит ли? Можно, конечно, использовать блоки размером 4K, чтобы избавиться от необходимости читать блок ФС при записи страницы, но это резко увеличит количество метаданных. В противном случае для записи страницы придется сначала прочитать с диска блок, в который она попадает (ведь в кэше его нет), потом скопировать в него содержимое страницы, и записать новый блок в новое место с новой котрольной суммой, индиректами и т.д., а потом немедленно выкинуть этот новый блок из кэша.

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

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

anonymous
()
Ответ на: комментарий от anonymous

Можно, конечно, использовать блоки размером 4K

Наверное, зависит от паттерна, но можно ведь поднять размер страницы, у некоторых клиентов такой финт работает.

EvgGad_303 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.