ติดตั้ง ubuntu server บน software raid 1
จาก Wiki Opensource
บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 11-05-2553
ดูแลโดย WIPAT
ติดตั้ง ubuntu 10.04 server บน software raid 1
สภาพแวดล้อมตัวอย่างการติดตั้งของตัวอย่างนี้
- เป็น RAID ราคาประหยัด ไม่ต้องใช้ hardware RAID controller เป็นแบบ software raid ใช้กับ hard disk บน PC ทั่วไปได้
- เป็น ubuntu รุ่น server เวอร์ชั่น 8.04.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/releases/8.04/ubuntu-8.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:" ให้เปลี่ยนไปเลือกเป็นบรรทัดว่า "Ext3 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 ext3 /"
- (ขั้นตอนต่อไปเป็นการกำหนดพื้นที่บน 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
ได้หัวข้อ "Write the changes to disk:" ให้เลือก "<Yes>" แล้วกดแป้น Enter
หากได้คำเตือนเกี่ยวกับการจัดการอุปกรณ์ /dev/md/0 และ /dev/md/1 ไม่ต้องทำอะไร ให้กดแป้น Enter ต่อไป
- ระบบจะทำการติดตั้งซอฟต์แวร์ ซึ่งก็จะเหมือนๆกับการติดตั้ง ubuntu server ทั่วไป ดูตามคำแนะนำใน ติดตั้ง ubuntu 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
แสดงว่าอยู่ในสภาพปรกติ
- หากต้องการให้ระบบยังบูทขึ้นได้ ถึงแม้จะเกิดปัญหา hard disk อีกลูกเสียไป
ให้แก้ไขแฟ้ม /boot/grub/menu.lst เพิ่มตัวแปร bootdegraded เข้าไปในบรรทัด kernel
ตัวอย่างเช่นบรรทัดข้อความของเดิมว่า kernel /boot/vmlinuz-2.6.24-24-server root=/dev/md0 ro quiet splash
ก็ให้แก้ไขใหม่กลายเป็นว่า kernel /boot/vmlinuz-2.6.24-24-server root=/dev/md0 ro quiet splash bootdegraded
เสร็จแล้วทดสอบด้วยการ shutdown server ลองถอดสาย hard disk ของ /dev/sdb ออก แล้วบูท server ใหม่
จะพบว่าระบบสามารถบูทขึ้นได้ แต่อยู่ในสภาพ bootdegraded
เมื่อใช้คำสั่ง sudo mdadm --detail /dev/md0 จะได้ตัวอย่างผลข้อความที่แสดงออกมาว่า
Update Time : Thu Apr 9 10:03:23 2009
State : active, degraded
...
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 1 1 active sync /dev/sda1
หมายความว่า /dev/sdb1 เสียไปแล้วกลายเป็นสถานะ removed
ต่อไปให้ shutdown server แล้วเสียบสาย hard disk ของ /dev/sdb คืน แล้วบูท server ใหม่
จะพบว่าระบบสามารถบูทขึ้นได้ แต่อยู่ในสภาพ bootdegraded เช่นเดิม
เมื่อใช้คำสั่ง sudo mdadm --detail /dev/md0 จะได้ตัวอย่างผลข้อความที่แสดงออกมาเหมือนเดิมว่า
Update Time : Thu Apr 9 10:03:23 2009
State : active, degraded
...
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 1 1 active sync /dev/sda1
หมายความว่าระบบยังคงจำว่า /dev/sdb1 เสียไปแล้วกลายเป็นสถานะ removed
ต้องเติม /dev/sdb1 เข้าใน /dev/md0 เข้าไปใหม่อีกครั้ง
ด้วยคำสั่ง sudo mdadm --add /dev/md0 /dev/sda1
ระบบจะทำการ rebuild อาจต้องใช้เวลานาน ขึ้นกับพื้นที่ของ partition
ลองใช้คำสั่ง sudo mdadm --detail /dev/md0 จะได้ตัวอย่างผลข้อความที่แสดงออกมาว่า
Update Time : Thu Apr 9 10:20:38 2009
State : active
....
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 1 1 active sync /dev/sda1
แสดงว่าทุกอย่างคืนกลับมาใช้งานได้เป็นปรกติแล้ว
- การนำ 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 > /tmp/mydisk.mbr
sudo dd of=/dev/sdb if=/tmp/mydisk.mbr
sudo sfdisk -d /dev/sda > /tmp/mydisk.part
sudo sfdisk --force /dev/sdb < /tmp/mydisk.part
sudo mdadm --add /dev/md0 /dev/sdb1
รอจนระบบ rebuild ก็จะใช้งานได้ตามปรกติ
- แนะนำให้ติดตั้ง grub บน hard dsik ทั้ง 2 ลูกคือ /dev/sda และ /dev/sda เพื่อให้บูทได้จาก hard disk ทั้ง 2 ลูก
ปรกติ grub จะติดตั้งบน /dev/sda อยู่แล้ว การติดตั้งเพิ่มบน /dev/sdb ให้ทำดังนี้
เรียกคำสั่ง sudo grub จะได้ grub shell
ได้ prompt ว่า grub > ให้ป้อนคำสั่งว่า device hd(0) /dev/sdb แล้วยืนยันด้วยการกดแป้น Enter
เมื่อได้ prompt ว่า grub > ให้ป้อนคำสั่งว่า root(hd0,0) แล้วยืนยันด้วยการกดแป้น Enter
เมื่อได้ prompt ว่า grub > ให้ป้อนคำสั่งว่า setup(hd0) แล้วยืนยันด้วยการกดแป้น Enter
เมื่อได้ prompt ว่า grub > ให้กลับออกมาด้วยการป้อนคำสั่งว่า quit
ทำเพียงแค่นี้ ก็จะได้ grub ติดตั้งบน hard disk /dev/sdb ตามต้องการ
