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)

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

Загрузка системы быстрее. Листинг больших директорий быстрее. В попытках исправить проблемы производительности btrfs при помощи balance, я достаточно насмотрелся на стектрейсы в dmesg и мертвые зависания системы. Обойдусь как-нибудь без этих ваших compression и subvolumes.

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

Листинг больших директорий быстрее.

Если они не фрагментированы, мухаха.

Обойдусь как-нибудь без этих ваших compression и subvolumes.

Обходись на здоровье. Зачем в тред-то пришёл?

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

Причем тут вообще autojump? За дискуссией не следишь? У меня bash_history периодически обнулялся даже после выкидывания autojump'а.

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

Зачем в тред-то пришёл?

Чтобы посмотреть как ты вопреки здравому смыслу поставишь этот кактус вместо нормальной проверенной ФС.

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

Ты реально не понимаешь, или прикидываешься? Проблема была в занулении файла, а здесь мы обсуждаем btrfs. Тогда я еще не знал особенностей btrfs и стал искать проблему не в том месте.

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

Вопрос треда в том, зачем тебе понадобилось сжатие данных на файлопомойке и гигабайтовой sqlite-базе данных. Доки по btrfs рекомендуют для БД включать NOCOW (иначе будет сильная фрагментация), а эта опция несовметима со сжатием.

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

Вань, мне тут камрад отдал свою старую 500-ку. Надо? Халява. Должен быть живым, но я сам его еще не смотрел. Тока или сам приезжай забирай или после НГ.

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

так у тебя ноут штоль? У меня чуток ноутбучных мозгов завалялось.

Нашел. 4 гига PC3L-12800S. Кажись, из какого-то из моих ноутов. Судя по маркировке, из HP.

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

Вау. Какая прекрасная ФС.

Лучшая из доступных.

не то чтобы навязывание, так, фанатизмом потягивает

Не использовал ZFS на таком объёме памяти, так что вряд ли что то подскажу по оптимизации.

Добби свободен?

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

Там тред пустой, что я должен понимать? Разупорись.

intelfx ★★★★★
() автор топика
24 февраля 2016 г.
Ответ на: комментарий от King_Carlo

Ну что ж, я прогулялся по граблям ;) Мне понравилось.

Фрагментация вконец задолбала. Перетащился на btrfs с RAID5. Почти сразу же стал сыпаться один из дисков. Online replace прошёл успешно — точнее, даже не replace (потому что мест под диски всего четыре), а такой себе неспешный remove+add.

В общем, файловые системы, которые умеют перемещать данные в онлайне, рулят. *неодобрительный взгляд в сторону zfs*

Конечно, есть и недостатки. Мне не нравится, что в ядре вместо ARC обычный LRU-кэш. А ещё при отказе/отвале всех дисков нельзя приостановить весь I/O «до выяснения», оно просто говорит «нам кранты» и всё. Но с этим я даже готов мириться.

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

Перетащился на btrfs с RAID5

Смело. Держи в курсе как оно будет работать. Я btrfs уже месяца три не трогал, до этого тестировал регулярно и всегда победа была за мной, btrfs ложилась :)
И файлы виртуалок на ней не держи, внутри ВМ с io полный швах.

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

Я умею в chattr +C. Но виртуалок там всё равно нет, только торренты и БД sqlite'овая на два (уже) гигабайта.

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

[я не пробовал держать на ней виртуалки, но] ты же ставил +C на каталоге до того, как создавал в нём нужные образы?

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

Есть подробности? Например насколько деградация (пусть даже субъективно), на каких файлах (большие или куча малких)?

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

Подробности есть, но не у меня: http://blog.delphix.com/uday/2013/02/19/78/

(собственно, этот линк уже есть в шапке треда)

А у меня подробностей нет. Просто сначала сообщения отправлялись резво, а потом не очень. Пул заполнен на 80-90%.

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

ты же ставил +C на каталоге до того, как создавал в нём нужные образы?

Так точно. На io внутри ВМ это позитивно не сказалось, очень медленно.

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

Ясно. Выдастся возможность — попробую (но вряд ли это будет скоро, на основной машине у меня reiser4, а тред про NAS).

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

В смысле «при чём»? Уже ни при чём, я свалил на btrfs. Но если бы не свалил — пришлось бы останавливать пул до момента нахождения нового диска, потому что уменьшать количество устройств в пуле zfs не умеет.

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

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

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

При чём здесь мой эгм или твой линукс головного мозга. я тебя спрашиваю зачем останавливать или уменьшать при вылете диска?

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

А, вот ты о чём. Потому что нужно было как-то продолжать жить на оставшихся. Рестрайп сделать. Я не могу немедленно купить новый диск, т. к. нищеброд.

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

Так raid для этого и задумывался, что бы пережить вылет n дисков ничего не замечая, не?
Upd: Гугльнул я про этот ваш маслофс рэйд5

If you are missing a drive, btrfs will refuse to mount the array and give an obscure error unless you mount with -o degraded
btrfs has no special rebuild procedure
btrfs replace does not work

да, это прекрасно.
Теперь я кажись понял о чём ты, так вот в zfs всё работает как надо.

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

что вы неадекватный пропагандист zfs

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

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

Ничего не замечая, помимо того, что при вылете -следующего- диска всё накроется. Поэтому я захотел сделать рестрайп. zfs его не умеет, btrfs умеет. Вот и всё.

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

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

Вероятность вылета следующего диска неиллюзорно повышается при этом самом рестрайпе и я бы точно так делать не стал.

А цитат понадёргать

Это всё с одного поста в linux btrfs blog posts.

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

каждый видит заговор, там где он хочет.

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

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

Ну да ладно, речь не совсем об оправданности. Откуда бы ни были эти цитаты, ты либо опустил существенный кусок контекста, либо там 4.2, потому что btrfs вполне себе has a special rebuild procedure (называется собственно replace).

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

не спорь с ним, это фанат соляриса серверов от 128 потоков и от тб оперативы, родители ему купили 4 сертификата, он устроился на работу, хорошо делал минет, ему оплатили ещё 2 сертификата, и теперь он гнёт понты.

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

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

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

А ты на чём засыпался, на сертификатах или на минетах?

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

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

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

Интересный бложек. Это какой-то адский ад:


btrfs does not deal well with a drive that is present but not working. It does not know how to kick it from the array, nor can it be removed (btrfs device delete) because this causes reading from the drive that isn't working. This means btrfs will try to write to the bad drive forever. The solution there is to umount the array, remount it with the bad drive missing (it cannot be seen by btrfs, or it'll get automounted/added), and then rebuild on a new drive or rebuild/shrink the array to be one drive smaller

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