| Следующая версия | Предыдущая версия |
| software:nas:osm_synology_vmm [2023/08/06 02:31] – создано - внешнее изменение 127.0.0.1 | software:nas:osm_synology_vmm [2025/12/06 19:58] (текущий) – внешнее изменение 127.0.0.1 |
|---|
| ======OSM Tile Server Synology NAS VMM====== | ======OSM Tile Server Synology NAS VMM====== |
| =====Введение===== | =====Введение===== |
| * <color #7092be>Предполагается, что у вас устройство **Synology NAS DS220+/DS420+/DS720+/DS920+** c дополнительно установленным модулем оперативной памяти **не менее 8gb** с настроенной Synology VMM и установленной на виртуальной машине ОС Ubuntu Server 20.04 LTS.</color> | * <fc #7092be>Предполагается, что у вас устройство **Synology NAS DS220+/DS420+/DS720+/DS920+** c дополнительно установленным модулем оперативной памяти **не менее 8gb** с настроенной Synology VMM и установленной на виртуальной машине ОС Ubuntu Server 20.04 LTS.</fc> |
| * Если это не так, то выполните следующие руководства: | * Если это не так, то выполните следующие руководства: |
| * [[notes:nas:upgrades_ram|-Увеличение оперативной памяти Synology DS420+]]. | * [[software:nas:upgrades_ram|-Увеличение оперативной памяти Synology DS420+]]. |
| * [[notes:nas:synology_vmm|-Установка и настройка Synology Virtual Machine Manager (VMM) Synology DS420+]]. | * [[software:nas:synology_vmm|-Установка и настройка Synology Virtual Machine Manager (VMM) Synology DS420+]]. |
| * [[notes:ubuntu_server:ubuntu_server|-Установка Ubuntu 20.04 LTS Server на виртуальную машину (VMM) Synology DS420+]]. | * [[software:linux_server:ubuntu_server|-Установка Ubuntu 20.04 LTS Server на виртуальную машину (VMM) Synology DS420+]]. |
| * <color #ed1c24>**Установка OpenStreetMap Tile Server на Synology DS (ram < 8gb ddr4) приведет к зависанию устройства и невозможности подключения к нему для восстановления без переустановки системы.**</color> | * <fc #ed1c24>**Установка OpenStreetMap Tile Server на Synology DS (ram < 8gb ddr4) приведет к зависанию устройства и невозможности подключения к нему для восстановления без переустановки системы.**</fc> |
| * Идеальная конфигурация Synology DS720+ (ram 16gb ddr4 / 2*1tb ssd), но и на ram 10gb (2gb+8gb) и 2*2tb wd red hdd - это работает. И первый рендер тайлов происходит без раздражения, впоследствии торможения нет. Установка Tile Server на Synology DS720+ (Intel Celeron J4125 4*2,70 GHz / 2gb ddr4 + 8gb ddr4 / 2*2tb hdd shr 1том) показала загрузку процессора в среднем 10-20% при выделенной виртуальной памяти в 8gb, которая занята соответственно на 90% от общего объема в 10gb. | * Идеальная конфигурация Synology DS720+ (ram 16gb ddr4 / 2*1tb ssd), но и на ram 10gb (2gb+8gb) и 2*2tb wd red hdd - это работает. И первый рендер тайлов происходит без раздражения, впоследствии торможения нет. Установка Tile Server на Synology DS720+ (Intel Celeron J4125 4*2,70 GHz / 2gb ddr4 + 8gb ddr4 / 2*2tb hdd shr 1том) показала загрузку процессора в среднем 10-20% при выделенной виртуальной памяти в 8gb, которая занята соответственно на 90% от общего объема в 10gb. |
| * Делаю вывод, что Synology DS420+ (Intel Celeron J4025 2*2,90 GHz / 2gb ddr4 + 8gb ddr4 / 4*3tb hdd shr 1том) процессор будет загружаться при рендере на 40-50%, при учете того, что будет выделено 6gb виртуальной памяти. | * Делаю вывод, что Synology DS420+ (Intel Celeron J4025 2*2,90 GHz / 2gb ddr4 + 8gb ddr4 / 4*3tb hdd shr 1том) процессор будет загружаться при рендере на 40-50%, при учете того, что будет выделено 6gb виртуальной памяти. |
| * <color #7092be>**Не ставьте автозагрузку виртуальной машины - это позволит вам попасть в DSM при зависании устройства при переполнении памяти.**</color> | * <fc #7092be>**Не ставьте автозагрузку виртуальной машины - это позволит вам попасть в DSM при зависании устройства при переполнении памяти.**</fc> |
| * Все ниже написанное относиться к Ubuntu Linux 20.04 LTS (Focal Fossa) и протестированы в августе 2022 года. | * Все ниже написанное относиться к Ubuntu Linux 20.04 LTS (Focal Fossa) и протестированы в августе 2022 года. |
| |
| createuser alisa | createuser alisa |
| </code> | </code> |
| {{:software:nas:osm_420_6.png|}} | {{:software:nas:osm_420_6.png|}}\\ |
| | если ошибки нет, то продолжаем установку |
| | ====Ошибка==== |
| | {{:software:nas:postgresql_0.png?|}} |
| | \\ |
| | перезапускаем postgresql |
| | <code> |
| | sudo service postgresql restart |
| | </code> |
| | {{:software:nas:postgresql_1.png?|}} |
| | \\ |
| | проверяем |
| | <code> |
| | pg_isready |
| | </code> |
| | {{:software:nas:postgresql_2.png?|}} |
| | \\ |
| | ответ "/var/run/postgresql:5432 - accepting connections" |
| | ====Продолжаем установку==== |
| <code> | <code> |
| createdb -E UTF8 -O alisa gis | createdb -E UTF8 -O alisa gis |
| </code> | </code> |
| {{:software:nas:osm_420_26.png|}} | {{:software:nas:osm_420_26.png|}} |
| | \\ |
| | **<fc #22b14c>Альтернативная ссылка</fc>** |
| | <code> |
| | git clone -b switch2osm https://git.wwoss.ru/root/mod_tile.git |
| | </code> |
| |
| <code> | <code> |
| {{:software:nas:osm_420_42.png|}} | {{:software:nas:osm_420_42.png|}} |
| \\ | \\ |
| | \\ |
| | **<fc #22b14c>Альтернативная ссылка</fc>** |
| | <code> |
| | git clone https://git.wwoss.ru/root/openstreetmap-carto.git |
| | </code> |
| клонируем репозитарий | клонируем репозитарий |
| \\ | \\ |
| {{:software:nas:osm_420_54.png|}} | {{:software:nas:osm_420_54.png|}} |
| \\ | \\ |
| | \\ |
| | **<fc #22b14c>Альтернативная ссылка wwoss.ru для всей планеты</fc>** |
| | <code> |
| | wget https://wwoss.ru/openstreetmap/planet-latest/planet-latest.osm.pbf |
| | </code> |
| * карта России размером 3,2Gb, процесс не быстрый, идем гулять пол часика с собачкой... | * карта России размером 3,2Gb, процесс не быстрый, идем гулять пол часика с собачкой... |
| * [[notes:nas:osmconvert|Слияние карт pbf]] | * [[:software:linux_server:osmconvert|Слияние карт pbf]] |
| \\ | \\ |
| {{:software:nas:osm_420_55.png|}} | {{:software:nas:osm_420_55.png|}} |
| \\ | \\ |
| Командные опции: | Командные опции: |
| * <color #22b14c>-d gis</color> | * <fc #22b14c>-d gis</fc> |
| * База данных, с которой нужно работать (раньше gis была по умолчанию, теперь нужно указать). | * База данных, с которой нужно работать (раньше gis была по умолчанию, теперь нужно указать). |
| * <color #22b14c>--create</color> | * <fc #22b14c>--create</fc> |
| * Загружает данные в пустую базу данных, а не пытается добавить их в существующую (иначе --append). | * Загружает данные в пустую базу данных, а не пытается добавить их в существующую (иначе --append). |
| * <color #22b14c>--slim</color> | * <fc #22b14c>--slim</fc> |
| * osm2pgsql может использовать разные макеты таблиц; «тонкие» таблицы работают для рендеринга. | * osm2pgsql может использовать разные макеты таблиц; «тонкие» таблицы работают для рендеринга. |
| * <color #22b14c>-G</color> | * <fc #22b14c>-G</fc> |
| * Определяет, как обрабатываются мультиполигоны. | * Определяет, как обрабатываются мультиполигоны. |
| * <color #22b14c>--hstore</color> | * <fc #22b14c>--hstore</fc> |
| * Позволяет тегам, для которых нет явных столбцов базы данных, использоваться для рендеринга. | * Позволяет тегам, для которых нет явных столбцов базы данных, использоваться для рендеринга. |
| * <color #22b14c>--tag-transform-script</color> | * <fc #22b14c>--tag-transform-script</fc> |
| * Определяет сценарий lua, используемый для обработки тегов. Это простой способ обработки тегов OSM до того, как их обработает сам стиль, что значительно упрощает логику стиля. | * Определяет сценарий lua, используемый для обработки тегов. Это простой способ обработки тегов OSM до того, как их обработает сам стиль, что значительно упрощает логику стиля. |
| * <color #22b14c>-C 4000</color> | * <fc #22b14c>-C 4000</fc> |
| * Выделено 4,0 Гб памяти osm2pgsql для процесса импорта. Если у вас меньше памяти, вы можете попробовать меньшее число, а если процесс импорта завершится из-за нехватки памяти, вам нужно будет попробовать меньшее число или меньший размер карты OSM. | * Выделено 4,0 Гб памяти osm2pgsql для процесса импорта. Если у вас меньше памяти, вы можете попробовать меньшее число, а если процесс импорта завершится из-за нехватки памяти, вам нужно будет попробовать меньшее число или меньший размер карты OSM. |
| * <color #22b14c>--number-processes 2</color> | * <fc #22b14c>--number-processes 2</fc> |
| * Используйте 2 ЦП. Если у вас есть больше доступных ядер, вы можете использовать больше. | * Используйте 2 ЦП. Если у вас есть больше доступных ядер, вы можете использовать больше. |
| * <color #22b14c>-S</color> | * <fc #22b14c>-S</fc> |
| * Создайте столбцы базы данных в этом файле (на самом деле они не изменились по сравнению с «openstreetmap-carto») | * Создайте столбцы базы данных в этом файле (на самом деле они не изменились по сравнению с «openstreetmap-carto») |
| * <color #22b14c>~/src/openstreetmap-carto/openstreetmap-carto.style ~/data/russia-latest.osm.pbf</color> | * <fc #22b14c>~/src/openstreetmap-carto/openstreetmap-carto.style ~/data/russia-latest.osm.pbf</fc> |
| * Место сохранения и файл данных для загрузки. | * Место сохранения и файл данных для загрузки. |
| смотрим монитор ресурсов Synology NAS | смотрим монитор ресурсов Synology NAS |
| sudo vi /usr/local/etc/renderd.conf | sudo vi /usr/local/etc/renderd.conf |
| </code> | </code> |
| * нажимаем **<color #22b14c>i</color>** и редактируем строку **<color #22b14c>XML=/home/renderaccount/src/openstreetmap-carto/mapnik.xml</color>** меняя **<color #7092be>renderaccount</color>** на имя своего пользователя (в нашем случае это - **<color #7092be>alisa</color>**) | * нажимаем **<fc #22b14c>i</fc>** и редактируем строку **<fc #22b14c>XML=/home/renderaccount/src/openstreetmap-carto/mapnik.xml</fc>** меняя **<fc #7092be>renderaccount</fc>** на имя своего пользователя (в нашем случае это - **<fc #7092be>alisa</fc>**) |
| * нажимаем последовательно **<color #22b14c>esc</color>** , **<color #22b14c>shift + :</color>** , **<color #22b14c>w</color>** , **<color #22b14c>q</color>** , **<color #22b14c>!</color>** для сохранения и выхода из редактора | * нажимаем последовательно **<fc #22b14c>esc</fc>** , **<fc #22b14c>shift + :</fc>** , **<fc #22b14c>w</fc>** , **<fc #22b14c>q</fc>** , **<fc #22b14c>!</fc>** для сохранения и выхода из редактора |
| {{:software:nas:osm_420_62.png|}} | {{:software:nas:osm_420_62.png|}} |
| * нажимаем **<color #22b14c>enter</color>** | * нажимаем **<fc #22b14c>enter</fc>** |
| |
| |
| |
| |
| * нажимаем **<color #22b14c>i</color>** и вставляем строку **<color #22b14c>LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so</color>** в тело файла (в нашем случае это пустой файл) | * нажимаем **<fc #22b14c>i</fc>** и вставляем строку **<fc #22b14c>LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so</fc>** в тело файла (в нашем случае это пустой файл) |
| * нажимаем последовательно **<color #22b14c>esc</color>** , **<color #22b14c>shift + :</color>** , **<color #22b14c>w</color>** , **<color #22b14c>q</color>** , **<color #22b14c>!</color>** для сохранения и выхода из редактора | * нажимаем последовательно **<fc #22b14c>esc</fc>** , **<fc #22b14c>shift + :</fc>** , **<fc #22b14c>w</fc>** , **<fc #22b14c>q</fc>** , **<fc #22b14c>!</fc>** для сохранения и выхода из редактора |
| {{:software:nas:osm_420_68.png|}} | {{:software:nas:osm_420_68.png|}} |
| * нажимаем **<color #22b14c>enter</color>** | * нажимаем **<fc #22b14c>enter</fc>** |
| |
| выполняем команду | выполняем команду |
| </code> | </code> |
| {{:software:nas:osm_420_71.png|}} | {{:software:nas:osm_420_71.png|}} |
| * вставляем следующие строки между строками <color #00a2e8>«ServerAdmin»</color> и <color #00a2e8>«DocumentRoot»</color> | * вставляем следующие строки между строками <fc #00a2e8>«ServerAdmin»</fc> и <fc #00a2e8>«DocumentRoot»</fc> |
| |
| <code> | <code> |
| </code> | </code> |
| |
| * нажимаем **<color #22b14c>i</color>** и вставляем строки в тело файла между строками <color #00a2e8>«ServerAdmin»</color> и <color #00a2e8>«DocumentRoot»</color> | * нажимаем **<fc #22b14c>i</fc>** и вставляем строки в тело файла между строками <fc #00a2e8>«ServerAdmin»</fc> и <fc #00a2e8>«DocumentRoot»</fc> |
| * нажимаем последовательно **<color #22b14c>esc</color>** , **<color #22b14c>shift + :</color>** , **<color #22b14c>w</color>** , **<color #22b14c>q</color>** , **<color #22b14c>!</color>** для сохранения и выхода из редактора | * нажимаем последовательно **<fc #22b14c>esc</fc>** , **<fc #22b14c>shift + :</fc>** , **<fc #22b14c>w</fc>** , **<fc #22b14c>q</fc>** , **<fc #22b14c>!</fc>** для сохранения и выхода из редактора |
| {{:software:nas:osm_420_72.png|}} | {{:software:nas:osm_420_72.png|}} |
| * нажимаем **<color #22b14c>enter</color>** | * нажимаем **<fc #22b14c>enter</fc>** |
| * дважды перезагрузите apache: | * дважды перезагрузите apache: |
| <code> | <code> |
| sudo service apache2 reload | sudo service apache2 start |
| sudo service apache2 reload | sudo service apache2 reload |
| </code> | </code> |
| * проверим наш Apache набрав в браузере адрес нашего виртуального сервера (в нашем случае: http://192.168.1.31/) | * проверим наш Apache набрав в браузере адрес нашего виртуального сервера (в нашем случае: http://192.168.1.31/) |
| {{:software:nas:osm_420_74.png?650|}} | {{:software:nas:osm_420_74.png?650|}} |
| * <color #ed1c24>Дальше не продолжаем если не дождались загрузки данных в базу и Создание индексов</color> | * <fc #ed1c24>Дальше не продолжаем если не дождались загрузки данных в базу и Создание индексов</fc> |
| =====Запуск рендера в первый раз===== | =====Запуск рендера в первый раз===== |
| запустим renderd, чтобы попытаться отрендерить некоторые плитки. Сначала мы запустим его на переднем плане, чтобы видеть любые ошибки по мере их возникновения: | запустим renderd, чтобы попытаться отрендерить некоторые плитки. Сначала мы запустим его на переднем плане, чтобы видеть любые ошибки по мере их возникновения: |
| {{:software:nas:osm_420_87.png?650|}} | {{:software:nas:osm_420_87.png?650|}} |
| |
| * Если все это работает, нажмите <color #00a2e8>control-c</color>, чтобы завершить процесс рендеринга переднего плана. | * Если все это работает, нажмите <fc #00a2e8>control-c</fc>, чтобы завершить процесс рендеринга переднего плана. |
| * <color #ed1c24>при возникновении необходимости остановить renderd</color> | * <fc #ed1c24>при возникновении необходимости остановить renderd</fc> |
| <code> | <code> |
| systemctl stop renderd | systemctl stop renderd |
| * на Synology DS720+ такого шока нет и все происходит быстрее в 3-4 раза | * на Synology DS720+ такого шока нет и все происходит быстрее в 3-4 раза |
| {{:software:nas:osm_420_86.png?650|}} | {{:software:nas:osm_420_86.png?650|}} |
| * <color #00a2e8>Не знаю почему, но при наличии папки renderd и прав на неё, система ругается на её отсутствие (проверено при 3х установках на Synology Nas. Повторно выполним эти команды...</color> | * <fc #00a2e8>Не знаю почему, но при наличии папки renderd и прав на неё, система ругается на её отсутствие (проверено при 3х установках на Synology Nas. Повторно выполним эти команды...</fc> |
| * создаем папку renderd | * создаем папку renderd |
| <code> | <code> |
| |
| |
| * нажимаем **<color #22b14c>i</color>** и меняем в строке RUNASUSER **<color #22b14c>renderaccount</color>** на ваше имя пользователя (в нашем случае это alisa) | * нажимаем **<fc #22b14c>i</fc>** и меняем в строке RUNASUSER **<fc #22b14c>renderaccount</fc>** на ваше имя пользователя (в нашем случае это alisa) |
| * нажимаем последовательно **<color #22b14c>esc</color>** , **<color #22b14c>shift + :</color>** , **<color #22b14c>w</color>** , **<color #22b14c>q</color>** , **<color #22b14c>!</color>** для сохранения и выхода из редактора | * нажимаем последовательно **<fc #22b14c>esc</fc>** , **<fc #22b14c>shift + :</fc>** , **<fc #22b14c>w</fc>** , **<fc #22b14c>q</fc>** , **<fc #22b14c>!</fc>** для сохранения и выхода из редактора |
| {{:software:nas:osm_420_91.png|}} | {{:software:nas:osm_420_91.png|}} |
| * нажимаем **<color #22b14c>enter</color>** | * нажимаем **<fc #22b14c>enter</fc>** |
| * скопируем это в системный каталог | * скопируем это в системный каталог |
| <code> | <code> |
| {{:software:nas:zoom_9.mp4|}} | {{:software:nas:zoom_9.mp4|}} |
| * в принципе, считаю проделанную работу, не плохим результатом! И OSM Tale Server имеет право существовать на устройстве Synology NAS DS 420+ для личного пользования или небольшой группы пользователей личного сервера OSM. | * в принципе, считаю проделанную работу, не плохим результатом! И OSM Tale Server имеет право существовать на устройстве Synology NAS DS 420+ для личного пользования или небольшой группы пользователей личного сервера OSM. |
| * Напомню, что данный Ubuntu Tile Server установлен на виртуальную машину Synology VMM на устройстве DS420+, где работает все, что было установлено ранее. Попробую переключить мой личный сайт https://book51.ru/ с картой и слоями на вновь созданный виртуальный сервер. | * Напомню, что данный Ubuntu Tile Server установлен на виртуальную машину Synology VMM на устройстве DS420+, где работает все, что было установлено ранее. Попробую переключить мой личный сайт https://wwoss.ru/ с картой и слоями на вновь созданный виртуальный сервер. |
| {{:software:nas:osm_420_98.png?650|}} | {{:software:nas:osm_420_98.png?650|}} |
| {{:software:nas:osm_420_99.png?650|}} | {{:software:nas:osm_420_99.png?650|}} |
| {{:software:nas:osm_420_101.png?650|}} | {{:software:nas:osm_420_101.png?650|}} |
| =====Файлы для загрузки===== | =====Файлы для загрузки===== |
| * {{ :nas:ubuntu-20.04.2-live-server-amd64.rar |Ubuntu Server 20.04.2 LTS}} | * {{ :software:nas:ubuntu-20.04.2-live-server-amd64.rar |Ubuntu Server 20.04.2 LTS}} |
| * {{ :software:nas:index.zip |html-файл для просмотра плиток}} | * {{ :software:nas:index.zip |html-файл для просмотра плиток}} |
| * {{ :software:nas:mod_tile-master.zip |Mod_tile: модуль веб-сервера Apache}} | * {{ :software:nas:mod_tile-master.zip |Mod_tile: модуль веб-сервера Apache}} |
| * {{ :software:nas:leaflet.zip |Leaflet — библиотека для интерактивных карт.}} | * {{ :software:nas:leaflet.zip |Leaflet — библиотека для интерактивных карт.}} |
| * {{ :software:nas:osm-carto-tutorials-gh-pages.zip |OSM Carto: стиль стандартного слоя листов OSM }} | * {{ :software:nas:osm-carto-tutorials-gh-pages.zip |OSM Carto: стиль стандартного слоя листов OSM }} |
| | * {{ :software:nas:water-polygons-split-3857.zip |water-polygons-split-3857.zip}} |
| | * {{ :software:nas:ne_110m_admin_0_boundary_lines_land.zip |ne_110m_admin_0_boundary_lines_land.zip}} |
| | * {{ :software:nas:antarctica-icesheet-outlines-3857.zip |antarctica-icesheet-outlines-3857.zip}} |
| | * {{ :software:nas:antarctica-icesheet-polygons-3857.zip |antarctica-icesheet-polygons-3857.zip}} |
| | * {{ :software:nas:simplified-water-polygons-split-3857.zip |simplified-water-polygons-split-3857.zip}} |
| | ====Карты OSM==== |
| | * {{ :software:nas:azerbaijan-latest.osm.pbf |azerbaijan-latest.osm.pbf}} |
| | * {{ :software:nas:russia-latest.osm.pbf |russia-latest.osm.pbf}} |
| | * {{ :software:nas:planet-240506.osm.pbf |planet-240506.osm.pbf}} |
| |
| |
| [[https://leafletjs.com/|Leaflet — библиотека JS для интерактивных карт.]] | [[https://leafletjs.com/|Leaflet — библиотека JS для интерактивных карт.]] |
| \\ | \\ |
| [[https://book51.ru/doku.php?id=notes:nas:osm_synology_vmm|Synology Open Street Map Server]] | [[https://wwoss.ru/doku.php?id=notes:nas:osm_synology_vmm|Synology Open Street Map Server]] |
| |