ลบไดรฟ์ออกจาก soft RAID


11

ฉันมีเซิร์ฟเวอร์เฉพาะที่มีไดรฟ์ SSD 3 ตัวใน RAID 1 เอาต์พุตของ cat / proc / mdstat:

    Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md4 : active raid1 sdc4[2] sdb4[1] sda4[0]
      106738624 blocks [3/3] [UUU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md2 : active raid1 sdc2[2] sda2[0] sdb2[1]
      5497792 blocks [3/3] [UUU]

md1 : active raid1 sda1[0] sdc1[2] sdb1[1]
      259008 blocks [3/3] [UUU]

unused devices: <none>

¿วิธีสามารถไดรฟ์ถูกลบออกได้อย่างปลอดภัยจากการโจมตีนุ่มโดยไม่สูญเสียข้อมูลใด ๆ ? ฉันต้องการลบไดรฟ์ออกจากอาร์เรย์เพื่อทำการฟอร์แมตใหม่และใช้งานได้อย่างอิสระในขณะที่รักษาข้อมูลที่สำคัญที่สุดไว้

ขอบคุณล่วงหน้า

คำตอบ:


20

คุณมีมิเรอร์สามทางอยู่ที่นั่น: ไดรฟ์แต่ละตัวมีข้อมูลทั้งหมดที่สมบูรณ์ สมมติว่าไดรฟ์ที่คุณต้องการที่จะลบเป็น/dev/sdcและคุณต้องการที่จะลบออกจากทั้งสามอาร์เรย์คุณต้องการดำเนินการขั้นตอนต่อไปนี้สำหรับ/dev/sdc1, และ/dev/sdc2/dev/sdc4

ขั้นตอนที่ 1: ลบไดรฟ์ออกจากอาร์เรย์ คุณไม่สามารถลบอุปกรณ์ที่ใช้งานอยู่ออกจากอาร์เรย์ได้ดังนั้นคุณต้องทำเครื่องหมายว่าล้มเหลวก่อน

mdadm /dev/md1 --fail /dev/sdc1
mdadm /dev/md1 --remove /dev/sdc1

ขั้นตอนที่ 2: ลบข้อมูลเมตา RAID เพื่อให้เคอร์เนลไม่พยายามเพิ่มอีกครั้ง:

wipefs -a /dev/sdc1

ขั้นตอนที่ 3: ย่อขนาดอาร์เรย์ดังนั้นจึงเป็นเพียงมิเรอร์สองทางไม่ใช่มิเรอร์สามทางที่มีไดรฟ์ที่ขาดหายไป:

mdadm --grow /dev/md1 --raid-devices=2

คุณอาจต้องลบบิตแมปการตั้งใจเขียนออก/dev/md4ก่อนที่จะย่อขนาด (คู่มือไม่ชัดเจนในเรื่องนี้) ซึ่งในกรณีนี้คุณต้องทำก่อนขั้นตอนที่ 3 ด้วยmdadm --grow /dev/md4 --bitmap=noneจากนั้นจึงนำกลับมาใช้mdadm --grow /dev/md4 --bitmap=internalใหม่


สิ่งนี้จะรักษาข้อมูลในดิสก์ที่คุณลบหรือไม่ คุณสามารถเข้าถึงข้อมูลที่อยู่บน RAID จากดิสก์แยกต่างหากได้หรือไม่
ไม่มีใคร

2
@ ไม่มีใครถ้าคุณต้องการอ่านข้อมูลออกจากไดรฟ์ที่ถูกลบออกคุณควรข้ามขั้นตอนที่ 2 ข้อมูลทั้งหมดยังคงอยู่ที่นั่นหลังจากการทำงานwipefs(จะลบเพียงไม่กี่ไบต์คีย์ที่จำเป็นสำหรับการรับรู้ระบบไฟล์) แต่การอ่าน ในการกู้คืนข้อมูลไม่ใช่แค่เสียบไดรฟ์เข้ามา
Mark

0

ผู้ชาย mdadm:

   -r, --remove
          remove listed devices.  They must  not  be  active.   i.e.  they
          should be failed or spare devices.

          As well as the name of a device file (e.g.  /dev/sda1) the words
          failed, detached and names like set-A can be given to  --remove.
          The  first  causes  all failed device to be removed.  The second
          causes any device which is no longer  connected  to  the  system
          (i.e  an  'open'  returns  ENXIO) to be removed.  The third will
          remove a set as describe below under --fail.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.