2013-12-10 13 views
7

Tôi đã có một ổ đĩa thất bại trong một trong vdevs của tôi thiết lập trạng thái của zpool xuống cấp: root @ mediaserver: ~ # zpool status pool: zfsraid trạng thái: DEGRADEDzpool thay thế lỗi với không chứa một nhãn EFI nhưng nó có thể chứa phân vùng

Vì vậy, tôi đã bắt đầu thực hiện các bước để thay thế ổ đĩa.

Đây là id của đĩa cũ: WWN-0x5000cca225f459d5 Đây là id của đĩa thay thế: WWN-0x5000c5006e38bc61

1) ẩn cũ đĩa:

zpool offline zfsraid wwn-0x5000cca225f459d5 

2) Thay thế đĩa cũ bằng đĩa mới

3) Phát lệnh thay thế:

zpool replace -o ashift=12 zfsraid wwn-0x5000cca225f459d5 wwn-0x5000c5006e38bc61 

Các thay thế lệnh không thành công với:

[email protected]:~# zpool replace -o ashift=12 zfsraid wwn-0x5000cca225f459d5 wwn-0x5000c5006e38bc61 
**invalid vdev specification 
use '-f' to override the following errors: 
/dev/disk/by-id/wwn-0x5000c5006e38bc61 does not contain an EFI label but it may contain partition 
information in the MBR.** 

tôi dường như không thể tìm thấy bất kỳ thông tin để giúp đỡ. Một vài diễn đàn cho biết sử dụng tùy chọn -f, nhưng điều đó có vẻ sơ sài. Không có phân vùng nào được liệt kê trên ổ đĩa mới

[email protected]:~# fdisk -l /dev/disk/by-id/wwn-0x5000c5006e38bc61 

Disk /dev/disk/by-id/wwn-0x5000c5006e38bc61: 3000.6 GB, 3000592982016 bytes 
255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors 
Units = sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes/4096 bytes 
I/O size (minimum/optimal): 4096 bytes/4096 bytes 
Disk identifier: 0x00000000 

Disk /dev/disk/by-id/wwn-0x5000c5006e38bc61 doesn't contain a valid partition table 
[email protected]:~# 

Tôi có phải chạy một số lệnh để xóa ổ đĩa mới không?

Đây là vài dòng cuối cùng trong dmesg liên quan đến ổ đĩa:

[420274.400024] scsi 11:0:8:0: Direct-Access  ATA  ST3000DM001-1CH1 CC29 PQ: 0 ANSI: 6 
[420274.400036] scsi 11:0:8:0: SATA: handle(0x000f), sas_addr(0x4433221107000000), phy(7), device_name(0x0000000000000000) 
[420274.400039] scsi 11:0:8:0: SATA: enclosure_logical_id(0x5000000080000000), slot(4) 
[420274.400130] scsi 11:0:8:0: atapi(n), ncq(y), asyn_notify(n), smart(y), fua(y), sw_preserve(y) 
[420274.400134] scsi 11:0:8:0: qdepth(32), tagged(1), simple(0), ordered(0), scsi_level(7), cmd_que(1) 
[420274.400502] sd 11:0:8:0: Attached scsi generic sg17 type 0 
[420274.401375] sd 11:0:8:0: [sdr] 5860533168 512-byte logical blocks: (3.00 TB/2.72 TiB) 
[420274.401377] sd 11:0:8:0: [sdr] 4096-byte physical blocks 
[420274.475163] sd 11:0:8:0: [sdr] Write Protect is off 
[420274.475166] sd 11:0:8:0: [sdr] Mode Sense: 7f 00 10 08 
[420274.475966] sd 11:0:8:0: [sdr] Write cache: enabled, read cache: enabled, supports DPO and FUA 
[420274.554649] sdr: unknown partition table 
[420274.646245] sd 11:0:8:0: [sdr] Attached SCSI disk 

Đây là phiên bản của ubuntu Tôi đang chạy:

Ubuntu 12.04.3 LTS \n \l 

root @ mediaserver: ~ # uname - a

Linux mediaserver 3.5.0-44-generiC#67~precise1-Ubuntu SMP Wed Nov 13 16:16:57 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 

Trả lời

2

Trước hết, điều quan trọng là phải tìm hiểu xem bạn có thể phát triển nhanh đến mức nào bằng cách phát hành

# zdb | grep ashift 

Nếu đó là ashift = 9, sau đó bạn sẽ phải thay thế ổ đĩa của bạn với -o ashift = 9:

zpool replace -o ashift=9 zfsraid wwn-0x5000cca225f459d5 wwn-0x5000c5006e38bc61 

Nếu bạn tuy nhiên đã hồ bơi của bạn thiết lập như ashift = 12, sau đó lệnh bạn đã nhập phải chính xác. Hãy chắc chắn rằng, bạn có zfs trên linux v0.6.2 ít nhất, mà sẽ có thể xử lý các tùy chọn thay đổi.

+0

12 có vẻ là mặc định, ít nhất là năm ngoái khi tôi bắt đầu làm việc với ZFS tại nhà. – MikeP

0

Bạn cần tạo Bảng phân vùng GPT trên ổ đĩa trước khi thay thế.

+4

Vui lòng xem xét thêm chi tiết hơn vào câu trả lời của bạn; ví dụ. bằng cách chỉ định cách tạo Bảng phân vùng GPT. – Matt

12

@Matt, dưới đây là chi tiết hơn.

TL; DR:

Để làm cho ổ đĩa mới có thể sử dụng để thay thế cho thất bại một, sử dụng chia tay

mklabel GPT 

mở rộng Dance Remix Version:

tôi đã có vấn đề chính xác này và giải quyết nó tối nay. Tôi đang sử dụng Debian Squeeze (6.0.10) với zfs trên Linux (0.6.0-1) và 3 x 1TB ổ đĩa.

[email protected]:~# zpool status 
    pool: dead_pool 
state: DEGRADED 
status: One or more devices are faulted in response to persistent errors. 
    Sufficient replicas exist for the pool to continue functioning in a 
    degraded state. 
action: Replace the faulted device, or use 'zpool clear' to mark the device 
    repaired. 
scan: resilvered 6.09G in 3h10m with 0 errors on Tue Sep 1 11:15:24 2015 
config: 

NAME         STATE  READ WRITE CKSUM 
dead_pool        DEGRADED  0  0  0 
    raidz1-0        DEGRADED  0  0  0 
    scsi-SATA_<orig_device_1>   ONLINE  0  0  0 
    scsi-SATA_<orig_device_2>   ONLINE  0  0  0 
    scsi-SATA_<orig_device_3>   FAULTED  0  3  0 too many errors 

Yikes. Tôi đã đi ra ngoài chiều nay và mua một ổ đĩa mới có cùng kích thước (kiểu dáng/mô hình khác nhau), tắt nguồn và cài đặt nó cùng với ba ổ zfs hiện có. Power up một lần nữa, và tôi đã xem lũ lụt của I/O lỗi trên ổ đĩa cũ khi hệ thống khởi động. Những thứ đáng sợ.

Để thay thế cái cũ với cái mới trong zfs:

  • ID đĩa cũ: 1784233895253655477 (tìm thấy sử dụng 'ZDB')
  • thiết bị đĩa mới:/dev/disk/by-id/scsi -SATA_

    [email protected]:~# zpool offline dead_pool 1784233895253655477 
    [email protected]:~# zpool replace dead_pool 1784233895253655477 /dev/disk/by-id/scsi-SATA_<new_device_id> 
    invalid vdev specification 
    use '-f' to override the following errors: 
    /dev/disk/by-id/scsi-SATA_<new_device_id> does not contain an EFI label but it may contain partition 
    information in the MBR. 
    

Đây là nơi @ câu hỏi của Matt do thỏa thuận để chơi. Sử dụng parted để thiết lập một GPT (nhờ systutorials.com):

[email protected]:~# parted /dev/disk/by-id/scsi-SATA_<new_device_id> 
GNU Parted 2.3 
Using /dev/sde 
Welcome to GNU Parted! Type 'help' to view a list of commands. 
(parted) mklabel GPT              
(parted) q                 
Information: You may need to update /etc/fstab. 

Hãy thử thay thế một lần nữa:

[email protected]:~# zpool replace dead_pool 1784233895253655477 /dev/disk/by-id/scsi-SATA_<new_device_id> 
[email protected]:~# 

lớn nó trở thành công. Bây giờ, hãy kiểm tra lại zpool:

[email protected]:~# zpool status 
    pool: dead_pool 
state: DEGRADED 
status: One or more devices is currently being resilvered. The pool will 
    continue to function, possibly in a degraded state. 
action: Wait for the resilver to complete. 
scan: resilver in progress since Thu Sep 3 22:31:25 2015 
    23.8G scanned out of 690G at 19.7M/s, 9h35m to go 
    7.93G resilvered, 3.45% done 
config: 

    NAME         STATE  READ WRITE CKSUM 
    dead_pool        DEGRADED  0  0  0 
     raidz1-0        DEGRADED  0  0  0 
     scsi-SATA_<orig_device_1>   ONLINE  0  0  0 
     scsi-SATA_<orig_device_2>   ONLINE  0  0  0 
     replacing-2       OFFLINE  0  0  0 
      scsi-SATA_<orig_device_3>   OFFLINE  0  0  0 
      scsi-SATA_<new_device_id>   ONLINE  0  0  0 (resilvering) 

Hy vọng điều này sẽ hữu ích.

+0

Woo! Bạn đá. Chắc chắn là tôi đã chuyển sang ZFS mirrors từ RAID5. Được sử dụng để mất nhiều ngày để thay thế một ổ đĩa chết, và sau đó một ngày nó chỉ hoàn toàn shat giường và tôi bị mất tất cả mọi thứ. Có vẻ như nó sẽ chỉ mất hơn một giờ để "resilver" lần này. – mpen

Các vấn đề liên quan