osm2pgsql导入失败,“无法从节点缓存中读取:输入/输出错误”
我正在尝试在AWS EC2上导入整个行星的OSM数据。期间或之后可能的 “方式” 处理I收到以下消息:osm2pgsql导入失败,“无法从节点缓存中读取:输入/输出错误”
"Failed to read from node cache: Input/output error"
的EC2具有以下规格:
类型:i3.xlarge
存储器:30.5千兆
的vCPU: 4
PostgreSQL的:v9.5.6
PostGIS的:2.2
除了根卷,我已经搭载900GB SSD和2TB HHD(高吞吐量)。 Postgresql数据目录位于HHD上。我已命令osm2pgsql
将扁平节点文件写入SSD。
这是我的osm2pgsql
命令:
osm2pgsql -c -d gis --number-processes 4 --slim -C 20000 --flat-nodes /data-cache/flat-node-cache/flat.nodes /data-postgres/planet-latest.osm.pbf
我运行上述命令作为用户renderaccount
即下列基团renderaccount ubuntu postgres
的成员。该flat-nodes
文件似乎在/data-cache/flat-node-cache/flat.nodes
成功地创建并拥有此配置文件:
[email protected]:/data-cache/flat-node-cache$ ls -l
total 37281800
-rw------- 1 renderaccount renderaccount 38176555024 Apr 13 05:45 flat.nodes
有没有人遇到和解决的还是这个?我怀疑可能是一个权限问题?我注意到,自从最后一次osm2pgsql发生故障以来,作为flat-nodes
文件目标的已安装SSD已转换为“只读”文件系统 - 听起来像在安装卷上发生I/O错误时可能会发生(?)。
另外,是否osm2pgsql写入日志,我可以获得额外的信息?
UPDATE:dmesg
输出:
[ 6206.884412] blk_update_request: I/O error, dev nvme0n1, sector 66250752
[ 6206.890813] EXT4-fs warning (device nvme0n1): ext4_end_bio:329: I/O error -5 writing to inode 14024706 (offset 10871640064 size 8388608 starting block 8281600)
[ 6206.890817] Buffer I/O error on device nvme0n1, logical block 8281344
研究上面的输出后,似乎这可能是一个错误在Ubuntu 16.04。 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1668129?comments=all
这是Ubuntu 16.04写入卷nvme0n1
的错误。由此解决https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1668129/comments/29