#51
|
|||
|
|||
Re: Куда подевалось место на ZFS
Vova Uralsky написал(а) к Eugene Grosbein в Nov 17 15:20:42 по местному времени:
Нello Eugene! 05 Nov 17 18:28, Eugene Grosbein wrote to Vova Uralsky: EG>>>>> А с запущенными сервисами работать только с хорошим резервом. VU>>>> Я кажется понял. У нас совершенно разный майндсет. У меня не может VU>>>> возникнуть ситуации когда я не смогу добавить сотню гигов в пул. VU>>>> Мне EG>>> И тем не менее, возможность поставить мгновенно убираемый резерв EG>>> есть и у тебя. И я сомневаюсь, что ты можешь сотню гиг добавить EG>>> в пул настолько быстро. VU>> Это конечно справедливо, если у тебя только одна такая машинка. Иначе VU>> это попахивает разбазариванием народного добра. EG> В каком месте рабазариванием? Резервирование 5-8% от размера пула EG> на одном из датасетов ради того, чтобы "rm работал" на других EG> датасетах пула это разве разбазаривание? Ты соскочил с темы. Место надо не только для удаления, а просто для работы. То есть нужны блоки, не принадлежащие никакому датасету. Резервирование блокирует незанятые блоки, ухудшая ситуацию в переполненном пуле. К тому же мы ещё не проверили, работает ли оно действительно так, как ты предполагаешь. VU>> А так, если поторопиться, можно VU>> минут за 20 успеть, включая вход в VPN и заход на терминальный VU>> сервер. Вобщем, дело вкуса. EG> Вообще-то цель у меня в том, чтобы ничего срочно добавлять EG> не требовалось (плановое расширение - другая тема). EG> Чтобы если кто-то забил себе датасет, он же мог бы просто EG> запустить rm, который сразу бы исполнился либо сразу, EG> либо после временного снятия резерва (а после rm - возвращения). Для этого уже лет сто есть квота, нормальные инжынэры, в отличии от пианэрофф, обучены планировать дисковое пространство перед тем как там будет развёрнуто приложение. Бывают ситуации когда вдруг в ночь с 24 на 25 декабря откуда не возьмись вываливается стопиццот данных, которых там раньше никогда не было и никто не предполагал что они в таком количестве там когда-то появятся. В таких случаях бывает полезно быстро добавить место, чтобы всё не простояло раком до 3 января следующего года. И таки да, плановое расширение выглядит совсем иначе. Regards, Vova --- Msged/BSD 6.2.0 |
#52
|
|||
|
|||
Re: Куда подевалось место на ZFS
Eugene Grosbein написал(а) к Vova Uralsky в Nov 17 21:28:30 по местному времени:
05 нояб. 2017, воскресенье, в 16:20 NOVT, Vova Uralsky написал(а): EG>> В каком месте рабазариванием? Резервирование 5-8% от размера пула EG>> на одном из датасетов ради того, чтобы "rm работал" на других EG>> датасетах пула это разве разбазаривание? VU> Ты соскочил с темы. Место надо не только для удаления, а просто для работы. То VU> есть нужны блоки, не принадлежащие никакому датасету. Резервирование блокирует VU> незанятые блоки, ухудшая ситуацию в переполненном пуле. Резервирование блокирует не так сильно, как квоты. А совсем без блокирования на ZFS нельзя, как выяснилось. Eugene --- slrn/1.0.2 (FreeBSD) |
#53
|
|||
|
|||
Re: Куда подевалось место на ZFS
Eugene Grosbein написал(а) к Vova Uralsky в Nov 17 21:58:14 по местному времени:
05 нояб. 2017, воскресенье, в 16:20 NOVT, Vova Uralsky написал(а): VU> Ты соскочил с темы. Место надо не только для удаления, а просто для работы. То VU> есть нужны блоки, не принадлежащие никакому датасету. Резервирование блокирует VU> незанятые блоки, ухудшая ситуацию в переполненном пуле. Оно блокирует незанятые блоки для дела. VU> К тому же мы ещё не проверили, работает ли оно действительно так, как ты предполагаешь. Поиграемся на md. Создадим блочное устройство размером в 4G: # mdconfig -a -t swap -s 4g md0 Создадим на нём пул с резервированием 100M на родительском dataset и без наследования этой опции: # zpool create -O reservation=100m md0 /dev/md0 Создадим на пуле файловую систему, которую будем заполнять: # zfs create md0/fs # zfs list NAME USED AVAIL REFER MOUNTPOINT md0 104K 3,84G 23K /md0 md0/fs 23K 3,84G 23K /md0/fs # zfs get reservation NAME PROPERTY VALUE SOURCE md0 reservation 100M local md0/fs reservation none default Заполним fs данными из /dev/urandom: # ls -lh /md0/fs total 8059579 -rw-r--r-- 1 root wheel 3,8G 5 нояб. 22:46 file # zpool list md0 NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP НEALTН ALTROOT md0 3,97G 3,84G 128M - 47% 96% 1.00x ONLINE - # cp file file2 cp: file2: No space left on device # rm file rm отработал за доли секунды. # zpool list md0 NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP НEALTН ALTROOT md0 3,97G 1,80M 3,97G - 3% 0% 1.00x ONLINE - Сойдет? Eugene --- slrn/1.0.2 (FreeBSD) |
#54
|
|||
|
|||
Re: Куда подевалось место на ZFS
Vova Uralsky написал(а) к Eugene Grosbein в Nov 17 19:08:18 по местному времени:
Нello Eugene! 05 Nov 17 21:28, Eugene Grosbein wrote to Vova Uralsky: EG> Резервирование блокирует не так сильно, как квоты. Я не философ, я такого не понимаю. EG> А совсем без блокирования на ZFS нельзя, как выяснилось. Впервые слышу. Как блокируют zfs? Regards, Vova --- Msged/BSD 6.2.0 |
#55
|
|||
|
|||
Re: Куда подевалось место на ZFS
Vova Uralsky написал(а) к Eugene Grosbein в Nov 17 19:10:12 по местному времени:
Нello Eugene! 05 Nov 17 21:58, Eugene Grosbein wrote to Vova Uralsky: VU>> Ты соскочил с темы. Место надо не только для удаления, а просто для VU>> работы. То есть нужны блоки, не принадлежащие никакому датасету. VU>> Резервирование блокирует незанятые блоки, ухудшая ситуацию в VU>> переполненном пуле. EG> Оно блокирует незанятые блоки для дела. Это что за "дело" за такое? Запись идёт в датасеты, если тебе надо писать не в тот датасет, где у тебя резерв, и в пуле места больше нет, то тебе просто не повезло. 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 НEALTН 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 отработал за доли секунды. жаль что ты не смог заполнить md0/fs на 100%, интересно было бы посмотреть, обломится ли после этого rm? Если у тебя в пуле осталось 128M свободно, что-то явно не так. df -h /md0/fs было бы информативнее. Чтобы заполнть остаток места, не высчитывая свободные байтики, можно воспользоваться dd if=/dev/zero of=/md0/fs/fileX. Если ты не включал дедупликацию или компрессию, /dev/zero вполне хватит. EG> # zpool list md0 EG> NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP НEALTН EG> ALTROOT EG> md0 3,97G 1,80M 3,97G - 3% 0% 1.00x ONLINE - EG> Сойдет? Я, видимо, не понял цели твоей лабы. Доказать что можно писать в dataset почти до конца не отвечает ни на один из поставленных вопросов. (мы, вроде, жуём это уже несколько дней) А вопросы были такие: 1. Если заполнить датасет на 100%, можно ли удалить в нём файл? (если он зажат квотой, мы знаем, можно, а если резервированием на другом датасете?) 2. Если не (1), можно ли уменьшить резервирование на другом датасете и удалить файл из (1)? 3. Если убрать резервирование совсем -- заполнение пула на 100%, прокатывает ли (1)? 4. Если мы заполняем пул на (почти?) 100%, ему приходят тормоза и пушистый зверёк на $\pi$ (Korchmar effect) И ещё, ты поставил резервирование на корневой датасет, был в этом какой-то скрытый смысл? Можно было просто повторить мою лабу? Или она не отвечала по каким-то критериям? На всякий случай, если кто-то уже забыл, мои ответы с опениндианы: 1. Да 2. Не имеет смысла, см текст вопроса 3. Да 4. Нет, хотя это виртуалка и размер пула сопоставим с размерами ОЗУ хоста. Regards, Vova --- Msged/BSD 6.2.0 |
#56
|
|||
|
|||
Re: Куда подевалось место на ZFS
Eugene Grosbein написал(а) к Vova Uralsky в Nov 17 14:44:47 по местному времени:
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 НEALTН 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? Не обломился же :-) 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 НEALTН 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) |
#57
|
|||
|
|||
Re: Куда подевалось место на ZFS
Eugene Grosbein написал(а) к Vova Uralsky в Nov 17 15:19:39 по местному времени:
05 нояб. 2017, воскресенье, в 20:08 NOVT, Vova Uralsky написал(а): EG>> Резервирование блокирует не так сильно, как квоты. VU> Я не философ, я такого не понимаю. Резервирование достаточно поставить на одном датасете пула и оно одно обеспечит невозможность заполнить пул на 100%, в отличие от квот. EG>> А совсем без блокирования на ZFS нельзя, как выяснилось. VU> Впервые слышу. Как блокируют zfs? Пулы ZFS блокируются, будучи заполненными на 100%. А такое блокирование недопустимо. Eugene -- Поэты - страшные люди. У них все святое. --- slrn/1.0.2 (FreeBSD) |
#58
|
|||
|
|||
Re: Куда подевалось место на ZFS
Eugene Grosbein написал(а) к Eugene Grosbein в Nov 17 15:25:09 по местному времени:
06 нояб. 2017, понедельник, в 15:44 NOVT, Eugene Grosbein написал(а): VU>>>> Ты соскочил с темы. Место надо не только для удаления, а просто для VU>>>> работы. То есть нужны блоки, не принадлежащие никакому датасету. VU>>>> Резервирование блокирует незанятые блоки, ухудшая ситуацию в VU>>>> переполненном пуле. EG>>> Оно блокирует незанятые блоки для дела. VU>> Это что за "дело" за такое? EG> "Дело" в данном случае состоит в том, чтобы не допустить заполнения пула EG> на 100% никаким датасетом с тем, чтобы при заполнении любого из датасетов EG> пула на 100% на самом датасете были бы свободные блоки для того, EG> чтобы rm с заполненного датасета отрабатывал. s/на самом датасете/на самом пуле/ Eugene --- slrn/1.0.2 (FreeBSD) |
#59
|
|||
|
|||
Re: Куда подевалось место на ZFS
Vova Uralsky написал(а) к Eugene Grosbein в Nov 17 19:20:14 по местному времени:
Нello Eugene! 06 Nov 17 14:44, Eugene Grosbein wrote to Vova Uralsky: VU>>>> Ты соскочил с темы. Место надо не только для удаления, а просто для VU>>>> работы. То есть нужны блоки, не принадлежащие никакому датасету. VU>>>> Резервирование блокирует незанятые блоки, ухудшая ситуацию в VU>>>> переполненном пуле. EG>>> Оно блокирует незанятые блоки для дела. VU>> Это что за "дело" за такое? EG> "Дело" в данном случае состоит в том, чтобы не допустить заполнения EG> пула EG> на 100% никаким датасетом с тем, чтобы при заполнении любого из EG> датасетов EG> пула на 100% на самом датасете были бы свободные блоки для того, EG> чтобы rm с заполненного датасета отрабатывал. Ещё раз и по буквам. Резерв на датасете состоит из блоков, принадлежащих датасету. Они не являются свободными, хотя в них не записано никаких данных. Они не доступны другому датасету. VU>> Запись идёт в датасеты, если тебе надо писать не в VU>> тот датасет, где у тебя резерв, и в пуле места больше нет, то тебе VU>> просто не повезло. EG> Вся суть в том, чтобы не допустить события "в пуле места больше нет". См выше. 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 НEALTН 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%, EG> Почему не смог-то? Смог, и cp это подтвердил лишний раз. EG> Free 128M относится к пулу, а не к md0/fs. <sarcasm> Магический пул: резервируем 100M, заполняем до конца, сколько осталось незаполнено? Првыильно, 128M. VU>> интересно было бы посмотреть, обломится ли после этого rm? EG> Не обломился же :-) О. да! С чего бы? VU>> Если у тебя в пуле осталось 128M свободно, что-то VU>> явно не так. EG> Всё так, именно это и было целью создания резерва. Так и создал бы резерв на 128М? </sarcasm> VU>> Чтобы заполнть остаток места, не высчитывая свободные байтики, можно VU>> воспользоваться dd if=/dev/zero of=/md0/fs/fileX. Если ты не включал VU>> дедупликацию или компрессию, /dev/zero вполне хватит. EG> Так и заполнял, только из /dev/urandom. Дедупа/компрессии не было, EG> все опции создания же показывал. Ты что-то недокопипэйстил? Или действительно считаешь что 100M == 128M? EG>>> md0 3,97G 1,80M 3,97G - 3% 0% 1.00x ONLINE - EG>>> Сойдет? VU>> Я, видимо, не понял цели твоей лабы. Доказать что можно писать в VU>> dataset почти до конца не отвечает ни на один из поставленных VU>> вопросов. (мы, вроде, жуём это уже несколько дней) EG> Цель была продемонстировать, что резервирование на одном из датасетов EG> пула гарантирует незаполняемость его до отказа и как следствие, EG> возможность почистить заполненные до отказа датасеты. Не сложилось. А жаль. VU>> А вопросы были такие: VU>> 1. Если заполнить датасет на 100%, можно ли удалить в нём файл? (если VU>> он зажат квотой, мы знаем, можно, а если резервированием на другом VU>> датасете?) EG> Да, именно это я продемонстрировал. Не вижу. plausibility check failed VU>> 2. Если не (1), можно ли уменьшить резервирование на другом датасете VU>> и удалить файл из (1)? VU>> 3. Если убрать резервирование совсем -- заполнение пула на 100%, VU>> прокатывает ли (1)? EG> (1) И так всем известно, что заполненный на 100% пул ZFS это EG> катастрофа Как выяснилось, не всегда и не везде. Вобщем, пока двойка... EG> до его расширения. И именно невозможность заполнения пула на 100% EG> при использовании резервирования я и хотел проверить. VU>> 4. Если мы заполняем пул на (почти?) 100%, ему приходят тормоза и VU>> пушистый зверёк на $\pi$ (Korchmar effect) EG> Аналогично (1), мне нужно было только подтвердить, что резервирование EG> даёт возможность стабильной работы. Мне совершенно не интересно EG> искать способы прострелить себе ногу, я знаю их неисчеслимое EG> множество EG> и ещё один ничего не меняет. Жаль что Korchmar effect нам никто не хочет продемонстрировать. VU>> И ещё, ты поставил резервирование на корневой датасет, был в этом VU>> какой-то скрытый смысл? EG> Смысл был в том, чтобы после создания пула с резервированием на EG> корневом EG> датасете больше не думать о резервировании, создавая рабочие датасеты EG> как и прежде. Понятно, то есть просто так. Меня это удивило, просто потомучто считается плохом тоном. Regards, Vova --- Msged/BSD 6.2.0 |
#60
|
|||
|
|||
Re: Куда подевалось место на ZFS
Vova Uralsky написал(а) к Eugene Grosbein в Nov 17 19:51:14 по местному времени:
Нello Eugene! 06 Nov 17 15:19, Eugene Grosbein wrote to Vova Uralsky: EG>>> Резервирование блокирует не так сильно, как квоты. VU>> Я не философ, я такого не понимаю. EG> Резервирование достаточно поставить на одном датасете пула EG> и оно одно обеспечит невозможность заполнить пул на 100%, EG> в отличие от квот. Ещё раз и по буквам. Резерв на датасете состоит из блоков, принадлежащих датасету. Они не являются свободными, хотя в них не записано никаких данных. Они не доступны другому датасету. EG>>> А совсем без блокирования на ZFS нельзя, как выяснилось. VU>> Впервые слышу. Как блокируют zfs? EG> Пулы ZFS блокируются, будучи заполненными на 100%. EG> А такое блокирование недопустимо. Вот я и пытаюсь выяснить, действительно ли это всё ещё актуально? А ты, вот, не хочешь (4) проверять. Может починили уже давно? /me пытается завернуть обратно к эхотагу... Regards, Vova --- Msged/BSD 6.2.0 |