Results 1 to 20 of 20

Thread: Data corruption durning data xfer between PATA & SATA drives??

Hybrid View

  1. #1
    Xtreme Addict
    Join Date
    Jul 2006
    Posts
    1,124
    Remember that the areca volume check is a raid-array verification. I.e. it DOES NOT VERIFY DATA. It verifies that the parity is the correct calculation of the bits in the data stripe width. Ie. It has no idea if the file itself is correct (it doesn't even know if a file or even a filesystem is there). It just sees if the bits match and if not (like with raid 3/4/5) is like flipping a coin, it will (usually user choice at check time) either 'assume' the data is good _or_ the parity is good and 'fix' the other. Which could actually be destroying it. Remember that RAID is for availability _not_ data integrity.

    for a real-simple md5 check under linux you can use this early version of a script I have here (the current one is very convoluted and not generic enough to be of real use for you (like I said no time to really clean things up) ). Anyway it can get you started.

    Code:
    #!/bin/bash
    
    ##
    # Filesystem MD5 Check (low level drive & file checking)
    ##
    ##
    # Requirements:
    #
    # md5sum
    # find
    ##
    
    # Set argument variables & usage
    MNTPNT=$1
    CHECK=$2
    IGNORE=$3
    
    usage ()
    {
            echo -e "usage: `basename $0` MOUNTPOINT [create|check] {IGNOREDIR}\n"
    }
    
    # Get arguments
    
    if [ -z "${MNTPNT}" ]; then
            usage
            exit 1
    fi
    
    
    
    # Set static variables
    CURDATE=`date +%Y%m%d`
    OLDDATE=`date +%Y%m`"01"
    OUTDIR="/var/log/md5sum"
    OLDIFS="$IFS"
    IFS="
    "
    
    
    # CHECK/Verify MD5SUM function
    if [ "${CHECK}" = "check" ]; then
       if [ -f "$OUTDIR/md5sum.$OLDDATE" ]; then
          md5sum -c "$OUTDIR/md5sum.$OLDDATE" | grep -v ": OK" >> $OUTDIR/md5check.$CURDATE
       else
          echo "ERR: old md5sum file does not exist"
       fi
    fi
    
    # Create MD5SUM Function
    if [ "${CHECK}" = "create" ]; then
       if [ -z "${IGNORE}" ]; then
          for FILE in `find "${MNTPNT}" -type f -print0 | xargs -0 -i echo -e -n "{}\n"` ; do
             md5sum -b "$FILE" >> $OUTDIR/md5sum.$CURDATE
          done
       else
          for FILE in `find "${MNTPNT}" -type f -print0 | xargs -0 -i echo -e -n "{}\n" | grep -v $IGNORE` ; do
             md5sum -b "$FILE" >> $OUTDIR/md5sum.$CURDATE
          done
       fi
    fi
    As for other tools, nothing really besides what you write yourself (or at least nothing that I've really found anywhere and that includes home, PC, workstation, midrange (unix/as400) and mainframes. The industry seems to really have blinders on and I have no idea why.
    Last edited by stevecs; 02-10-2008 at 01:04 AM.

    |.Server/Storage System.............|.Gaming/Work System..............................|.Sundry...... ............|
    |.Supermico X8DTH-6f................|.Asus Z9PE-D8 WS.................................|.HP LP3065 30"LCD Monitor.|
    |.(2) Xeon X5690....................|.2xE5-2643 v2....................................|.Mino lta magicolor 7450..|
    |.(192GB) Samsung PC10600 ECC.......|.2xEVGA nVidia GTX670 4GB........................|.Nikon coolscan 9000......|
    |.800W Redundant PSU................|.(8x8GB) Kingston DDR3-1600 ECC..................|.Quantum LTO-4HH..........|
    |.NEC Slimline DVD RW DL............|.Corsair AX1200..................................|........ .................|
    |.(..6) LSI 9200-8e HBAs............|.Lite-On iHBS112.................................|.Dell D820 Laptop.........|
    |.(..8) ST9300653SS (300GB) (RAID0).|.PA120.3, Apogee, MCW N&S bridge.................|...2.33Ghz; 8GB Ram;......|
    |.(112) ST2000DL003 (2TB) (RAIDZ2)..|.(1) Areca ARC1880ix-8 512MiB Cache..............|...DVDRW; 128GB SSD.......|
    |.(..2) ST9146803SS (146GB) (RAID-1)|.(8) Intel SSD 520 240GB (RAID6).................|...Ubuntu 12.04 64bit.....|
    |.Ubuntu 12.04 64bit Server.........|.Windows 7 x64 Pro...............................|............... ..........|

  2. #2
    Xtreme Infrastructure Eng
    Join Date
    Feb 2004
    Posts
    1,184
    Thank you very much for sharing your code. It will definitely give me at least some peace of mind and hopefully a better understanding of the concepts.

    When you mentioned the volume check earlier I assumed it was referring to an actual partition and not the RAID volume. Microsoft refers to partitions as volumes...MCSE training getting in the way again...

    OT question: If I'm using 3 500GB disks on an ARC-1210 can I create two distinct arrays? For example, use 750GB as RAID-5 and 250GB as RAID-1? If its possible, what is the impact on performance? It seems like it would have to utilize the OS a lot more as it would deal directly with a file system or partition instead of just the block device as a whole.
    Less is more.

Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •