Понадобилось сделать сабж. Задача следующая — разместить данные в отдельном разделе, после этого создать N снапшотов и дать пользователям работать с ними (read-write). При этом, необходимо чтоб место под снапшоты резервировалось не сразу, а по мере того как пользователи будут что-то менять в своих снапшотах. Т.е, например, на жёстком диске в 40 гигабайт разместить один эталонный образ на 10 гигабайт и штук 30 снапшотов, дабы 30 пользователей могли с ними работать.
Пробовал использовать для этого дела LVM2. Там при создании снапшота указывается, сколько места зарезервировать для хранения изменений и это место резервируется сразу. В документации говорится про copy-on-write, но я так понял, это относится к тем изменениям, которые будут произведены над эталонным образом, а не над снапшотами. В общем, я попробовал создать на диске в 40 гигабайт раздел на 10 гигабайт и 3 снапшота с лимитом записи в 10 гигабайт. На третьем снапшоте место закончилось, т.е. место выделяется сразу. А ставить лимит записи меньше размера исходного раздела — опасно. В этом случае при превышении лимита снапшот вообще падает наглухо.
Что вообще можно использовать для этих целей? Может быть LVM2 умеет это, просто я его не так использовал? Какие ещё есть аналогичные системы? Без разницы под какую OS — Linux, BSD, Solaris или что-либо другое.
На днях посоветовали zfs, в настоящий момент разбираюсь и пробую. Ещё какие-нибудь варианты есть?