web-dev-qa-db-ja.com

zfsonlinux、raidz1:2つのディスクの破損:dd / dd_rescueを使用してzpoolを欺くにはどうすればよいですか?

私はzfsonlinux(Centos 7)とraidz1を持っています。そして、私は問題を抱えています:2つのディスクが死にかけています。

最初のディスクでは、SMARTおよびReallocated_Sector_Ctエラー(データを再配置するための空きセクターが不足しています)でRaw_Read_Error_Rateエラーが発生します)

2番目のディスクにはReallocated_Sector_Ctエラーがありますが、バックアップセクターが残っています。

最初のディスクを新しいディスクに変更しましたが、zfsが再シルバーリングを開始しました。当初の速度は約2MB /秒でしたが、しばらくすると20KB /秒以下に低下し、数日間は非常に小さいままです。

そして、さらに多くのエラーがあります:

Jul  9 06:14:09 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], FAILED SMART self-check. BACK UP DATA NOW!
Jul  9 06:14:11 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 488 Currently unreadable (pending) sectors
Jul  9 06:14:11 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 107 Offline uncorrectable sectors
Jul  9 06:44:08 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], FAILED SMART self-check. BACK UP DATA NOW!
Jul  9 06:44:12 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 488 Currently unreadable (pending) sectors
Jul  9 06:44:12 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 107 Offline uncorrectable sectors

再起動すると、プールのインポートは役に立ちません。

Dd_rescueを使用して、2番目に故障したディスクを新しいディスクにコピーし、zpoolを欺くことはできますか?どうすればそれをだまして、新しいディスクでプールをインポートできますか?/dev/disk/by-id /を使用して、zpool内のディスクを識別します。

  pool: tank                                                                                                                                                                                                         
 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 Sun Jul  5 15:16:17 2015                                                                                                                                                          
    59.2G scanned out of 1.70T at 81.3K/s, (scan is slow, no estimated time)                                                                                                                                         
    14.8G resilvered, 3.40% done                                                                                                                                                                                     
config:                                                                                                                                                                                                              

        NAME                                                  STATE     READ WRITE CKSUM                                                                                                                             
        tank                                                  DEGRADED     0     0     0                                                                                                                             
          raidz1-0                                            DEGRADED     0     0     0                                                                                                                             
            ata-Hitachi_HDS721010CLA332_JP2940HQ2VTTDH-part1  ONLINE       0     0     0                                                                                                                             
            replacing-1                                       DEGRADED     0     0     1                                                                                                                             
              4455585976361728304                             UNAVAIL      0     0     0  was /dev/disk/by-id/ata-Hitachi_HDS721010CLA332_JP2940HQ2VTZUH-part1                                                       
              ata-ST1000DM003-1ER162_W4Y1HJTP-part1           ONLINE       0     0     0  (resilvering)                                                                                                              
            ata-WDC_WD10EALS-00Z8A0_WD-WCATR1714802-part1     ONLINE       0     0     0                                                                                                                             
            ata-WDC_WD10EALS-00Z8A0_WD-WCATR1737637-part1     ONLINE       0     0     0      


zpool list
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
tank  3.56T  1.70T  1.86T         -      -    47%  1.54x  DEGRADED  -

私はこれらのソフトウェアバージョンを使用しています:zfs-release-1-2.el7.centos.noarch libzfs2-0.6.4.1-1.el7.centos.x86_64 zfs-0.6.4.1-1.el7.centos.x86_64 zfs-dkms-0.6 .4.1-1.el7.centos.noarch

1

編集:私は最初にそれがraidzではなくミラープールだと思った。

まず、zpoolreplaceは正常に機能するはずです。死にかけているディスクの動作が遅いために遅い場合は、最初にオフライン/デタッチして、データが他のディスクから再構築され、不良ディスクからの読み取りが試行されないようにすることができます。ただし、複数の障害のあるディスクは良いことではありません。

その時点で古いデッドディスクがマシンから削除されている限り、ddrescueを使用してプールをエクスポートしてからインポートすることもできます。 Importは通常、すべてのディスクを調べて、検出およびインポートするプールを確認します。

また、障害が発生しているドライブが複数ある場合は、それらを同時に交換しても問題はありません。すべてのディスクをそのように処理するのに1回の再シルバーパスしか必要ないため、通常は高速です。オンラインディスクを交換する場合、交換が完了するまで、読み取り/書き込みターゲットとして使用されます。

1
stox