マウントされたパーティションに不良ブロックを追加する

マウントされたパーティションに不良ブロックを追加する

一部のファイルを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の内部に不良セクタがあると仮定し、fsckRAID-0 NASの内部に破損したディスクがあることを確認する必要があります。

fun_plugこれを使ってインストールしました。地図時間今、NASに正常にSSHを接続することができます。通常、私はこの方法を使用して、fsck -yvckfC -E fragcheck /dev/sdXマウントされていない単一ディスクの不良セクタを特定します。

問題は、バッドブロックをどのように実行し、マウントされた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>

答え1

badblocksそもそも問題が解決されるため、不安定な前提で作業します。

badblocks修正を信頼できない理由

ハードドライブを使用すると、新しいセクタを信頼できないセクタに置き換えて、問題を隠すために常に最善を尽くします。ハードドライブは、この目的のためのスペアセクタプールとともに工場で出荷されます。新しい不良セクタの数がゆっくりと増加する限り、予備セクタのプールもゆっくりと減少し、ハードドライブはそのまま残る。現れる完璧に動作します。

不良セクタを検索する唯一の方法badblocksは、スペアセクタプールが使い果たされた場合、つまり一定期間のパフォーマンスが低下した場合です。言い換えれば、目立つ不良セクタは、ハードドライブがあまりにも多くの問題を覆い隠したため、カーペットがぼやけて見え始めたことを意味します。

私が知っている限り、ハードドライブはおそらく初期から数十年の間自動修理を行ってきました。統合開発環境。私が作業した最後のシステムは、最初から初期の不良セクタセットが公開されていました。静電気放電指数そして自己顕微鏡ハードドライブの歴史は1980年代後半にさかのぼります。

だからといって、最新のハードドライブにもはや初期の不良セクタセットが提供されていないという意味ではありません。彼らは。不良セクタは工場でマッピングされているため、badblocks新しいハードドライブでテストすると表示されます。若い不良セクタ。 (スペアセクタプールのセクタは、不良セクタを置き換えるようにマッピングされます。)

badblocks検査の結果、新しいドライブまたはまだ保証期間が残っているドライブで不良セクタが見つかった場合は、すぐに交換する必要がある十分な理由になります。

badblocksファイルシステムの不良セクタリストが機能するのに十分な長さの一貫した結果を返すことができます。これにより、ドライブのセルフリカバリ機能が機能しなくなっても、保証期間が過ぎたり交換できないハードドライブを引き続き使用できます。

ただし、間隔が近いテスト間でbadblocks異なる結果を返すことも可能です。 (たとえば、1日または1週間の間隔で2回テストを実行します。)ハードドライブがこれらの不良状態に入ると、ファイルシステムの不良セクタのリストは意味をなさなくなります。ファイルシステムの不良セクタのリストは、リストが長期間安定している場合にのみ利点を提供します。

ポイント:まだ読みやすい状態でハードドライブを交換してください。はい、これはNAS全体を再構築することを意味するかもしれませんが、これはRAID-0です。恐ろしいRAID」。

より良いソリューション:モニタリング

時間の経過とともにスペアセクタプールのサイズを追跡できない場合、セクタスワップが発生したことを知りません。賢い。追跡したい場合でも、一部のハードドライブはこれを報告しませんが、この情報を提供するハードドライブは報告するだけです。真実の修正版文字通りの真実ではなく

つまり、このコマンドは知っておくべきことを伝えることができます。

# 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レポートは完全に正確ではないかもしれません。ここで数字を増やすこと、特に短期間で大きな増加をするのは常に悪いことです。

このコマンドを実行しているコンピューターでは、最後の列は0です。私がこのレポートを完全に信頼できないかもしれないということは、これが私が言う意味です。これは「生」値で、「200」列は「正規化された」値です。ドライブは再割り当てされたことがないと主張しますが、これは事実ではないことはほとんど確実です。 「200」は、ハードドライブメーカー自体が考えた値であり、それ自体の意味があります。ハードドライブのブランド間では比較できず、同じメーカーの他のハードドライブと比較することはできません。

しかし、もう一度申し上げますが、これらの値を監視して突然増加し始めた場合、これは実際に何が起こっているのかを知らせなくても悪い兆候です。酸化物レベル

smartctlRAIDデバイスではなく、個々のハードドライブに関する情報を報告します。各ドライブの情報を抽出するためにさまざまな種類のハードウェアRAIDコントローラと通信する方法を知っていますが、基本デバイスを直接使用できるため、ソフトウェアRAIDの特定のサポートは必要ありません。したがって、および代わり/dev/sdaに監視する必要があります。/dev/sdb/dev/md1

smartd- 同伴ツールsmartctl- このバックグラウンド連続監視を実行します。

関連情報