SUSE LINUX Enterprise & openSUSE Community
มกราคม 18, 2019, 04:10:15 AM *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
ข่าว:
 
   หน้าแรก   ช่วยเหลือ ค้นหา เข้าสู่ระบบ สมัครสมาชิก  

[Why we need your support] SUSE and openSUSE are trademarks of Attachmate Group, Inc. - WE ARE NOT IN ANY WAY ASSOCIATED WITH SUSE AND ATTACHMATE GROUP. SUSEThailand.com is a SUSE Linux user and community found in Thailand but not limited to other country suse linux user to join in. Currently active contents (How to's, Scripts, Tips, Tricks, Tutorials, Linux Command Line, and Troubleshooting) this suse linux how to's and expert support are SUSE Linux.
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน
หัวข้อ: การ Recovery RAID 1 ไดร์ฟล้มเหลว (Replace a failed driver RAID 1 Software)  (อ่าน 2351 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« เมื่อ: สิงหาคม 08, 2011, 06:44:40 PM »


การแทนที่ไดร์ฟที่ล้มเหลว Replace a failed drive  RAID 1 on Linux

กรณีที่เราทำ RAID 1 Disk เพื่อที่ต้องการความเสถียรภาพ โดยการใช้ซอฟต์แวร์ Raid บนระบบปฎิบัติการลีนุกซ์ สิ่งที่จำเป็นอย่างยิ่งสำหรับผู้ดูแลระบบก็คือ การ monitoring  เช่น การเขียนสคริปต์สำหรับตรวจสอบ ซึ่งระบบจะต่างจากพวก Hard ware RAID ที่มีเครื่องมือมาให้เรียบร้อยแล้ว 3ware, Dell SAS RAID controller เป็นต้น

ตัวอย่างสคริปต์ตรวจสอบ raid failed

1. สร้างไฟล์สคริปต์

vi check_raid_failures.sh

โค๊ด:
#!/bin/sh
#
LOG_FILE=/tmp/raid_check_$$

SYSTEM=`uname --nodename`

MAILTO='it.support@company.com'
MAILTO1='admin@company.com'

echo "The $SYSTEM system has RAID failures on it." >> $LOG_FILE
echo "Below is the output from /proc/mdstat" >> $LOG_FILE
echo "===========================================" >> $LOG_FILE
cat /proc/mdstat | egrep 'md.*raid' | fgrep -i '(f)' >> $LOG_FILE
if [ $? -eq 0 ]
then
cat /proc/mdstat >> $LOG_FILE
echo "===========================================" >> $LOG_FILE
mail -s 'URGENT: RAID disk failure detected' $MAILTO < $LOG_FILE
mail -s 'URGENT: RAID disk failure detected' $MAILTO1 < $LOG_FILE
fi
rm -f >> $LOG_FILE
exit 0

2. กำหนด permission

chmod 500 check_raid_failures.sh

3. ตั้งเวลาทำงาน (Crontab)

crontab -e
#RAID array monitoring
*/5 * * * * sh /root/backup/scripts/check_raid_failures.sh

ในกรณีเกิน RAID failed driver อาจเนื่องจาก hard disk เสียหาย (Partition, Bad Sector) ผู้ดูแลระบบจะได้รับเมล์

Subject: URGENT: RAID disk failure detected
Body message:
The server2 system has RAID failures on it.
Below is the output from /proc/mdstat
===========================================
md0 : active raid1 sdb2[0] sda2[2](F)
Personalities : [raid1]
md1 : active raid1 sdb3[0] sda3[1]
      84196544 blocks [2/2] [UU]
      
md0 : active raid1 sdb2[0] sda2[2](F)
      31463232 blocks [2/1] [U_]
      
unused devices: <none>
===========================================

หลังจากที่เราได้รับเมลแจ้งเตือนแล้ว ให้ทำการรีโมทไปยังเครื่องเซิร์ฟเวอร์ แล้วทำการตรวจสอบอีกครั้ง

cat /proc/mdstat

[UU] = สถานะ raid array ทำงานปกติ (completed rebuilding mirrored)
[F] = สถานะของ raid array  ไดรฟ์ล้มเหลว (drive has failed)

จากการใช้คำสั่ง cat /proc/mdstat เราสังเกตเห็นว่ามันไม่ได้แสดง driver parts ที่ส้มเหลว ซึ่งปรากฏเฉพาะ _U
และแสดงให้เห็นว่ามีเพียงหนึ่งไดรฟ์ที่ใช้งานอยู่ในอาร์เรย์นี้ ซึ่ง no mirror

คำสั่ง สำหรือดูพาท (State of the raid drivers paths)

mdadm -D /dev/md0
/dev/md0:
        Version : 00.90.03
  Creation Time : Tue Jun 26 08:09:34 2007
     Raid Level : raid1
     Array Size : 31463232 (30.01 GiB 32.22 GB)
    Device Size : 31463232 (30.01 GiB 32.22 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Mon Aug  8 13:20:23 2011
          State : active, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
  Spare Devices : 0

           UUID : 989f72e5:af7ad241:141f9d33:0db09c76
         Events : 0.79832936

    Number   Major   Minor   RaidDevice State
       0       8       18        0      active sync   /dev/sdb2
       1       0        0        1      removed

       2       8        2        -      faulty spare   /dev/sda2

แสดงว่าไดรฟ์พาทที่ส้มเหลวคือ /dev/sda2

หรือสามารถดูได้ที่ไฟล์ cat /etc/raidtab

cat /etc/raidtab

# autogenerated /etc/raidtab by YaST2

raiddev /dev/md0
   raid-level            1
   nr-raid-disks         2
   nr-spare-disks        0
   persistent-superblock 1
   chunk-size            4
   device                /dev/sda2
   raid-disk             0
   device                /dev/sdb2
   raid-disk             1

raiddev /dev/md1
   raid-level            1
   nr-raid-disks         2
   nr-spare-disks        0
   persistent-superblock 1
   chunk-size            4
   device                /dev/sda3
   raid-disk             0
   device                /dev/sdb3
   raid-disk             1


หลังจากที่เรารู้แล้วว่า hard disk ลูกไหนล้มเหลว ขั้นตอนต่อมาให้เรา remove /dev/sda พาร์ติชั่นทั้งหมดออกจาก RAID

mdadm --manage /dev/md0         --remove        /dev/sda2
mdadm --manage /dev/md1         --remove        /dev/sda3


ที่นี้ก็ได้เวลา shutdown เครื่องเซิร์ฟเวอร์แล้วเปลื่ยน hard disk ตัวใหม่เข้าไปแทนที่แล้ว

shutdown -h now

physical driver ที่จะนำมาแทนที่ต้องมีขนาดพื้นที่ใหญ่กว่าหรือเท่ากับ hard disk ลูกเดิม ถ้า hard disk มีขนาดพื้นที่น้อยกว่ากระบวนการ rebuilding จะทำให้อาร์เรย์ล้มเหลว

หลังจากที่เราได้แทนที่ hard disk เสร็จแล้วให้เปิดเครื่องเซิร์ฟเวอร์ และบูตเข้าสู้ระบบจากนั้นให้ทำการสร้าง partition layout บนไดรฟ์ใหม่ (/dev/sdc)

คำสั่ง สร้างรูปแบบพาร์ทิชันบน /dev/sda ให้เหมือนกันที่เป็นอยู่บน /dev/sdc

sfdisk -d /dev/sdc | sfdisk /dev/sda


คำสั่งสำหรับตรวจสอบรูปแบบพาร์ทิชัน

fdisk /dev/sda

Command (m for help): p

ขั้นตอนสุดท้ายเพิ่มพาร์ทิชันไปยังอาร์เรย์

mdadm --manage /dev/md0                 --add            /dev/sda2
mdadm --manage /dev/md1                 --add            /dev/sda3



คำสั่ง เพื่อดูความคืนหน้าการ mirror

cat /proc/mdstat

Personalities : [raid1]

md0 : active raid1 sdb2[2] sda2[1]
      31463232 blocks [2/1] [_U]
      [======>..............]  recovery = 34.1% (10730880/31463232) finish=64.7min speed=5337K/sec

ระยะเวลา recovery ขึ้นอยู่กับขนาดของข้อมูลในแต่ล่ะพาร์ทิชัน อาจจะใช้เวลาไม่กี่นาที หรือหลายชั่วโมงก็เป็นได้ครับ

การ Re-installing GRUB จาก Rescue System
« แก้ไขครั้งสุดท้าย: มีนาคม 10, 2012, 01:12:09 PM โดย Sontaya » แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  

(@)2007 SUSE Linux user community found in Thailand. This site is not an official openSUSE and SUSE website, and is not in any way affiliated with or endorsed by SUSE Linux GmbH or Novell. openSUSE and SUSE are trademarks of Novell, Inc. in the United States and other countries.
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!
หน้านี้ถูกสร้างขึ้นภายในเวลา 0.05 วินาที กับ 20 คำสั่ง (Pretty URLs adds 0.01s, 2q)