For the complete documentation index, see llms.txt. This page is also available as Markdown.

Увеличение размера диска хранилища MikoPBX

Эта инструкция нужна, когда диск, на котором находится локальное хранилище MikoPBX, был увеличен в гипервизоре или на физическом сервере, но раздел /storage/usbdisk1 всё ещё показывает старый размер.

В локальном хранилище находятся записи разговоров, история разговоров, системные логи, дополнительные модули, резервные копии и системные кеши. В обычной установке хранилище смонтировано в /storage/usbdisk1.

Когда применять инструкцию

Используйте этот сценарий, если:

  • MikoPBX установлена на виртуальную машину или физический сервер;

  • диск хранилища уже увеличен на уровне гипервизора, RAID-контроллера или дисковой подсистемы;

  • в df -h /storage/usbdisk1 размер файловой системы остался прежним;

  • на диске есть неразмеченная область после текущего storage-раздела.

Для Docker-установок эта инструкция не подходит. В Docker размер каталога /storage управляется хостовой ОС и настройками volume.

Проверьте текущий диск хранилища

Подключитесь к MikoPBX по SSH только для диагностики или откройте консоль MikoPBX и выполните:

Инструкцию для подключения по SSH Вы можете найти здесь.

lsblk -f
df -h /storage/usbdisk1
mount | grep /storage/usbdisk1
cat /etc/fstab
sqlite3 /cf/conf/mikopbx.db "select id,name,device,uniqid,filesystemtype,media from m_Storage;"

Определите диск, который указан в таблице m_Storage. Например:

В этом примере диск хранилища - /dev/vdc, а раздел хранилища - /dev/vdc1.

Сохраните имя диска в переменную:

Проверьте размер диска и свободную неразмеченную область:

После увеличения диска в гипервизоре вывод должен показывать, что сам диск стал больше, а после существующего раздела появилась область Free Space.

Пример состояния до resize:

Если свободной области нет, сначала увеличьте диск в гипервизоре или проверьте, что выбран правильный диск.

Исправьте GPT после увеличения диска

На GPT-дисках после увеличения виртуального диска может появиться предупреждение parted:

В этом случае сначала перенесите резервный GPT-заголовок в конец нового размера диска:

Затем повторите проверку:

Предупреждение Not all of the space... должно исчезнуть. Свободная область после раздела при этом должна остаться видимой.

Запустите изменение размера хранилища

Откройте локальную консоль MikoPBX или консоль виртуальной машины.

В консольном меню выберите:

Подтвердите остановку процессов:

Ответьте y.

MikoPBX выполнит штатный сценарий:

  • остановит службы, которые используют хранилище;

  • отмонтирует /storage/usbdisk1;

  • увеличит storage-раздел до конца диска;

  • выполнит e2fsck;

  • выполнит resize2fs;

  • перезагрузит систему.

Если нужно запустить тот же сценарий командой из консоли, используйте:

Проверьте результат после перезагрузки

После загрузки MikoPBX снова определите storage-диск и выполните проверки:

В корректном состоянии:

  • /storage/usbdisk1 смонтирован с прежнего storage-раздела;

  • размер /storage/usbdisk1 увеличился;

  • свободной области после storage-раздела больше нет или остался только технический минимум;

  • UUID в /etc/fstab совпадает с UUID storage-раздела;

  • в таблице m_Storage указан тот же диск хранилища.

Пример результата после успешного resize:

Проверьте доступность данных:

Для базы истории разговоров корректный ответ:

Проверьте службы:

Сразу после перезагрузки часть проверок monit может быть в состоянии Initializing. Подождите 1-2 минуты и повторите проверку.

Если размер не изменился

Если после выполнения Изменить размер хранилища скрипт сообщил об успехе, но df -h /storage/usbdisk1 показывает старый размер, проверьте GPT и свободную область:

Если есть предупреждение Not all of the space..., выполните:

После этого снова запустите изменение размера из консоли:

Если свободная область меньше 5% от размера диска, штатный скрипт может завершиться без изменения размера. В этом случае проверьте, действительно ли диск был увеличен достаточно заметно.

Откат

Если после изменения размера система не загружается или хранилище не монтируется, используйте backup или snapshot, сделанный перед работами.

Если MikoPBX загружается, но storage не смонтирован, проверьте UUID и запись в базе:

При необходимости подключите storage-диск заново штатным скриптом:

Last updated

Was this helpful?