Skip to content
Emanuel S edited this page May 3, 2021 · 20 revisions

Introduction

Plotman's (optional) archiving feature can be used to move plots from your plotter's dst directories to a remote destination (plot storage).

Machine set up

In order to set up archiving you need two machines:

  1. Plot Storage, a remote machine where all your plots should be sent to
  2. Plotter, local machine running plotman where your plots are created

We will start by setting up the Plot Storage and then configure everything on the Plotter.

1) Plot Storage (remote machine) set up

On your remote machine you need to make sure that all the storage drives are mounted, rsync daemon is running and SSH is set up to accept incoming connections from your Plotter.

Mount drives

Mount your drive's as you desire. In this tutorial the following mount points will be used:

/mnt/plots1
/mnt/plots2

Set up rsync daemon (rsyncd)

The remote machine should have the rsync daemon running and correctly configured. You can follow these steps in order to get that working:

  1. Install rsync (Ubuntu Server already comes with it installed)

  2. Create etc/rsyncd.conf:

lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
port = 12000                            # don't change this, plotman (as of version 0.2) has the port hard coded

[chia]                                  # rsync module name
    path = /mnt                         # Path with your mounted drives
    comment = Chia
    uid = username                      # Use the username that you log into Ubuntu with or create a new one
    gid = username                      # User group (by default same as username)
    read only = no
    list = yes
    #auth users = none                  # dont uncomment this, 
    #secrets file = none                # plotman does not work with authentication
    hosts allow = plotter.ip.address    # since we dont use auth only accept connections from plotter's ip
  1. Start rsync daemon by typing sudo systemctl start rsync

  2. If you automatically want the daemon to start after a reboot type: sudo systemctl enable rsync

Clarification about 'path' variable in rsyncd.conf

The path variable represents a path where all your storage drives are mount. So in our example in /mnt we have two drives mounted, namely plots1 and plots2.

Plotman will use any drive with available space mounted inside the path (e.g. /mnt). So if you have drives there that you don't want to put your plots on, you should put your plot drives inside a subfolder. Let's say we have

/mnt/plots1
/mnt/plots2
/mnt/usbthumbdrive

on our Plot Storage machine and we only want plotman to archive to plots1 and plots2, but not usbthumbdrive. In that case we need to move our mount points like this

/mnt/subdir/plots1
/mnt/subdir/plots2
/mnt/usbthumbdrive

and change the path variable to /mnt/subdir

If you only have a single drive mounted for archiving (e.g. /media/username/plots) your path should not point to /media/username/plots, but rather to /media/username

SSH configuration

Make sure you configure ssh in a way that you can connect from your Plotter without having to use a password or keyfile passphrase.

The best way to do this is to create a ssh-key without a passphrase on the Plotter and copy the public key to your Plot Storage.

2) Plotter set up

Update your plotman.yaml

Update the archive section of your plotman.yaml (Default Configuration File) file. In our example the config would look as follows:

archive:
        rsyncd_module: chia               # Module name specified in the Plot Storage's rsyncd.conf
        rsyncd_path: /mnt                 # Path where your storage drives are mounted (same as in rsyncd.conf)
        rsyncd_bwlimit: 100000            # Bandwidth limit in KB/s
        rsyncd_host: plot.storage.ip      # IP address or hostname of your Plot Storage
        rsyncd_user: username             # Username that can ssh into your Plot Storage

Test your setup / trouble shooting

Before starting plotman you should make sure that both SSH and rsync is set up correctly. If you can't successfully run the tests below, plotman's archiving will not work.

Make sure SSH is set up correctly

The machines should be set up in such a way that you can SSH from your Plotter to your Plot Storage without having to enter a password. In order to do this you should use a ssh public/private keypair that doesn't require entering a passphrase.

To test if you set this up correctly type the following command on your Plotter: ssh [email protected] df -aBK | grep /mnt

The command above should give you a list of all the mounted drives of your Plot Storage. If it doesn't, or if it asks for a password or a passphrase then SSH is not set up as required by plotman and archiving will not work.

Make sure rsync works

  1. Create a testfile on your Plotter using echo "testing" > testfile.test
  2. Enter the following on your Plotter: rsync -P testfile.test rsync://[email protected]:12000/chia/plots1
  3. Check your Plot Storage and make sure testfile.test exists in /mnt/plots1

Manually run plotman's rsync command

If both of the tests above pass but archiving still doesn't work, you can look at the rsync output in your console.

  1. Start plotman interactive
  2. Locate the rsync line in the Log section at the bottom of the screen, e.g.:

05-03 08:37:46 Starting archive: rsync --bwlimit=80000 --remove-source-files -P /mnt/dst1/plot-k32-2021-05-03-01-50-b4271f88a74b36b516c242151e00fdda20e3f31ce1f8624465bf05a195009ecd.plot rsync://[email protected]:12000/chia/plots2

  1. Copy the part after 05-03 08:37:46 Starting archive: . In our example that would be:
rsync --bwlimit=80000 --remove-source-files -P /mnt/plots1/plot-k32-2021-05-03-01-50-b4271f88a74b36b516c242151e00fdda20e3f31ce1f8624465bf05a195009ecd.plot rsync://[email protected]:12000/chia/plots2
  1. Run the command in your terminal and use the output for finding any errors you may have in your configuration.

Disable archiving in plotman

In order to disable archiving just completely comment out the corresponding archive: section in your .config/plotman/plotman.yaml

Clone this wiki locally