我正在嘗試在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