======OSM Tile Server XPE NAS DS 2422+ SSD VMM====== =====Введение===== Оборудование * **[[hardware:motherboard_supermicro_h11ssl-i|Материнская плата Supermicro MBD-H11SSL-I]]** * **[[hardware:cpu_amd_epyc_7551p_oem|Процессор AMD EPYC™ 7551P OEM]]** * **[[hardware:m2_ssd_samsung_970_evo_plus|Raid5 массив 1tb SSD M.2 Samsung 970 EVO Plus]]** * **[[hardware:ddr4_ecc_reg_64gb|256GB DDR4 3200MHz DIMM ECC Reg Micron]]** * **[[software:linux_server:ubuntu_server|ОС Ubuntu Server 20.04 LTS]]** * Основное ПО сервера **XPEnology NAS DS2422+** c установленным 32 ядерным серверным процессором и 4 модулями оперативной памяти **DIMM ECC** по 64GB с настроенной Synology VMM и установленной на виртуальной машине ОС Ubuntu Server 20.04 LTS. Так же установлено 3 диска SSD M.2 в Raid5 массив. * [[software:nas:synology_vmm|-Установка и настройка Synology Virtual Machine Manager (VMM) Synology DS420+]]. * [[software:linux_server:ubuntu_server|-Установка Ubuntu 20.04 LTS Server на виртуальную машину (VMM) Synology DS420+]]. * В целом, для среднего города понадобится 10-20gb памяти на жестком диске, 4gb ram и процессор не менее двух ядер. Если же нужна вся планета, необходимо предоставить более 1tb на ssd диске, 36gb ram и 8core процессор. * Предполагается, что при выделенных под VMM ресурсах (AMD EPYC™ 7551P 16*2,00 GHz / 2*64gb ddr4 3200MHz DIMM ECC Reg / 3*1tb hdd raid5 1том) процессор будет загружаться при рендере на 40-50%, при учете того, что будет выделено 128gb виртуальной памяти и теоретическом задействовании всего 10% от этого объема. * Все ниже написанное относиться к Ubuntu Linux 20.04 LTS (Focal Fossa) и запущенно в работу в августе 2024 года. =====Подготовка оборудавания===== * 3*1000 ГБ SSD M.2 накопитель [[hardware:m2_ssd_samsung_970_evo_plus|Samsung 970 EVO Plus [MZ-V7S1T0BW]]] установлены в [[hardware:adapter_c300_m2_pci-e_nvme|переходники PCI-E x 4 - M.2 NVMe SSD C300E]] с алюминиевыми SSD M2[[hardware:radiator_ssd_m2|радиаторами охлаждения]] в RAID5 для картографического сервера. * 3*2tb hdd [[https://www.dns-shop.ru/product/fe308d6209da1b80/2-tb-zestkij-disk-wd-red-intellipower-wd20efax/|WD Red IntelliPower [WD20EFAX]]] и 3*1tb hdd [[https://www.dns-shop.ru/product/5bbf61a4f3238499/1-tb-zestkij-disk-wd-red-intellipower-wd10efrx/?utm_medium=organic&utm_source=google&utm_referrer=https%3A%2F%2Fwww.google.com%2F|WD Red IntelliPower [WD10EFRX]]] собраны в RAID SHR и предназначены для зеркалирования необходимых репозиториев, установлены в [[hardware:rack_hdd_8|вертикальную полку]]. * 2*8tb hdd[[hardware:hdd_8tb_seagate_ironwolf_pro_st8000ne001|Seagate Ironwolf Pro]] в RAID1 для основного "backup" хранилища. После физического монтажа всех комплектующих переходим к настройке сервера. ====nvme ssd в качестве тома хранилища==== Проверяем диски в DSM {{:software:nas:raid_5_m2_nvme_1.png?|}} В DSM разрешаем подключение по ssh и подключаемся через программу [[software:nas:putty|Putty]] к серверу. Форматируем наши диски и создаем из них массив. mdadm --create /dev/md5 --level=5 --raid-devices=3 --force /dev/nvme0n1p3 /dev/nvme1n1p3 /dev/nvme2n1p3 {{:software:nas:raid_5_m2_nvme_2.png?|}} [[software:nas:nas_ds720_nvme_ssd_as_storage_volume|См. подробную статью о nvme ssd в качестве тома хранилища на Synology NAS]] \\ {{:software:nas:raid_5_m2_nvme_3.png?|}} {{:software:nas:raid_5_m2_nvme_4.png?|}} {{:software:nas:raid_5_m2_nvme_5.png?|}} =====Общая теория===== * Tile Server OSM представляет собой набор программ и библиотек, которые работают вместе для создания тайлового (плиточного) сервера. Он состоит из 5 основных компонентов: mod_tile, renderd, mapnik, osm2pgsql и базы данных postgresql/postgis. Mod_tile — это модуль apache, который обслуживает кэшированные тайлы и решает, какие тайлы нуждаются в повторном рендеринге — либо потому, что они еще не кэшированы, либо потому, что они устарели. Mapnik — это программная библиотека, которая осуществляет реальный рендеринг с использованием открытого рендеринга. * Предполагается, что вы запускаете все от пользователя без регистрации root через «sudo». Имя пользователя без root, повторяемое по умолчанию, — «alisa». Если вы указываете иного пользователя, то вам необходимо будет заменить во всех командах на свое имя и добавить его в группу пользователей, которые могут использовать sudo для получения root-прав. Из вашей обычной учетной записи пользователя без регистрации root. =====Установка необходимых библиотек===== Итак, приступим: sudo apt install libboost-all-dev git tar unzip wget bzip2 build-essential autoconf libtool libxml2-dev libgeos-dev libgeos++-dev libpq-dev libbz2-dev libproj-dev munin-node munin protobuf-c-compiler libfreetype6-dev libtiff5-dev libicu-dev libgdal-dev libcairo2-dev libcairomm-1.0-dev apache2 apache2-dev libagg-dev liblua5.2-dev ttf-unifont lua5.1 liblua5.1-0-dev {{:software:nas:osm_420_1.png|}} \\ Подтверждаем \\ {{:software:nas:osm_420_2.png|}} \\ Процесс достаточно продолжительный и можно попить кофейку... =====Установка postgresql/postgis===== В Ubuntu есть предварительно упакованные версии как postgis, так и postgresql, поэтому их можно просто установить через диспетчер пакетов Ubuntu. \\ sudo apt install postgresql postgresql-contrib postgis postgresql-12-postgis-3 postgresql-12-postgis-3-scripts {{:software:nas:osm_420_3.png|}} \\ Здесь «postgresql» — это база данных, в которой мы собираемся хранить данные карты, а «postgis» добавляет к ней дополнительную графическую поддержку. Снова скажите «Yes» для установки. \\ {{:software:nas:osm_420_4.png|}} \\ Создаем базу данных postgis. По умолчанию в различных программах предполагается, что база данных называется gis, и тут мы будем использовать то же соглашение, хотя это и не обязательно. Замените свое имя пользователя вместо alisa, где это используется ниже. Это должно быть имя пользователя, которое будет отображать карты с помощью Mapnik. sudo -u postgres -i {{:software:nas:osm_420_5.png|}} createuser alisa {{:software:nas:osm_420_6.png|}}\\ если ошибки нет, то продолжаем установку ====Ошибка==== {{:software:nas:postgresql_0.png?|}} \\ перезапускаем postgresql sudo service postgresql restart {{:software:nas:postgresql_1.png?|}} \\ проверяем pg_isready {{:software:nas:postgresql_2.png?|}} \\ ответ "/var/run/postgresql:5432 - accepting connections" ====Продолжаем установку==== createdb -E UTF8 -O alisa gis {{:software:nas:osm_420_7.png|}} \\ Продолжая работать как пользователь «postgres», настройте PostGIS в б PostgreSQL (опять же, меняя alisa на свое имя пользователя ниже): \\ psql {{:software:nas:osm_420_8.png|}} \\ (ответ «postgres=#») \c gis {{:software:nas:osm_420_9.png|}} \\ (ответ: “You are now connected to database ‘gis’ as user ‘postgres’”.) CREATE EXTENSION postgis; {{:software:nas:osm_420_10.png|}} \\ (ответ CREATE EXTENSION) CREATE EXTENSION hstore; {{:software:nas:osm_420_11.png|}} \\ (ответ CREATE EXTENSION) ALTER TABLE geometry_columns OWNER TO alisa; {{:software:nas:osm_420_12.png|}} \\ (ответ ALTER TABLE) ALTER TABLE spatial_ref_sys OWNER TO alisa; {{:software:nas:osm_420_13.png|}} \\ (ответ ALTER TABLE) \q {{:software:nas:osm_420_14.png|}} \\ (выход из psql и приглашение к Linux) exit {{:software:nas:osm_420_15.png|}} \\ (это вернет нас к пользователю, которым мы были до того, как сделали «sudo -u postgres -i» выше) \\ Если вы еще не создали пользователя, создайте пользователя Unix и для этого пользователя, выбрав пароль при появлении запроса: sudo useradd -m alisa {{:software:nas:osm_420_16.png|}} sudo passwd alisa {{:software:nas:osm_420_17.png|}} \\ Опять же, выше замените “alisa” на имя пользователя без регистрации root, которого вы выбрали. =====Установка osm2pgsql===== Далее мы установим osm2pgsql: sudo apt install osm2pgsql {{:software:nas:osm_420_18.png|}} \\ Ошибок обычно быть не должно =====Mapnik===== Далее мы установим Mapnik, используя версию по умолчанию в Ubuntu 20.04: sudo apt install autoconf apache2-dev libtool libxml2-dev libbz2-dev libgeos-dev libgeos++-dev libproj-dev gdal-bin libmapnik-dev mapnik-utils python3-mapnik python3-psycopg2 python3-yaml {{:software:nas:osm_420_19.png|}} \\ c подтверждением yes при установке \\ {{:software:nas:osm_420_20.png|}} \\ Проверим правильность установки Mapnik: python3 {{:software:nas:osm_420_21.png|}} import mapnik {{:software:nas:osm_420_22.png|}} \\ (Ответ: >>> и без ошибок, то библиотека Mapnik была найдена Python.) quit() {{:software:nas:osm_420_23.png|}} \\ выход =====Установка mod_tile и render===== * Далее мы установим mod_tile и renderd. «mod_tile» — это модуль Apache, который обрабатывает запросы на тайлы; «render» — это демон, который фактически отображает тайлы, когда «mod_tile» их запрашивает. Мы будем использовать ветку «switch2osm» * https://github.com/SomeoneElseOSM/mod_tile, которая сама является ответвлением * https://github.com/openstreetmap/mod_tile, но модифицирована для поддержки Ubuntu 20.04 и с пара других изменений для работы на стандартном сервере Ubuntu, а не на одном из серверов рендеринга OSM. ====Скомпилируем исходный код mod_tile==== Создадим в домашнем каталоге папку src mkdir ~/src {{:software:nas:osm_420_24.png|}} \\ и перейдем в эту папку cd ~/src {{:software:nas:osm_420_25.png|}} git clone -b switch2osm https://github.com/SomeoneElseOSM/mod_tile.git {{:software:nas:osm_420_26.png|}} cd mod_tile перейдя в каталог mod_tile \\ {{:software:nas:osm_420_27.png|}} ./autogen.sh {{:software:nas:osm_420_28.png|}} \\ (это должно закончится “autoreconf: Leaving directory ‘.’”.) \\ {{:software:nas:osm_420_29.png|}} \\ (в предыдущих установках мне приходилось проделывать это 2 раза для создания папки mod_tile в директории src) \\ {{:software:nas:osm_420_30.png|}} ./configure {{:software:nas:osm_420_31.png|}} \\ (это должно закончится “config.status: executing libtool commands”) \\ {{:software:nas:osm_420_32.png|}} make {{:software:nas:osm_420_33.png|}} \\ Обратите внимание, что здесь некоторые «тревожные» сообщения будут прокручиваться вверх по экрану. Однако это должно заканчиваться на «make[1]: Leaving directory '/home/alisa/src/mod_tile'» \\ {{:software:nas:osm_420_34.png|}} sudo make install {{:software:nas:osm_420_35.png|}} \\ (это должно закончиться «make[1]: выход из каталога должно быть '/home/alisa/src/mod_tile'») \\ {{:software:nas:osm_420_36.png|}} sudo make install-mod_tile {{:software:nas:osm_420_37.png|}} \\ (это должно закончиться «chmod 644 /usr/lib/apache2/modules/mod_tile.so») \\ {{:software:nas:osm_420_38.png|}} sudo ldconfig {{:software:nas:osm_420_39.png|}} \\ (без ответа) \\ {{:software:nas:osm_420_40.png|}} =====Конфигурация таблицы стилей===== * Теперь, когда все необходимое программное обеспечение установлено, вам нужно загрузить и настроить таблицу стилей. * Здесь мы будем использовать тот же стиль, что и на «стандартной» карте на веб-сайте openstreetmap.org. * Переходим в домашний каталог. cd ~/src {{:software:nas:osm_420_41.png|}} git clone https://github.com/gravitystorm/openstreetmap-carto {{:software:nas:osm_420_42.png|}} \\ клонируем репозитарий \\ {{:software:nas:osm_420_43.png|}} \\ переходим в каталог openstreetmap-carto cd openstreetmap-carto {{:software:nas:osm_420_44.png|}} \\ установим подходящую версию компилятора «carto». sudo apt install npm {{:software:nas:osm_420_45.png|}} \\ подтверждаем установку "y" \\ {{:software:nas:osm_420_46.png|}} \\ размер в 600mb, т.ч. перекур \\ sudo npm install -g carto {{:software:nas:osm_420_47.png|}} carto -v {{:software:nas:osm_420_48.png|}} \\ Это должно ответить номером версии, которая должна быть не меньше: 1.2.0 \\ {{:software:nas:osm_420_49.png|}} \\ преобразуем проект carto во что-то, понятное Mapnik: carto project.mml > mapnik.xml {{:software:nas:osm_420_50.png|}} \\ Теперь у вас есть таблица стиля Mapnik XML в /home/alisa/src/openstreetmap-carto/mapnik.xml. \\ {{:software:nas:osm_420_51.png|}} =====Загрузка данных===== в домашнем каталоге создаем папку data mkdir ~/data {{:software:nas:osm_420_52.png|}} \\ и переходим в эту папку cd ~/data {{:software:nas:osm_420_53.png|}} \\ на странице загрузки http://download.geofabrik.de/ выбираем нужную нам карту для и копируем с кнопки ее ссылку wget http://download.geofabrik.de/russia-latest.osm.pbf {{:software:nas:osm_420_54.png|}} \\ * карта России размером 3,2Gb, процесс не быстрый, идем гулять пол часика с собачкой... * [[:software:linux_server:osmconvert|Слияние карт pbf]] \\ {{:software:nas:osm_420_55.png|}} \\ У кого собачки нет, том может для примера загрузить карту Азербайджана размером 32Mb... wget https://download.geofabrik.de/asia/azerbaijan-latest.osm.pbf Следующая команда вставит загруженные ранее данные OpenStreetMap в базу данных. Этот шаг очень интенсивно использует дисковый ввод-вывод; импорт всей планеты может занять много часов, дней или недель в зависимости от аппаратного обеспечения. cd ~/data osm2pgsql -d gis --create --slim -G --hstore --tag-transform-script ~/src/openstreetmap-carto/openstreetmap-carto.lua -C 4000 --number-processes 2 -S ~/src/openstreetmap-carto/openstreetmap-carto.style ~/data/russia-latest.osm.pbf {{:software:nas:osm_420_56.png|}} **Обратите внимание на параметр -c (--create) при импорте через osm2pgsql. С этим параметром удалится вся существующая информация с таблиц.** cd ~/data osm2pgsql -d gis --append --slim -G --hstore --tag-transform-script ~/src/openstreetmap-carto/openstreetmap-carto.lua -C 4000 --number-processes 2 -S ~/src/openstreetmap-carto/openstreetmap-carto.style ~/data/russia-latest.osm.pbf **Если вам необходимо сделать импорт ещё нескольких стран, то вместо -c указывайте параметр -a (--append).** \\ Командные опции: * -d gis * База данных, с которой нужно работать (раньше gis была по умолчанию, теперь нужно указать). * --create * Загружает данные в пустую базу данных, а не пытается добавить их в существующую (иначе --append). * --slim * osm2pgsql может использовать разные макеты таблиц; «тонкие» таблицы работают для рендеринга. * -G * Определяет, как обрабатываются мультиполигоны. * --hstore * Позволяет тегам, для которых нет явных столбцов базы данных, использоваться для рендеринга. * --tag-transform-script * Определяет сценарий lua, используемый для обработки тегов. Это простой способ обработки тегов OSM до того, как их обработает сам стиль, что значительно упрощает логику стиля. * -C 4000 * Выделено 4,0 Гб памяти osm2pgsql для процесса импорта. Если у вас меньше памяти, вы можете попробовать меньшее число, а если процесс импорта завершится из-за нехватки памяти, вам нужно будет попробовать меньшее число или меньший размер карты OSM. * --number-processes 2 * Используйте 2 ЦП. Если у вас есть больше доступных ядер, вы можете использовать больше. * -S * Создайте столбцы базы данных в этом файле (на самом деле они не изменились по сравнению с «openstreetmap-carto») * ~/src/openstreetmap-carto/openstreetmap-carto.style ~/data/russia-latest.osm.pbf * Место сохранения и файл данных для загрузки. смотрим монитор ресурсов Synology NAS \\ {{:software:nas:osm_420_57.png?650|}} \\ * Команда загрузки должна завершится чем-то вроде «Osm2pgsql в целом занял 34583 секунд». {{:software:nas:osm_420_75.png|}} * Пока идет загрузка карты размером 3,2gb (которая по факту заняла 07 часов 23 минуты), перейдем к разделу Шрифты, открыв второе окно подключения к серверу. =====Создание индексов===== * Начиная с версии v5.3.0 некоторые дополнительные индексы теперь необходимо применять вручную . * переходим в папку openstreetmap-carto cd ~/src/openstreetmap-carto/ {{:software:nas:osm_420_76.png|}} * запускаем команду создание индексов psql -d gis -f indexes.sql {{:software:nas:osm_420_77.png|}} * (ответ: «CREATE INDEX» 15 раз.) {{:software:nas:osm_420_79.png|}} * заняло примерно 29 минут с ожидаемой нагрузкой {{:software:nas:osm_420_78.png?650|}} =====Загрузка Shape-файла===== * Shape-файл — векторный формат для хранения объектов, описываемых геометрией и сопутствующими атрибутами. * Несмотря на то, что большая часть данных для создания карты, берется из данных OpenStreetMap, загружается не все, некоторые шейп-файлы для таких вещей, как границы стран с малым масштабированием, по-прежнему необходимы. Чтобы загрузить и проиндексировать их: * переходим в папку openstreetmap-carto cd ~/src/openstreetmap-carto/ {{:software:nas:osm_420_80.png|}} scripts/get-external-data.py {{:software:nas:osm_420_81.png|}} * Этот процесс включает в себя загрузку и требует некоторого времени — во время работы на экране мало что освещает. На самом деле он загружает таблица водных полигонов и прочее и заполняет каталог «data» ниже «openstreetmap-carto». * это занято примерно 47 минут при прогнозируемой загрузке системы {{:software:nas:osm_420_82.png?650|}} =====Шрифты===== переходим в каталог openstreetmap-carto в папке src cd ~/src/openstreetmap-carto/ {{:software:nas:osm_420_58.png|}} \\ и собственно загружаем шрифты scripts/get-fonts.sh {{:software:nas:osm_420_59.png|}} \\ процесс занял 6 минут \\ {{:software:nas:osm_420_60.png|}} =====Настройка веб-сервера===== ====визуализация==== Отрываем с помощью текстового редактора vi файл конфигурации для «render» — «/usr/local/etc/renderd.conf» sudo vi /usr/local/etc/renderd.conf * нажимаем **i** и редактируем строку **XML=/home/renderaccount/src/openstreetmap-carto/mapnik.xml** меняя **renderaccount** на имя своего пользователя (в нашем случае это - **alisa**) * нажимаем последовательно **esc** , **shift + :** , **w** , **q** , **!** для сохранения и выхода из редактора {{:software:nas:osm_420_62.png|}} * нажимаем **enter** =====Настройка Apache===== создаем папку mod_tile sudo mkdir /var/lib/mod_tile {{:software:nas:osm_420_63.png|}} \\ задаем права пользователя для этой папки sudo chown alisa /var/lib/mod_tile {{:software:nas:osm_420_64.png|}} \\ создаем папку renderd sudo mkdir /var/run/renderd {{:software:nas:osm_420_65.png|}} \\ задаем права пользователя для этой папки sudo chown alisa /var/run/renderd {{:software:nas:osm_420_66.png|}} \\ сообщаем Apache о «mod_tile» редактируя файл mod_tile.conf добавляя следующую строку LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so sudo vi /etc/apache2/conf-available/mod_tile.conf {{:software:nas:osm_420_67.png|}} \\ * нажимаем **i** и вставляем строку **LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so** в тело файла (в нашем случае это пустой файл) * нажимаем последовательно **esc** , **shift + :** , **w** , **q** , **!** для сохранения и выхода из редактора {{:software:nas:osm_420_68.png|}} * нажимаем **enter** выполняем команду sudo a2enconf mod_tile {{:software:nas:osm_420_69.png|}} * сообщение о необходимости перезапуска Apache «systemctl reload apache2», чтобы активировать новую конфигурацию; мы пока не будем этого делать. {{:software:nas:osm_420_70.png|}} * сообщаем Apache о «renderd» * открываем в редакторе файл 000-default.conf sudo vi /etc/apache2/sites-available/000-default.conf {{:software:nas:osm_420_71.png|}} * вставляем следующие строки между строками «ServerAdmin» и «DocumentRoot» LoadTileConfigFile /usr/local/etc/renderd.conf ModTileRenderdSocketName /var/run/renderd/renderd.sock # Timeout before giving up for a tile to be rendered ModTileRequestTimeout 0 # Timeout before giving up for a tile to be rendered that is otherwise missing ModTileMissingRequestTimeout 30 * нажимаем **i** и вставляем строки в тело файла между строками «ServerAdmin» и «DocumentRoot» * нажимаем последовательно **esc** , **shift + :** , **w** , **q** , **!** для сохранения и выхода из редактора {{:software:nas:osm_420_72.png|}} * нажимаем **enter** * дважды перезагрузите apache: sudo service apache2 reload sudo service apache2 reload {{:software:nas:osm_420_73.png|}} * проверим наш Apache набрав в браузере адрес нашего виртуального сервера (в нашем случае: http://192.168.1.31/) {{:software:nas:osm_420_74.png?650|}} * Дальше не продолжаем если не дождались загрузки данных в базу и Создание индексов =====Запуск рендера в первый раз===== запустим renderd, чтобы попытаться отрендерить некоторые плитки. Сначала мы запустим его на переднем плане, чтобы видеть любые ошибки по мере их возникновения: sudo -u 'alisa' renderd -f -c /usr/local/etc/renderd.conf {{:software:nas:osm_420_83.png|}} * Откройте веб-браузер по адресу: http://yourserveripaddress/hot/0/0/0.png (в нашем случае http://192.168.1.31/hot/0/0/0.png) {{:software:nas:osm_420_87.png?650|}} * Если все это работает, нажмите control-c, чтобы завершить процесс рендеринга переднего плана. * при возникновении необходимости остановить renderd systemctl stop renderd * иногда рендер идет с командой, т.е. без sudo -u 'alisa' renderd -f -c /usr/local/etc/renderd.conf * процессор был недолго в шоке * на Synology DS720+ такого шока нет и все происходит быстрее в 3-4 раза {{:software:nas:osm_420_86.png?650|}} * Не знаю почему, но при наличии папки renderd и прав на неё, система ругается на её отсутствие (проверено при 3х установках на Synology Nas. Повторно выполним эти команды... * создаем папку renderd sudo mkdir /var/run/renderd {{:software:nas:osm_420_65.png|}} \\ задаем права пользователя для этой папки sudo chown alisa /var/run/renderd {{:software:nas:osm_420_66.png|}} \\ =====Запуск рендера в фоновом режиме===== Далее мы настроим «рендеринг» для работы в фоновом режиме. Отредактируем файл «~/src/mod_tile/debian/renderd.init», чтобы «RUNASUSER» был установлен для учетной записи без имени root, который мы использовали ранее, например «alisa», и скопируем его в системный каталог. откроем файл в редакторе vi ~/src/mod_tile/debian/renderd.init * нажимаем **i** и меняем в строке RUNASUSER **renderaccount** на ваше имя пользователя (в нашем случае это alisa) * нажимаем последовательно **esc** , **shift + :** , **w** , **q** , **!** для сохранения и выхода из редактора {{:software:nas:osm_420_91.png|}} * нажимаем **enter** * скопируем это в системный каталог sudo cp ~/src/mod_tile/debian/renderd.init /etc/init.d/renderd {{:software:nas:osm_420_92.png|}} sudo chmod u+x /etc/init.d/renderd {{:software:nas:osm_420_93.png|}} sudo cp ~/src/mod_tile/debian/renderd.service /lib/systemd/system/ {{:software:nas:osm_420_94.png|}} * Файл «render.service» является служебным файлом «systemd». Используемая здесь версия просто вызывает команды инициализации в старом стиле. Чтобы проверить, что команда запуска работает: sudo /etc/init.d/renderd start {{:software:nas:osm_420_95.png|}} * (ответить «Starting renderd (через systemctl): renderd.service».) {{:software:nas:osm_420_96.png|}} * Чтобы это запускалось автоматически каждый раз: sudo systemctl enable renderd {{:software:nas:osm_420_97.png|}} =====Просмотр тайлов (плиток)===== для просмотра плитки, используйте html-файл «sample_leaflet.html» в папке «extra» mod_tile или загрузите zip архив с этим файлом внизу страницы. Просто откройте его в веб-браузере на машине, где вы установили тайловый сервер. Если это невозможно, потому что вы устанавливаете на сервер без локального веб-браузера, вы можете отредактировать его, заменив «127.0.0.1» IP-адресом сервера и скопировав его ниже «/var/www/html». Мы запускаем его по сети с указанием IP-адреса виртуального сервера NAS Synology (192.168.1.31) =====Пример загрузки карты==== * Начало работы и загрузка 0 level zoom карты России {{:software:nas:osm_420_88.png?650|}} * маленькое видео, как за 1 час происходит визуальный рендеринг 9 level zoom карты России на 3,2gb на устройстве Synology Nas DS420+. Стоит перематывать и смотреть загрузку процессора, так как память неизменна в 80%. Уровни с 1 по 4 пишутся в кэш за 15-20 минут... 8 уровень около 30 минут... Ну а 9 на видео.. немногим более часа визуальный рендеринг карты России за 1 час на 9 уровне зума. Напомню что установлена дополнительная планка памяти на 8gb. {{:software:nas:zoom_9.mp4|}} * в принципе, считаю проделанную работу, не плохим результатом! И OSM Tale Server имеет право существовать на устройстве Synology NAS DS 420+ для личного пользования или небольшой группы пользователей личного сервера OSM. * Напомню, что данный Ubuntu Tile Server установлен на виртуальную машину Synology VMM на устройстве DS420+, где работает все, что было установлено ранее. Попробую переключить мой личный сайт https://book51.ru/ с картой и слоями на вновь созданный виртуальный сервер. {{:software:nas:osm_420_98.png?650|}} {{:software:nas:osm_420_99.png?650|}} {{:software:nas:osm_420_100.png?650|}} * Загрузка Synolody DS420+ при работающем OSM Tile Server на Synology VMM (8gb VMM не дает установить система, поэтому стоит 6gb) {{:software:nas:osm_420_102.png?650|}} * Для сравнения аналогичная работа OSM Tile Server на Synology VMM на Synolody DS720+ и загрузка процессора {{:software:nas:osm_420_101.png?650|}} =====Файлы для загрузки===== * {{ :software:nas:ubuntu-20.04.2-live-server-amd64.rar |Ubuntu Server 20.04.2 LTS}} * {{ :software:nas:index.zip |html-файл для просмотра плиток}} * {{ :software:nas:mod_tile-master.zip |Mod_tile: модуль веб-сервера Apache}} * {{ :software:nas:leaflet.zip |Leaflet — библиотека для интерактивных карт.}} * {{ :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://switch2osm-org.translate.goog/serving-tiles/manually-building-a-tile-server-20-04-lts/?_x_tr_sl=en&_x_tr_tl=ru&_x_tr_hl=ru&_x_tr_pto=sc|Создание тайлового сервера вручную (20.04 LTS)]] \\ [[https://help.ubuntu.ru/wiki/%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F|Ubuntu 20.04 LTS: пользовательская документация]] \\ [[https://osm2pgsql.org/|OSM2PGSQL: импортер данных OSM в базу данных PostgreSQL/PostGIS]] \\ [[https://www.postgresql.org/|PostgreSQL: база данных с открытым исходным кодом]] \\ [[https://wiki.openstreetmap.org/wiki/RU:Mapnik|Mapnik: отрисовка основного Slippy Map слоя для OSM]] \\ [[https://ircama.github.io/osm-carto-tutorials/|OSM Carto: стиль стандартного слоя листов OSM]] \\ [[https://github.com/openstreetmap/mod_tile|Mod_tile: передача кэшированных тайлов]] \\ [[https://leafletjs.com/|Leaflet — библиотека JS для интерактивных карт.]] \\ [[https://book51.ru/doku.php?id=notes:nas:osm_synology_vmm|Synology Open Street Map Server]]