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

来源:互联网 发布:梦幻花园无法加载 网络 编辑:程序博客网 时间:2024/04/30 21:20

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数据。

性能与成本

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

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

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

硬盘 虚拟机VDI 说明 SANDISK 240G root.vdi 根、home,存放 planet.OSM PBF及node缓存 SAMSUNG 850 EVO var.vdi 瓦片缓存,即存储栅格图像的分区 SAMSUNG 850 EVO database.vdi 数据库表空间

这样配置的好处是,两块固态硬盘分担了读写,性能堪比RAID.
导入时,osm2pgsql 使用三个重要参数
-C32000 提供32GB的临时缓存
–drop 不保留三个中间表,即planet_osm_nodes,planet_osm_ways,planet_osm_rels
–flat-nodes “./flat_node” 使用文件 flat_node 而不是数据库存放节点信息
进一步优化,导入全球数据仅耗时42737s

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

效果截图

运行界面
欧洲
老美

部署说明

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

发布地址

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

1 0
原创粉丝点击