ວິທີການກູ້ຄືນຂໍ້ມູນແລະສ້າງຄືນຊອບແວຣ໌ RAIDs ທີ່ລົ້ມເຫລວ - ພາກທີ 8


ໃນບົດຂຽນກ່ອນ ໜ້າ ນີ້ຂອງຊຸດ RAID ນີ້ທ່ານໄດ້ຈາກສູນໄປຫາ hero RAID. ພວກເຮົາໄດ້ທົບທວນຄືນການຕັ້ງຄ່າ RAID ຂອງໂປແກຼມຫຼາຍໆ software ແລະໄດ້ອະທິບາຍກ່ຽວກັບສິ່ງທີ່ ຈຳ ເປັນຂອງແຕ່ລະຄົນ, ພ້ອມກັບເຫດຜົນຕ່າງໆທີ່ທ່ານຈະເພິ່ງພາອາໄສ ໜຶ່ງ ຫລືອີກອັນ ໜຶ່ງ ຂື້ນກັບສະຖານະການສະເພາະຂອງທ່ານ.

ໃນຄູ່ມືນີ້ພວກເຮົາຈະປຶກສາຫາລືກ່ຽວກັບວິທີການສ້າງ ໃໝ່ ໂປແກຼມ RAID ໂດຍບໍ່ເສຍຂໍ້ມູນໃນເວລາທີ່ມີຄວາມລົ້ມເຫຼວຂອງແຜ່ນ. ສຳ ລັບຄວາມຖີ່, ພວກເຮົາຈະພິຈາລະນາການຕັ້ງຄ່າ RAID 1 ເທົ່ານັ້ນ - ແຕ່ແນວຄິດແລະ ຄຳ ສັ່ງໃຊ້ໄດ້ກັບທຸກໆກໍລະນີ.

ກ່ອນທີ່ຈະ ດຳ ເນີນການຕໍ່ໄປ, ກະລຸນາຮັບປະກັນວ່າທ່ານໄດ້ຕັ້ງແຖວ RAID 1 ຕາມ ຄຳ ແນະ ນຳ ທີ່ໃຫ້ໄວ້ໃນພາກທີ 3 ຂອງຊຸດນີ້: ວິທີການຕັ້ງຄ່າ RAID 1 (Mirror) ໃນ Linux.

ການປ່ຽນແປງພຽງແຕ່ໃນກໍລະນີປະຈຸບັນຂອງພວກເຮົາແມ່ນ:

1) ລຸ້ນ CentOS (v7) ທີ່ແຕກຕ່າງຈາກລຸ້ນທີ່ໃຊ້ໃນບົດຄວາມນັ້ນ (v6.5), ແລະ
2) ຂະ ໜາດ ແຜ່ນທີ່ແຕກຕ່າງກັນ ສຳ ລັບ/dev/sdb ແລະ/dev/sdc (ແຕ່ລະ 8 GB).

ນອກຈາກນັ້ນ, ຖ້າ SELinux ຖືກເປີດໃຊ້ໃນຮູບແບບການບັງຄັບໃຊ້, ທ່ານຈະຕ້ອງເພີ່ມປ້າຍຊື່ທີ່ສອດຄ້ອງກັນໃສ່ໄດເລກະທໍລີທີ່ທ່ານຈະຕິດຕັ້ງອຸປະກອນ RAID. ຖ້າບໍ່ດັ່ງນັ້ນ, ທ່ານຈະເຂົ້າໄປໃນຂໍ້ຄວາມເຕືອນນີ້ໃນຂະນະທີ່ພະຍາຍາມຕິດຕັ້ງມັນຢູ່:

ທ່ານສາມາດແກ້ໄຂສິ່ງນີ້ໄດ້ໂດຍການເຮັດວຽກ:

# restorecon -R /mnt/raid1

ການຕັ້ງຄ່າການກວດສອບ RAID

ມັນມີຫລາກຫລາຍເຫດຜົນທີ່ເຮັດໃຫ້ອຸປະກອນເກັບຮັກສາສາມາດລົ້ມເຫລວໄດ້ (SSDs ໄດ້ຫຼຸດຜ່ອນໂອກາດທີ່ຈະເກີດຂື້ນຢ່າງຫລວງຫລາຍ, ເຖິງແມ່ນວ່າ), ແຕ່ບໍ່ວ່າຈະເປັນສາເຫດໃດກໍ່ຕາມທ່ານສາມາດແນ່ໃຈວ່າບັນຫາຕ່າງໆສາມາດເກີດຂື້ນໄດ້ທຸກເວລາແລະທ່ານ ຈຳ ເປັນຕ້ອງກຽມຕົວເພື່ອທົດແທນຄວາມລົ້ມເຫລວ ສ່ວນ ໜຶ່ງ ແລະເພື່ອຮັບປະກັນຄວາມພ້ອມແລະຄວາມສົມບູນຂອງຂໍ້ມູນຂອງທ່ານ.

ຄຳ ໃຫ້ ຄຳ ແນະ ນຳ ກ່ອນ. ເຖິງແມ່ນວ່າໃນເວລາທີ່ທ່ານສາມາດກວດສອບ/proc/mdstat ເພື່ອກວດສອບສະຖານະຂອງ RAIDs ຂອງທ່ານ, ມີວິທີການທີ່ດີກວ່າແລະປະຫຍັດເວລາເຊິ່ງປະກອບດ້ວຍການແລ່ນ mdadm ໃນໂຫມດຕິດຕາມ + scan ເຊິ່ງຈະສົ່ງການແຈ້ງເຕືອນຜ່ານອີເມວຫາຜູ້ຮັບທີ່ໄດ້ ກຳ ນົດໄວ້ກ່ອນ.

ເພື່ອຕັ້ງຄ່ານີ້, ເພີ່ມສາຍຕໍ່ໄປນີ້ໃນ /etc/mdadm.conf:

MAILADDR [email <domain or localhost>

ໃນກໍລະນີຂອງຂ້ອຍ:

MAILADDR [email 

ເພື່ອ ດຳ ເນີນການ mdadm ໃນ monitor + mode, ເພີ່ມການເຂົ້າ crontab ຕໍ່ໄປນີ້ເປັນຮາກ:

@reboot /sbin/mdadm --monitor --scan --oneshot

ໂດຍຄ່າເລີ່ມຕົ້ນ, mdadm ຈະກວດສອບ RAID ທີ່ຈັດຂື້ນທຸກໆ 60 ວິນາທີແລະສົ່ງການແຈ້ງເຕືອນຖ້າມັນພົບບັນຫາ. ທ່ານສາມາດດັດແປງພຶດຕິ ກຳ ນີ້ໄດ້ໂດຍການເພີ່ມຕົວເລືອກ - ເວລາ ເຂົ້າໄປໃນ crontab ເຂົ້າຂ້າງເທິງພ້ອມດ້ວຍ ຈຳ ນວນວິນາທີ (ຕົວຢ່າງ, - ໃຊ້ເວລາ 1800 ໝາຍ ຄວາມ 30 ນາທີ).

ສຸດທ້າຍ, ໃຫ້ແນ່ໃຈວ່າທ່ານໄດ້ຕິດຕັ້ງຕົວແທນຜູ້ໃຊ້ Mail (MUA), ເຊັ່ນ mutt ຫຼື mailx. ຖ້າບໍ່ດັ່ງນັ້ນ, ທ່ານຈະບໍ່ໄດ້ຮັບການແຈ້ງເຕືອນໃດໆ.

ໃນນາທີທີ່ພວກເຮົາຈະເຫັນວ່າການແຈ້ງເຕືອນທີ່ສົ່ງໂດຍ mdadm ເບິ່ງຄືວ່າ.

ການ ຈຳ ລອງແລະທົດແທນອຸປະກອນເກັບຂໍ້ມູນ RAID ທີ່ລົ້ມເຫລວ

ເພື່ອ ຈຳ ລອງບັນຫາກັບ ໜຶ່ງ ໃນອຸປະກອນເກັບຮັກສາໃນແຖວ RAID, ພວກເຮົາຈະໃຊ້ຕົວເລືອກ - manage ແລະ - set-faulty ດັ່ງຕໍ່ໄປນີ້:

# mdadm --manage --set-faulty /dev/md0 /dev/sdc1  

ນີ້ຈະສົ່ງຜົນໃຫ້/dev/sdc1 ຖືກ ໝາຍ ວ່າມີຄວາມຜິດ, ດັ່ງທີ່ພວກເຮົາເຫັນໃນ/proc/mdstat:

ສິ່ງທີ່ ສຳ ຄັນກວ່ານີ້, ທ່ານຄວນເບິ່ງວ່າພວກເຮົາໄດ້ຮັບການແຈ້ງເຕືອນທາງອີເມວດ້ວຍການເຕືອນດຽວກັນນີ້:

ໃນກໍລະນີນີ້, ທ່ານຈະຕ້ອງຖອດອຸປະກອນອອກຈາກອາເລ RAID ຂອງຊອບແວ:

# mdadm /dev/md0 --remove /dev/sdc1

ຫຼັງຈາກນັ້ນທ່ານສາມາດເອົາມັນອອກຈາກເຄື່ອງແລະທົດແທນມັນດ້ວຍສ່ວນປະກອບ ((dev/sdd, ບ່ອນທີ່ສ່ວນແບ່ງ fd ປະເພດໄດ້ຖືກສ້າງຂື້ນມາກ່ອນ):

# mdadm --manage /dev/md0 --add /dev/sdd1

ໂຊກດີ ສຳ ລັບພວກເຮົາ, ລະບົບຈະເລີ່ມຕົ້ນການກໍ່ສ້າງອາຄານໂດຍອັດຕະໂນມັດໂດຍມີສ່ວນທີ່ພວກເຮົາພຽງແຕ່ເພີ່ມເຂົ້າມາ. ພວກເຮົາສາມາດທົດສອບສິ່ງນີ້ໄດ້ໂດຍການ ໝາຍ/dev/sdb1 ວ່າມີຄວາມຜິດ, ເອົາມັນອອກຈາກຂບວນ, ແລະຮັບປະກັນວ່າເອກະສານ tecmint.txt ຍັງສາມາດເຂົ້າເຖິງໄດ້ທີ່/mnt/raid1:

# mdadm --detail /dev/md0
# mount | grep raid1
# ls -l /mnt/raid1 | grep tecmint
# cat /mnt/raid1/tecmint.txt

ຮູບພາບຂ້າງເທິງສະແດງໃຫ້ເຫັນຢ່າງຈະແຈ້ງວ່າຫລັງຈາກເພີ່ມ/dev/sdd1 ເຂົ້າໃນອາເລເປັນການທົດແທນ ສຳ ລັບ/dev/sdc1, ການສ້າງຂໍ້ມູນຄືນ ໃໝ່ ໄດ້ຖືກປະຕິບັດໂດຍລະບົບອັດຕະໂນມັດໂດຍບໍ່ມີການແຊກແຊງໃນສ່ວນຂອງພວກເຮົາ.

ເຖິງແມ່ນວ່າບໍ່ໄດ້ ກຳ ນົດຢ່າງເຄັ່ງຄັດກໍ່ຕາມ, ແຕ່ມັນກໍ່ເປັນຄວາມຄິດທີ່ດີທີ່ຈະມີເຄື່ອງອາໄຫຼ່ທີ່ມີປະໂຫຍດເພື່ອໃຫ້ຂະບວນການປ່ຽນອຸປະກອນທີ່ມີຂໍ້ບົກພ່ອງທີ່ຖືກຂັບເຄື່ອນໄປດ້ວຍດີ. ເພື່ອເຮັດສິ່ງນັ້ນ, ໃຫ້ຕື່ມ/dev/sdb1 ແລະ/dev/sdc1:

# mdadm --manage /dev/md0 --add /dev/sdb1
# mdadm --manage /dev/md0 --add /dev/sdc1

ການຟື້ນຕົວຈາກການສູນເສຍຄືນ

ດັ່ງທີ່ໄດ້ອະທິບາຍກ່ອນ ໜ້າ ນີ້, mdadm ຈະສ້າງຂໍ້ມູນຄືນ ໃໝ່ ໂດຍອັດຕະໂນມັດເມື່ອແຜ່ນ ໜຶ່ງ ລົ້ມເຫລວ. ແຕ່ຈະມີຫຍັງເກີດຂື້ນຖ້າວ່າ 2 ແຜ່ນໃນອາເລລົ້ມເຫລວ? ໃຫ້ ຈຳ ລອງສະຖານະການດັ່ງກ່າວໂດຍການ ໝາຍ/dev/sdb1 ແລະ/dev/sdd1 ທີ່ມີຂໍ້ຜິດພາດ:

# umount /mnt/raid1
# mdadm --manage --set-faulty /dev/md0 /dev/sdb1
# mdadm --stop /dev/md0
# mdadm --manage --set-faulty /dev/md0 /dev/sdd1

ຄວາມພະຍາຍາມທີ່ຈະສ້າງຂບວນການ ໃໝ່ ໃນແບບດຽວກັນກັບທີ່ມັນຖືກສ້າງຂື້ນໃນເວລານີ້ (ຫລືການໃຊ້ຕົວເລືອກ <ລະຫັດ - ສະອາດ - ສະອາດ ) ອາດຈະເຮັດໃຫ້ຂໍ້ມູນສູນເສຍ, ສະນັ້ນມັນຄວນຈະຖືກປະໄວ້ເປັນວິທີສຸດທ້າຍ.

ໃຫ້ພະຍາຍາມກູ້ເອົາຂໍ້ມູນຈາກ/dev/sdb1, ຍົກຕົວຢ່າງເຂົ້າໃນການແບ່ງປັນແຜ່ນທີ່ຄ້າຍຄືກັນ (/ dev/sde1 - ໃຫ້ສັງເກດວ່ານີ້ຮຽກຮ້ອງໃຫ້ທ່ານສ້າງພາທິຊັນຂອງ fd ປະເພດໃນ/dev/sde ກ່ອນ ດຳ ເນີນການ) ໂດຍໃຊ້ ddrescue:

# ddrescue -r 2 /dev/sdb1 /dev/sde1

ກະລຸນາຮັບຊາບວ່າເຖິງຈຸດນີ້, ພວກເຮົາບໍ່ໄດ້ ສຳ ຜັດ/dev/sdb ຫຼື/dev/sdd, ສ່ວນທີ່ເປັນສ່ວນ ໜຶ່ງ ຂອງຂບວນ RAID.

ດຽວນີ້ໃຫ້ສ້າງ ໃໝ່ ແຖວໂດຍໃຊ້/dev/sde1 ແລະ/dev/sdf1:

# mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[e-f]1

ກະລຸນາຮັບຊາບວ່າໃນສະພາບຄວາມເປັນຈິງ, ໂດຍປົກກະຕິທ່ານຈະໃຊ້ຊື່ຂອງອຸປະກອນດຽວກັນກັບອາເລເດີມ, ນັ້ນແມ່ນ,/dev/sdb1 ແລະ/dev/sdc1 ຫຼັງຈາກແຜ່ນທີ່ລົ້ມເຫລວຖືກທົດແທນດ້ວຍເຄື່ອງ ໃໝ່.

ໃນບົດຂຽນນີ້ຂ້າພະເຈົ້າໄດ້ເລືອກທີ່ຈະໃຊ້ອຸປະກອນພິເສດເພື່ອສ້າງໂຖປັດສະວະກັບຖາດ ໃໝ່ ແລະເພື່ອຫລີກລ້ຽງຄວາມສັບສົນກັບຮາດດິດທີ່ລົ້ມເຫລວເດີມ.

ເມື່ອຖືກຖາມວ່າຈະສືບຕໍ່ການຂຽນແຖວ, ພິມ Y ແລະກົດ Enter. ຂບວນການຄວນຈະເລີ່ມຕົ້ນແລະທ່ານຄວນຈະສາມາດສັງເກດເບິ່ງຄວາມຄືບ ໜ້າ ຂອງມັນດ້ວຍ:

# watch -n 1 cat /proc/mdstat

ເມື່ອຂະບວນການເຮັດ ສຳ ເລັດ, ທ່ານຄວນຈະສາມາດເຂົ້າເຖິງເນື້ອຫາຂອງ RAID ຂອງທ່ານ:

ບົດສະຫຼຸບ

ໃນບົດຂຽນນີ້ພວກເຮົາໄດ້ທົບທວນວິທີການກູ້ຄືນຈາກຄວາມລົ້ມເຫລວຂອງ RAID ແລະການສູນເສຍຄວາມຊ້ ຳ ຊ້ອນ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ທ່ານ ຈຳ ເປັນຕ້ອງຈື່ວ່າເທັກໂນໂລຢີນີ້ເປັນໂຊລູຊັ່ນໃນການເກັບຮັກສາແລະບໍ່ຄວນທົດແທນການ ສຳ ຮອງ.

ຫຼັກການທີ່ໄດ້ອະທິບາຍໄວ້ໃນຄູ່ມືນີ້ແມ່ນໃຊ້ກັບການຕັ້ງຄ່າ RAID ທັງ ໝົດ, ພ້ອມທັງແນວຄວາມຄິດທີ່ພວກເຮົາຈະເອົາໄວ້ໃນຄູ່ມືຕໍ່ໄປແລະສຸດທ້າຍຂອງຊຸດນີ້ (ການຄຸ້ມຄອງ RAID).

ຖ້າທ່ານມີ ຄຳ ຖາມໃດໆກ່ຽວກັບບົດຂຽນນີ້, ສາມາດຝາກຈົດ ໝາຍ ຊ່ວຍພວກເຮົາໂດຍໃຊ້ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້. ພວກເຮົາຫວັງວ່າຈະໄດ້ຍິນຂ່າວຈາກທ່ານ!