Внезапное открытие - прекрасная ZFS в прекрасной Ubuntu LTS имеет некоторые проблемы с банальным увеличением vdev. Если у вас жила-была (такая) система с zfs'ом, тихонько подползала к пресловутым 80% заполнения, и вы решили добавить ей места, памятуя о легкости необычайной и безопасности выполнения в ней таких вещей, вас ждет малоприятный сюрприз.
Добавляем ценный ресурс к LUN, хранилище рапортует ок, радостно видим что ядро линукса подхватило новую информацию (у меня это произошло даже без необходимости дергать вручную /sys/гдетамоно/sdчтото/гдетотамеще/rescan) и... и.... и ничего.
Если это случилось:
zpool set autoexpand=on <pool>
zpool online -e <pool> <sd?>
Эта команда не принесёт успеха, но поменяет gpt метку - что вы должны
увидеть, запустив fdisk до и после - если этого не происходит, ядро у вас не увидело увеличения устройства, запустите rescan ещё раз.
Теперь у нас хотя бы физический диск действительно занимает весь нововыделенный объем.
reboot # без него ничего не получится
Нет, все ещё счастья не воспоследовало, но!
zpool list
Показывает нечто, отличное от прочерка в графе EXPANDSZ! Победа.
Btw, наличие этой графы в выводе zpool как раз признак версии, где проблема еще/уже не исправлена
zpool online -e <pool> <sd?> # еще раз!
Теперь list должен показать, что счастье настало, а zfs list - соответственно, что приросли и сами fs на этом пуле
Не правда ли, сущая ерунда по сравнению со сложнейшей командой resize2fs ?!
Долгое гугление приводит к обнаружению треда 2016(!) года о том как разработчики в очередной раз сами себе наступили на ногу, открыв устройство с O_EXCL и не сумев параллельно в нем покопаться из другого процесса, но не извольте беспокоиться, все уже переписали и закоммитил лично Бехлендорф (гуглите, в короткой статье нет места описанию этих ужасов - а то что там поназакоммичено ужас кромешный и есть) - но то ли не в ту версию что у ubuntu 18.04, то ли недостаточно хорошо закоммичено.
Еще более тщательное гугление приводит к паре статей на stack, где автор "двадцать раз поперезагружался, подергал какие-то команды, хистори лог в терминале сохранил"...но постеснялся его выложить. К счастью, я не настолько стеснителен, и к тому же проверял результат. Надеюсь, кому-то следующему повезет не потерять на это лишних полчаса.
URL:
Обсуждается: http://www.opennet.ru/tips/info/3104.shtml