GNU/Linux >> Belajar Linux >  >> Linux

Sederhana mdadm RAID 1 tidak mengaktifkan cadangan

Melakukan hal ini cukup memasukkan drive ke dalam array tanpa benar-benar melakukan apa pun dengannya, yaitu ia adalah anggota dari array tetapi tidak aktif di dalamnya. Secara default, ini mengubahnya menjadi cadangan:

sudo mdadm /dev/md0 --add /dev/sdb1

Jika Anda memiliki cadangan, Anda dapat mengembangkannya dengan memaksa jumlah drive aktif agar array bertambah. Dengan 3 drive dan 2 diharapkan aktif, Anda perlu meningkatkan jumlah aktif menjadi 3.

mdadm --grow /dev/md0 --raid-devices=3

Pengemudi raid array akan melihat bahwa Anda "pendek" drive, dan kemudian mencari cadangan. Menemukan cadangan, itu akan mengintegrasikannya ke dalam array sebagai drive aktif. Buka terminal cadangan dan biarkan baris perintah yang agak kasar ini berjalan di dalamnya, untuk mengawasi kemajuan sinkronisasi ulang. Pastikan untuk mengetiknya sebagai satu baris atau gunakan karakter pemecah baris (\), dan setelah pembangunan kembali selesai, cukup ketik Ctrl-C di terminal.

while true; do sleep 60; clear; sudo mdadm --detail /dev/md0; echo; cat /proc/mdstat; done

Larik Anda sekarang akan memiliki dua drive aktif yang sinkron, tetapi karena tidak ada 3 drive, tidak akan 100% bersih. Hapus drive yang gagal, lalu ubah ukuran array. Perhatikan bahwa --grow flag sedikit keliru - itu bisa berarti salah satu tumbuh atau menyusut:

sudo mdadm /dev/md0 --fail /dev/{failed drive}
sudo mdadm /dev/md0 --remove /dev/{failed drive}
sudo mdadm --grow /dev/md0 --raid-devices=2

Sehubungan dengan kesalahan, masalah tautan dengan drive (yaitu port PATA/SATA, kabel, atau konektor drive) tidak cukup untuk memicu kegagalan cadangan panas, karena kernel biasanya akan beralih menggunakan yang "baik" lainnya drive saat me-reset link ke drive "buruk". Saya tahu ini karena saya menjalankan array 3-drive, 2 panas, 1 cadangan, dan salah satu drive baru-baru ini memutuskan untuk muntah sedikit di log. Ketika saya menguji semua drive dalam array, ketiganya lulus uji SMART versi "panjang", jadi tidak ada masalah dengan piringan, komponen mekanis, atau pengontrol onboard - yang meninggalkan kabel tautan yang terkelupas atau a port SATA buruk. Mungkin ini yang Anda lihat. Coba alihkan drive ke port motherboard lain, atau gunakan kabel lain, dan lihat apakah ada perbaikan.

Tindak lanjut:Saya menyelesaikan perluasan mirror ke 3 drive, gagal dan melepaskan drive yang tidak stabil dari md array, menukar kabel dengan yang baru (motherboard mendukung ini) dan menambahkan kembali drive. Setelah ditambahkan kembali, itu segera memulai sinkronisasi ulang drive. Sejauh ini, tidak ada satu kesalahan pun yang muncul di log meskipun drive sedang banyak digunakan. Jadi, ya, kabel drive bisa terkelupas.


Saya memiliki masalah yang persis sama, dan dalam kasus saya, saya menemukan bahwa disk serangan aktif mengalami kesalahan baca selama sinkronisasi. Oleh karena itu disk baru yang lebih baru berhasil disinkronkan dan karenanya tetap ditandai sebagai cadangan.

Anda mungkin ingin memeriksa kesalahan /var/log/messages dan log sistem lainnya. Selain itu, sebaiknya periksa juga status SMART disk Anda:
1) Jalankan tes singkat:

"smartctl -t short /dev/sda"

2) Tampilkan hasil tes:

"smartctl -l selftest /dev/sda"

Dalam kasus saya ini mengembalikan sesuatu seperti ini:

===MULAI MEMBACA BAGIAN DATA CERDAS ===
SMART Self-test struktur log revisi nomor 1
Num Test_Description Status Sisa Seumur Hidup(jam) LBA_of_first_error
1 Perpanjangan offline Selesai:kegagalan baca 90% 7564 27134728
2 Offline pendek Selesai:kegagalan baca 90% 7467 1408449701

Saya harus mem-boot distro langsung dan secara manual menyalin data dari disk yang rusak ke yang baru (saat ini "cadangan").


Saya memiliki masalah yang persis sama dan selalu berpikir bahwa disk kedua saya, yang ingin saya tambahkan kembali ke array, mengalami kesalahan. Tapi itu disk asli saya telah membaca kesalahan.

Anda dapat memeriksanya dengan smartctl -t short /dev/sdX dan lihat hasilnya beberapa menit kemudian dengan smartctl -l selftest /dev/sdX . Bagi saya itu terlihat seperti ini:

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed: read failure       20%     25151         734566647

Saya mencoba memperbaikinya dengan manual ini. Itu tadi menyenangkan :-). Saya tahu Anda telah memeriksa kedua disk untuk kesalahan, tetapi saya pikir masalah Anda adalah, bahwa disk yang masih dalam array md telah membaca kesalahan, sehingga menambahkan disk kedua gagal.

Perbarui

Anda juga harus menjalankan smartctl -a /dev/sdX Jika Anda melihat Current_Pending_Sector> 0 ada yang salah

197 Current_Pending_Sector 0x0012 098 098 000 Old_age Always - 69

Bagi saya itu pasti masalah bahwa saya menghapus disk dari penggerebekan hanya untuk pengujian dan sinkronisasi ulang tidak dapat dilakukan karena kegagalan baca. Sinkronisasi dibatalkan setengah jalan. Ketika saya memeriksa disk saya yang masih dalam array serangan, smartctl melaporkan masalah.

Saya dapat memperbaikinya dengan manual di atas dan melihat jumlah sektor yang tertunda berkurang. Tapi ada banyak sekali dan ini adalah prosedur yang panjang dan membosankan, jadi saya menggunakan cadangan saya dan memulihkan data di server yang berbeda.

Karena Anda tidak memiliki kesempatan untuk menggunakan SMART, saya kira pengujian mandiri Anda tidak menunjukkan sektor yang rusak tersebut.

Bagi saya ini adalah pelajaran yang dipetik:Periksa disk Anda sebelum Anda menghapusnya dari larik Anda.


Linux
  1. mdadm:perintah tidak ditemukan

  2. Array di Bash Tidak Ditemukan

  3. Membangun kembali larik mdadm RAID5 dengan lebih sedikit disk

  1. Serangan Linux menghilang setelah reboot

  2. Perangkat lunak mdadm Linux RAID 6 - apakah ini mendukung pemulihan kerusakan bit?

  3. Mengapa perangkat serangan 10 perlu diinisialisasi?

  1. Pemulihan Data Hard Drive Sederhana

  2. Mengganti drive RAID 6 yang gagal dengan mdadm

  3. Info Hard Disk Dibalik Pengontrol Serangan Perangkat Keras?