いくつかのファイルを自分のNAS(ShareCenter DNS-320)に移動しようとしましたが、ファイルマネージャーを使用すると何かが表示されます。
Input/Output error
またはマウントされたcifs/smb共有でrsyncを使用する場合
rsync: close failed on "/mnt/nas1/_am-unordered/.long-file-name.mkv.PI2rPM": Input/output error (5)
rsync error: error in file IO (code 11) at receiver.c(856) [receiver=3.1.0]
# mount | grep mnt/nas1
//192.168.x.y/backup on /mnt/nas1 type cifs (rw,relatime,vers=1.0,cache=strict,username=admin,domain=BACKUP,uid=1000,forceuid,gid=0,noforcegid,addr=192.168.x.y,file_mode=0755,dir_mode=0755,nounix,serverino,rsize=61440,wsize=65536,actimeo=1)
NAS内に不良セクタがあると想定しているので、fsck
を実行して、RAID-0NAS内に破損したディスクがあるかどうかを確認する必要があります。
これを使用してfun_plug
をインストールしました チュートリアル 、これでNASに正常にSSH接続できます。通常はfsck -yvckfC -E fragcheck /dev/sdX
を使用して不良セクタをチェックしますマウントされていない単一のディスク。
問題は、badblockを実行して、マウントされたRAID0パーティションの不良ブロックリストに挿入する方法です。 sshサービスはNASのマウントされたパーティションで実行されているため:
# umount /mnt/HD/HD_a2/
umount: /mnt/HD/HD_a2: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
# lsof /mnt/HD/HD_a2/
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sh 1963 root 1w REG 9,1 5191 12 /mnt/HD/HD_a2/ffp.log
sh 1963 root 2w REG 9,1 5191 12 /mnt/HD/HD_a2/ffp.log
sh 1963 root 10r REG 9,1 1942 246939802 /mnt/HD/HD_a2/fun_plug
rc 1986 root txt REG 9,1 587316 141426950 /mnt/HD/HD_a2/ffp/bin/bash
rc 1986 root mem REG 9,1 28892 139854377 /mnt/HD/HD_a2/ffp/lib/ld-uClibc-0.9.33-git.so
rc 1986 root mem REG 9,1 260898 139853932 /mnt/HD/HD_a2/ffp/lib/libreadline.so.6.2
**snip**
sshd 5519 root mem REG 9,1 60546 139854375 /mnt/HD/HD_a2/ffp/lib/libgcc_s.so.1
sshd 5519 root mem REG 9,1 359940 139854378 /mnt/HD/HD_a2/ffp/lib/libuClibc-0.9.33-git.so
現在のNASのRAID構成は次のとおりです。
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1]
md1 : active raid0 sda2[0] sdb2[1]
7808789888 blocks 64k chunks
md0 : active raid1 sdb1[1] sda1[0]
524224 blocks [2/2] [UU]
unused devices: <none>
badblocks
が最初に問題を解決できるということで、あなたは不安定な前提から作業しています。
badblocks
が信頼できない修復方法である理由あなたがハードドライブを使うとき、それは危険なものと新しいセクターを交換することによってあなたから問題を隠すために絶えず最善を尽くします。ハードディスクは、まさにこの目的のためにスペアセクターのプールとともに工場から出荷されます。新しい不良セクタの数がゆっくりと増加する限り、スペアセクタプールは十分にゆっくりと縮小し、ハードドライブが問題なく動作しているように見えます。
badblocks
が不良セクタを検出できる唯一の方法は、スペアセクタプールが枯渇したときです。これは、しばらくの間劣化していることを意味します。言い換えると、目に見える不良セクタは、ハードディスクがラグの下で非常に多くの問題を一掃したため、ラグがゴツゴツしたように見え始めていることを意味します。
私の知る限り、ハードドライブはこの種のサイレント修正を何十年もの間行ってきました。おそらく初期の頃から [〜#〜] ide [〜#〜] です。私が使用した最後のシステムは、最初から不良セクタの初期セットを公開していました [〜#〜] esdi [〜#〜] および [〜#〜] mfm [〜#〜 ] 1980年代後半にさかのぼるハードディスク。
これは、最新のハードドライブに不良セクタの初期セットが付属しなくなったということではありません。彼らはそうします。不良セクタは工場でマッピングされるため、新しいハードディスクでのbadblocks
テストで不良セクタがゼロになります。 (スペアセクタープールのセクターは、不良セクターの代わりにマップされます。)
badblocks
スキャンで、新しいドライブまたは保証期間内の不良セクタが見つかった場合は、すぐに交換するのに十分な理由です。
badblocks
は、ファイルシステムの不良セクタリストが役立つのに十分な期間にわたって一貫した結果を返す可能性があります。これにより、ドライブ自体の自己修復機能が機能しなくなった時点を超えて、保証対象外または交換不可能なハードドライブを引き続き使用できるようになります。
ただし、badblocks
が間隔の狭いテスト間で異なる結果を返す可能性もあります。 (たとえば、2つのテストが1日または1週間間隔で実行されます。)ハードディスクがこのような不良状態になると、ファイルシステムの不良セクタリストは無意味になります。ハードディスクが死にかけています。ファイルシステムの不良セクタリストは、リストが長期間安定している場合にのみ利点を提供します。
結論:まだ読み取り可能な状態で、ハードディスクを交換します。はい、これはおそらくNAS全体を再構築することを意味することを理解していますが、それはRAID-0、別名「 怖いRAID 」のコストです。
[〜#〜] smart [〜#〜] を介して、スペアセクタープールのサイズを経時的に追跡する以外に、セクタースワップが発生したことはわかりません。一部のハードドライブは、追跡したい場合でもこれを報告しません。また、それを提供するハードドライブは、文字通りの真実ではなく、 真実の修正バージョン のみを報告する場合があります。
そうは言っても、このコマンドはあなたが知る必要があることを教えてくれるかもしれません:
# smartctl -x /dev/sda | grep Realloc
5 Reallocated_Sector_Ct PO--CK 200 200 140 - 0
196 Reallocated_Event_Count -O--CK 200 200 000 - 0
smartctl
が報告する生の正規化された値は正確に正しくない可能性がありますが、ここでの増加、特に短期間の大幅な増加は常に悪い結果です。
そのコマンドを実行したマシンでは、最後の列がゼロであることに注意してください。これは、レポートが完全に信頼できるとは限らないと私が言うときの意味です。これが「生の」値であり、「200」列は「正規化された」値です。このドライブは、これまで再割り当てがなかったと主張していますが、これはほぼ間違いなく真実ではありません。 「200」は、ハードドライブメーカーが独自に思いついた価値であり、独自の意味を持っています。ハードドライブのブランド間で比較することはできません。また、同じメーカーの他のハードドライブと比較することさえできない場合があります。
しかし、もう一度:これらの値を監視し、それらが突然増加し始めた場合、それは実際には 酸化物レベル で何が起こっているかを教えていないにもかかわらず、悪い兆候です。
smartctl
は、RAIDデバイスではなく、個々のハードドライブに関する情報を報告します。ドライブごとの情報を抽出するためにいくつかのタイプのハードウェアRAIDコントローラーと通信する方法を知っていますが、基盤となるデバイスが直接利用可能であるため、ソフトウェアRAIDを特別にサポートする必要はありません。したがって、/dev/sda
ではなく、/dev/sdb
と/dev/md1
の両方を個別に監視する必要があります。
smartd
— smartctl
のコンパニオンツール—この種のバックグラウンド継続監視を実行します。