Как получить NTFS как поведение снимка в BTRFS?

892
Thorsten Schöning

Я хотел бы использовать BTRFS для размещения виртуальных машин в VirtualBox, чтобы иметь возможность использовать моментальные снимки без LVM или чего-то подобного. Теоретически мне не нужно постоянно вести CoWсебя из-за соображений производительности, и, nodatacowкажется, мне это не нужно. Вместо этого я хотел бы использовать подход, основанный на моем понимании: Windows и NTFS, похоже, используют: данные постоянно изменяются без CoW, но если создается моментальный снимок файловой системы, текущие данные сохраняются в этом снимке путем их копирования если это должно быть изменено каким-либо образом. Важным представляется то, что это происходит только один раз для каждого снимка и действительно только для модифицированных блоков. Таким образом, после того, как подлежащий изменению блок был сначала скопирован, все последующие модификации к тому же блоку просто применяются, опять же без CoWповедения.

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

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

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

Итак, что я хотел бы иметь вообще возможно с BTRFS?

0
У вас действительно были проблемы с производительностью в CoW или вас беспокоили теоретические проблемы? Daniel B 7 лет назад 0
@DanielB Я просто обеспокоен и думаю о вещах, потому что можно прочитать совершенно разные утверждения относительно CoW и использовать варианты с виртуальными машинами или базами данных. Thorsten Schöning 7 лет назад 0
Вы говорите о снимках FS или VM? Seth 7 лет назад 0
@Seth снимки уровня файловой системы. Thorsten Schöning 7 лет назад 0
Я согласен, что CoW - настоящий убийца баз данных. Однако динамически растущие образы ВМ в любом случае подвержены фрагментации. Daniel B 7 лет назад 0
Просто к вашему сведению, это не совсем функция NTFS. Теневая копия тома находится над драйвером тома и под драйвером файловой системы. Как таковая, она не зависит от файловой системы. Его не волнуют метаданные файловой системы, содержимое файла или что-либо подобное. Все это делается с точки зрения логических блоков (блоков в объеме). Jamie Hanrahan 7 лет назад 1

1 ответ на вопрос

1
Kamil Maciorowski

Если CoWслучается один раз с каким-то файлом, это происходит вечно. Но я могу ошибаться, конечно.

Я думаю, что вы не правы. Я нашел этот вопрос о создании снимков тома BTRFS, смонтированного сnodatacow . Там есть цитата (из списка рассылки BTRFS ), которая кажется решающей для вашего случая:

В файле NOCOW первая запись в файловый блок (4096 байт) после моментального снимка должна все еще быть COW, потому что моментальный снимок блокирует старую версию на месте, и теперь файловый блок изменился, поэтому он ДОЛЖЕН быть записан в другом месте, несмотря на упорядоченный NOCOW чтобы сохранить снимок, как это было. Тем не менее, файл сохраняет атрибут NOCOW, и дополнительные записи в тот же файловый блок будут на месте ... до следующего снимка, конечно.

Похоже, nodatacowопция монтирования дает вам именно то, что вы хотите. Просто помните, что есть ограничения:

nodatacow
Не копируйте данные при записи для вновь созданных файлов, существующие файлы не затрагиваются. Это также отключает контрольную сумму! […] Возможно получение частично обновленных файлов при сбоях системы. […] Отключает сжатие!

Источник: параметры монтирования BTRFS .

Отличный источник, спасибо! Ограничения могут не быть проблемой вообще, например, используя ext4 или NTFS, у меня уже есть то же самое, и я могу жить с ними. В конце концов, просто хорошо иметь возможность выбирать. :-) Thorsten Schöning 7 лет назад 0

Похожие вопросы