Ổ đĩa Btrfs không thành công trong RAID-1 có thể được thay thế trực tiếp không?


15

Tôi đang cố gắng quyết định một hệ thống tập tin và muốn biết liệu có thể thay thế một ổ đĩa bị lỗi trong btrfs RAID mà không có thời gian chết hay không.

  1. Giả sử tôi tạo một hệ thống tập tin btrfs mới bằng cách sử dụng lệnh

    mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
    
  2. Bây giờ giả sử một ngày /dev/sdcthất bại. Có hai khả năng: nó có thể thất bại dần dần, hiển thị lỗi SMART - trong tình huống này tôi có thể thêm một thiết bị mới btrfs device add /dev/sde /mnt; btrfs filesystem balance /mntvà sau đó loại bỏ thiết bị cũ bằng btrfs device delete /dev/sdc /mnt.

  3. Nhưng nếu nó đột nhiên thất bại, trở nên không thể đọc được ... Một tìm kiếm trên web cho biết trong tình huống này trước tiên tôi phải ngắt kết nối hệ thống tập tin, gắn kết ở chế độ xuống cấp, thêm thiết bị mới, sau đó xóa thiết bị bị thiếu.

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

Một unmount rõ ràng là một hoạt động gây gián đoạn nên sẽ có thời gian chết - bất kỳ ứng dụng nào sử dụng hệ thống tập tin sẽ gặp lỗi I / O. Nhưng các loại "hướng dẫn" trên btrfs này đã lỗi thời, coi btrfs đang được phát triển nặng nề.

Câu hỏi là: xem xét tình trạng hiện tại của btrfs, có thể làm điều này trực tuyến, tức là không có kết quả?

Nếu không, có một giải pháp chỉ phần mềm có thể đáp ứng nhu cầu này?


1
Nếu một ổ đĩa bắt lửa, phần còn lại của hệ thống của bạn cũng có thể bốc cháy
Journeyman Geek

1
@JTHERmanGeek Buồn cười bạn .. :) Tôi chỉ muốn nói rõ rằng tôi có nghĩa là một thất bại thảm khốc, đột ngột và không thể đoán trước - ổ đĩa chỉ đơn giản là ngừng hoạt động. Điều này khá hiếm gặp, đĩa cứng thường thất bại dần dần và với sự giám sát hiệu quả tôi có thể thay thế chúng trước khi điều đó xảy ra, nhưng nếu ...
NothingsImpossible 21/12/13

2
Trong Linux 3.8 btrfs replace mountpoint old_disk new_diskđã được thêm vào.
Brian

@Brian woow ... Đó là câu trả lời. Tôi đã googled cho "btrfs thay thế" và điều này xuất hiện lwn.net/Articles/524589 . Đó là _exactly_ những gì tôi đang tìm kiếm. Xin vui lòng gửi nó như là một câu trả lời để tôi có thể chấp nhận nó.
NothingsImpossible 29/12/13

Câu trả lời:


11

Trong Linux 3.8, btrfs replace mountpoint old_disk new_diskđã được thêm vào. Nếu bạn đang chạy kernel gần đây, nó sẽ cung cấp chức năng mà bạn đang tìm kiếm.


4
Điều này bây giờ sẽ được btrfs replace start /dev/old /dev/new /mountpoint( bắt đầu đã được thêm vào). Cũng thấy man btrfs-replace.
bản6

1

sửa nhỏ, cú pháp hiện tại là:

btrfs thay thế bắt đầu OLDDEV NEWDEV MOUNTPOINT

mà sau đó nền.

Bạn có thể kiểm tra trạng thái với

btrfs thay thế trạng thái MOUNTPOINT

sẽ hiển thị cho bạn trạng thái được cập nhật liên tục của thao tác thay thế.


1
Đây không phải là một câu trả lời cho câu hỏi ban đầu. Để phê bình hoặc yêu cầu làm rõ từ một tác giả, hãy để lại nhận xét bên dưới bài đăng của họ - bạn luôn có thể nhận xét về bài đăng của riêng bạn và khi bạn có đủ danh tiếng, bạn sẽ có thể nhận xét về bất kỳ bài đăng nào .
DavidPostill
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.