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)
Ответ на: комментарий от AS

В заначку, чтобы потом остатки B дочитать отдельно ? А смысл ?

Очередь запросов у диска? Не, не слышали. Readahead? Не, не слышали. Оптимизация и быстродействие? Не, не слышали.

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

Это не более чем теоретические изыскания последовательности
сферического чтения одного блока в вакууме :)

С одной стороны да, но, с другой, каков смысл делать иначе ?

читает со всех шпинделей одновременно.

Смысл так читать есть только при условии реализации независимости отдельных чанков, как анонимус предложил.

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

Очередь запросов у диска? Не, не слышали. Readahead? Не, не
слышали. Оптимизация и быстродействие? Не, не слышали.

Не, не слышали. В приложении к обсуждаемой проблеме - точно «не». Смысл какой ?

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

Смысл так читать есть только при условии реализации независимости отдельных чанков

Так работают, как я уже говорил выше, все вменяемые контроллеры. Я тебе ссылку выше кидал на тест контроллеров в raid-6, падение скорости там связано не с «кривым bios» и «слабым процессором», а с отсутствием шпинделя в degraded mode и, в меньшей мере, с необходимостью производить дополнительные расчёты.

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

Так работают, как я уже говорил выше, все вменяемые контроллеры.

Давай так

d1 d2 d3 d4 d5
---------------
A1 A2 A3 A4 Ap    - time1
B1 B2 B3 Bp B4    - time2
C1 C2 Cp C3 C4    - time3
D1 Dp D2 D3 D4    - time4
Ep E1 E2 E3 E4    - time5
Допустим, мы можем считать один чанк чужого страйпа. Вроде бы, мы что-то выигрываем. Но доступ к этим данным мы получаем только прочитав остальные три чанка страйпа. При расположении нужных данных в двух страйпах, как ни крути, мы вынуждены затратить time1+time2. Единственное, где мы тут можем получить выигрыш, это если данные расположены в пяти страйпах. Тогда мы можем попробовать чанки страйпа E считать за время чтения страйпов A, B, C и D. У mdadm, говорят, чанк по-умолчанию 512К. Соответственно, в описанном варианте говорить о выигрыше в чтении можно только для блока свыше 8 мегабайт (9-ый мегабайт пойдёт в страйп E как раз). Не находишь, что это заметный такой оверхед для большого количества ситуаций ?

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

Вапщета есть некоторые оптимизации

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

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

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

У mdadm, говорят, чанк по-умолчанию 512К.

Глянул, действительно в современном mdadm чанк, по-умолчанию, 512К, раньше был 8К. Как время летит.

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

Даже при описанном тобою раскладе это будет работать, сейчас время повальной контейнеризации (в контексте ФС) всего и вся, большие блоки скорее правило, чем исключение.

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

Когда это он 8к был, я помню 64к.

А может я вру и было 64К.

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


d1 d2 d3 d4 d5
---------------
A1 A2 A3 A4 Ap    - time1
B1 B2 B3 Bp B4    - time2
C1 C2 Cp C3 C4    - time3
D1 Dp D2 D3 D4    - time4
Ep E1 E2 E3 E4    - time5


Если бы я программировал raid5, я бы данные так не размещал, так как можно оптимизировать использование дисков и при параллельном чтении задействовать все пять шпинделей, сделал бы что-то подобное этому:

d1 d2 d3 d4 d5
---------------
A1 A2 A3 A4 Ap    - time1 (A1, A2, A3, A4, B1)
B2 B3 B4 Bp B1    - time2 (B2, B3, B4, C1, C2)
C3 C4 Cp C1 C2    - time3 (C3, C4, D1, D2, D3)
D4 Dp D1 D2 D3    - time4 (D4, E1, E2, E3, E4)
Ep E1 E2 E3 E4    - time5 (не нужен, ускорение на 20%, если нет деградации)

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

так как можно оптимизировать использование дисков

Я, вообще-то, написал про этот вариант, но и про проблему: объём запрашиваемых данных должен превышать N*N*ChankSize, иначе это молочение головками одного шпинделя в пустую.

я бы данные так не размещал

Это не сильно важно:

d1 d2 d3 d4 d5
---------------
A1 A2 A3 A4 Ap    - time1 (A1, A2, A3, A4, E4)
B1 B2 B3 Bp B4    - time2 (B1, B2, B3, B4, E3)
C1 C2 Cp C3 C4    - time3 (C1, C2, C3, C4, E2)
D1 Dp D2 D3 D4    - time4 (D1, D2, D3, D4, E1)
Ep E1 E2 E3 E4    - time5 E уже получен
В твоём варианте расход памяти поменьше, на первый взгляд, но не факт, что удобнее с ней работать.

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

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

Это всё - ровно то же самое количество шпинделей. Вот вычислять - это да.

в той ссылке обратил внимание что тестили иопс а не мб/с?

Вообще-то не очень. Если вести речь про чтение/запись объёмом меньше страйпа, некоторая просадка на чтении должна быть, но зависящая от производительности процессора. И, если она достаточна, пересчёт должен занимать существенно меньше времени. По ссылке же ад какой-то.

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

Если мне нужны данные из одного чанка и этот чанк на выпавшем диске, то прочитать мне надо N-1 чанков, и так в M потоков. Что будет с производительностью? Всё еще шлангом прикидываешься?

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

Если мне нужны данные из одного чанка и этот чанк на
выпавшем диске, то прочитать мне надо N-1 чанков

Если тебе нужны данные из одного чанка, читать бы будешь, всё равно, весь страйп. Всегда. Просто либо все чанки, либо N-1+чётность. Количество операций чтения _никак_ не поменяется.

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

Схерали? Или ты про кривой софт/bios?

Я про RAID. :-)

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

Если тебе нужны данные из одного чанка, читать бы будешь, всё равно, весь страйп. Всегда. Просто либо все чанки, либо N-1+чётность. Количество операций чтения _никак_ не поменяется.

ты ваще не понимаешь чтоль как рейд работает???
накуя ему читать все An блоки в случае нормальной работы?
это при записи/изменении например блока A2 он перечитает/перезапишет все An + четность
учи матчасть

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

Ну разъясни мне.

Серьёзно штоле? Я подозревал, но что бы такие базовые вещи объяснять...

Обещаю, я поугараю потом без перехода на личности

Ну как, ничего не надорвал? А то я смотрю ты всё ещё пыжишься, несмотря на то, что тебе тут помимо меня ещё три человека намекнули.

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

Ну как, ничего не надорвал ?

Нет.

что тебе тут помимо меня ещё три человека намекнули.

И на что они намекнули ? Перечитай. Некоторые, вон, вообще, с отдельными чанками работают, оказывается.

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

поделил на 4, всё равно байка выходит.

поэтому для многих raid6 это сказка ещё

что поэтому? ладно зеркало в пример или 10ку, но 6 тут причём..

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

не дели на 4, я вот 3 дня объяснял директорам сидящим на макбуках, что для офиса в 200 человек микротика за 20 шт не хватит, и уж тем более при удалёнщиках и vpn. Бессмысленно.У кучи контор, причём самое смешное торговых более чем 20 магазинов, сервера это amd fx+2 диска. Я ещё в 2014 отказался там работать, сейчас болтал с их админом недавно уволившимся, там до сих пор в качестве серверов 3 компа с FX и 2 дисками в зеркале))) Их вакансия висит круглый год, и руководство всё ищет магистра магии, который заставит mssql+1С работать нормально на wd purple 4 TB... который в 1 рейде сделанном на десктопной материнке асус))) и у них на этом 20 магазинов.

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

зато у этих директоров: дома в 3+ этажа, галенвагены, отдых в Ницце и пр. плюшки красивой жизни, а ты все работу ищешь... и время тратишь на лоре рассказывая всем какой ты «крутой специалист».

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

дома в 3+ этажа, галенвагены, отдых в Ницце и пр. плюшки красивой жизни

Ты забыл рассказать, что в этом всём нужного.

vurdalak ★★★★★
()

как будут обстоять дела в подобных ситуациях у btrfs?

Вот так будут обстоять:

https://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg51100.html

«помощь» от разработчиков проходит по стандартному сценарию. Сначала пускаут пыль в глаза, ну а если быть понастойчивее, то дело оканчивается вот этим:

https://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg51104.html

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

Ещё один упырь, который считает, что ему все должны оказывать бесплатную техподдержку.

А баг буду иметь в виду.

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

Ещё один упырь, который считает, что ему все должны оказывать бесплатную техподдержку.

LOL. А куда деньги-то переводить? На какой счет? Чтобы тебе после этого сказали то же самое.

А баг буду иметь в виду.

Это они так называют «баг». Баг - это то, что внезапно обнаружили, и знают, как исправить :)

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

это ты у этих директоров спроси, раз имеют значит им нужно.

просто высеры этого «специалиста» в адрес людей, зарабатывающих в час больше чем он за месяц, глупы.

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

раз имеют значит им нужно

Отличная логика.

просто высеры этого «специалиста» в адрес людей, зарабатывающих в час больше чем он за месяц, глупы.

Не оправдываю эрзента, но мерять специалистов по заработку глупо. Гугл вот дохреналиарды зарабатывает, а все их продукты кроме поисковика жуткое говнище (особенно код).

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

Отличная логика

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

мерять специалистов по заработку глупо

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

Гугл вот дохреналиарды зарабатывает, а все их продукты кроме поисковика жуткое говнище (особенно код).

сделай свое не говнище и продавай, что мешает?

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

А теперь убери один диск из чтения, полочишь скорость на один шпиндель меньше. Вот и падает производительность.

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

А теперь убери один диск из чтения, полочишь скорость на один шпиндель меньше.

Ты, наверне, пропустил формулу «DataSize > N*N*ChankSize», которая описывает минимальный размер блока данных, когда это работает ?

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

платят столько сколько ты стоишь.

Да. Но как это коррелирует со специальностью? Стоимость зависит от востребованности, а не от того насколько ты крут.

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

Почему бы нет что? Чел богат, это всё замечательно, но это никак его не характеризует.

сделай свое не говнище и продавай, что мешает?

То, что мне это не нужно? Представь, не каждый ставит целью иметь побольше денег.

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

Хорошая попытка, хромоног, но мне моя память ещё нужна. А с учётом того, какие эпичные баги там находятся, ну нафиг. Я недалее чем вчера словил, что созданной из скрипта картинке ставится инлайн стиль position:relative просто так, без объявления войны. Вот как с таким жить?

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

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

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

И на что они намекнули ?

На пробелы в твоём образовании

Перечитай

Перечитай как работают райды, ага

N*N*ChankSize

ггг

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

Если не сравнивать с другими браузерами, проблемы нет. Но никто другой больше гига (и это только на сотнях вкладок) не съедает.

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

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

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

Аптайм день, лиса съела 553 метра. Лично видел 800 метров, но воспроизвести специально вряд ли смогу. больше не видел.

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

Ты забыл рассказать, что в этом всём нужного.

Нравится жить в коробке и питаться дошираками не выезжая со двора?

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

Из крайности в крайность.

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

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

ну если ты на ней запускал 1 вкладку, то может быть, а если например смотреть ютуб, попутно загружая ещё 5-6 видео в вк, вкладку с jira и вкладкой банка, то хром куда меньше жрёт чем лиса.

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

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

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

Приложениям было отдано немного, ~1 ГиБ вместе с системой. Но это уже история, я свалил на btrfs из-за фрагментации и последние полтреда архитекторы энтерпрайзных систем хранения данных наперебой доказывают мне, как именно и насколько я не прав =)

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

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

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

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

Я так и сказал — есть те, для кого роскошь это просто комфорт. Но зачем на них равняться? Это просто особенность характера, а не достижение.

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