snapraid:configure_snapraid
Table of Contents
SnapRAID - Configure SnapRAID
Planning the SnapRAID Setup
Before configuring SnapRAID, consider:
- How many data disks?
- SnapRAID protects your data by storing parity on a separate drive, so you’ll need at least one data disk and one parity disk.
- How much parity?
- One parity disk protects against one drive failure, two parity disks protect against two failures, and so on.
- Which drives hold parity and content?
- The parity disk should have enough free space for the parity data, while your content should be spread across multiple data drives for better redundancy and organization.
Creating the SnapRAID Configuration File
The main configuration file for SnapRAID is /etc/snapraid.conf.
A basic configuration for three data disks and one parity disk looks like this:
- /etc/snapraid.conf
# Parity file - stored on the largest disk or a dedicated parity drive. parity /mnt/disk3/snapraid.parity # Content files - store metadata; should be on multiple drives for redundancy. content /mnt/disk1/snapraid.content content /mnt/disk2/snapraid.content # Data drives - these contain actual files. data d1 /mnt/disk1 data d2 /mnt/disk2 data d3 /mnt/disk3
NOTE: Notice that both disk1 and disk2 are used for content and data.
Key Points to Consider:
- Parity Drive: Should be the largest or have enough space for parity data.
- Content Files: Should be placed on multiple drives for redundancy.
- Data Drives: List each drive that stores actual files.
Additional SnapRAID Options
For better protection and logging, add:
- /etc/snapraid.conf
# Define the block size used for parity calculations (default is 256K). block_size 256 # Auto-save changes to the content file before syncing. autosave 300 # Enable scrub (data integrity check) with a limit on recovered errors. scrub_percent 10 scrub_recover 5
Comprehensive Config File
- /etc/snapraid.conf
# Example configuration for snapraid. # Defines the file to use as parity storage. # It must NOT be in a data disk. # Format: "parity FILE [,FILE] ...". parity /mnt/diskp/snapraid.parity # Defines the files to use as additional parity storage. # If specified, they enable multiple failures protection # from two to six level of parity. # To enable, uncomment one parity file for each level of extra # protection required. Start from 2-parity, and follow in order. # It must NOT be in a data disk. # Format: "X-parity FILE [,FILE] ..." #2-parity /mnt/diskq/snapraid.2-parity #3-parity /mnt/diskr/snapraid.3-parity #4-parity /mnt/disks/snapraid.4-parity #5-parity /mnt/diskt/snapraid.5-parity #6-parity /mnt/disku/snapraid.6-parity # Defines the files to use as content list. # You can use multiple specification to store more copies. # You must have least one copy for each parity file plus one. Some more do not hurt. # They can be in the disks used for data, parity or boot, # but each file must be in a different disk. # Format: "content FILE" content /var/snapraid.content content /mnt/disk1/snapraid.content content /mnt/disk2/snapraid.content # Defines the data disks to use. # The name and mount point association is relevant for parity, do not change it. # WARNING: Adding here your /home, /var or /tmp disks is NOT a good idea! # SnapRAID is better suited for files that rarely changes! # Format: "data DISK_NAME DISK_MOUNT_POINT". data d1 /mnt/disk1/ data d2 /mnt/disk2/ data d3 /mnt/disk3/ # Excludes hidden files and directories (uncomment to enable). #nohidden # Defines files and directories to exclude. # Remember that all the paths are relative at the mount points. # Format: "exclude FILE" # Format: "exclude DIR/" # Format: "exclude /PATH/FILE" # Format: "exclude /PATH/DIR/" exclude *.unrecoverable exclude /tmp/ exclude /lost+found/ # Defines the block size in kibi bytes (1024 bytes) (uncomment to enable). # WARNING: Changing this value is for experts only! # Default value is 256 -> 256 kibi bytes -> 262144 bytes. # Format: "blocksize SIZE_IN_KiB". #blocksize 256 # Defines the hash size in bytes (uncomment to enable). # WARNING: Changing this value is for experts only! # Default value is 16 -> 128 bits. # Format: "hashsize SIZE_IN_BYTES". #hashsize 16 # Automatically save the state when syncing after the specified amount # of GB processed (uncomment to enable). # This option is useful to avoid to restart from scratch long 'sync' # commands interrupted by a machine crash. # It also improves the recovering if a disk break during a 'sync'. # Default value is 0, meaning disabled. # Format: "autosave SIZE_IN_GB" #autosave 500 # Defines the pooling directory where the virtual view of the disk # array is created using the "pool" command (uncomment to enable). # The files are not really copied here, but just linked using # symbolic links. # This directory must be outside the array. # Format: "pool DIR" #pool /pool # Defines a custom smartctl command to obtain the SMART attributes # for each disk. This may be required for RAID controllers and for # some USB disk that cannot be autodetected. # In the specified options, the "%s" string is replaced by the device name. # Refers at the smartmontools documentation about the possible options: # RAID -> https://www.smartmontools.org/wiki/Supported_RAID-Controllers # USB -> https://www.smartmontools.org/wiki/Supported_USB-Devices #smartctl d1 -d sat %s #smartctl d2 -d usbjmicron %s #smartctl parity -d areca,1/1 /dev/sg0 #smartctl 2-parity -d areca,2/1 /dev/sg0
snapraid/configure_snapraid.txt · Last modified: 2025/04/29 12:07 by peter