สภาพแวดล้อมตัวอย่างการติดตั้งของตัวอย่างนี้
- เป็น RAID ราคาประหยัด ไม่ต้องใช้ hardware RAID controller เป็นแบบ software raid ใช้กับ hard disk บน PC ทั่วไปได้
- เป็น ubuntu รุ่น server เวอร์ชั่น 10.0.4
- ติดตั้งบน hard disk ทั้งลูก ซึ่งจะทำลายข้อมูลเก่าที่มีอยู่เดิม
- ใช้ hard disk ชนิด SATA ขนาด 120 GB จำนวน 2 ลูก
- จัดทำเป็นแบบ software raid 1 (mirroing) ให้มีพื้นที่สำหรับ / ขนาด 10 GB และพื่นที่สำหรับ swap ขนาด 1 GB
- ให้ scan memory ว่ายังคงอยู้ในสภาพดี ตามคำแนะนำใน การ scan memory ด้วย sysresccd
- ให้ scan hard disk ว่ายังคงอยู่ในสภาพดี ตามคำแนะนำในเวบ การ scan hard disk ด้วย sysresccd
- ลบ partition ใน hard disk ทั้งหมด ตามคำแนะนำในเวบ ใช้ fdisk ด้วย sysresccd
- บูท PC ด้วยแผ่นซีดี ubuntu ที่เตรียมไว้ต้นฉบับจาก http://ftp.psu.ac.th/pub/ubuntu-releases/iso/10.04/ubuntu-10.04.4-server-i386.iso
- ได้หน้าต่าง Language ให้เลือก English เหมือนเดิม
ได้หน้าต่าง ubuntu ให้เลือก Install Ubuntu server
ระบบจะทำงานต่อ ให้รอจนได้หน้าต่างว่า Choose language
ที่หัวข้อ "Choose a language:" ให้คงค่าเดิมคือ English แล้วกดแป้น Enter
ที่หัวข้อ "Choose a country, territory or area:" ให้เปลี่ยนไปเลือกเป็น other แล้วกดแป้น Enter
ได้หน้าต่างใหม่ที่หัวข้อ "Choose a country, territory or area:" ให้เปลี่ยนเลื่อนไปหา -- Asia -- เลือก Thailand แล้วกดแป้น Enter
ได้หน้าต่างว่า "Ubuntu installer menu" แสดงออกมา
ที่หัวข้อ "Detect keyboard layout?" ให้เลือกเปลี่ยนเป็น <No> แล้วกดแป้น Enter
ที่หัวข้อ "The origin of the keyboard:" ให้เลือกเปลี่ยนเป็น Thailand แล้วกดแป้น Enter
ที่หัวข้อ "Keyboard layout:" ให้คงค่าเดิมคือ Thailand แล้วกดแป้น Enter
ที่หัวข้อ "Method for toggling betwenn national and Latin mode:" ให้คงค่าเดิมคือ Alt+Shift ไว้เหมือนเดิม แล้วกดแป้น Enter
ระบบจะทำงานต่อไปเรื่อยๆ
หากได้หน้าจอเตือนว่า "Network autoconfiguration failed" ไม่ต้องทำอะไรให้กดแป้น Enter ได้เลย
จะ ได้หน้าต่างที่หัวข้อให้ "Network configuration method:" ให้เลือกเปลี่ยนเป็น "Do not configure the network at this time" แล้วกดแป้น Enter
ที่หัวข้อ "Hostname:" ให้เปลี่ยนชื่อโฮสต์ตามใจชอบ แล้วกดแป้น Enter
ได้หน้าต่าง "Partitioning method:" ให้เลือก "Manual" แล้วกดแป้น Enter - (ขั้นตอนต่อไปนี้เป็นการสร้าง partition บน hard disk sda แบบ raid ขนาด 10 GB เพื่อเตรียมใช้เป็น software raid 1 สำหรับพื้นที่ /)
ได้หัวข้อ "Partition disks" ให้เลือกพืนที่ของ hard disk ชื่อ sda
โดยไปเลือกบรรทัดข้อความตัวอย่างว่า "pri/log 120.0 GB FREE SPACE" แล้วกดแป้น Enter
ได้หัวข้อ "How to use this free space:" ให้เลือก "Create a new partition" แล้วกดแป้น Enter
ได้หัวข้อ "New partition size:" ตัวอย่างนี้ให้ป้อนว่า 10.0 GB แล้วกดแป้น Enter
ได้หัวข้อ "Type for the new partition:" ให้เลือก "Primary" แล้วกดแป้น Enter
ได้หัวข้อ "Location for the new partition:" ให้เลือก "Beginning" แล้วกดแป้น Enter
ได้หัวข้อ "Partition settings:" ให้เลื่อนไปเลือกบรรทัดว่า "Use as:" แล้วกดแป้น Enter
ได้หัวข้อ "How to use this partition:" ให้เปลี่ยนไปเลือกเป็นบรรทัดว่า "physical volume for RAID" แล้วกดแป้น Enter
กลับมาได้หัวข้อ "Partition settings:" ให้เลือกไปเลือกบรรทัดว่า "Bootable flag:" แล้วกดแป้น Enter จะได้ค่าเปลี่ยนเป็นว่า "on"
ต่อไปให้เลื่อนไปเลือกบรรทัดว่า "Done setting up the partition" แล้วกดแป้น Enter
กลับมาได้หัวข้อ "Partition disks" จะได้บรรทัดเพิ่มขึ้นตัวอย่างว่า "#1 primary 10.0 GB B K raid" - (ขั้นตอนต่อไปนี้เป็นการสร้าง partition บน hard disk sda แบบ raid ขนาด 1 GB เพื่อเตรียมใช้เป็น software raid 1 สำหรับพื้นที่ swap)
ยังคงให้เลือกพืนที่ของ hard disk ชื่อ sda แล้วเลือกบรรทัดข้อความตัวอย่างว่า "pri/log 110.0 GB ที่ว่าง แล้วกดแป้น Enter
ได้หัวข้อ "How to use this free space:" ให้เลือก "Create a new partition" แล้วกดแป้น Enter
ได้หัวข้อ "New partition size:" ตัวอย่างนี้ให้ป้อนว่า 1.0 GB แล้วกดแป้น Enter
ได้หัวข้อ "Type for the new partition:" ให้เลือก "Primary" แล้วกดแป้น Enter
ได้หัวข้อ "Location for the new partition:" ให้เลือก ""Beginning แล้วกดแป้น Enter
ได้หัวข้อ "How to use this partition:" ให้เปลี่ยนไปเลือกเป็นบรรทัดว่า "physical volume for RAID" แล้วกดแป้น Enter
กลับมาได้หัวข้อ "Partition settings:" ปล่อยให้ "Bootable flag:" เป็น "off" เหมือนเดิม
ให้เลื่อนไปเลือกบรรทัดว่า "Done setting up the partition" แล้วกดแป้น Enter
กลับมาได้หัวข้อ "Partition disks" จะได้บรรทัดเพิ่มขึ้นตัวอย่างว่า "#2 primar 1.0 GB K raid" - ถึงตอนนี้การสร้าง partition บน hard disk sda เพื่อเตรียมใช้เป็น software raid 1 สำหรับพื้นที่ / และ swap สำเร็จแล้ว
ต่อไปต้องสร้าง partition บน hard disk sdb เพื่อเตรียมใช้เป็น software raid 1 สำหรับพื้นที่ / และ swap ด้วย
ให้ใช้วิธีการทำนองเดียวกันกับการสร้างบน sda เพียงแต่เปลี่ยนการค่าจาก sda ให้เป็น sdb เท่านั้น
หลังจาก hard disk ทั้ง sda และ sdb สำเร็จทั้ง 2 ลูก จะกลับมาได้หัวข้อ "แบ่งพาร์ทิชั่นในดิสก์" - (ขั้นตอนต่อไปเป็นการสร้าง partition แบบ software raid 1 เตรียมไว้สำหรับพื้นที่ / )
ให้เลื่อนขึ้นไปเลือกบรรทัดบนสุดว่า "Configure software RAID" แล้วกดแป้น Enter
ได้หัวข้อ "Write the changes to the storage devices and configure RAID" ให้เลื่อนไปเลือกว่า "<Yes>" แล้วกดแป้น Enter
ได้หัวข้อ "Multidisk configuration action" ให้เลือก "Create MD device" แล้วกดแป้น Enter
ได้หัวข้อ "Multidisk device type:" ให้เลื่อนไปเลือก "RAID1" แล้วกดแป้น Enter
ได้หัวข้อ "Number of active devices for the RAID1 array:" ปล่อยให้เป็นค่า 2 เหมือนเดิม แล้วกดแป้น Enter
ได้หัวข้อ "Number of spare devices for the RAID1 array:" ปล่อยให้เป็นค่า 0 เหมือนเดิม แล้วกดแป้น Enter
ได้หัวข้อ "Active devices for the RAID1 multidisk device:" ให้เลือก /dev/sda1 และ /dev/sdb1
โดยไปที่ /dev/sda1 ให้กดแป้น space แล้วไปที่ /dev/sdb1 ให้กดแป้น space
จะมีอักษร * เพิ่มขึ้นข้างหน้าบรรทัดที่ถูกเลือก เสร็จแล้วกดแป้น Enter
กลับมาได้หัวข้อ "Multidisk configuration action" - (ขั้นตอนต่อไปเป็นการสร้าง partition แบบ software raid 1 เตรียมไว้สำหรับพื้นที่ swap )
ให้เลือก "Create MD device" แล้วกดแป้น Enter
ได้หัวข้อ Multidisk device type:" ให้เลื่อนไปเลือก "RAID1" แล้วกดแป้น Enter
ได้หัวข้อ "Number of active devices for the RAID1 array:" ปล่อยให้เป็นค่า 2 เหมือนเดิม แล้วกดแป้น Enter
ได้หัวข้อ "Number of spare devices for the RAID1 array:" ปล่อยให้เป็นค่า 0 เหมือนเดิม แล้วกดแป้น Enter
ได้หัวข้อ "Active devices for the RAID1 multidisk device:" ให้เลือก /dev/sda2 และ /dev/sdb2
โดยไปที่ /dev/sda2 ให้กดแป้น space แล้วไปที่ /dev/sdb2 ให้กดแป้น space
จะมีอักษร * เพิ่มขึ้นข้างหน้าบรรทัดที่ถูกเลือก เสร็จแล้วกดแป้น Enter
กลับมาได้หัวข้อ "Multidisk configuration action" ให้เลือก "Finish"
จะกลับมาได้หัวข้อ "Partition disks" อีกครั้ง - (ขั้นตอนต่อไปเป็นการกำหนดพื้นที่บน software raid 1 ให้เป็นพื้นที่ /)
ให้ด้านล่างของ RAID1 ขื่อ device #0 ไปเลือกบรรทัดข้อความตัวอย่างว่า "#1 10.0 GB" แล้วกดแป้น Enter
ได้หัวข้อ "Partition settings:" ให้เลื่อนไปเลือกบรรทัดว่า "Use as:" แล้วกดแป้น Enter
ได้หัวข้อ "How to use this partition:" ให้เปลี่ยนไปเลือกเป็นบรรทัดว่า "Ext4 journaling file system" แล้วกดแป้น Enter
กลับมาได้หัวข้อ "Partition settings:" ให้เลือกบรรทัด(ถ้ามี)ว่า "Format the partition:" แล้วกดแป้น Enter จะได้ค่าเปลี่ยนเป็น yes, format it
ต่อไปให้ไปเลือกบรรทัดว่า "Mount point:" แล้วกดแป้น Enter
ได้หัวข้อ "Mount point for this partition:" ให้เลือกบรรทัดว่า "/ - the root file system" แล้วกดแป้น Enter
กลับมาได้หัวข้อ "Partition settings:" ให้เลื่อนไปเลือกบรรทัดว่า "Done setting up the partition" แล้วกดแป้น Enter
กลับมาได้หัวข้อ "Partition disks" จะได้บรรทัดเปลี่ยนแปลงตามตัวอย่างว่า "#1 10.0 GB f ext4 /" - (ขั้นตอนต่อไปเป็นการกำหนดพื้นที่บน software raid 1 ให้เป็นพื้นที่ swap)
ให้ด้านล่างของ RAID1 ขื่อ device #1 ไปเลือกบรรทัดข้อความตัวอย่างว่า "#1 1.0 GB" แล้วกดแป้น Enter
ได้หัวข้อ "Partition settings:" ให้เลื่อนไปเลือกบรรทัดว่า"Use as:" แล้วกดแป้น Enter
ได้หัวข้อ "How to use this partition:" ให้เปลี่ยนไปเลือกเป็นบรรทัดว่า "swap area" แล้วกดแป้น Enter
กลับมาได้หัวข้อ "Partition settings:" ให้เลื่อนไปเลือกบรรทัดว่า "Done setting up the partition" แล้วกดแป้น Enter
กลับมาได้หัวข้อ "Partition disks" จะได้บรรทัดเปลี่ยนแปลงตามตัวอย่างว่า "#1 10.0 GB f swap swap" - ที่หัวข้อ "Partition disks" ให้เลื่อนไปเลือกหัวข้อล่างสุดว่า "Finish paritioning and write changes to disk" แล้วกดแป้น Enter
ได้หัวข้อว่า "Do you want to boot your system if your RAID become degraded?" ให้เปลี่ยนไปเลือก "<Yes>" แล้วกดแป้น Enter
ได้หัวข้อ "Write the changes to disk:" ให้เลือก "<Yes>" แล้วกดแป้น Enter
หากได้คำเตือนเกี่ยวกับการจัดการอุปกรณ์ /dev/md/0 และ /dev/md/1 ไม่ต้องทำอะไร ให้กดแป้น Enter ต่อไป - ระบบจะทำการติดตั้งซอฟต์แวร์ ซึ่งก็จะเหมือนๆกับการติดตั้ง ubuntu server ทั่วไป ดูตามคำแนะนำใน ติดตั้ง ubuntu 10.04 server
- หลังจากติดตั้งสำเร็จแล้ว ให้ login เข้าไป อ่านค่าสถานะของ software raid
ด้วยคำสั่ง sudo mdadm --detail /dev/md0 และ sudo mdadm --detail /dev/md1
ตัวอย่างผลข้อความที่แสดงออกมา
Update Time : Thu Apr 9 10:07:20 2009
State : active
....
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 1 1 active sync /dev/sda1
แสดงว่าอยู่ในสภาพปรกติ
ตัวอย่างการอ่านค่าสถานะด้วยคำสั่ง cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sda2[0] sdb2[1]
1951808 blocks [2/2] [UU]
md0 : active raid1 sda1[0] sdb1[1]
239255936 blocks [2/2] [UU]
unused devices: <none> - ดูข้อมูล hard disk ว่ามี error ที่แฟ้ม /var/log/kern.log ตัวอย่างมีข้อมูลว่า
Jun 21 10:00:33 myhost kernel: ata4.00: status: { DRDY ERR }
...
Jun 21 10:00:33 myhost kernel: sd 3:0:0:0: [sdb] Sense Key : Medium Error [current] [descriptor]
แสดงว่าเป็น hard disk ที่เป็น ata4 หรือ /dev/sdb
ต่อไปให้ดูข้อมูลเพิ่มเติมด้วยคำสั่ง
dmesg|grep ata4 ได้ผลข้อความประมาณว่า
ata4: SATA max UDMA/133 cmd 0xb880 ctl 0xb800 bmdma 0xb488 irq 22
ata4: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata4.00: ATA-8: ST3250310NS, SN05, max UDMA/133
ata4.00: 488397168 sectors, multi 16: LBA48 NCQ (depth 0/32)
ata4.00: configured for UDMA/133
แสดงว่าเป็น hard disk นี้รุ่น ST3250310NS ต่อไว้บน SATA4 - ตัวอย่างการจัดการเปลี่ยน hard disk แทนของเดิมที่อาการไม่ดี สมมติว่าของเดิมต่อเป็น /dev/sdb
ให้ปลด /dev/sdb ออกจากของระบบเดิมก่อน ด้วยคำสั่งประมาณว่า
sudo mdadm /dev/md0 --fail /dev/sdb1 --remove /dev/sdb1
sudo mdadm /dev/md1 --fail /dev/sdb2 --remove /dev/sdb2
จัดการ shutdown server แล้วถอดเปลี่ยนเอา hard disk ลูกใหม่ใส่ให้เรียบร้อย
บูท server ใหม่ จนระบบทำงานแล้ว จัดการ hard disk ดังนี้
sudo dd if=/dev/sda bs=512 count=63 of=/dev/sdb
sudo sfdisk -d /dev/sda > /tmp/mydisk.part
sudo sfdisk --force /dev/sdb < /tmp/mydisk.part
เสร็จแล้วให้รีบูท server ใหม่
บูท server ใหม่ จนระบบทำงานแล้ว จัดการ hard disk raid ดังนี้
sudo mdadm --add /dev/md1 /dev/sdb2
sudo mdadm --add /dev/md0 /dev/sdb1
ทำแค่นี้ระบบก็คืนตัวมาให้ใช้งาน
หมายเหตุ การ rebuild อาจใช้เวลานาน แต่ก็ใช้งานได้ เพียงแต่ระบบอาจช้าบ้าง - การนำ hard disk /dev/sdb ลูกใหม่มาใช้แทนที่ hard disk ของเดิมที่เสียไป
หลังจากระบบบูทได้เป็นสภาพ bootdegraded แล้ว
ให้คัดลอก partition จาก hard disk /dev/sda ที่ยังคงสภาพดีอยู่
ไปใส่ไว้ใน hard disk /dev/sdb ที่ใส่เข้าไปใหม่ ใช้คำสั่งดังต่อไปนี้
sudo dd if=/dev/sda bs=512 count=63 of=/dev/sdb
sudo sfdisk -d /dev/sda > /tmp/mydisk.part
sudo sfdisk --force /dev/sdb < /tmp/mydisk.part
sudo mdadm --add /dev/md0 /dev/sdb1
sudo mdadm --add /dev/md1 /dev/sdb2 - รอจนระบบ rebuild ก็จะใช้งานได้ตามปรกติ
เพิ่มเติม
จากการทดสอบ 2 กรณี สำหรับการทำ RAID1 เฉพาะพาร์ทิชัน /
กรณีที่ 1
เมื่อถอดฮาร์ดดิสก์ออก 1 ลูก แล้วรันให้ทำงานด้วยฮาร์ดดิสก์ลูกเดียว
จากนั้นจะนำลูกเดิมที่ถอดออกนั้นใส่กลับเนื่องจากลูกที่ถอดออกไม่ได้เสียจริง
เมื่อใส่ฮาร์ดดิสก์ทั้งสองลูกแล้วเปิดเครื่อง
login เข้าทำงานในโหมด command line
ดูว่า active sync เป็น /dev/sda1 หรือ /dev/sdb1 ด้วยคำสั่ง
sudo mdadm -D /dev/md0
สมมติว่า active sync เป็น /dev/sda1
ฮาร์ดิสก์ลูกที่เรานำมาใส่กลับเป็น /dev/sdb1
ให้ทำดังนี้
sudo mdadm --zero-superblock /dev/sdb1
sudo mdadm --add /dev/md0 /dev/sdb1
ดูว่ามันจะเข้าสู่การ rebuild หรือไม่ด้วยคำสั่ง
sudo mdadm -D /dev/md0
รอจนระบบ rebuild ก็จะใช้งานได้ตามปรกติ
กรณีที่ 2
เมื่อถอดฮาร์ดดิสก์เสียออก 1 ลูก แล้วรันให้ทำงานด้วยฮาร์ดดิสก์ลูกเดียว
แล้วจะนำลูกใหม่ใส่
เมื่อใส่ฮาร์ดดิสก์ทั้งสองลูกแล้วเปิดเครื่อง
login เข้าทำงานในโหมด command line
ดูว่า active sync เป็น /dev/sda1 หรือ /dev/sdb1 ด้วยคำสั่ง
sudo mdadm -D /dev/md0
สมมติว่า active sync เป็น /dev/sda1
ฮาร์ดิสก์ลูกที่เรานำมาใส่กลับเป็น /dev/sdb
ต้องคัดลอกพาร์ทิชันจากฮาร์ดดิสก์ที่ดี
sudo dd if=/dev/sda bs=512 count=63 of=/dev/sdb
sudo sfdisk -d /dev/sda > /tmp/mydisk.part
sudo sfdisk --force /dev/sdb < /tmp/mydisk.part
sudo reboot
sudo mdadm --add /dev/md0 /dev/sdb1
ดูว่ามัน rebuild ถึงไหน
watch -n1 cat /proc/mdstat
เบรคด้วย Ctrl+C
รอจนระบบ rebuild ก็จะใช้งานได้ตามปรกติ