NVP-vProxy: Сбой резервного копирования с ошибкой «Panic Occurred Runtime Error» при заполнении data01
Summary: Резервное копирование NetWorker VMware Protection (NVP) vProxy завершается сбоем с ошибкой «-500: Panic occurred: runtime error», когда раздел /data01 на устройстве vProxy достигает 100% емкости. В разделе /data01 хранятся журналы сеансов резервного копирования со сроком хранения по умолчанию один месяц. Если раздел заполнен, виртуальный прокси не может записывать журналы сеансов и процесс резервного копирования завершается критической ошибкой. ...
Symptoms
Резервное копирование виртуальной машины периодически завершается сбоем на определенном устройстве vProxy. Журнал рабочего процесса NetWorker показывает ошибку 500 с сообщением о сбое во время выполнения:
MM/DD/YYYY HH:MM:SS [VM_NAME]: Unable to start backup on vProxy '[VPROXY_NAME]': Received an HTTP code: 500, libCURL message: "", vProxy message: "Error received from vProxy ="-500: Panic occurred: runtime error: invalid memory address or nil pointer dereference". ", url: "https://[VPROXY_NAME]:9090/api/v1/BackupVmSessions", body: "{"Config":{"SessionId":"","LogTag":"@(#) Build number: 288","IdleTimeout":300,"LogLevel":"TRACE","AcceptedLanguage":"en","TransportModeRequested":"hotadd","Parallelism":1,"UseCbt":true,"AutoEnableCbt":true,"AutoRepairCbt":true,"VimServerRef":{"HostName":"[VCENTER_NAME]","UserName":"S001891","UserPassword":"****","TcpPort":0},"VmSpec":{"Name":"[VM_NAME]","VmMoref":"vm-152712","VirtualDisks":[{"Label":"Hard disk 1","Key":2000}],"CustomFieldName":"Last EMC vProxy Backup","CustomFieldValue":"Backup Server=[NSR_NAME], Policy=[POLICY_NAME], Workflow=[WORKFLOW_NAME], Action=[ACTION_NAME], JobId=490597"},"SnapshotSpec":{"Name":"NetWorker Backup Snapshot","Description":"Snapshot is created as part of protecting this VM by EMC NetWorker VProxy.","Quiesce":false,"DumpMemory":false,"RemoveAll":false,"Consolidate":false},"TargetSpec":{"DeviceType":"DataDomain","HostName":"[DATADOMAIN_NAME]","UserName":"boostadmin","UserPassword":"****","BackupMode":"VSS","BackupPath":"[NSR_NAME]/[DEVICE_NAME]//[NSR_NAME]/[DEVICE_NAME]/05/47/e03a0faf-00000006-9122ca5e-5b22ca5e-5380e9f4-822ca7d4","PreviousBackupPath":"/[NSR_NAME]/[DEVICE_NAME]/75/82/7f12c16b-00000006-2720fcc2-5b20fcc2-40eae9f4-822ca7d4","CurrentBackupPath":"/[NSR_NAME]/[DEVICE_NAME]/active/e03a0faf-00000006-9122ca5e-5b22ca5e-5380e9f4-822ca7d4"}}}".
В строке /data01 файловой системы на устройстве vProxy показывает 100% использование:
myvproxy:/data01/runtime/logs # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda4 17G 2.7G 14G 18% /
devtmpfs 3.9G 8.0K 3.9G 1% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.8M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda4 17G 2.7G 14G 18% /.snapshots
/dev/sda4 17G 2.7G 14G 18% /var/crash
/dev/sda4 17G 2.7G 14G 18% /var/tmp
/dev/sda4 17G 2.7G 14G 18% /usr/local
/dev/sda4 17G 2.7G 14G 18% /var/spool
/dev/sda4 17G 2.7G 14G 18% /var/lib/pgsql
/dev/sda4 17G 2.7G 14G 18% /var/opt
/dev/sda4 17G 2.7G 14G 18% /var/lib/mailman
/dev/sda4 17G 2.7G 14G 18% /var/lib/named
/dev/sda4 17G 2.7G 14G 18% /srv
/dev/sda4 17G 2.7G 14G 18% /opt
/dev/sda4 17G 2.7G 14G 18% /home
/dev/sda4 17G 2.7G 14G 18% /tmp
/dev/sda4 17G 2.7G 14G 18% /var/log
/dev/sdb1 82G 82G 20K 100% /data01
/dev/sda2 95M 73M 18M 81% /boot
/dev/sda4 17G 2.7G 14G 18% /boot/grub2/x86_64-efi
/dev/sda4 17G 2.7G 14G 18% /boot/grub2/i386-pc
/dev/sdb2 16G 33M 16G 1% /data01/logs
Пространство занято журналами сеансов резервного копирования в /opt/emc/vproxy/runtime/logs/. Эти журналы находятся на /data01 partition Резервное копирование других виртуальных машин на других устройствах vProxy будет продолжено.
Cause
В строке /data01 файловой системы на устройстве vProxy хранит журналы сеансов резервного копирования в /opt/emc/vproxy/runtime/. По умолчанию хранение журналов составляет один месяц. В средах с высокой активностью резервного копирования журналы сеансов могут занимать все доступное пространство на /data01.
Когда уровень раздела достигает 100%, vProxy не может создавать новые файлы журналов сеансов. Процесс резервного копирования сталкивается с разыменованием указателя nil, когда ему не удается записать журнал. Это приводит к критической ошибке выполнения с кодом состояния HTTP 500.
Resolution
Вариант 1. Повторное развертывание устройства vProxy
Повторно разверните устройство vProxy из консоли PPDM или NetWorker. При повторном развертывании очищаются все существующие журналы и восстанавливается /data01 partition
Вариант 2. Освобождение пространства вручную
Если повторное развертывание невозможно немедленно, выполните следующие действия:
- Войдите в ACM через SSH в качестве пользователя
admin. Переключиться наroot:sudo su - root - Удалите старые журналы повторных сеансов, чтобы освободить место:
find /opt/emc/vproxy/runtime/logs/recycle/ -type f -mtime +14 -delete - Убедитесь, что пространство освобождено:
df -h /data01 - Повторите попытку резервного копирования для затронутых виртуальных машин.
Предотвращение повторений — настройка задания cron для очистки журналов
Чтобы /data01 снова не достиг 100%, создайте запланированное задание очистки:
- Войдите в ACM через SSH в качестве пользователя
admin. Переключиться наroot:sudo su - root - Создайте запись crontab для файла
root.crontab -e - Добавляйте следующую строку, чтобы удалять журналы сеансов старше 14 дней каждый день в 6 утра:
0 6 * * * find /opt/emc/vproxy/runtime/logs/recycle/vbackupd -type f -mtime +14 -delete - Сохраните изменения и выйдите из BIOS. Проверьте .
cronjobcrontab -l
cron Задание необходимо создать повторно.
Обратитесь в службу технической поддержки компании Dell.
если /data01 продолжает быстро заполняться после выполнения очистки, обратитесь в службу поддержки Dell для дальнейшего изучения. См. статью базы знаний:
Additional Information
Пространство в точке монтирования /data01 виртуального прокси можно освободить, удалив журналы из: /data01/runtime/logs/recycle/
Ниже приведен пример процедуры создания задания cron, который удаляет журналы 14-дневной давности:
- Войдите в vProxy через SSH в качестве администратора, затем переключитесь на пользователя root.
sudo su - root - Создайте задание crontab для пользователя root с помощью следующей команды:
crontab -e - В текстовом редакторе вставьте следующую строку, чтобы удалять журналы сеансов старше 14 дней каждый день в 6 утра:
* 6 * * * find /opt/emc/vproxy/runtime/logs/recycle/vbackupd -type f -mtime +14 -delete
- Просмотрите содержимое нового задания cron пользователя root с помощью следующей команды:
crontab -l - Количество дней хранения журналов может быть изменено, чтобы файловая система не достигала 100%.