LINUX.ORG.RU

Деградация zfs, btrfs при заполнении диска

 ,


5

6

Не так давно я перевёл свою домашнюю файлопомойку (1x1TB, 2x500GB) на zfs. Дисков мало, все они разные, поэтому никакого рейда — просто критические данные лежат на подтоме, для которого включено дублирование данных.

Сначала всё было хорошо. Потом ввод-вывод стал дико тормозить. А потом я наткнулся на статью, в которой красочно рассказано, как расп-дорашивает zfs от случайных перезаписей, если забить её данными хотя бы наполовину. А у меня из 1.8T занято 1.5T, и, видимо, так дальше жить нельзя.

Отсюда три вопроса:

  1. что делать (помимо того, что «вдоль» и «докупать больше дисков»)?
  2. как будут обстоять дела в подобных ситуациях у btrfs?
  3. какие ещё есть ФС из «комбайнов» со снапшотами, подтомами, компрессией и так далее?

Update #1. Нагрузка на ФС — торренты и sqlite-овая БД размером в один гигабайт. Тормоза наблюдаются с последней.

Update #2. После того, как я сделал synchronous = 0; для sqlite-овой БД, всё стало сильно лучше. Вопрос «какого хрена?» всё ещё в силе, т. к. intent log имеется.

★★★★★

Последнее исправление: intelfx (всего исправлений: 4)

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

такого скрипта нет

У тебя, наверное, нет. Я набросал PoC за минуту.

И лично меня он не спасёт, я говноедством не занимаюсь.

Ню-ню.

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

И что ? Чем твой рабочий raid5 будет отличаться от деградированного raid6 без одного hdd, который, по сути, будет ровно таким же raid5 ?

Скоростью работы не в пользу degraded raid6.

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

У btrfs можно, у zfs нельзя. Весь тред об этом :)

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Я набросал PoC за минуту.

Не сомневаюсь. Начинай тестировать на всех возможных конфигурациях и кейсах, коммить в btrfs-tools.

Ню-ню.

Пользоваться системным говнософтом - себя не уважать и фактически обманывать заказчика, если таковые есть. Наш общий друх Ерзент типа весь Питер btrfs покрыл в три слоя и работу теперь найти не может :)

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

Начинай тестировать на всех возможных конфигурациях и кейсах

Ты когда-нибудь слышал слово «абстракция»?

говнософтом

Я вижу, у тебя это религиозное. Не смею больше шатать твоё мировоззрение. Только сделай милость, уберись из треда.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Ты когда-нибудь слышал слово «абстракция»?

В данном случае абстракция выражена исключительно как твоё абстрагирование от основного назначения ФС и СХД.

Я вижу, у тебя это религиозное.

Ты правда странный. Видимо это такая характерная черта у «игрунов в линукс».

Только сделай милость, уберись из треда.

Да заигнорь ты меня и дело с концом если глаз режет, только свои ценные советы о том, что мне делать оставь при себе.

King_Carlo ★★★★★
()

У меня есть пара вопросов по рейду. За счет чего денрадированный лун raid6 на оставшихся трех дисках будет медленнее не деградированного raid5 на трех дисках? По мне быстрее будет raid6 на 4 дисках, за счет количества шпинделей, без hotspare, чем raid5 на трех, но зато с простаивающим hotspare. А какое количество дисков в горячем резерве интерпрайзно? По чему 0 это не интерпрайзный массив, а один сразу интерпрайзно? Интепрайзно это на полочке рядом и мониторинг 24×7.

Viper
()
Последнее исправление: Viper (всего исправлений: 1)
Ответ на: комментарий от King_Carlo

Без одного диска degraded raid-6 медленнее живого raid-5.

raid-6 медленнее сам по себе. Отсутствующий hdd у деградированного RAID скорость работы практически не замедляет, так как нет причины для этого. Считаются все те же самые данные, просто что-то не пишется. При чтении да, требуется восстановление по контрольной сумме для большинства операций, но это быстро всё.

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

С такой, что degraded будет при каждом обращении делать то же, что и при ребилде.

Да ладно ? Кто тебе такую чушь сказал ? :-)

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

И что ? Чем твой рабочий raid5 будет отличаться от деградированного
raid6 без одного hdd, который, по сути, будет ровно таким же raid5 ?

? Скоростью работы не в пользу degraded raid6.

Только за счёт расчёта второй контрольной суммы, которую некуда писать. Тут да, чуть медленнее на запись. Считаться-то она всё равно будет, это да. Но мы-то там про хот спайр. Один хрен тормозить систему и менять hdd, есть нет host swap.

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

http://www.tomshardware.com/reviews/adaptec-serial-controllers,1806-10.html

Либо криворукие программисты BIOS писали, либо тест на говне с недостаточной скоростью процессора у контроллера. Или объясни логику падения скорости.

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

Наверное падение скорости есть при чтении, так как уменьшается количество шпинделей одновременно с которых можно считывать данные. При записи скорость вроде не должна падать. Hot spare не всегда нужно бездумно использовать везде и он не является не отьемлемой часть RAID5/6, иногда лучше в ЧНН проработать без диска, вместо запуска ребилдинга, а вот ночью автоматически ребилдинг и запустить. Поэтому когда нет функциональности автоматической замены hdd, ни чего в этом страшного нет и raid остаётся рейдом, так как есть крон, есть знания для написания скриптов и есть мониторинг, этого достаточно для реализации нужного алгоритма замены. Но я предпочитаю заменить RAID5 с простаивающим в горячем резерве диском шестым рейдом без hot spare, так как в этом случае скорость работы массива у меня увеличивается.

Viper
()
Последнее исправление: Viper (всего исправлений: 1)
Ответ на: комментарий от AS

Либо криворукие программисты BIOS писали, либо тест на говне с недостаточной скоростью процессора у контроллера. Или объясни логику падения скорости.

Либо кому-то нужно обратиться в гугель за разъяснениями.

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

По мне быстрее будет raid6 на 4 дисках, за счет количества шпинделей

Линейная скорость мало где интересна. raid6 на 4х дисках тоже то ещё явление.

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

в рашке скорее директора купят себе новые кресла в машину, чем нормальное кол-во дисков и ресурсов. Я недавно был в конторе одной крупной строительной, где со смеху упасть можно было, когда cкд за час ломалась 4 раза, а про глюки их баз 1С и персонала вообще говорить можно долго. И всё потому, что у нас они будут в 3 домах тсж делать подвалы, а у нас крышу ремонтировать. Они у нас уже делали работу, и хорошо, но вот IT у них ужас. И директоров это устраивает, устраивает даже то, что у них человек вынужден бежать к секретарю, потому что только у секретаря и ещё кого-то телефон работает. поэтому для многих raid6 это сказка ещё. многие конторы вообще на fake рейде сидят на дисках разного размера.

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

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

Нет. Количество шпинделей ровно то же самое. С одних считываются данные, с других - контрольные суммы для расчёта потерянных данных. Шпинделей, даже, меньше, по объективным причинам.

иногда лучше в ЧНН проработать без диска, вместо запуска ребилдинга

Всегда, если нужна скорость, а не сохранность данных.

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

Либо кому-то нужно обратиться в гугель за разъяснениями.

Ну разъясни мне. Я тебя очень прошу. Обещаю, я поугараю потом без перехода на личности. Под подушкой, для себя. :-)

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

иногда лучше в ЧНН проработать без диска, вместо запуска ребилдинга

Всегда, если нужна скорость, а не сохранность данных.

Что в итоге и есть моё иногда, без уточнения, что нужно.

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

С одних считываются данные, с других - контрольные суммы

В raid-6 (как и в raid-5) нет выделенных дисков для хранения контрольных сумм, они равномерно размазаны по всему массиву.

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

В raid-6 (как и в raid-5) нет выделенных дисков для хранения контрольных сумм,

Я в курсе. Что это меняет во фразе «С одних считываются данные, с других - контрольные суммы» ?

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

Что это меняет во фразе «С одних считываются данные, с других - контрольные суммы» ?

Ничего не меняет, всего лишь делает эту фразу бессмысленной.

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

всего лишь делает эту фразу бессмысленной.

Отнюдь. Она вполне осмысленна для каждого конкретного блока данных, размазанного по дискам RAID.

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

При выпадении 1 диска из raid6 на N дисках, каждый (N-2)ой блок надо восстанавливать xor'ом N-1 имеющихся блоков. Сколько это микросекунд на проце контроллера? сколько данных можно прочитать за эти микросекунды? Плюс к этому, вылет одного шпинделя это сразу проседание в 100/N %.

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

Она вполне осмысленна для каждого конкретного блока данных, размазанного по дискам RAID.

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

King_Carlo ★★★★★
()
Последнее исправление: King_Carlo (всего исправлений: 1)
Ответ на: комментарий от King_Carlo

нет никакого смысла рассматривать конкретный блок данных.

Перечитай исходное сообщение от Viper. Там предположение о том, что уменьшение количества шпинделей из-за выхода из строя одного hdd ухудшает показатели по размазыванию операции чтения. Но этого не происходит, так как размазывание происходит только для N шпинделей. Те, которые +1 (raid5) и +2 (raid6) роли тут не играют.

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

При выпадении 1 диска из raid6 на N дисках, каждый (N-2)ой блок надо
восстанавливать xor'ом N-1 имеющихся блоков. Сколько это микросекунд
на проце контроллера? сколько данных можно прочитать за эти микросекунды?

А при чём тут операции чтения/записи ? Тут мы банально упираемся в недостаточную производительность процессора контроллера. Это вот если бы чтение/запись были соизмеримо быстрыми операциями, вести речь о лишних расчётах имело бы смысл. Но ситуация иная, читать/писать долго. Нормальный процессор должен успеть всё обсчитать между операциями чтения блоков, некоторая задержка должна возникать только при чтении одного блока, первого в группе.

Плюс к этому, вылет одного шпинделя это сразу проседание в 100/N %.

С чего бы это ?

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

Что ты из себя девственницу строишь?

«Причем», «если бы», «процессор должен успеть », «С чего бы это ? »

Welcome to the real World ... Karl

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

Ответ на все времена. Спасибо, К.О.

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

Те, которые +1 (raid5) и +2 (raid6) роли тут не играют.

Как так роли не играют? Живой, например raid-5, на N дисках читает данные параллельно с N дисков. Тот же raid-5 в degraded mode читает живые данные с (N-1) дисков + c этих же (N-1) читает области контрольных сумм и восстанавливает потерянные данные.

King_Carlo ★★★★★
()
Последнее исправление: King_Carlo (всего исправлений: 1)
Ответ на: комментарий от King_Carlo

Как так роли не играют ?

А вот так.

Живой, например raid-5, на N дисках читает данные параллельно
с N дисков. Тот же raid-5 в degraded mode читает живые данные
с (N-1) дисков

И что ? Ускорение за счёт распараллеливания продразумевает получение блока данных с некотрого количества шпинделей _одновременно_. В случае RAID5 это чтение происходит одновременно хоть с N (в деградированном режиме), хоть с N+1 (в рабочем). Дополнительные шпиндели у raid5/6 не обеспечивают никакого ускорения для считывания блока.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от King_Carlo

Ну как что? Читаем параллельно с N дисков или с (N-1) дисков. Есть разница?

Ты прочитал, что я дальше написал ? Ответь на вопрос: каким образом дополнительный шпиндель с чётностью влияет на распараллеливание ? От этого шпинделя ни холодно, ни жарко в плане распараллеливания.

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

Ответь на вопрос: каким образом дополнительный шпиндель с чётностью влияет на распараллеливание ?

Нет отдельного шпинделя с чётностью.

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

Ты конченный тупица. Остановись. Посмотри картинки в интернете

Ты сам посмотри лучше. И смотри до полного въежания в процесс. Потом - утрись.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от King_Carlo

Нет отдельного шпинделя с чётностью.

Есть. я тебе уже писал, что речь об одном блоке данных. На N - данные, на N+1 - чётность. То, что у следующего блока чётность смещается на другой шпиндель, не имеет значения в плане рассматриваемого вопроса (распараллеливания чтения).

Итак. Ответь на вопрос: каким образом дополнительный шпиндель с чётностью влияет на распараллеливание ?

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от AS

raid5

d1 d2 d3 d4 d5
---------------
01 02 03 04 p1
06 07 08 p1 05

Блоки 01, 02, 03, 04, 05 будут считаны параллельно с 5-ти шпинделей

Доступно? Осознал свою ущербность?

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

Доступно? Осознал свою ущербность?

Доступно. Твою - осознал. Так как правильно вот так:

d1 d2 d3 d4 d5
---------------
01 02 03 04 p1
05 06 07 p1 08

Блоки 01, 02, 03, 04, 05 будут считаны параллельно с 5-ти шпинделей

Твой блок 05 относится ко второму блоку данных. Он не нужен вместе с 01, 02, 03, 04, он, если в твоём ущербном описании смотреть, нужен вместе с 06 07 08. Вот ты осознал теперь ?

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

Кто тебе дебилу сказал что блоки именно так располагаются ?

Знания, что такое RAID. А вот кто тебе рассказал тот бред, что у тебя в голове, это надо поискать. Вообще, совсем правильно было бы нарисовать так:

d1 d2 d3 d4 d5
---------------
A1 A2 A3 A4 Ap
B1 B2 B3 Bp B4
В общем, иди и изучай предмет.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от AS

Ты все еще не понимаешь что чтение не идет в режиме прочитали первую группу, уснули, прочитали вторую группу, уснули

Программа читает файл: дай блоки 1,2,3,4,5,6, .... ###

Блоки размазаны по 5 (в данном случае) шпинделям и читаются сразу с 5-ти дисков, убери 1 диск и скорость снизится на 20% + добавятся задержки на пересчет сумм.

Если это надо разжевывать, то все, дебил, давай до свиданья!

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

Программа читает файл: дай блоки 1,2,3,4,5,6, .... ###

То есть, ты считаешь, что твой блок 05 имеет смысл сам по себе, и может быть использован без 06 07 08 ? Ты себе представляешь тогда процесс чтения с такого RAID в деградированном режиме ? Если у тебя откажет d5, то для получения блока 05 тебе потребуются 06 07 08 p1/d4. Потому процес идёт по блокам A, B, C, D, ...

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 2)
Ответ на: комментарий от AS

Ага, до тебя начинает доходить. При деградированном рейде будет задержка с выдачей данных, данные 6,7,8,р1/d4 хоть и будут считаны одновременно, но потребуется еще и xor и только потом выдать данные в нужном порядке.

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

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

Я понял о чём ты. Это не более чем теоретические изыскания последовательности сферического чтения одного блока в вакууме :)
Любой raid-контроллер, да и soft-raid тоже активно использует группировку и внеочередное выполнение команд, читает со всех шпинделей одновременно.

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

Ага, до тебя начинает доходить.

Теперь расскажи, зачем нужен кусок блока B, когда читается блок A ? В заначку, чтобы потом остатки B дочитать отдельно ? А смысл ?

Налицо деградация производительности из-за меньшего кол-ва шпинделей

Ну это надо не знаю кем быть, чтобы таую логику работы RAID придумать.

и задержек на обработку.

Это - единственный очевидный момент. Но это целиком от процессора контроллера зависит, как я писал раньше.

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