Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
blocks:server:mirror [2024-10-22 09:34]
admin ↷ Links adapted because of a move operation
blocks:server:mirror [2025-02-13 20:01] (current)
admin Added Sync Errors note
Line 1: Line 1:
 ====== Blocks Mirroring Service ====== ====== Blocks Mirroring Service ======
  
-Our Linux-based server (dated 2020-05-25 and later, running Ubuntu 20.04), supports a redundancy feature for increased system reliability. While the Blocks server software is very robust, the complete system can never be more reliable than the hardware it runs on.+Our Linux-based server supports a hardware redundancy feature for increased system reliability. While the Blocks server software is very robust, the complete system can never be more reliable than the hardware it runs on.
  
 ===== Introduction ===== ===== Introduction =====
Line 13: Line 13:
 The first thing you should do if any of these components appear to not function is to make sure they're actually on. You may also connect a computer directly to the main switch and try to log in to your Blocks system from there. If that works, the problem is downstream from the main switch, such as in a secondary switch further out or in the player device. The first thing you should do if any of these components appear to not function is to make sure they're actually on. You may also connect a computer directly to the main switch and try to log in to your Blocks system from there. If that works, the problem is downstream from the main switch, such as in a secondary switch further out or in the player device.
  
-Once you determined that power's //on// and you can't reach Blocks even from a computer plugged into the main switch, the next step is typically to power down the server computer, wait a minute then power it up again. While waiting, also power-cycle the main switch. If this restores full functionality, you should take a look at the server [[blocks:server:advanced_server_configuration-pre-7#viewing_logs|log files]] to see if they give any clue to what happened. The problem may have been caused by some software error, or some intermittent hardware error.+Once you determined that power's //on// and you can't reach Blocks even from a computer plugged into the main switch, the next step is typically to power down the server computer, wait a minute then power it up again. While waiting, also power-cycle the main switch. If this restores full functionality, you should take a look at the server [[blocks:server:advanced_server_configuration#viewing_logs|log files]] to see if they give any clue to what happened. The problem may have been caused by some software error, or some intermittent hardware error.
  
 If you suspect that the main switch is the culprit, replace it with another similar switch, then restart the Blocks server, to see if the problem goes away. Having a backup switch ready to go in the rack may be a good idea to safeguard against such problems. If you suspect that the main switch is the culprit, replace it with another similar switch, then restart the Blocks server, to see if the problem goes away. Having a backup switch ready to go in the rack may be a good idea to safeguard against such problems.
Line 69: Line 69:
 {{ :blocks:server:mirror:linklocal.png?nolink |}} {{ :blocks:server:mirror:linklocal.png?nolink |}}
  
-Restart your server to make sure that everything still works as before. Then use the [[blocks:server:advanced_server_configuration-pre-7#configuring_blocks_server_options|option select]] command to select the mirror mode:+Restart your server to make sure that everything still works as before. Then use the [[blocks:server:advanced_server_configuration#configuring_blocks_server_options|option select]] command to select the mirror mode:
  
 <code> <code>
Line 135: Line 135:
 ===== Cloning the Blocks Server ===== ===== Cloning the Blocks Server =====
  
-Once you have configured your main Blocks Server as described above and have it all working as desired, it's time to make the Mirror Server by cloning the Blocks server. This is done using a program called Clonezilla. Read [[blocks:server:creating_a_server-pre-7#prepare_clonezilla_usb_stick| this article]] on getting started with Clonezilla.+Once you have configured your main Blocks Server as described above and have it all working as desired, it's time to make the Mirror Server by cloning the Blocks server. This is done using a program called Clonezilla. Read [[blocks:server:creating_a_server#prepare_clonezilla_usb_stick| this article]] on getting started with Clonezilla.
  
 You'll also need a second USB storage device. This may be a USB stick with enough room to store the actively used data from your Blocks server's disk. Or it may be an external USB disk drive. This storage device must be formatted as FAT32 or NTFS. You'll also need a second USB storage device. This may be a USB stick with enough room to store the actively used data from your Blocks server's disk. Or it may be an external USB disk drive. This storage device must be formatted as FAT32 or NTFS.
Line 231: Line 231:
 The computer will shut down automatically once a clone has been made. Remove the USB sticks/drives. Restart your Blocks server and make sure it comes back OK. If it doesn't, re-enter its BIOS settings and set it back to start from its internal drive.  The computer will shut down automatically once a clone has been made. Remove the USB sticks/drives. Restart your Blocks server and make sure it comes back OK. If it doesn't, re-enter its BIOS settings and set it back to start from its internal drive. 
  
-[[blocks:server:creating_a_server-pre-7#writing_the_server_image_to_the_ssd|This guide]] describes how to write the image to your Mirror Server, thus making it an exact copy of your Blocks server. Store your clone image for safekeeping. It contains a complete snapshot of your Blocks server at this point in time, thus acting as a full backup.+[[blocks:server:creating_a_server#writing_the_server_image_to_the_ssd|This guide]] describes how to write the image to your Mirror Server, thus making it an exact copy of your Blocks server. Store your clone image for safekeeping. It contains a complete snapshot of your Blocks server at this point in time, thus acting as a full backup.
  
  
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 /home/pixi-server directory of the Blocks server, such as updating Blocks itself or the mirroring service (the files PIXILAN.jar and MIRROR.jar respectvely). Doing so pushes those changes over to the Mirror Server immediately rather than waiting for the next scheduled full synchronization.+The "Synchtronize Now" button can be used to force a full synchronization. Use this after making manual changes to the files in the /home/pixi-server directory of the Blocks server, such as updating Blocks itself or the mirroring service (the files PIXILAN.jar and MIRROR.jar respectvely). Doing so pushes those changes over to the Mirror Server immediately rather than waiting for the next scheduled full synchronization.
  
 ===== Testing the Mirror Server ===== ===== Testing the Mirror Server =====
Line 328: Line 329:
   * 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 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 following additional, advanced settings are available in version 7.1 and later, then specified under the "mirror:" heading as shown above
  
 +<code>
 +  interface: enp2s0
 +  subnet: 192.168.0.0/24
 +</code>
  
-=====Troubleshooting===== +:!: **NOTE**: There are two spaces at the beginning of each lineas required when used under the "mirror:" heading.
-The server-to-server connection relies on that connection using self-assigned ("link local") addresses. Such adresses are in the 169.254.x.x address range. There must not be any other network interfaces in either computer having such IP addresses. If there aremake sure you disable any such interfaces, or change their address to keep them out of this address range+
  
-Some server class computers have a built in remote management network interface that may then also appear in Linux, often with such a 169.254.x.x address. You may not be able to disable or change the address of such a network interface in LinuxInstead, you can disable this in the computer'remote management settingsHere's a screenshot giving and example of how this is done on a Supermicro server.+  * The //interface// setting is useful if your computer have more than one network interface with link local addressingIf so, use this setting to specify the name of the desired synchronization backdoor network interface
 +  * The //subnet// setting lets you specify a non link local subnet (in CIDR notation) for use as the data synchronization backdoorThis is useful in cases where you may want to use this interface for other purposes, such as remote management of the serversYou would then either set fixed addresses (within the specified subnet) or use dynamically assigned addresses (DHCP).
  
-{{ :blocks:server:mirror:disable-bmc-nic-for-host-os.png?direct&600 |}} 
  
 +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") addresses. Such adresses are in the 169.254.x.x address range. There must not be any additional network interfaces in either computer having such IP addresses. If there are, do either of the following:
 +  * Disable any such interface(s). in some cases this may need to be done in the computer's BIOS settings.
 +  * Change their addresses to keep them out of this address range.
 +  * Use the advanced //nic// setting to specify which interface to use. 
    
 === Verifying over SSH === === Verifying over SSH ===