Большие проблемы маленького расширения

За всю историю блога я достаточно часто писал про все возможные расширения дисковой подсистемы Linux (кому интересно, могут сделать поиск по ключу «Диск»)
В части постов, успешным завершением процесса является выполнение команды «resize2fs«, с которой я получил достаточно интересную проблему на одном из серверов.

При попытке изменить расширенный раздел через resize2fs сервер выдал типовую ошибку «resize2fs: Operation not permitted While trying to add group #128«. Я связал это с недавним «розовым экраном» на esxi в результате которого сервер ушел в неконтролируемый ребут, и достаточно быстро нашел достаточно подробно лечение описанной проблемы:

Грузимся в single mode, монтируем систему на чтение:

mount -o remount, ro / 

Чинимся:

# dumpe2fs /dev/mapper/vg_local-lv_root | grep Journal\ size
Journal size: 128M
# tune2fs -O ^has_journal /dev/mapper/vg_local-lv_root
# tune2fs -j /dev/mapper/vg_local-lv_root  
Creating journal inode: done 
# dumpe2fs /dev/mapper/vg_local-lv_root | grep Journal\ size
Journal size: 128M

e2fsck -f /dev/mapper/vg_local-lv_root

Однако проблема никуда не исчезла!

«dmesg» принес уже другую ошибку «ext4_group_add:1605: No reserved GDT blocks, can’t resize«. Ошибка даже гуглится — https://access.redhat.com/solutions/1578083, вот только доступ к информации возможен только по подписке. Сюрприз!

Пробуем посмотреть количество свободных блоков:

# tune2fs -l /dev/mapper/vg_local-lv_root | grep -i gdt
Reserved GDT blocks:      743

Блоки есть.

Если провести тест и создать img и постепенно его увеличивать, все работает:

dd if=/dev/zero of=ext4.img bs=1M count=1000
dev=$(losetup -vf ext4.img| cut -d" " -f4)
mkfs.ext4 ${dev} 5M
tune2fs -l ${dev} | grep -i gdt
resize2fs ${dev} 15M
tune2fs -l ${dev} | grep -i gdt
resize2fs ${dev} 25M

Из нагугленного нашлась ссылка 2012 года http://www.spinics.net/lists/linux-ext4/msg35015.html, где автор также столкнулся с похожей проблемой.

У меня меня недавно было обновление ядра на 4 ветку для работы docker:

# lsb_release -rd
Description:    CentOS release 6.8 (Final)
Release:        6.8
# uname -rvmpio
4.9.13-22.el6.x86_64 #1 SMP Sun Feb 26 22:18:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Ок. Перегружаемся с ядром 3.18 и раздел чудесным образом расширяется!

Данным решением не горжусь, но проблема решена и достаточно быстро.
Что произошло и как дальше с этим жить  стоит разобраться отдельно, но явно не на продакшен системе.

Вы можете оставить комментарий ниже.