Initial support for seeding zfs blocks/chainstate.
This commit is contained in:
parent
c661ac0be9
commit
c1997837af
@ -27,11 +27,11 @@ else
|
|||||||
# TODO move this sovereign-stack-base construction VM to separate dedicated IP
|
# TODO move this sovereign-stack-base construction VM to separate dedicated IP
|
||||||
lxc config set "$BASE_IMAGE_VM_NAME"
|
lxc config set "$BASE_IMAGE_VM_NAME"
|
||||||
|
|
||||||
# for CHAIN in mainnet testnet; do
|
for CHAIN in mainnet testnet; do
|
||||||
# for DATA in blocks chainstate; do
|
for DATA in blocks chainstate; do
|
||||||
# lxc storage volume attach ss-base "$CHAIN-$DATA" "$BASE_IMAGE_VM_NAME" "/home/ubuntu/$CHAIN/$DATA"
|
lxc storage volume attach ss-base "$CHAIN-$DATA" "$BASE_IMAGE_VM_NAME" "/home/ubuntu/.ss/cache/bitcoin/$CHAIN/$DATA"
|
||||||
# done
|
done
|
||||||
# done
|
done
|
||||||
|
|
||||||
lxc start "$BASE_IMAGE_VM_NAME"
|
lxc start "$BASE_IMAGE_VM_NAME"
|
||||||
|
|
||||||
@ -43,14 +43,23 @@ else
|
|||||||
# ensure the ssh service is listening at localhost
|
# ensure the ssh service is listening at localhost
|
||||||
lxc exec "$BASE_IMAGE_VM_NAME" -- wait-for-it -t 100 127.0.0.1:22
|
lxc exec "$BASE_IMAGE_VM_NAME" -- wait-for-it -t 100 127.0.0.1:22
|
||||||
|
|
||||||
sleep 3
|
# If we have any chaninstate or blocks in our SSME, let's push them to the
|
||||||
|
# remote host as a zfs volume that way deployments can share a common history
|
||||||
|
# of chainstate/blocks.
|
||||||
# for CHAIN in testnet mainnet; do
|
for CHAIN in testnet mainnet; do
|
||||||
# for DATA in blocks chainstate; do
|
for DATA in blocks chainstate; do
|
||||||
# lxc file push --recursive --project=default "/home/ubuntu/.ss/cache/bitcoin/$CHAIN/$DATA/" "$BASE_IMAGE_VM_NAME/home/ubuntu/$CHAIN/$DATA/"
|
DATA_PATH="/home/ubuntu/.ss/cache/bitcoin/$CHAIN/$DATA"
|
||||||
# done
|
if [ -d "$DATA_PATH" ]; then
|
||||||
# done
|
COMPLETE_FILE_PATH="$DATA_PATH/complete"
|
||||||
|
if lxc exec "$BASE_IMAGE_VM_NAME" -- [ ! -f "$COMPLETE_FILE_PATH" ]; then
|
||||||
|
lxc file push --recursive --project=default "$DATA_PATH/" "$BASE_IMAGE_VM_NAME/home/ubuntu/.ss/cache/bitcoin/$CHAIN/$DATA/"
|
||||||
|
lxc exec "$BASE_IMAGE_VM_NAME" -- su ubuntu - bash -c "echo $(date) > $COMPLETE_FILE_PATH"
|
||||||
|
else
|
||||||
|
echo "INFO: it appears as though $CHAIN/$DATA has already been initialized. Continuing."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
# stop the VM and get a snapshot.
|
# stop the VM and get a snapshot.
|
||||||
lxc stop "$BASE_IMAGE_VM_NAME"
|
lxc stop "$BASE_IMAGE_VM_NAME"
|
||||||
@ -63,3 +72,10 @@ lxc publish --public "$BASE_IMAGE_VM_NAME/$UBUNTU_BASE_IMAGE_NAME" --project=def
|
|||||||
|
|
||||||
echo "INFO: Success! We can now delete the base image."
|
echo "INFO: Success! We can now delete the base image."
|
||||||
lxc delete -f "$BASE_IMAGE_VM_NAME"
|
lxc delete -f "$BASE_IMAGE_VM_NAME"
|
||||||
|
|
||||||
|
# now let's get a snapshot of each of the blocks/chainstate directories.
|
||||||
|
for CHAIN in testnet mainnet; do
|
||||||
|
for DATA in blocks chainstate; do
|
||||||
|
lxc storage volume snapshot ss-base --project=default "$CHAIN-$DATA"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
Loading…
Reference in New Issue
Block a user