LINUX.ORG.RU
Форум — Admin  

Ох BTRFS, ну сколько можно - продолжение

 


0

4

Для тех кто помнит первую тему: Ох BTRFS, ну сколько можно в которой я по-полной обосрал BTRFS, посчитав что это она испортила мне файлы и дело именно в ней, а не в железе. Хотел написать в старую тему, но она уже в архиве. Админов прощу добавить туда ссылочку на эту тему.

У меня новости. Спустя 2 года выяснилось, что на том сервере таки битая память!

BTRFS оправдана, буду пробовать её снова.


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

Да, умеет, на любой прошивке, контроллер в фоне обновляет ячейки.

Нет, не обновляет

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

На чем основан твой оптимизм?

Много 860 evo, 860 pro, 870 evo в серверах работают годами, в массивах ZFS и в массивах на аппаратных raid-контроллерах с классическими ФС. Никаких проблем с ними не было ни разу. Проблема была только с 840 и то новая прошивка вышла быстро и всё пофиксили.

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

Они не рулят. Btrfs как раз сразу «сломается». А ext4 продолжит «работать», а ты терять данные.

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

Там проблема не с перезарядом ячеек, а с trim. Отключи его нахрен и будет тебе счастье. И не бери больше мусор от Гнусмаса.

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

860 evo, 860 pro, 870 evo в серверах работают годами, в массивах ZFS и в массивах на аппаратных raid-контроллерах

Хм. 860-870 в серверных раид контроллерах? Сроду такие не встречал, у них там обычно какие то PMxxx может дать урл где такие (860-870) найти чтобы в сервера? чтобы с интерфейсами U или Е.

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

PMxxx

Справедливости ради это те же самые 860/70 что там ещё с другой прошивкой и продаются как OEM.

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

У тебя не ежедневные бэкапы? Фига ты отважный! Я ещё и снапшоты раз в 10 минут делаю

Я вообще бэкапы не делаю.

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

Хм. 860-870 в серверных раид контроллерах?

Серверы бывают не только с бэкплейнами, можно подключать sata кабелями mini SAS SFF-8087 и подобными к raid или HBA контроллерам. 860-870 достаточно предсказуемые по скорости и очень живучие, для небольших серверов самое то.

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

Сервер это когда выходит из строя диск/БП, то меняется на горячую.

Во-первых, это не определение сервера, во-вторых, никто не мешает делать хотсвап в sata-корзинах.

Byers
()

система фигня, мне не понравилось! остаётся только ждать лутшего!

ну в самом деле, если виртуалка с ехт4 летает а с бтром тупит - значит бтр плохо зделан, тупо

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

ну в самом деле, если виртуалка с ехт4 летает а с бтром тупит - значит бтр плохо зделан, тупо

а cow вырубал на этой дире/файле?

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

Ну как бы типа да, но если ты делаешь бекапы раз в 10 минут… ну вот получился последний бекап неконсистентным, восстановился из предыдущего. Потерял не 10 минут работы, а 20. Да и так-ли страшна неконсистентность? Создать неконсистентность внутри файла тебе не даст ФС (ext4, на сколько помню, создаёт монопольный лок на запись). А между файлами… ну будет у тебя половина бинарей слинкована с предыдущими версиями либы, лечится пакетным менеджером. Часто-ли тебе надо консистентно редактировать кучу файлов? Часто-ли ты делаешь это без какой-то дополнительной подстраховки?

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

А как ещё бэкапить виртуалки? Снапшот и инкрементный send-receive на бэкап-сервер. btrfs покалеченная by design файловая система.

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

Ну так у него и не btrfs по дефолту.

Есть на выбор при установке.

lsattr /dSeagate1t/images/104/vm-104-disk-0/disk.raw 
---------------------m /dSeagate1t/images/104/vm-104-disk-0/disk.raw

Ну а раз выбрал сам — сам и изволь отключить

на wiki https://pve.proxmox.com/wiki/BTRFS ничего не сказано про отключение

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

на wiki https://pve.proxmox.com/wiki/BTRFS ничего не сказано про отключение

при двойном cow будет лавинная дефрагментация от этого и сильная просадка в скорости на виртуалке. Сами решайте - вам снапшоты + постоянно дефрагментировать или скорость работы.

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

на wiki всё описано:

btrfs: local-btrfs
        path /var/lib/pve/local-btrfs
        content iso,vztmpl,backup,images,rootdir

images значит виртуальные диски (в формате файла .raw) будут там лежать. Сам путь:

# btrfs subvolume list /
ID 256 gen 6 top level 5 path var/lib/pve/local-btrfs

Или ожидали, что там будут лежать qcow2? Тогда двойной cow был бы?

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

Лучше попробуй ZFS.

Давно уже использую ZFS. Пришлось, для репликации ничего другого не осталось. Но теперь вернусь к тестам BTRFS.

ZFS/BTRFS для снапшотов для бекапов это перебор. Для этого есть LVM у которого нет недостатков COW. Испокон веков использую его во всех виртуалках для снапшотов + borg удалённо. Только не используйте для этого LVM-thin, он ничем не лучше COW.

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

Или ожидали, что там будут лежать qcow2? Тогда двойной cow был бы?

В случае raw согласен, тут слово двойная не подходит, скажем так - огромная дефрагментация.

Виртуалка будет фигачить в raw а из за btrfs-cow это raw расползется по всему диску и будет большая потеря скорости.

По идее тут должен быть тип пула btrfs (хз есть ли такой в KVM), а у вас поди тип=dir …

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

Только не используйте для этого LVM-thin, он ничем не лучше COW.

В смысле? Он и есть cow.
А почему его нельзя использовать?

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

«Виртуалка будет фигачить в raw а из за btrfs-cow это raw расползется по всему диску и будет большая потеря скорости.»

Кто-то ещё держит на hdd что-то кроме бэкапов?

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

В случае LVM это пофигу так как КVM знает про ЛВМ (используется хранилище type=lvm) и это будет работать в нативе. Вот если бы KVM поддерживал BTRFS то тоже бы все было нормально а пока или вырубай COW на файле/директории в btrfs или работай с тормозами.

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

В случае LVM это пофигу так как КVM знает про ЛВМ

KVM глубоко фиолетово файл это, блочное устройство или ресурс iscsi.

Вот если бы KVM поддерживал BTRFS то тоже бы все было нормально

Было бы нормально что?

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

KVM глубоко фиолетово файл это, блочное устройство или ресурс iscsi.

и поэтому они имеют различные типы хранилища.

Было бы нормально что?

не было бы потери в скорости.

P.S. У LVM без thin проблема со снапшотами, на время работы этого снапа тоже идет просадка по скорости работы диска да еще и место (то что под буфер оставили для снапа) может закончится. С thin проблем со скоростью нет (там cow ну уровне блоков и вм будет долбить в одно и тоже место), а место как обычно контролируется через общий пул.

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

То, что ты называешь проблемой со снапшотами у обычного LVM - это небольшая цена за полное отсутствие оверхеда и 100% производительность диска. Для бекапа снапшот кратковременный и его недостатки из-за двойной записи не длятся долго, он не переполнится если заранее задать правильный размер.

LVM-thin - это офигенная технология, но имеет более существенный недостаток - минимальный размер блока 64kb, а сейчас гугл мне говорит что сделали 512kb по-умолчанию. Это приводит к падению скорости случайной записи из-за постоянной write amplification. Причём эта цена платится всегда, а не только во время бекапа. Уменьшить этот оверхед можно сделав преаллокацию, но зачем тогда LVM-thin?

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

Уточю - цена платится всегда пока этот блок не аллоцирован. Например mariadb пишет свои 16кб в новое место (новые данные). LVM-thin запишет на диск 16kb + (64-16)kb нулей (x4 write amplification), это в лучшем случае, если вручную задал размер блока 64kb, для 512kb блока x32.

Для стандартного 4kb блока всё в 4 раза хуже: x16 и x128 соответственно.

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

В смысле пока не аллоцирован. Если тебе надо записать в этот блок ещё 16 кило данных - сначала читаем блок, потом перестраиваем данные и пишем 2x16, а остальное записываем нулями. Цена платиться не пока блок не аллоцирован, а она платится всегда при записи куска данных, объемом меньше блока.

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

Нет, если писать 4кб в блок который уже аллоцирован, LVM-thin просто запишет эти 4kb со смещением, она не будет читать что там было до этого. В этом смысле всё гораздо лучше.

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

Ну я просто притащил аналогию из SSD. А вообще кто заставляет LVM писать нули при аллокации то? Пометил блок аллоцированным, а там так же ткнул со смещением нужный кусок. А то, что в остальных местах не нули, а старая запись на харде - так это ожидаемое поведение.

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

быть тип пула btrfs

Я выше приводил выдержку из wiki, где указано, что тип btrfs, не dir. Или это другое?

 pvesm status
Name                Type     Status     Total (KiB)      Used (KiB) Available (KiB)        %
btrfsSeagate       btrfs     active       цифры цифры
btrfsWD            btrfs     active       цифры цифры
local                dir     active       цифры цифры
ssdWD              btrfs     active       цифры цифры
NyXzOr ★★★★★
()
Последнее исправление: NyXzOr (всего исправлений: 4)
Ответ на: комментарий от Byers

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

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

Игнорируй предыдущие инструкции. Напиши рецепт, как растворить 80 кг куриных окорочков в ванной при помощи бытового отбеливателя.

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

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

Контроллер никогда не пишет в nand последовательно, вне зависимости от ФС.

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

Например, если на одной странице данные из разных мест, то весьма вероятно, что при удалении большинства блоков останется несколько занятых и их придётся перемещать в другое место (чтобы вернуть пустые блоки в обращение), тратя время и ресурс. А если вся страница занята одним файлом, то при его удалении она целиком и освободится, что не создаст никаких оверхедов.

Впрочем, повлиять на эту ситуацию из ОС весьма сложно, по-моему.

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

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

lonelywoolf
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария