일부 파일을 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-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
다른 결과를 반환하는 것도 가능합니다. (예를 들어 하루 또는 일주일 간격으로 두 번 테스트를 수행합니다.) 하드 드라이브가 이러한 불량 상태에 빠지면 파일 시스템의 불량 섹터 목록은 의미가 없게 됩니다. 파일 시스템의 불량 섹터 목록은 목록이 오랜 기간 동안 안정적으로 유지되는 경우에만 이점을 제공합니다.
요점:아직 읽을 수 있는 상태에서 하드 드라이브를 교체하십시오. 예, 이것이 전체 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"은 하드 드라이브 제조업체 자체가 생각한 값이며 그 자체의 의미가 있습니다. 하드 드라이브 브랜드 간에는 비교할 수 없으며, 동일한 제조업체의 다른 하드 드라이브와도 비교하지 못할 수도 있습니다.
하지만 다시 말씀드리지만, 이러한 값을 모니터링하다가 갑자기 증가하기 시작한다면 이는 실제로 무슨 일이 일어나고 있는지 알려주지 않더라도 나쁜 징조입니다.산화물 수준.
smartctl
RAID 장치가 아닌 개별 하드 드라이브에 대한 정보를 보고합니다. 각 드라이브에 대한 정보를 추출하기 위해 다양한 유형의 하드웨어 RAID 컨트롤러와 통신하는 방법을 알고 있지만 기본 장치를 직접 사용할 수 있으므로 소프트웨어 RAID에 대한 특정 지원이 필요하지 않습니다. 따라서 /dev/sda
과 대신에 모니터링해야 합니다 ./dev/sdb
/dev/md1
smartd
- 동반 도구 smartctl
- 이 백그라운드 연속 모니터링을 수행합니다.