admin
1
XFS
XFS is used as the underlying file system for Minio disks.
1. Error Handling
A benefit of XFS is its fine grain control of how errors can be handled
2. External Journal
Using external journal can speed up write operations
External Journal must be used in all Infinite Disk deployments.
3. Maintenance Tools
xfs_scrub
xfs_repair
- offline check and repair XFS
xfs_db
- defragment XFS with
-c frag
admin
2
mdadm
3-way mirror is used to protect the XFS external journal device.
Creation Script
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=3 /dev/sdX /dev/sdY /dev/sdZ
Maintenance Script
cron script to check and repair mdadm mirror frequently.
#!/bin/bash
# Config
ARRAY="/dev/md0"
LOG="/var/log/mdadm-scrub.log"
HOSTNAME=$(hostname)
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
EMAIL="your@email.com" # <-- Change to your real email
# Start scrub (check)
echo "[$TIMESTAMP] Starting RAID scrub (check) on $ARRAY" >> "$LOG"
echo check > "/sys/block/$(basename $ARRAY)/md/sync_action"
# Wait for scrub to finish
while [ "$(cat /sys/block/$(basename $ARRAY)/md/sync_action)" != "idle" ]; do
sleep 10
done
# Check mismatch count
MISMATCHES=$(cat /sys/block/$(basename $ARRAY)/md/mismatch_cnt)
if [ "$MISMATCHES" -eq 0 ]; then
echo "[$TIMESTAMP] Scrub completed — no mismatches." >> "$LOG"
else
echo "[$TIMESTAMP] Scrub found $MISMATCHES mismatched blocks!" >> "$LOG"
# Send email alert
if [ -n "$EMAIL" ]; then
echo -e "RAID1 scrub on $ARRAY at $HOSTNAME found $MISMATCHES mismatched blocks.\nProceeding with automatic repair.\nCheck $LOG for details." | \
mail -s "RAID Scrub Alert on $HOSTNAME" "$EMAIL"
fi
# Start repair
REPAIR_TIME=$(date '+%Y-%m-%d %H:%M:%S')
echo "[$REPAIR_TIME] Starting RAID repair on $ARRAY" >> "$LOG"
echo repair > "/sys/block/$(basename $ARRAY)/md/sync_action"
# Wait for repair to finish
while [ "$(cat /sys/block/$(basename $ARRAY)/md/sync_action)" != "idle" ]; do
sleep 10
done
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Repair completed." >> "$LOG"
fi