2 тыс. просмотров
от (310 баллов) в категории Прочее

askozia стоит на hyper-v. с определенного момента перестали записываться телефонные разговоры. при этом в логах идут такие сообщения: 

 

Aug 12 10:30:35 asterisk[1831]: WARNING[3131]: file.c:1229 in ast_writefile: Unable to open file /storage/usbdisk1/askoziapbx/voicemailarchive/monitor/in_79066712569_2013-08-12-10-30-03-in.gsm: No space left on device
Aug 12 10:30:35 asterisk[1831]: WARNING[3131]: res_monitor.c:363 in __ast_monitor_start: Could not create file /storage/usbdisk1/askoziapbx/voicemailarchive/monitor/in_79066712569_2013-08-12-10-30-03-in
Aug 12 10:30:35 asterisk[1831]: WARNING[3131]: res_monitor.c:629 in __ast_monitor_change_fname: Cannot change monitor filename of channel SIP/SIP-PROVIDER-1520114063514852a1195e3-00000003 to in_79066712569_2013-08-12-10-30-03, monitoring not started

в командной стороке все нормально:

 

~ # df -h
Filesystem                Size      Used Available Use% Mounted on
none                   1012.5M         0   1012.5M   0% /dev
/dev/hda2               174.8M    121.8M     53.0M  70% /offload
/dev/hda1                25.9M      6.0M     19.9M  23% /cf
/dev/hdb1                10.0G      2.3G      7.7G  23% /storage/usbdisk1
 
Пробовал залить файл по ssh - тоже все заливается.

В чем может быть проблема?

Из истории: был примонтирован диск на 2 Гб. после того как место начало заканчиваться примонтировал более большой диск на 10 Гб. 

от (15 тыс. баллов)
Вы не могли бы выполнить команду

find /storage/usbdisk1/askoziapbx/voicemailarchive/monitor/ -maxdepth 1 -type f | wc -l

И запостить результат в свой вопрос выше, есть одно подозрение.
от (310 баллов)
Похоже проблема действительно с количеством файлов. у нас их около 16 тысяч. Есть возможность другую файловую систему использовать?

3 Ответы

от (15 тыс. баллов)
выбран от
 
Лучший ответ

Скорее всего вы уперлись в ограничение файловой системы FAT32 на количество файлов в одной папке.

Можно сделать автоматическое создание и сохранение файлов записей в древовидной структуре.

В скрипте записи звоноков замените код на указанный ниже

Для входящих

Set(RecFile=${STRFTIME(${EPOCH},,%Y-%m/%d)}/in_${CDR(src)}_${STRFTIME(${EPOCH},,%Y-%m-%d-%H-%M-%S)})
Set(CDR(userfield)=${RecFile}.gsm)
Monitor(gsm,${RecFile},bm)

Для исходящих

Set(RecFile=${STRFTIME(${EPOCH},,%Y-%m/%d)}/out_${CDR(dst)}_${STRFTIME(${EPOCH},,%Y-%m-%d-%H-%M-%S)})
Set(CDR(userfield)=${RecFile}.gsm)
Monitor(gsm,${RecFile},bm)
от (310 баллов)
Вроде помогло, но появилась новая проблема. диск раз в сутки или раз в двое суток становится примонтированным readonly - ro. приходится либо перезагружать систему либо руками выполнять перемонтирование.
от (15 тыс. баллов)
Вы уверены что везде поправили скрипт. Мне кажется диск переходит в RO режим только когда ловит ошибку записи в папку.
от (310 баллов)
Сегодня утром опять словили такую же ошибку. при этом в логах до этого не было ошибок записи. Появляется неожиданно ошибка работы с базой данных Aug 21 13:20:40 asterisk[1680]: ERROR[5341]: cdr_sqlite3_custom.c:278 in write_cdr: database is locked. SQL: INSERT INTO cdr (calldate,clid,src,dst,dcontext,channel,dstchannel,lastapp,lastdata,end,duration,billsec,disposition,amaflags,accountcode,uni
и все. смотрим на диск он - ro. Помогает mount даже без без перезагрузки После этого опять продолжает работать. Скрипты проверили - все складывается по разным папочкам. Файлов в старой папке - 6500 и больше не прибавляется.
Думаю может диск новый создать для хранения файлов с записями?
Что будет если я подключу еще один диск. у старого уберу галочку хранить "Голосовую почту" а у нового поставлю. ничего страшного не произойдет? Не хотелось бы всю историю звонков потерять - она в 1С грузится.
от (310 баллов)
Я думаю проблема с правами. перед монтированием нового диска я скопировал содержимое старого диска на новый через винду. Сейчас у всех файлов - папок права 755 и владелец root:root

провобал поменять на 777 - не получается.
от (310 баллов)
Это же fat32 - права не причем... тогда вообще не понимаю что происходить...
от (15 тыс. баллов)
У FAT32 есть ограничение на примерно 65000 файлов в папке.  Это количество зависит от длины имени, мы на 19000 столкнулись с похожей проблемой.
от (15 тыс. баллов)
У нас была такая проблема на 2.2.2CFE, в 2.2.4 вроде пока не возникала.

Там могут быть битые кластеры или неправильно определяться свободное место.

В 2.2.4 добавили автопроверку дисков при старте и по расписанию.

MIKO, edition версия 2.2.4 будет в сентябре
от (310 баллов)
А в 2.2.2 как такую проверку запустить? или к винде винт прикруть и там проверить?
от (15 тыс. баллов)
К винде прикрутить да.
На этом сайте можно бесплатно задать вопрос разработчикам MikoPBX и другим членам сообщества. Время ответа не регламентированно, но мы стараемся несколько раз в день заглядывать сюда. Для срочного решения проблем обращайтесь на платную линию поддержки

Популярные теги

askozia провайдер настройка входящие-вызовы запись-разговоров ivr маршрутизация провайдеры очередь маршрут askozia7 askozia6 запись очередь-вызовов обновление факс переадресация исходящие-звонки транк перевод-вызова перехват-вызова веб-интерфейс ascozia история мобильный callerid интеграция логи goip установка провайдеров голосовая-почта панель-телефонии-1с редактор звонок разговоров nat битрикс релиз телефонная-книга аон маршруты диалплан тишина smtp почта gsm вызовы перевод лицензия панель askozia-5 bitrix24 донабор переадресация-мобильный префиксы время голосовая парковка перехват вызовов asterisk vmware мультифон мегафон задержки настройка-провайдер статистика звонков исходящие меню номер skype sip ssh 2 консольное web-интерфейс дополнительный-диск распределение память проброс-портов битрикс24 beta настройка-исходящие-исходящих-вызов-вызовов сетевые подменю goip4 отправка-факса демо-версия железо grandstream beeline альтернативный digium bruteforce взлом dialplan приложение

1.7 тыс. вопросов

1.4 тыс. ответов

3.5 тыс. комментариев

3.1 тыс. пользователей

...