I am currently running geth mist on Linux with an SSD and would like to move some (or all) of the chain data to an external drive to conserve space.
I understand there is a command line option to move the data directory:
geth --datadir <path to data directory>
My concerns are
- Will implementing this now slow syncing due to the external drive being much slower than my internal SSD?
- Will it cause a re-sync of the entire blockchain?
Currently, I run the following script on my bitcoin blocks directory and it avoids both of those issues by keeping high throughput data on the SSD and moving large, but less frequently accessed data, to the external drive.
#!/bin/bash
set -e
BLK_TARGET=/mnt/ssd/core/blocks #Replace with your destination, no trailing slash
find . -name '*.dat' -type f -printf '%f\n' > tomove
while read line; do
echo $line
mv "$line" "$BLK_TARGET/$line"
ln -s "$BLK_TARGET/$line" "$line"
done <tomove
rm tomove
echo Done
When I tried similar on the Ethereum Network it triggered a re-sync of the entire chain.
Can anyone recommend a similar process for Ethereum's geth client or appease my two concerns?
Current directory sizes on my SSD are:
:~$ du -sh .ethereum/*
37G .ethereum/geth
0 .ethereum/geth.ipc
12K .ethereum/history
28K .ethereum/keystore