= Сообщение: 6167 из 10756 ===================================== RU.UNIX.BSD = От : Eugene Grosbein 2:5006/1 06 Nov 17 14:44:47 Кому : Vova Uralsky 06 Nov 17 14:44:47 Тема : Re: Куда подевалось место на ZFS FGHI : area://RU.UNIX.BSD?msgid=grosbein.net+c74b43bd На : area://RU.UNIX.BSD?msgid=2:5030/257+59ff6208 = Кодировка сообщения определена как: IBM866 ================================= Ответ: area://RU.UNIX.BSD?msgid=grosbein.net+1e6ecc78 Ответ: area://RU.UNIX.BSD?msgid=2:5030/257+5a00bd11 ============================================================================== 05 нояб. 2017, воскресенье, в 20:10 NOVT, Vova Uralsky написал(а):
VU>>> Ты соскочил с темы. Место надо не только для удаления, а просто для VU>>> работы. То есть нужны блоки, не принадлежащие никакому датасету. VU>>> Резервирование блокирует незанятые блоки, ухудшая ситуацию в VU>>> переполненном пуле. EG>> Оно блокирует незанятые блоки для дела. VU> Это что за "дело" за такое?
"Дело" в данном случае состоит в том, чтобы не допустить заполнения пула на 100% никаким датасетом с тем, чтобы при заполнении любого из датасетов пула на 100% на самом датасете были бы свободные блоки для того, чтобы rm с заполненного датасета отрабатывал.
VU> Запись идёт в датасеты, если тебе надо писать не в VU> тот датасет, где у тебя резерв, и в пуле места больше нет, то тебе просто не VU> повезло.
Вся суть в том, чтобы не допустить события "в пуле места больше нет".
VU>>> К тому же мы ещё не проверили, работает ли оно действительно так, как VU>>> ты предполагаешь. EG>> # zfs get reservation EG>> NAME PROPERTY VALUE SOURCE EG>> md0 reservation 100M local VU>> ---------------------^^^^ EG>> md0/fs reservation none default EG>> Заполним fs данными из /dev/urandom: EG>> # ls -lh /md0/fs EG>> total 8059579 EG>> -rw-r--r-- 1 root wheel 3,8G 5 нояб. 22:46 file EG>> # zpool list md0 EG>> NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH EG>> ALTROOT EG>> md0 3,97G 3,84G 128M - 47% 96% 1.00x ONLINE - VU>> ---------------------^^^^ EG>> # cp file file2 EG>> cp: file2: No space left on device EG>> # rm file EG>> rm отработал за доли секунды. VU> жаль что ты не смог заполнить md0/fs на 100%,
Почему не смог-то? Смог, и cp это подтвердил лишний раз. Free 128M относится к пулу, а не к md0/fs.
VU> интересно было бы посмотреть, обломится ли после этого rm?
Hе обломился же :-)
VU> Если у тебя в пуле осталось 128M свободно, что-то VU> явно не так.
Всё так, именно это и было целью создания резерва.
VU> Чтобы заполнть остаток места, не высчитывая свободные байтики, можно VU> воспользоваться dd if=/dev/zero of=/md0/fs/fileX. Если ты не включал VU> дедупликацию или компрессию, /dev/zero вполне хватит.
Так и заполнял, только из /dev/urandom. Дедупа/компрессии не было, все опции создания же показывал.
EG>> # zpool list md0 EG>> NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH EG>> ALTROOT EG>> md0 3,97G 1,80M 3,97G - 3% 0% 1.00x ONLINE - EG>> Сойдет? VU> Я, видимо, не понял цели твоей лабы. Доказать что можно писать в dataset почти VU> до конца не отвечает ни на один из поставленных вопросов. (мы, вроде, жуём это VU> уже несколько дней)
Цель была продемонстировать, что резервирование на одном из датасетов пула гарантирует незаполняемость его до отказа и как следствие, возможность почистить заполненные до отказа датасеты.
VU> А вопросы были такие: VU> 1. Если заполнить датасет на 100%, можно ли удалить в нём файл? (если он зажат VU> квотой, мы знаем, можно, а если резервированием на другом датасете?)
Да, именно это я продемонстрировал.
VU> 2. Если не (1), можно ли уменьшить резервирование на другом датасете и удалить VU> файл из (1)? VU> 3. Если убрать резервирование совсем -- заполнение пула на 100%, прокатывает ли VU> (1)?
(1) И так всем известно, что заполненный на 100% пул ZFS это катастрофа до его расширения. И именно невозможность заполнения пула на 100% при использовании резервирования я и хотел проверить.
VU> 4. Если мы заполняем пул на (почти?) 100%, ему приходят тормоза и пушистый VU> зверёк на $\pi$ (Korchmar effect)
Аналогично (1), мне нужно было только подтвердить, что резервирование даёт возможность стабильной работы. Мне совершенно не интересно искать способы прострелить себе ногу, я знаю их неисчеслимое множество и ещё один ничего не меняет.
VU> И ещё, ты поставил резервирование на корневой датасет, был в этом какой-то VU> скрытый смысл?
Смысл был в том, чтобы после создания пула с резервированием на корневом датасете больше не думать о резервировании, создавая рабочие датасеты как и прежде.
Eugene --- slrn/1.0.2 (FreeBSD) * Origin: RDTC JSC (2:5006/1@fidonet) |