ขยายอาร์เรย์ Linux MD RAID 10 เพื่อใช้ดิสก์ที่มีขนาดใหญ่ขึ้น


11

จากสิ่งที่ฉันเข้าใจว่าเป็นไปได้ แต่ฉันไม่สามารถหาคำตอบได้ทุกที่เกี่ยวกับวิธีการที่จะไปและฉันไม่ต้องการที่จะสูญเสียข้อมูลการทดลองด้วยตัวเองดังนั้นฉันถามที่นี่

ฉันมีโฮมเซิร์ฟเวอร์ที่มีห้าดิสก์ที่ใช้งาน CentOS หนึ่งคือ SSD ที่ถือระบบปฏิบัติการ ดิสก์สี่ตัวที่เหลือคือฮาร์ดไดรฟ์ขนาด 4TB ที่กำหนดค่าใน RAID10 ด้วย mdraid ระบบไฟล์ที่ใช้อยู่คือ xfs

ฉันกำลังพิจารณาที่จะเปลี่ยนดิสก์ 4TB เป็น 8TB สิ่งที่ต้องทำเพื่อให้การแทนที่นี้เกิดขึ้นโดยไม่ต้องกำหนดค่า RAID ใหม่และสูญเสียข้อมูล

Details output:

[root@fluttershy ~]# mdadm -D /dev/md127
/dev/md127:
        Version : 1.2
  Creation Time : Mon Apr 18 12:46:24 2016
     Raid Level : raid10
     Array Size : 7813771264 (7451.79 GiB 8001.30 GB)
  Used Dev Size : 3906885632 (3725.90 GiB 4000.65 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Mon Jun 13 11:04:41 2016
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : fluttershy:data  (local to host fluttershy)
           UUID : aa8f857a:g8bd0344:06d2f6d3:bac01a46
         Events : 13440

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync set-A   /dev/sda1
       1       8       17        1      active sync set-B   /dev/sdb1
       2       8       33        2      active sync set-A   /dev/sdc1
       3       8       49        3      active sync set-B   /dev/sdd1

คำตอบ:


14

ทำตามขั้นตอนต่อไปนี้สำหรับแต่ละดิสก์ แทนที่/dev/sda1ด้วยดิสก์อื่นตามความจำเป็น คุณต้องทำตามขั้นตอนเหล่านี้ทั้งหมดสำหรับดิสก์หนึ่งแผ่นก่อนที่คุณจะสามารถดำเนินการต่อไปยังดิสก์ถัดไป

  • ทำเครื่องหมายดิสก์ว่าล้มเหลวเพื่อให้ MD หยุดใช้: mdadm --manage /dev/md127 --fail /dev/sda1
  • ลบดิสก์ออกจากอาร์เรย์: mdadm --manage /dev/md127 --remove /dev/sda1
  • แทนที่ดิสก์ทางกายภาพ
  • แบ่งพาร์ติชันดิสก์ใหม่โดยใช้ชนิดที่0xDAมีพาร์ติชันเดียวที่ครอบคลุมดิสก์ทั้งหมด
  • เพิ่มดิสก์ใหม่ลงในอาร์เรย์: mdadm --manage /dev/md127 --add /dev/sda1

MD จะสร้างอาร์เรย์อีกครั้งเมื่อคุณเพิ่มดิสก์ทดแทน ตรวจสอบให้แน่ใจว่าการสร้างใหม่เสร็จสมบูรณ์ก่อนที่คุณจะดำเนินการต่อไปยังดิสก์ถัดไป cat /proc/mdstatคุณสามารถตรวจสอบสถานะของอาร์เรย์โดยใช้

เมื่อทั้งหมดmdadm --grow /dev/md127 --size=maxของดิสก์ที่ได้รับการสร้างขึ้นมาใหม่แทนที่และอาร์เรย์ขยายอาร์เรย์เพื่อเติมเต็มความจุสูงสุดของทั้งหมดของดิสก์ที่มี คุณสามารถปรับขนาดระบบไฟล์จากที่นั่นเพื่อเติม RAID ที่ขยายได้ ในกรณีของคุณใช้xfs_growfsคำสั่ง

ข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่จะเติบโตอาร์เรย์ MD มีอยู่ในRAID วิกิลินุกซ์

เช่นเดียวกับงานจัดการดิสก์อื่น ๆ คุณควรสำรองข้อมูลก่อนที่จะเริ่ม


1
อาจเพิ่มวิธีที่คุณตรวจสอบความคืบหน้าการสร้างใหม่ ->tim@MushaV3 ~ $ cat /proc/mdstat Personalities : [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md1 : active raid1 sdb1[0] sda1[1] 131008 blocks [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk
djsmiley2kStaysInside

2

คุณต้องการสลับแต่ละแผ่นทีละแผ่นก่อน

ในการทำเช่นนี้คุณจะ 'ล้มเหลว' แต่ละดิสก์และแทนที่ด้วยการเปลี่ยน 8Tb ใหม่โดยมี infact หากคุณมีพอร์ตสำรองคุณสามารถเพิ่มดิสก์เพิ่มเติมจากนั้นให้มี mdadm 'แทนที่' แทนการเอาดิสก์ออก การจู่โจมและมีความเสี่ยงสูงที่จะล้มเหลว

คำถามนี้ให้รายละเอียดเกี่ยวกับวิธีที่ดีที่สุดที่ฉันสามารถทำได้โดย 'ปลอดภัย'

เมื่อคุณทำสิ่งนี้แล้วคุณจะต้องขยาย FS ที่มีอยู่ไปยังพื้นที่ที่สร้างขึ้นใหม่ ดูเหมือนคำสั่งสำหรับสิ่งนี้คือ 'xfs_growfs' แต่ฉันไม่เคยมีประสบการณ์กับ xfs เพื่ออธิบายว่าคุณจะทำสิ่งนี้ได้อย่างไร

เช่นเคยเตรียมการสำรองข้อมูลไว้ (และการโจมตีไม่ใช่การสำรองข้อมูล!)


การตั้งค่าด้วย raid10 และ mdraid พื้นที่พิเศษจะได้รับการยอมรับหรือไม่ ฉันควรสลับสองครั้งพร้อมกันหนึ่งอันจากคู่มิเรอร์แต่ละคู่
Kefka

คุณเพิ่มที่ว่างหลังจากทำการสลับดิสก์ทั้งหมดแล้วใช่มันจะถูกจดจำ
djsmiley2kStaysInside
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.