Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.UNIX.BSD
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.UNIX.BSD с датами от 18 Jan 11 22:51:00 до 27 May 24 11:30:58, всего сообщений: 10756
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 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)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.228316 секунды