ArchLinux-- OpenStreetMap瓦片服务器的新宿主

ArchLinux是近年来比较火的Linux滚动更新发行版。经过近一年多的测试、实验,笔者认为,ArchLinux尽管在许多地方略显激进,但仍旧适合做OSM数据渲染服务器使用。这里,和大家分享一下收获。
配置好的镜像文件可从 百度云盘下载7Z压缩包。该镜像已经对地名进行了汉化。

方案选取

为了架设一个快布式、可更新的环境,笔者做了大量测试,这里把基本构想说一说。

  1. 虚拟化。为了便于快速发布与测试,OSM瓦片服务应该是虚拟化的。这里,采用 Oracle Virtual Box 虚拟机作为基础工具。使用虚拟机的一大好处是“后悔药”,不断借助snapshot,支持回退到过去的还原点。另一大好处是快速部署,无论宿主是什么操作系统,直接拷贝过去就能运行。当然,坏处显而易见。首先,性能有损失,64GB内存,要留出8GB左右给宿主。其次,磁盘性能也有一些损失,但不是太大。
  2. 系统可更新。作为提供服务的操作系统,应该是可持续更新的。对OSM这类需要手工配置很多参数的服务器(特别是汉语翻译),重新安装一个发行版的代价很高。相对而言,使用滚动更新版的Archlinux,则代价较小。尽管滚动更新版会有滚挂的可能(很大程度上是因为内核更新与库更新不同步造成的),但虚拟机的Snapshot功能很好的避免了这个问题。如果滚挂了,直接恢复回去,隔几天再试,相关库已经跟上内核的版本,就OK了。
  3. 数据可更新。OpenStreetMap全球数据PBF格式2017年1月镜像达到34GB,以国内的网速条件,使用changeset保持实时更新是不现实的。首先,从国外站点下载34GB的镜像就需要数天,外加导入的时间,初始数据导入后,距离最新镜像已经有1个礼拜的时间差了。在switch2osm文章里也说到“Keeping the data up-to-date can be resource intense, in particular because after the import you may already be multiple days behind”。其次,changeset的下载和更新需要不断进行,这种实时更新对系统性能的消耗非常大。因此,笔者采取另一种模式,即定期重新导入。
  4. 系统、数据更新策略。保留一个未导入数据的纯净虚拟镜像,并不断滚动更新。每个季度或每半年,使用该镜像完整导入一次OSM数据。

性能与成本

为了在有限的成本下,完成数据的快速导入,需要一套较为合理的机器配置。性能较好的物理服务器动辄十几万,在公司账务比较吃紧的情况下,自己动手攒一台,还是不错的。这里给出笔者的配置。

器件型号预算
CPUIntel Core i7 6700K 4GHz2650
主板ASUS Z170 PRO GAMING1700
内存Kingston Fury DDR4 2400 64G (16GBx4)4600
系统盘SANDISK 240G550
数据盘SAMSUNG 850 EVO 1TB SATA32600
其他机箱、电源、散热、上架托盘等2000
合计不含显示器14100

在这个配置下,两块固态硬盘,分别存放虚拟机的 root、home分区、var\ database 分区

硬盘虚拟机VDI说明
SANDISK 240Groot.vdi根、home,存放 planet.OSM PBF及node缓存
SAMSUNG 850 EVOvar.vdi瓦片缓存,即存储栅格图像的分区
SAMSUNG 850 EVOdatabase.vdi数据库表空间
这样配置的好处是,两块固态硬盘分担了读写,性能堪比RAID.
导入时,osm2pgsql 使用三个重要参数
-C32000 提供32GB的临时缓存
–drop 不保留三个中间表,即planet_osm_nodes,planet_osm_ways,planet_osm_rels
–flat-nodes “./flat_node” 使用文件 flat_node 而不是数据库存放节点信息
进一步优化,导入全球数据仅耗时42737s

在完全导入后,进一步压缩VDI 的大小,任务就完成了。

效果截图

img-uzDFH0Zx-1657602246237]
img-jWRmVMfk-1657602246239]
img-pXnfrjCV-1657602246240]

部署说明

1、默认虚拟网络为NAT格式,内部IP 10.0.2.15 (DHCP)
2、适合自己的域名。默认没有域名,仅用机器名 archosm作为域名。因此,如果不修改,外部无法访问。详情及优化策略请参考虚拟计算机内部的桌面readme.

发布地址

http://www.goldenhawking.org:8088/如下(限于动态域名,可能访问不畅)。

离线地图_openstreetmap_postgresql_瓦片 离线地图_openstreetmap_postgresql_postgis_mapnik_osm2pgsql_osm数据 写于20150414 关于软件地址 事先说明这其实就是我全部放到百度网盘空间里了。 所以万一一不小心我手抖删了,请mail我。 haibinzhagncn@qq.com 软件包括 leaflet osm里面中国和台湾的数据 openlayers geoserver mabox_studio mapnik 和生成瓦片工具需要的前置包等 postgresql osm2pgsql postgis python 一次只能上传一份那我就少点多几份吧: 介绍(免积分) http://download.csdn.net/detail/a137015127302/8594877 如果懒得自己慢慢找,我想你不介意花点积分的吧。 1.postgreSql_1.&postgis_install http://download.csdn.net/detail/a137015127302/8594903 2.postgreSql_2.mapnik&python_install http://download.csdn.net/detail/a137015127302/8594915 3.postgreSql_3.环境变量配置_osm数据导入 http://download.csdn.net/detail/a137015127302/8594919 4.postgreSql_4.生成图片瓦片byMapnik http://download.csdn.net/detail/a137015127302/8594921 其他:postgreSql_psql_乱码问题 http://download.csdn.net/detail/a137015127302/8594937 上传什么的好烦-- 我再试一次要是还是不能上传我就不玩了。切~ 核心内容(英文版公开资料):http://wiki.openstreetmap.org/wiki/Creating_your_own_tiles 以下本人写的中文版本的核心:只要注意这个基本上就没什么大问题了。 当然你要是懒得自己一步一步走,我想你应该也不介意多花点积分的。 摘录 首先版本请用 postgresql-9.3.6-2-windows.exe + postgis-bundle-pg93x32-setup-2.1.5-1.exe 因为至少如果是 postgresql-9.4.1-3-windows.exe + postgis-bundle-pg94x32-setup-2.1.7-1.exe 存在sample数据库无法创建问题。 同时32位下中文客户端提示信息异常问题,你只能改为英文显示,但是又会有warn信息提示你与本地不符(很烦不是么) 所以结论最的未必就是最好的。 而且貌似他们已经开始放弃32位了。 还有这个2.1.7貌似是赶工出来的,因为提示信息写的是支援9.3而事实是否定的。 以上是我重装了n多遍的结论。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丁劲犇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值