รับสถานการณ์ต่อไปนี้ในเซิร์ฟเวอร์ที่ใช้เดเบียน RAID1 (mdadm) สองดิสก์ ( ไม่มี LVM ที่เกี่ยวข้อง ):

พาร์ติชัน (เหมือนกันสำหรับมิเรอร์ /dev/sdb):

  • พื้นที่ที่ไม่ได้กำหนด (เดิมคือ /dev/sda1 กับ Windows)
  • /dev/sda2 linux-raid /dev/md0 (/)
  • /dev/sda3ขยาย:
    • /dev/sda5 linux-raid /dev/md1 (สลับ)
    • /dev/sda6 linux-raid /dev/md2 (/home)
    • /dev/sda7 linux-raid /dev/md3 (/usr/local/share/data)

เพื่อประโยชน์ของพื้นที่ดิสก์ฉันต้องการบรรลุ :

  • /dev/sda1 linux-raid /dev/md0 (/)
  • /dev/sda2 linux-raid /dev/md1 (/home)
  • /dev/sda3ขยาย:
    • /dev/sda5 linux-raid /dev/md2 (สลับ)
    • /dev/sda6 linux-raid /dev/md3 (/usr/local/share/data)

ตามแนวทางที่ง่ายกว่า (ตั้งแต่แรกเห็น) ฉันยินดีที่จะลอง :

  • /dev/sda1 linux-raid /dev/md0 (/) (หวังว่าคำสั่งmdadm --grow /dev/md0 --size=maxจะสามารถดูแลการครอบครองพื้นที่ที่ไม่ได้ใช้ก่อนหน้านี้ได้โดยอัตโนมัติ)
  • /dev/sda3ขยาย:
    • /dev/sda5 linux-raid /dev/md1 (สลับ)
    • /dev/sda6 linux-raid /dev/md2 (/home)
    • /dev/sda7 linux-raid /dev/md3 (/usr/local/share/data)

ทั้งหมดนี้ฉันคิดว่าต้องทำแบบออฟไลน์

สิ่งที่ฉันไม่แน่ใจ (เกี่ยวกับวิธีแรก) คือฉันต้องยกเลิกอาร์เรย์ RAID1 ทั้งหมดก่อนแล้วจึงคัดลอกพาร์ติชั่นทีละชิ้นอย่างถาวร จากนั้นสร้าง RAID1 ใหม่ หรือมีแนวทางอื่นที่ง่ายกว่านี้

ฉันต้องการทราบประสบการณ์ของคุณ / ข้อเสนอแนะเกี่ยวกับทั้งสอง / วิธีอื่น ๆ

answer

(เกือบ) การย้ายข้อมูลแบบสดน่าจะเป็นไปได้ โดยที่คุณไม่จำเป็นต้องปรับขนาดไดรฟ์ข้อมูล

  • สร้าง md ใหม่บน /dev/sd[ab]1:
    • mdadm --create device=servername:root --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
  • Rsync ของคุณ / บน md . นี้
    • mount /dev/md/root /mnt/target
    • mount /dev/md0 /mnt/source
    • rsync -avr /mnt/source /mnt/target
  • chroot รูทใหม่ แก้ไข fstab และติดตั้ง bootloader ใหม่:
    • mount -t proc /mnt/target/proc
    • mount -t sysfs /mnt/target/sys
    • mount -t udev /mnt/target/dev
    • chroot /mnt/target
    • [แก้ไข fstab ด้วยอุปกรณ์รูทใหม่]
    • [ติดตั้ง bootloader ใหม่]
  • รีบูตระบบ (และอธิษฐานว่าคุณจะไม่ลืมอะไร)

หลังจากรีบูต คุณควรอยู่ในอุปกรณ์ root md ใหม่ (ตรวจสอบด้วย /proc/mounts) จากนั้นคุณจะต้องทำซ้ำขั้นตอนเพื่อใช้พาร์ติชั่น /dev/md0 สำหรับ /home mountpoint

สำหรับการรวม sd[ab]6 และ sd[ab]7 เข้าด้วยกัน จะขึ้นอยู่กับจำนวนพื้นที่ว่างที่คุณมีในพาร์ติชั่นอื่นๆ เนื่องจากคุณจะต้องลบและสร้างใหม่

โดยส่วนตัวแล้วฉันขอแนะนำให้ใช้โอกาสในการโยกย้ายไปยังระบบที่ใช้ LVM: * สร้าง md ใหม่ * สร้าง VolumeGroup ใหม่บน md * สร้าง Volume ใหม่ "root" บน VG * ดำเนินการตามขั้นตอนก่อนหน้า

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