вторник, 6 октября 2015 г.

Уменьшить занимаемое место на диске UniFi + mFi

При установке контроллера UniFi я сильно удивился тому, свободное место на диске уменьшлось больше чем на 4 гигабайта, а когда добавил контроллер mFi еще на 4 и все система рухнула из-за недостатка места на диске (на виртуалку было выделено 10Гб).

Разобравшись, удалось уменьшить занимаемое место на диске до 3.5Гб (включая файлы ОС. В качестве ОС используется Debian без графического интерфейса). Текущая конфигурация: виртуальный сервер с 1 процессором, 512Гб оперативной памяти. Средняя загрузка процессора и памяти в пределах 10%. Контроллеры держат 8 точек доступа и 1 датчик температуры. На точках в рабочее время висит 3-8 клиентов (обычно пределах 50 в общем)

Все описанные манипуляции производились ДО настройки контроллеров и добавления точке.

Делаем:

1. Устанавливаем mongo без установки  UniFi:

apt-get install mongodb

2. После установки mongo создаст дефолтный экземпляр базы данных и зарезервирует место под журналы (порядка 3 гигабайт). Для небольшого количества точек это слишком много. Поэтому редактируем файл настроек  /etc/mongodb.conf. Добавляем строку:
smallfiles = true
раскомментируем строку:
noprealloc = true



Сохраняем изменения, останавливаем mongod, вручную удаяем большие файлы prealloc.* and j.* в директории /var/lib/mongob/journal и запускаем mongod. Будут созданы новые файлы журнала, на этот раз значительно меньше.

3. Теперь устанавливаем UniFi. После установки программа создаст собственный экземпляр базы данных, на который не влияют настройки в /etc/mongodb.conf Делаем следующее:

-Добавляем в файл /var/lib/unifi/system.properties  строку:
unifi.db.extraargs=--noprealloc,--smallfiles
-останавливаем unifi
-удаляем директорию /var/lib/unifi/db
-перезапускаем unifi:
/etc/init.d/unifi restart


4. Для mFi процесс выглядит также, за исключением того, что файл настроек будет /var/lib/mfi/system.properties и добавлять следует строку
unifi.db.nojournal=true


Следует обратить внимание, что mFi не поддерживает опции smallfiles или prealloc, следовательно, чтобы уменьшить пространство, которое займет на диске экземпляр базы данных, следует полностью отключить журналирование. Это может быть небезопасно, но в моем случае (один сенсор) проще восстановить базу из резервной копии, если она будет повреждена.






Комментариев нет:

Отправить комментарий