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