我的一个vdev中的驱动器失败,将zpool的状态设置为降级:root @ mediaserver:〜#zpool status pool:zfsraid state:DEGRADED
所以我开始采取措施更换驱动器.
这是旧磁盘的id:wwn-0x5000cca225f459d5这是替换磁盘的id:wwn-0x5000c5006e38bc61
1)离线旧磁盘:
zpool offline zfsraid wwn-0x5000cca225f459d5
2)用新磁盘物理替换旧磁盘
3)问题替换命令:
zpool replace -o ashift=12 zfsraid wwn-0x5000cca225f459d5 wwn-0x5000c5006e38bc61
replace命令失败:
root@mediaserver:~# 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.**
我似乎无法找到任何帮助的信息.一些论坛说使用-f选项,但这看起来很粗略.新驱动器上没有列出分区
root@mediaserver:~# 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 root@mediaserver:~#
我是否必须运行一些命令来擦除新驱动器?
这些是dmesg中与驱动器相关的最后几行:
[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
这是我正在运行的ubuntu的版本:
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
小智.. 16
@Matt,这里有更多细节.
TL; DR:
要使新驱动器可用于替换发生故障的驱动器,请使用parted和
mklabel GPT
扩展舞蹈混音版本:
我有这个确切的问题并在今晚解决了.我在Linux(0.6.0-1)和3 x 1TB驱动器上使用Debian Squeeze(6.0.10)和zfs.
root@host:~# 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_ONLINE 0 0 0 scsi-SATA_ ONLINE 0 0 0 scsi-SATA_ FAULTED 0 3 0 too many errors
让人惊讶.我今天下午出去买了一个相同尺寸(不同品牌/型号)的新驱动器,关闭电源并将其安装在现有的三个zfs驱动器旁边.再次启动,我在系统启动时看到了旧驱动器上的大量I/O错误.可怕的东西.
要用zfs中的new替换旧的:
旧磁盘ID:1784233895253655477(使用'zdb'找到)
新磁盘设备:/ dev/disk/by-id/scsi-SATA_
root@host:~# zpool offline dead_pool 1784233895253655477 root@host:~# zpool replace dead_pool 1784233895253655477 /dev/disk/by-id/scsi-SATA_invalid vdev specification use '-f' to override the following errors: /dev/disk/by-id/scsi-SATA_ does not contain an EFI label but it may contain partition information in the MBR.
这就是@Matt的问题.使用parted设置GPT(感谢systutorials.com):
root@host:~# parted /dev/disk/by-id/scsi-SATA_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.
再次尝试替换:
root@host:~# zpool replace dead_pool 1784233895253655477 /dev/disk/by-id/scsi-SATA_root@host:~#
很棒,它成功回归.现在再次检查zpool:
root@host:~# 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_ONLINE 0 0 0 scsi-SATA_ ONLINE 0 0 0 replacing-2 OFFLINE 0 0 0 scsi-SATA_ OFFLINE 0 0 0 scsi-SATA_ ONLINE 0 0 0 (resilvering)
希望这可以帮助.