web-dev-qa-db-ja.com

2 HDD間のファイル破損

NAS Ubuntu 16.04 LTSサーバーi386(カーネル4.4.211-0404211-generic)を実行しています。これをsambaと一緒に使用して、ホームネットワークを介して映画や音楽を共有しています。

HDDから最近購入した別のHDDに約100 Goのデータをコピーしようとしました。どちらもext4です。

起動時に両方ともfstabによってマウントされています:

_UUID=... /media/HDD{number_of_hdd} ext4 defaults,errors=remount-ro 0 2
_

しかし、私が試したすべてが失敗しました。原因として、すべてが(部分的に)破損しています。私のすべてのファイルは読み取り可能です。たとえば、Windows PCのVLCはsambaの共有を考えていましたが、音楽に小さな一時停止やビデオの視覚的な破損がたくさんあり、Dropped (discontinued) VLCの統計ページで、オーディオまたはビジュアルの破損に気づくたびにもう1つ。

したがって、チェックサム(ソースファイルと宛先ファイルの両方で_7z h {file} -scrcSHA256_と_md5sum_を使用)をチェックし、それらが異なるたびにチェックしました。

cprsyncを使用してコピーを作成しましたが、どちらも失敗しました。私が使用した完全なコマンド:

_cp -r {source} {destination}
rsync -Pa {source} {destination}
_

私は両方のHDDのスマート値を確認しましたが、何も問題はありません。その後、両方で_fsck -f -y_も実行しました。fsckは、すべてが良好であることを通知します。また、_memtest86+_を使用してmemtestを作成しましたが、すべてが良好です。 _apt update_で利用できるアップデートはありません。

何時間も問題を見つけようとしたところ、次のことに気づきました(どちらもcpまたはrsyncを使用しています)。

  • truncateで作成された小さなファイル(20Moでテスト済み)では、チェックサムは正しい
  • 小さなファイル(20Moの約5ファイル)を含むフォルダーでは、チェックサムは正しい
  • 100Goのディレクトリ全体をコピーしようとすると、どちらのコマンドでもすべて問題ないことがわかりますが、チェックサムが一致しません。

元のディレクトリの2つのファイルと破損したファイルを比較したところ、いくつかの違いが見つかりました。 12]

必要に応じて、元のファイルと破損したファイルを含むアーカイブを送信できます。

サーバーの仕様:

_==================================================
                            system     A7N8X-E
/0                          bus        A7N8X-E
/0/0                        memory     64KiB BIOS
/0/4                        processor  AMD Athlon(tm) XP 2800+
/0/4/9                      memory     128KiB L1 cache
/0/4/a                      memory     512KiB L2 cache
/0/26                       memory     3GiB System Memory
/0/26/0                     memory     1GiB DIMM DRAM Synchronous
/0/26/1                     memory     1GiB DIMM DRAM Synchronous
/0/26/2                     memory     1GiB DIMM DRAM Synchronous
/0/100                      bridge     nForce2 IGP2
/0/100/0.1                  memory     RAM memory
/0/100/0.2                  memory     RAM memory
/0/100/0.3                  memory     RAM memory
/0/100/0.4                  memory     RAM memory
/0/100/0.5                  memory     RAM memory
/0/100/1                    bridge     nForce2 ISA Bridge
/0/100/1.1                  bus        nForce2 SMBus (MCP)
/0/100/2                    bus        nForce2 USB Controller
/0/100/2/1      usb2        bus        OHCI PCI Host controller
/0/100/2.1                  bus        nForce2 USB Controller
/0/100/2.1/1    usb3        bus        OHCI PCI Host controller
/0/100/2.2                  bus        nForce2 USB Controller
/0/100/2.2/1    usb1        bus        EHCI Host Controller
/0/100/4        enp0s4      network    nForce2 Ethernet Controller
/0/100/8                    bridge     nForce2 External PCI Bridge
/0/100/8/4      enp1s4      network    88E8001 Gigabit Ethernet Controller
/0/100/8/a                  storage    SiI 3114 [SATALink/SATARaid] Serial ATA Controller
/0/100/9                    storage    nForce2 IDE
/0/100/1e                   bridge     nForce2 AGP
/0/1            scsi0       storage
/0/1/0.0.0      /dev/sda    disk       1TB ST1000DM010-2EP1
/0/1/0.0.0/1    /dev/sda1   volume     928GiB EXT4 volume
/0/1/0.0.0/2    /dev/sda2   volume     3070MiB Extended partition
/0/1/0.0.0/2/5  /dev/sda5   volume     3070MiB Linux swap / Solaris partition
/0/2            scsi1       storage
/0/2/0.0.0      /dev/sdb    disk       1TB ST1000LM048-2E71
/0/2/0.0.0/1    /dev/sdb1   volume     465GiB EXT4 volume
/0/2/0.0.0/2    /dev/sdb2   volume     465GiB Linux filesystem partition
/0/3            scsi2       storage
/0/3/0.0.0      /dev/sdc    disk       3TB ST3000DM007-1WY1
/0/3/0.0.0/1    /dev/sdc1   volume     2794GiB EXT4 volume
/0/5            scsi3       storage
/0/5/0.0.0      /dev/sdd    disk       1TB ST1000LM048-2E71
/0/5/0.0.0/1    /dev/sdd1   volume     931GiB Windows NTFS volume
/1              virbr0-nic  network    Ethernet interface
_

この問題がすぐに修正されることを願っています。ありがとう

EDIT 1(2020年1月26日):-私は3時間半(正確には2パス)を実行しましたが、_memtest86+_で、RAMに問題はありません。 enter image description here-破損(CRCエラー)についてのメッセージがないかdmesgも確認しました。コピーを作成します(宛先のチェックサムも不正です)...

-両方のHDD(ソースと宛先)で2つの長いS.M.A.R.Tテストを実行して、問題がないかどうかを確認しています

-プロセス中にファイルのコピーを停止した場合(たとえばCTRL + Cを使用)、ext4ファイルシステムが破損しているように見えます。方法と理由がわかりません。 ...

EDIT 2(2020年1月26日):原因として、両方のHDDに関する2つのレポートがあります:

ソースHDD:

_smartctl 6.5 2016-01-24 r4214 [i686-linux-4.4.211-0404211-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     ST3000DM007-1WY10G
Serial Number:    WFN2CMWR
LU WWN Device Id: 5 000c50 0cc67ff74
Firmware Version: 0001
User Capacity:    3 000 592 982 016 bytes [3,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5425 rpm
Form Factor:      3.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 1.5 Gb/s)
Local Time is:    Sun Jan 26 21:35:04 2020 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (    0) seconds.
Offline data collection
capabilities:            (0x73) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    No Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    ( 359) minutes.
Conveyance self-test routine
recommended polling time:    (   2) minutes.
SCT capabilities:          (0x30a5) SCT Status supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   079   064   006    Pre-fail  Always       -       74326255
  3 Spin_Up_Time            0x0003   096   096   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       13
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   067   060   045    Pre-fail  Always       -       5351732
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       66 (132 227 0)
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       13
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   067   060   040    Old_age   Always       -       33 (Min/Max 30/38)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       5
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       23
194 Temperature_Celsius     0x0022   033   040   000    Old_age   Always       -       33 (0 23 0 0 0)
195 Hardware_ECC_Recovered  0x001a   079   064   000    Old_age   Always       -       74326255
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       55 (238 164 0)
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       2782921433
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       1050108775

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%        66         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
_

宛先HDD:

_Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     ST1000LM048-2E7172
Serial Number:    ZDEBV755
LU WWN Device Id: 5 000c50 0b24d84fd
Firmware Version: SDM1
User Capacity:    1 000 204 886 016 bytes [1,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Form Factor:      2.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-3 T13/2161-D revision 3b
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 1.5 Gb/s)
Local Time is:    Sun Jan 26 18:34:49 2020 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (    0) seconds.
Offline data collection
capabilities:            (0x71) SMART execute Offline immediate.
                    No Auto Offline data collection support.
                    Suspend Offline collection upon new
                    command.
                    No Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    ( 162) minutes.
Conveyance self-test routine
recommended polling time:    (   2) minutes.
SCT capabilities:          (0x3035) SCT Status supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   083   064   006    Pre-fail  Always       -       193912808
  3 Spin_Up_Time            0x0003   099   099   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       228
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   070   060   045    Pre-fail  Always       -       9188472
  9 Power_On_Hours          0x0032   092   092   000    Old_age   Always       -       7832 (182 235 0)
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       197
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   074   058   040    Old_age   Always       -       26 (Min/Max 26/31)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       78
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       1655
194 Temperature_Celsius     0x0022   026   042   000    Old_age   Always       -       26 (0 16 0 0 0)
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       1
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       7545 (117 142 0)
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       5699868670
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       10646554103
254 Free_Fall_Sensor        0x0032   100   100   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%      7832         -
# 2  Short offline       Completed without error       00%      7830         -
# 3  Short offline       Completed without error       00%      3141         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
_

EDIT 3(2020年2月15日):_libata.force=noncq_ linuxを設定して問題を最終的に修正パラメータ、それは明らかにカーネルからのバグであるようで、すぐに間違いなく修正されるでしょう( https://bugs.launchpad.net/ubuntu/+bug/18613

4
Xenoxis

(注:これは、一連のカーネルエラーが発生していないことを前提としています(dmesgまたはjournalctl -b -k)またはドライブに示された大量のCRCエラーSMARTステータス。そうである場合... NCQの回転など、最初に試すべきソフトウェアのいくつかがあります。)

通常、これはRAMの不良を意味します。 memtest86 +が合格した場合でも(どのくらいの期間実行しましたか?)ECC RAMがない限り、これらの仕様からは疑問です。

1メートル以上のSATAケーブルを見つけて、CPUに巻き付けるなど、おかしなことをしていないことを確認してください。 SATAデータ転送にはCRCがあるため、ここで破損が発生している場合は、大量のエラーが発生するはずです。 SATAケーブルは安価です。いつでも交換してみてください。

RAMを交換するだけではない場合、次のステップは、破損が発生しているときに絞り込むことです。

各ドライブで、繰り返しmd5sumまたは同様の問題を示す大きなファイル(キャッシュからチェックされないようにするには、2x RAMのようなものである必要があります)またはファイルのセット。何時間も、何度もやります。あなたはいつも同じ結果を得ますか?そうでない場合は、読み取りパスに破損があります。常に同じ結果が得られる場合は、おそらく読み取り時に破損はありません。 RAM=とは考えにくいでしょう。

両方のディスクで読み取りの破損が発生した場合は、RAMの交換から始めます。それでも解決しない場合は、電源を試し、最後にSATAコントローラーを試してください(モボにはんだ付けされている可能性が高いため、交換する必要があります)。

1つのディスク(両方ではない)で読み取りの破損が発生した場合は、ディスクを交換してください。それでも問題が解決せず、バックプレーン(サーバーのホットスワップ用)がある場合は、欠陥がある可能性があります。ケーブルを交換することもできます。別のSATAポートを試します。ここでは、one不良ディスクが発生する可能性があると想定していますが、twoはほとんどありません。正直なところ、2つの不良ディスクを推定する前に、RAMを交換します。

両方ディスクが常に同じデータを読み返す場合、まず、実際に十分なデータをチェックして、キャッシュされていないことを確認していることを確認します。少なくとも2倍のRAMが必要です。次に、既知のデータを繰り返し各ディスクに書き込み、それを読み取ることで異なる値が得られるかどうかを確認します。次に、上記とほぼ同じソリューション。

PS:このような汚職は油断ができません。特に、データだけでなく、Linuxディストリビューションのランダムなビットが破損している可能性があります。原因を修正した後、通常は再インストールするのが最善です。少なくとも、ディストリビューションが提供するすべてのファイルを、正常なチェックサムと照合する必要があります。一部のディストリビューションは、それを行うためのユーティリティを提供しています。それでも、動的なディストリビューションデータファイル(たとえば、インストールされたパッケージリスト)への損傷がないことは確認できませんが、少なくともバイナリが正常であることは確認できます。

3
derobert

昔、同じ問題がありました。壊れたBIOSに問題がありました。 RAMであるかのように、これがRAMである可能性は低く、ランダムクラッシュが「無料」で発生するはずであり、問​​題は片方ではなく両方のドライブで発生します(問題は新しいドライブでのみ発生しますか?)

私はこれに焦点を当てます:コピーとプロセスから除外します。書き込み専用に置き換えてください。大きなブロックサイズのddでファイルを作成します(dd if =/dev/zero of = myfile bs = 1M count = 100)。正確なサイズを見つけると壊れます。

1
gena2x