ขั้นตอนนี้จะสร้างอาร์เรย์ข้อมูล RAID 1 แบบซอฟต์แวร์บน Debian 12 (Bookworm) โดยใช้คำสั่ง `pip install dev/ready` จากนั้นmdadmจะฟอร์แมตอุปกรณ์ที่สร้างขึ้นเป็น ext4 และทำการเมานต์อย่างถาวร ขั้นตอนนี้สมมติว่า Debian ได้ติดตั้งอยู่บนดิสก์ระบบแยกต่างหากแล้ว และดิสก์ RAID ทั้งสองตัวยังไม่ได้ใช้งาน คำสั่งด้านล่างเป็นเพียงตัวอย่างเท่านั้น ชื่อและขนาดของอุปกรณ์จะต้องตรวจสอบอีกครั้งบนเซิร์ฟเวอร์ที่คุณกำลังกำหนดค่า
คำเตือนเกี่ยวกับการสูญเสียข้อมูล:การแบ่งพาร์ติชั่นและการฟอร์แมตอาจทำลายข้อมูลได้ อย่าใช้คำสั่งเหล่านี้กับดิสก์ที่มีไฟล์ที่คุณต้องการ RAID 1 จะทำสำเนาการเขียนข้อมูลเท่านั้น ไม่ได้ทดแทนการสำรองข้อมูลอิสระ และไม่สามารถป้องกันการลบ การเสียหายของระบบไฟล์ การโจรกรรม หรือมัลแวร์ที่เปลี่ยนแปลงสำเนาทั้งสองชุดได้
ก่อนเริ่มต้น: โปรดตรวจสอบดิสก์เป้าหมาย
- ต้องมีสิทธิ์เข้าถึงระดับรูท หรือใช้
sudoคำสั่งผู้ดูแลระบบทุกครั้ง - ควรใช้ดิสก์สองตัวแยกกัน โดยควรมีขนาดความจุเท่ากันหรือใกล้เคียงกัน ความจุที่ใช้งานได้ของอาร์เรย์จะถูกจำกัดด้วยดิสก์ที่มีความจุน้อยกว่า
- อย่ารวมระบบปฏิบัติการ บูตโหลดเดอร์ และพาร์ติชั่นระบบ EFI ไว้ในขั้นตอนการจัดเรียงข้อมูลนี้
- สำรองข้อมูลสำคัญและตรวจสอบให้แน่ใจว่าดิสก์เป้าหมายทั้งสองไม่ได้ถูกเมานต์หรือใช้งานอยู่
Debian 12 Bookworm มีเครื่องมือที่ใช้ในที่นี้ พฤติกรรมของmdadm, sgdisk, และupdate-initramfsได้รับการบันทึกไว้ในคู่มือ mdadm ของ Debian Bookworm , คู่มือ sgdiskและคู่มือ update-initramfsตรวจสอบเอกสารอ้างอิงเวอร์ชันเหล่านี้หากแพ็กเกจที่ติดตั้งของคุณแตกต่างกัน
วิธีการตั้งค่า RAID 1 บน Debian 12
1. ตรวจสอบแผ่นดิสก์และยืนยันว่ายังไม่ได้ใช้งาน
เริ่มต้นด้วยการสร้างรายการสินค้าคงคลังแบบอ่านอย่างเดียว:
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODEL,SERIAL
findmnt
ในตัวอย่างด้านล่าง/dev/sdaคือดิสก์ระบบ Debian ในขณะที่/dev/sdbและ/dev/sdcเป็นดิสก์ข้อมูลเปล่าขนาด 2 TB ชื่อของดิสก์อาจแตกต่างกันไป โปรดตรวจสอบขนาด รุ่น หมายเลขซีเรียล ระบบไฟล์ และจุดเชื่อมต่อให้ตรงกัน อย่าระบุดิสก์จาก/dev/sdXชื่อเพียงอย่างเดียว สำหรับตัวระบุที่ถาวร โปรดตรวจสอบls -l /dev/disk/by-id/และเชื่อมโยงแต่ละลิงก์กับหมายเลขซีเรียลที่แสดงlsblkโดย
ภาพแสดงผลลัพธ์จากคำสั่ง lsblk ในเทอร์มินัล: ดิสก์ระบบถูกเมานต์แล้ว ในขณะที่ดิสก์ข้อมูลสองแผ่นแยกกันปรากฏขึ้นโดยไม่มีระบบไฟล์หรือจุดเมานต์ โปรดตรวจสอบรายละเอียดเหล่านี้บนเซิร์ฟเวอร์ของคุณเองก่อนดำเนินการต่อ2. สร้างพาร์ติชั่น Linux RAID บนดิสก์เปล่าแต่ละแผ่น
สำหรับดิสก์ที่ได้รับการยืนยันแล้วว่าว่างเปล่า ให้สร้างพาร์ติชั่น GPT หนึ่งพาร์ติชั่นบนพื้นที่ว่างทั้งหมด และกำหนดให้เป็น Linux RAID ต่อไปนี้fd00คือรหัสย่อของ sgdisk สำหรับ Linux RAID:
sgdisk --new=1:0:0 --typecode=1:fd00 /dev/sdb
sgdisk --new=1:0:0 --typecode=1:fd00 /dev/sdc
partprobe /dev/sdb /dev/sdc
udevadm settle
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS /dev/sdb /dev/sdc
แทนที่ชื่อดิสก์ตัวอย่างทั้งสองด้วยชื่อดิสก์เป้าหมายที่ได้รับการตรวจสอบแล้วสองชื่อ คำสั่งนี้--new=1:0:0จะขอให้ sgdisk จัดสรรพาร์ติชัน 1 ผ่านพื้นที่ว่างที่มีอยู่ การแก้ไขตารางพาร์ติชันจะทำลายข้อมูลหากคุณเลือกดิสก์ที่มีข้อมูลอยู่แล้ว หาก sgdisk รายงานว่ามีเค้าโครงที่มีอยู่ พาร์ติชันที่ไม่คาดคิด หรือข้อผิดพลาดที่ไม่ชัดเจน ให้หยุดและตรวจสอบแทนที่จะบังคับเปลี่ยนแปลง ตรวจสอบให้แน่ใจว่าพาร์ติชันใหม่ (โดยปกติคือ/dev/sdb1และ/dev/sdc1) มีอยู่และมีขนาดใกล้เคียงกัน
ภาพแสดงมุมมองเทอร์มินัลของคำสั่ง sgdisk ขณะเขียนพาร์ติชั่น Linux RAID ลงในดิสก์ข้อมูลที่เลือกไว้สองแผ่น การแบ่งพาร์ติชั่นจะเปลี่ยนแปลงเมตาเดต้าของดิสก์ และต้องกำหนดเป้าหมายไปยังไดรฟ์ที่ตรวจสอบแล้วและว่างเปล่าเท่านั้น3. ติดตั้ง mdadm และยูทิลิตี้การแบ่งพาร์ติชั่น GPT
อัปเดตดัชนีแพ็กเกจและติดตั้งคำสั่งที่จำเป็น:
apt update
apt install mdadm gdisk
gdiskแพ็กเกจนี้ มีไฟล์ที่ sgdiskจำเป็น โปรดตรวจสอบการเปลี่ยนแปลงที่โปรแกรมจัดการแพ็กเกจเสนอ ก่อนที่จะยอมรับ โดยเฉพาะอย่างยิ่งบนโฮสต์ที่ใช้งานจริง
ภาพแสดงตัวอย่างจากเทอร์มินัลขณะติดตั้ง mdadm และ gdisk จาก repositories ของ Debian Bookworm โดยใช้คำสั่ง apt4. สร้างอาร์เรย์ RAID 1 แบบสองดิสก์
ใช้พาร์ติชั่นอุปกรณ์ ไม่ใช่ดิสก์ทั้งหมด เป็นสมาชิกของอาร์เรย์ แทนที่ด้วย/dev/disk/by-id/…-part1เส้นทางที่เสถียรที่คุณตรวจสอบแล้ว หากมี ชื่อย่อด้านล่างช่วยให้ตัวอย่างอ่านง่ายขึ้น:
mdadm --create /dev/md0 \
--metadata=1.2 --level=1 --raid-devices=2 \
/dev/sdb1 /dev/sdc1
--level=1เลือกการทำมิเรอร์--raid-devices=2ตั้งค่าสมาชิกสองตัว และระบุเวอร์ชันเมตาเดตา 1.2 อย่างชัดเจน การสร้างอาร์เรย์จะเขียนเมตาเดตา RAID และเริ่มการซิงโครไนซ์ อย่าดำเนินการต่อหาก mdadm เตือนว่าสมาชิกมีเมตาเดตา RAID ที่มีอยู่หรือข้อมูลที่คุณไม่สามารถอธิบายได้ อย่าตอบกลับด้วย--forceทางลัด
ภาพแสดงตัวอย่างคำสั่ง mdadm --create บนเทอร์มินัล สำหรับอาร์เรย์ RAID 1 สองตัว อุปกรณ์ที่แสดงในตัวอย่างเป็นเพียงตัวอย่าง ไม่ใช่ดิสก์ที่ได้รับการตรวจสอบแล้ว5. ตรวจสอบการซิงโครไนซ์และยืนยันสมาชิกทั้งสองฝ่าย
ตรวจสอบความคืบหน้าและสถานะปัจจุบันของอาร์เรย์:
cat /proc/mdstat
mdadm --detail /dev/md0
ระหว่างการซิงโครไนซ์ครั้งแรก/proc/mdstatอาจแสดงเปอร์เซ็นต์การซิงโครไนซ์และเวลาโดยประมาณ โปรดรอให้เสร็จสมบูรณ์ก่อนที่จะถือว่ามิเรอร์ซิงโครไนซ์เสร็จสมบูรณ์แล้ว โดยทั่วไปแล้ว อาร์เรย์สองสมาชิกที่ซิงโครไนซ์เสร็จสมบูรณ์จะแสดง[2/2] [UU]ค่า ซึ่งหมายความว่าช่องเสียบสมาชิกทั้งสองช่องพร้อมใช้งาน ในขณะที่mdadm --detailควรแสดงอุปกรณ์ที่ใช้งานอยู่สองตัวและรายงานสถานะที่สะอาด ตัวบ่งชี้เหล่านี้อธิบายถึงสถานะของอาร์เรย์ ณ ขณะนั้น ไม่ใช่การตรวจสอบการสำรองข้อมูลหรือการรับประกันว่าดิสก์ทางกายภาพใด ๆ จะยังคงอยู่ในสภาพดี
ภาพแสดงมุมมองเทอร์มินัลของ /proc/mdstat และ mdadm --detail โดยทั่วไปแล้ว อาร์เรย์สองตัวที่ทำงานได้อย่างปกติจะแสดงสถานะว่าสมาชิกทั้งสองทำงานอยู่ และ [2/2] [UU]; ตรวจสอบเอาต์พุตแบบเรียลไทม์บนโฮสต์6. บันทึกคำจำกัดความของอาร์เรย์สำหรับการประกอบเมื่อบูตเครื่อง
สอบถาม mdadm เกี่ยวกับคำจำกัดความของอาร์เรย์:
mdadm --detail --scan /dev/md0
ตรวจสอบARRAYบรรทัดที่ส่งคืนมาและเพิ่มบรรทัดนั้นลงในไฟล์/etc/mdadm/mdadm.confโดยใช้โปรแกรมแก้ไขข้อความ และรักษาข้อมูลอาร์เรย์ที่มีอยู่เดิมไว้ หลีกเลี่ยงการเพิ่มสำเนาซ้ำโดยไม่ ตรวจสอบ คู่มือ mdadm.conf ของ Debian อธิบายไฟล์นี้และวิธีที่คำจำกัดความของอาร์เรย์รองรับภาษาแอสเซมบลี ในการติดตั้ง Debian มาตรฐานโดยใช้ initramfs-tools ให้สร้าง initramfs ใหม่หลังจากเปลี่ยนการกำหนดค่า:
update-initramfs -u
คำสั่งนี้จะอัปเดตอิมเมจ initramfs ที่มีอยู่แล้ว ไม่ได้สร้างสำเนาสำรองของอาร์เรย์ของคุณ หากระบบนี้ใช้เฟรมเวิร์ก initramfs ที่แตกต่างกันหรือการตั้งค่าบูตที่ไม่เป็นมาตรฐาน โปรดปฏิบัติตามขั้นตอนการอัปเดตที่ระบุไว้ในเอกสารของเฟรมเวิร์กนั้น
ภาพแสดงมุมมองเทอร์มินัลของรายการ ARRAY ที่ค้นพบด้วยคำสั่ง mdadm --detail --scan และคำสั่ง initramfs update7. สร้างระบบไฟล์และเชื่อมต่ออาร์เรย์ที่ประกอบเสร็จแล้ว
หลังจากตรวจสอบแล้วว่า/dev/md0เป็นอาร์เรย์ใหม่ จึงค่อยสร้างระบบไฟล์ ext4 บนอุปกรณ์นั้น:
mkfs.ext4 /dev/md0
mkdir -p /srv/raid1
mount /dev/md0 /srv/raid1
blkid /dev/md0
mkfs.ext4ลบข้อมูลระบบไฟล์บนอุปกรณ์เป้าหมาย เรียกใช้คำสั่งนี้บนอุปกรณ์อาร์เรย์ที่ประกอบเสร็จแล้ว ไม่ใช่บน/dev/sdb1หรือ/dev/sdc1; การฟอร์แมตสมาชิกโดยตรงจะข้ามการทำมิเรอร์ คัดลอก UUID ของระบบไฟล์ที่แสดงโดย จากblkidนั้นเพิ่มบรรทัดเช่นต่อไปนี้ลงใน โดย/etc/fstabแทนที่ตัวยึดตำแหน่งด้วย UUID จริงนั้น:
UUID=YOUR-FILESYSTEM-UUID /srv/raid1 ext4 defaults 0 2
การใช้ UUID ของระบบไฟล์จะช่วยหลีกเลี่ยงการขึ้นอยู่กับลำดับที่ Linux ค้นพบดิสก์ ส่วนสุดท้าย2จะเปิดใช้งานลำดับการตรวจสอบระบบไฟล์รองตามปกติสำหรับระบบไฟล์ ext หากคุณเลือกnofailตัวเลือกการเมานต์เพื่อให้การบูตสามารถดำเนินต่อไปได้เมื่อไม่มีพื้นที่จัดเก็บข้อมูล โปรดตรวจสอบให้แน่ใจว่าบริการต่างๆ ไม่เขียนข้อมูลลงในไดเร็กทอรีจุดเมานต์เปล่าๆ ในขณะที่อาร์เรย์ไม่อยู่
ภาพแสดงตัวอย่างจากเทอร์มินัลระหว่างการสร้างระบบไฟล์ ext4 บนอุปกรณ์อาร์เรย์ที่ประกอบเสร็จแล้ว และการเมานต์ที่ /srv/raid1 การฟอร์แมตจะลบข้อมูลระบบไฟล์ที่มีอยู่เดิม8. ทดสอบการตั้งค่าการเมานต์และวางแผนการรีบูตอย่างเป็นระบบ
ตรวจสอบรายการในไฟล์ fstab โดยไม่ต้องรีบูตเครื่อง จากนั้นตรวจสอบสถานะการเมานต์และ RAID ที่ได้:
mount -a
findmnt /srv/raid1
df -hT /srv/raid1
cat /proc/mdstat
mdadm --detail /dev/md0
findmntควรแสดง/dev/md0การเมานต์ที่ตำแหน่ง/srv/raid1ที่คาดหวังพร้อมระบบไฟล์ที่ถูกต้อง หากไม่เป็นเช่นนั้น ให้แก้ไข/etc/fstabก่อนรีสตาร์ท การพิมพ์ผิดอาจทำให้การบูตหยุดชะงักหรือทำให้การเมานต์หายไป เมื่อตรวจสอบผ่านแล้ว ให้กำหนดเวลาการรีบูตแบบควบคุมและทำการตรวจสอบการเมานต์และ RAID อีกครั้งในภายหลัง บทความนี้ไม่ได้อ้างว่าเซิร์ฟเวอร์ใดเซิร์ฟเวอร์หนึ่งได้รับการทดสอบการรีบูตแล้ว
ภาพแสดงมุมมองเทอร์มินัลของรายการ UUID ของระบบไฟล์ใน fstab และ findmnt ซึ่งแสดงว่า /dev/md0 ถูกเมานต์ที่ /srv/raid1รายการตรวจสอบการยืนยันอย่างรวดเร็ว
- เป้าหมายถูกต้อง:การตรวจสอบหมายเลขซีเรียล/รุ่นและการเชื่อมต่อยืนยันว่าดิสก์ข้อมูลที่เลือกเป็นไดรฟ์ที่ไม่ได้ใช้งานตามที่ตั้งใจไว้
- การแบ่งพาร์ติชัน:พาร์ติชันสมาชิกทั้งสองมีอยู่และมีขนาดใกล้เคียงกัน
- สถานะเครือข่าย:
/proc/mdstatแสดงว่าสมาชิกทั้งสองพร้อมใช้งาน[UU]หลังจากทำการซิงโครไนซ์ และmdadm --detailรายงานว่ามีอุปกรณ์ที่ใช้งานอยู่สองตัว - ระบบไฟล์และการเมานต์:
findmnt /srv/raid1แสดงอุปกรณ์ที่รองรับอาร์เรย์และระบบไฟล์ที่คาดหวัง ณ เส้นทางที่ต้องการ - การคงอยู่ของข้อมูล:คำจำกัดความของอาร์เรย์จะถูกบันทึกไว้ใน
/etc/mdadm/mdadm.conf, UUID ของระบบไฟล์จะอยู่ใน/etc/fstab, และการรีสตาร์ทตามแผนจะยืนยันว่าทั้งสองอย่างถูกประกอบและเมานต์เรียบร้อยแล้ว
ข้อจำกัดและข้อควรพิจารณาในการฟื้นฟู
RAID 1 จะเก็บสำเนาของบล็อกที่เขียนไว้ในแต่ละสมาชิก ดังนั้นหากสมาชิกตัวใดตัวหนึ่งล้มเหลว อาจทำให้ระบบทำงานในสถานะที่ไม่สมบูรณ์ได้ นั่นไม่ได้หมายความว่าทุกแอปพลิเคชันจะทำงานได้ตามปกติ หรือทุกความล้มเหลวจะสามารถแก้ไขได้โดยไม่หยุดทำงาน ควรตรวจสอบเครื่องอย่างสม่ำเสมอและดำเนินการแก้ไขทันทีเมื่อพบการแจ้งเตือนเกี่ยวกับดิสก์หรืออาร์เรย์ ก่อนที่จะเปลี่ยนดิสก์ที่ล้มเหลว ควรใช้mdadm --detail /dev/md0ตัวระบุอุปกรณ์ที่ถูกต้องและเสถียรเพื่อตรวจสอบว่าสมาชิกใดได้รับผลกระทบ โดยปกติแล้วดิสก์ที่จะเปลี่ยนจะต้องมีขนาดอย่างน้อยเท่ากับสมาชิกเดิมและแบ่งพาร์ติชันให้ตรงกับอาร์เรย์ การเพิ่มพาร์ติชันทดแทนที่ระบุอย่างถูกต้องmdadm --add /dev/md0 /dev/REPLACEMENT_PARTITIONจะเริ่มการสร้างใหม่ ตรวจสอบข้อมูลประจำตัวของอุปกรณ์อย่างละเอียดก่อนเรียกใช้คำสั่งกู้คืนใดๆ และตรวจสอบการสร้างใหม่จนกว่าสมาชิกทั้งสองจะกลับสู่สถานะปกติ
อย่าใช้คำแนะนำเกี่ยวกับปริมาณข้อมูลนี้เพื่อทำสำเนาไฟล์ระบบรูทของ Debian การตั้งค่า RAID รูทที่สามารถบูตได้นั้นเพิ่มข้อกำหนดเกี่ยวกับพาร์ติชั่นระบบ EFI การติดตั้งบูตโหลดเดอร์ เนื้อหา initramfs และการทดสอบการกู้คืน ในทำนองเดียวกัน อย่าถือว่าสำเนาที่ทำงานได้อย่างสมบูรณ์เป็นสำเนาอิสระ: ให้เก็บรักษาสำเนาสำรองที่แยกต่างหากและมีการกำหนดเวอร์ชัน และทดสอบการกู้คืนไฟล์จากสำเนาสำรองนั้น สำหรับการดูแลระบบซอฟต์แวร์ RAID ของ Debian โดยทั่วไป โปรดศึกษาเอกสารประกอบ Debian SoftwareRAIDควบคู่ไปกับคู่มือ Bookworm ที่มีการกำหนดเวอร์ชันซึ่งเชื่อมโยงไว้ด้านบน