Bisakah drive Btrf yang gagal di RAID-1 diganti langsung?

15

Saya mencoba untuk memutuskan sistem file dan ingin tahu apakah mungkin untuk mengganti drive yang gagal di btrfs RAID tanpa downtime.

  1. Misalkan saya membuat sistem file btrf baru menggunakan perintah

    mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
    
  2. Sekarang anggaplah suatu hari /dev/sdcgagal. Ada dua kemungkinan: bisa gagal secara bertahap, menunjukkan kesalahan SMART - dalam situasi ini saya dapat menambahkan perangkat baru dengan btrfs device add /dev/sde /mnt; btrfs filesystem balance /mntdan kemudian menghapus yang lama dengan btrfs device delete /dev/sdc /mnt.

  3. Tetapi jika tiba-tiba gagal, menjadi tidak dapat dibaca ... Pencarian web mengatakan dalam situasi ini saya harus terlebih dahulu melepas sistem file, mount dalam mode terdegradasi, tambahkan perangkat baru, lalu lepaskan perangkat yang hilang.

    umount /mnt
    mount -o degraded /dev/sdb /mnt
    btrfs device add /dev/sdf /mnt 
    btrfs device delete missing /mnt
    

Unmount jelas merupakan operasi yang mengganggu sehingga akan ada downtime - aplikasi apa pun yang menggunakan sistem file akan mendapatkan kesalahan I / O. Tapi "tutorial" semacam ini tentang btrf terlihat ketinggalan zaman, mengingat btrf sedang dalam pengembangan.

Pertanyaannya adalah: mempertimbangkan kondisi btrf saat ini, apakah mungkin untuk melakukan ini secara online, yaitu tanpa melepas?

Jika tidak, ada solusi hanya perangkat lunak yang dapat memenuhi kebutuhan ini?

Tidak mungkin
sumber
1
Jika satu drive terbakar, sisa sistem Anda mungkin juga terbakar
Journeyman Geek
1
@JourneymanGeek Lucu kamu .. :) Saya hanya ingin membuatnya sangat jelas bahwa yang saya maksud adalah kegagalan yang tiba-tiba dan tidak dapat diprediksi - drive hanya berhenti bekerja. Ini agak jarang, hard disk biasanya gagal secara bertahap dan dengan pemantauan yang efektif saya dapat menggantinya sebelum itu terjadi, tetapi bagaimana jika ...
NothingsImpossible
2
Di Linux 3.8 btrfs replace mountpoint old_disk new_disktelah ditambahkan.
Brian
@ Brian woow ... Itulah jawabannya. Saya mencari "btrfs replace" di Google dan ini muncul di lwn.net/Articles/524589 . Ini _ tepatnya apa yang saya cari. Silakan posting sebagai jawaban sehingga saya bisa menerimanya.
Mungkin

Jawaban:

11

Di Linux 3.8, btrfs replace mountpoint old_disk new_disktelah ditambahkan. Jika Anda menjalankan kernel terbaru, itu akan menyediakan fungsionalitas yang Anda cari.

Brian
sumber
4
Ini sekarang akan menjadi btrfs replace start /dev/old /dev/new /mountpoint( mulai telah ditambahkan). Lihat juga man btrfs-replace.
basic6
1

koreksi kecil, sintaks saat ini adalah:

btrfs ganti start OLDDEV NEWDEV MOUNTPOINT

yang kemudian menjadi latar belakang.

Anda dapat memeriksa statusnya dengan

btrfs ganti status MOUNTPOINT

yang akan menunjukkan kepada Anda status operasi penggantian yang terus diperbarui.

Volker
sumber
1
Ini bukan jawaban untuk pertanyaan awal. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka - Anda selalu dapat mengomentari posting Anda sendiri, dan setelah Anda memiliki reputasi yang cukup Anda akan dapat mengomentari posting apa pun .
DavidPostill