yesn 发表于 2018-5-12 06:44:51

Create Soft Raid On RedHat Linux


[*]#!/bin/sh
[*]#
[*]#Author:jacky.lee
[*]#date:2010/4/17
[*]#This scripts create soft raid 0,1,5,6,10
[*]#The test platform on redhat linux.                                                                        
[*]#define main function
[*]main () {
[*]    clear
[*]    echo '          ------------------------------------------------------          '
[*]    echo '          1.Create a software raid array          '
[*]    echo '          2.View raid array sync status         '
[*]    echo '          3.View raid array detail            '
[*]    echo '          4.Create mdadm.conf file            '
[*]    echo '          5.Add hotspare device on raid array   '
[*]    echo '          6.Replace a fault device on raid array      '
[*]    echo '          7.Delete a software raid array          '
[*]    echo '          8.Renaming a raid array             '
[*]    echo '          9.Resync raid array             '
[*]    echo '          q,exit                      '
[*]    echo '          ------------------------------------------------------          '   
[*]    while true
[*]      do
[*]      echo -n "   Please choice :"
[*]      read choice
[*]      case $choice in
[*]            1)
[*]            create_raid
[*]            sleep 10
[*]            clear
[*]            main
[*]            ;;
[*]            2)
[*]            view_sync
[*]            clear
[*]            main
[*]            ;;
[*]            3)
[*]            view_detail
[*]            sleep 10
[*]            clear
[*]            main
[*]            ;;
[*]            4)
[*]            create_configure_file
[*]            sleep 3
[*]            clear
[*]            main
[*]            ;;
[*]            5)
[*]            add_hot
[*]            sleep 10
[*]            clear
[*]            main
[*]            ;;
[*]            6)
[*]            view_detail
[*]            sleep 5
[*]            rep_dev
[*]            clear
[*]            main
[*]            ;;
[*]            7)
[*]            del_rd
[*]            clear
[*]            main
[*]            ;;
[*]            8)
[*]            ren_rd
[*]            view_detail
[*]            sleep 5
[*]            clear
[*]            main
[*]            ;;
[*]            9)
[*]            res_rd
[*]            clear
[*]            view_sync
[*]            clear
[*]            main
[*]            ;;
[*]            q)
[*]            exit
[*]            ;;
[*]      esac
[*]      done
[*]}
[*]
[*]#create raid
[*]create_raid (){
[*]    if [ -e /sbin/mdadm ]&&[ -x /sbin/mdadm ];then
[*]      echo
[*]      echo "Please input the name:"
[*]      read name
[*]      echo
[*]      echo "which level do you want to create it?"
[*]      echo "The level 0 and 1 at least 2 device,The level 5 at least 3 device,level 6 at least 4."
[*]      read level
[*]      echo
[*]      echo "How many device for use?"
[*]      read num
[*]      echo "The device name like:/dev/sda,/dev/sda1,/dev/sd,/dev/sd1"
[*]      echo "Please input the device name:"
[*]      read input
[*]      mdadm -C /dev/$name -l$level -n$num $input
[*]    fi
[*]    }
[*]
[*]#view sync status
[*]view_sync () {
[*]    if [ -e /proc/mdstat ]&&[ -r /proc/mdstat ];then
[*]      watch -n .2'cat /proc/mdstat'
[*]    fi
[*]    }
[*]
[*]#view detail of md information
[*]view_detail () {
[*]    if [ -e /sbin/mdadm ]&&[ -x /sbin/mdadm ];then
[*]      echo "which md device you want to view detail:"
[*]      read input
[*]      if [ $input=`grep $input /proc/mdstat |awk '{print $1}'` ];then
[*]            mdadm --detail /dev/$input
[*]      else
[*]            sleep 5
[*]      fi
[*]    fi
[*]    }
[*]
[*]#create mdadm configure file
[*]create_configure_file () {
[*]    if [ -e /sbin/mdadm ]&&[ -x /sbin/mdadm ];then
[*]      echo "The mdadm.conf file default location is /etc."
[*]      mdadm --examine --scan >/etc/mdadm.conf
[*]      echo "The mdadm.conf file content by follow:"
[*]            cat /etc/mdadm.conf
[*]    fi
[*]    }
[*]
[*]#add hotspare device
[*]add_hot () {
[*]    if [ -e /sbin/mdadm ]&&[ -x /sbin/mdadm ];then
[*]      echo "which md do you for add a hotspare device?"   
[*]      read name
[*]      echo "which device you want set a hotspare?"
[*]      read device
[*]      mdadm /dev/$name -a $device
[*]      mdadm --detail /dev/$name
[*]    fi
[*]    }
[*]
[*]#remove a fault device
[*]rep_dev () {
[*]    if [ -e /sbin/mdadm ]&&[ -x /sbin/mdadm ];then
[*]      echo "Which device you want to remove?"
[*]      read device1
[*]      echo "Which device you want to add?"
[*]      read device2
[*]      mdadm -r $device1 -a $device2
[*]    fi
[*]    }
[*]   
[*]
[*]#delete a raid
[*]del_rd () {
[*]    echo "First,stop all I/O access on md devices."
[*]    if [ -e /sbin/mdadm ]&&[ -x /sbin/mdadm ];then
[*]      echo "Which md do you want to delete?"
[*]      read md
[*]      mdadm -S /dev/$md
[*]      echo "Please input the device name:"
[*]      read name
[*]      mdadm --misc --zero-superblock $name
[*]    fi
[*]    }   
[*]#renaming a raid array
[*]ren_rd () {
[*]    echo "First,you must stop the raid array!"
[*]    if [ -e /sbin/mdadm ]&&[ -x /sbin/mdadm ];then
[*]      echo "Which md do you want stop?"
[*]      read md
[*]      mdadm -S /dev/$md
[*]      echo "What's the new md name?"
[*]      read name
[*]      echo "What's the device name on the old md?"
[*]      read device
[*]      mdadm --assemble /dev/$name--super-minor=0 --update=super-minor $device
[*]    fi
[*]    }
[*]
[*]#resync a raid array
[*]res_rd() {
[*]    echo "Which raid array need resync?"
[*]    read input
[*]    if [ -e /sys/block/$input/md/sync_action ]&&[ -f /sys/block/$input/md/sync_action ];then
[*]    echo check >/sys/block/$input/md/sync_action
[*]    fi
[*]    }
[*]#Calling main function
[*]main
页: [1]
查看完整版本: Create Soft Raid On RedHat Linux