Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
blocks:server:mirror [2021-11-21 15:17] – Added some implementation notes admin | blocks:server:mirror [2025-10-01 09:53] (current) – [Introduction] admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Blocks Mirroring Service ====== | ====== Blocks Mirroring Service ====== | ||
- | Our Linux-based server | + | Our Linux-based server supports a hardware |
===== Introduction ===== | ===== Introduction ===== | ||
Line 21: | Line 21: | ||
However, if your Blocks server dies, and won't come back by turning power off and back on again, things are a bit more difficult. Assuming you have an up-to-date backup of your Blocks root directory, as well as other relevant server settings, you can replace the server with a new one, and bring it back to life using those backups. However, that may take a while to accomplish, rendering your entire Blocks installation non-functional in the meantime. | However, if your Blocks server dies, and won't come back by turning power off and back on again, things are a bit more difficult. Assuming you have an up-to-date backup of your Blocks root directory, as well as other relevant server settings, you can replace the server with a new one, and bring it back to life using those backups. However, that may take a while to accomplish, rendering your entire Blocks installation non-functional in the meantime. | ||
- | A better option is to have a spare server sitting in the rack all along, just as suggested for the main switch above. If you're sufficiently concerned about your system' | + | A better option is to have a spare server sitting in the rack all along, just as suggested for the main switch above. If you're sufficiently concerned about your system' |
{{ : | {{ : | ||
- | The new Blocks Mirroring Service will keep your spare computer up to date with any changes applied to Blocks. As soon as you make any changes, such as editing a block or adding a new spot, those changes are copied across to the mirror server. Note, in the illustration above, that the main Blocks server is still connected and used as it was in the stand-alone illustration shown at the beginning of this article. The Mirror server uses a //second// network port as a backdoor connection to your Blocks server. This backdoor is used as a secure channel for copying all changes across as the system runs. | + | The Blocks Mirroring Service will keep your spare computer up to date with any changes applied to Blocks. As soon as you make any changes, such as editing a block or adding a new spot, those changes are copied across to the mirror server. Note, in the illustration above, that the main Blocks server is still connected and used as it was in the stand-alone illustration shown at the beginning of this article. The Mirror server uses a //second// network port as a backdoor connection to your Blocks server. This backdoor is used as a secure channel for copying all changes across as the system runs. |
Furthermore, | Furthermore, | ||
Line 268: | Line 268: | ||
* Server Disk Space. Indicates the amount of free space on the Blocks Server itself. This also makes sens to keep an eye on – especially before adding a significant amount of new content. | * Server Disk Space. Indicates the amount of free space on the Blocks Server itself. This also makes sens to keep an eye on – especially before adding a significant amount of new content. | ||
* Server Time. Shows the current time of the clock in the Blocks Server. If your server has Internet access, this is generally adjusted automatically. If not, you may want to check this every few monts to make sure that it is reasonably accurate. | * Server Time. Shows the current time of the clock in the Blocks Server. If your server has Internet access, this is generally adjusted automatically. If not, you may want to check this every few monts to make sure that it is reasonably accurate. | ||
+ | * Sync Errors. Cumulative count of data sync errors that have occurred, if any. Check the Mirror log file for details. | ||
- | The SYNCHRONIZE NOW button can be used to force a full synchronization. Use this after making manual changes to the files in the / | + | The " |
===== Testing the Mirror Server ===== | ===== Testing the Mirror Server ===== | ||
Line 327: | Line 328: | ||
* Set fullSyncOnStartup to //true// to run a full synchronization once when mirroring service is started. | * Set fullSyncOnStartup to //true// to run a full synchronization once when mirroring service is started. | ||
* Set java.util.logging.FileHandler.level to //ERROR// for less verbose logging, or //INFO// for more details (sometimes useful when troubleshooting). | * Set java.util.logging.FileHandler.level to //ERROR// for less verbose logging, or //INFO// for more details (sometimes useful when troubleshooting). | ||
+ | |||
+ | The following additional, advanced settings are available in version 7.1 and later, then specified under the " | ||
+ | |||
+ | < | ||
+ | interface: enp2s0 | ||
+ | subnet: 192.168.0.0/ | ||
+ | </ | ||
+ | |||
+ | :!: **NOTE**: There are two spaces at the beginning of each line, as required when used under the " | ||
+ | |||
+ | * The // | ||
+ | * The //subnet// setting lets you specify a non link local subnet (in CIDR notation) for use as the data synchronization backdoor. This is useful in cases where you may want to use this interface for other purposes, such as remote management of the servers. You would then either set fixed addresses (within the specified subnet) or use dynamically assigned addresses (DHCP). | ||
+ | |||
The settings under //logging// follow the java.util.logging standard, sometimes referred to as JUL, allowing you to use any settings available there, for example to log to an external log handler. | The settings under //logging// follow the java.util.logging standard, sometimes referred to as JUL, allowing you to use any settings available there, for example to log to an external log handler. | ||
+ | |||
+ | |||
+ | =====Troubleshooting===== | ||
+ | Unless the advanced //subnet// setting is used (see above), the server-to-server backdoor connection assumes the use of self-assigned ("link local" | ||
+ | * Disable any such interface(s). in some cases this may need to be done in the computer' | ||
+ | * Change their addresses to keep them out of this address range. | ||
+ | * Use the advanced // | ||
+ | |||
+ | === Verifying over SSH === | ||
+ | The mirroring service shows its status window while running, as described above. If you're accessing your server using a terminal session over SSH, you can instead use this command to ascertain whether the mirroring service is running, while being logged in as the pixi-server user: | ||
+ | |||
+ | < | ||
+ | systemctl --user status blocks.mirror | ||
+ | </ | ||
+ | |||
+ | === Custom path to Blocks' | ||
+ | The Mirror service assumes that the main Blocks executable file (named " | ||
=====Implementation Notes===== | =====Implementation Notes===== | ||
Line 347: | Line 378: | ||
===Starting/ | ===Starting/ | ||
- | The Linux //systemd// feature is used to start and manage most programs that aren't started manually. This includes Blocks as well as the Mirroring service. You can see how this is done inside the start.sh and stop.sh scripts located in the home directory of the pixi-server user. When //not// using the mirroring service, systemd directly starts and manages Blocks. | + | The Linux [[https://en.wikipedia.org/wiki/Systemd|systemd]] |
- | However, when using the mirroring service, systemd starts the mirroring service (referred to by the name // | + | However, when using the mirroring service, |
- | + | ||
- | ===Troubleshooting=== | + | |
- | The mirroring service shows its status window while running, as described above. If you're accessing your server using a terminal session over SSH, you can instead use this command to ascertain whether the mirroring service is running, while being logged in as the pixi-server user: | + | |
- | + | ||
- | < | + | |
- | systemctl --user status blocks.mirror | + | |
- | </ | + | |
The mirroring service also generates its own log, found in the logs directory inside your Blocks root directory. Check these log files if you encounter any problems related to the mirroring service. | The mirroring service also generates its own log, found in the logs directory inside your Blocks root directory. Check these log files if you encounter any problems related to the mirroring service. |