소프트웨어 RAID 재 동기화를 중단하는 방법?


50

데비안 스퀴즈 소프트웨어 습격에서 재 동기화 작업을 중단하고 싶습니다. (이것은 정기적 인 예약 비교 재 동기화입니다. 이러한 경우 RAID 어레이는 여전히 깨끗합니다. 디스크가 고장 나고 교체 된 후이를 재 구축과 혼동하지 마십시오.)

이 예약 된 재 동기화 작업이 실행되는 동안 중지하는 방법은 무엇입니까? 또 다른 공격대는 "동기화 보류 중"입니다. 모두 같은 날 (일요일 밤)에 차례로 확인되기 때문입니다. 이 일요일 밤의 재 동기화를 완전히 중단하고 싶습니다.

[편집 : sudo kill -9 1010멈추지 않습니다. 1010은 md2_resync 프로세스의 PID입니다]

또한 재 동기화와 다음 시간까지의 잔여 시간 사이의 간격을 제어하는 ​​방법을 알고 싶습니다.

[Edit2 : 내가 지금 한 것은 재 동기화를 매우 느리게하는 것이므로 더 이상 방해하지 않습니다.

sudo sysctl -w dev.raid.speed_limit_max=1000

http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html 에서 가져온

밤에는 다시 높은 값으로 설정하여 재 동기화를 종료 할 수 있습니다.

이 해결 방법은 대부분의 상황에 적합하지만 그럼에도 내가 요청한 것이 가능한지 아는 것이 흥미로울 것입니다. 예를 들어 "동기화"중 재 동기화 또는 재 동기화하는 동안 배열을 확장 할 수없는 것 같습니다.]


나는 재 동기화를 취소하기 위해 공을 가지고 있다고 생각하지 않습니다. 다시는 시작되지 않을까 걱정됩니다.
Tom O'Connor

1
@Tom : 이것은 모든 일요일이 모든 것이 일치하는지 확인하는 일반적인 재 동기화입니다. 중지 된 경우 (예 : 머신 종료) 다음 부팅시 계속됩니다.
Adam5

오 그래. 괜찮습니다
Tom O'Connor

답변:


48

배열이 md0그렇다면echo "idle" > /sys/block/md0/md/sync_action

'idle'은 활성 재 동기화 / 복구 등을 중지합니다. 다른 재 동기화 / 복구가 자동으로 다시 시작되지 않을 수도 있습니다.

http://www.mjmwired.net/kernel/Documentation/md.txt#477


권한을 변경 한 후 텍스트 파일을 업데이트 할 수 있지만 파일의 내용이 같은 인스턴스에서 "재 동기화"로 다시 변경됩니다. 그리고 재 동기화는 다른 어레이 (이전에 "보류 중")에서 계속됩니다. "idle"을 다른 배열의 파일에 쓰면 다시 바뀌지 만 멈추지 않습니다.
Adam5

2
레이드가 여러 개인 경우 : echo idle | sudo tee / sys / block / md * / md / sync_action
Ole Tange

실제로 "유휴"는 검사를 일시 중지합니다. 다음 "체크"는 /sys/block/md0/md/sync_min’. To reset this write 이 파일의 0`에서 계속 됩니다.
rudimeier

33

다른 컴퓨터의 일부를 백업하기 위해 일부 I / O를 저장하기 위해 재 동기화 프로세스를 느리게하거나 일시 중지하고 싶었습니다. 이 스레드가 도움이되었지만 다른 해결책을 찾았습니다.

내 데비안 레니에서 :

  • echo "idle" > /sys/block/md0/md/sync_action 작동하지만 재 동기화 프로세스가 즉시 다시 시작됩니다.

  • checkarray -x --all : 작동하지만 동일한 결과 : 재 동기화 프로세스가 즉시 다시 시작됩니다.

그래서 나는이 방법을 사용합니다 : echo 0 > /proc/sys/dev/raid/speed_limit_max


1
재미있는 접근법. speed_limit_min의 값을 조절해야한다는 것을 알았습니다.
Diomidis Spinellis

1
또한 speed_limit_min재 동기화를 완전히 일시 중지하려면 0 으로 설정해야했습니다 .
njahnke

12

루트로 다음 명령 시퀀스를 사용하여 진행중인 어레이 재 동기화를 취소 할 수 있습니다.

echo frozen > /sys/block/md0/md/sync_action
echo none > /sys/block/md0/md/resync_start
echo idle > /sys/block/md0/md/sync_action

참고 이 일관성이없는 상태에서 배열을 남겨 둘 수 있습니다 . 어레이의 상태가 확실하지 않으면 나중에 동기화를 다시 실행하지 않으면이 작업을 수행하지 마십시오.

(신용 기한이있는 크레디트 : 이 글 에서이 주문 찾았습니다 .)


8

위에서 언급했듯이 Debian / Ubuntu 시스템에서 /etc/cron.d/mdadm스크립트는 스크립트를 호출하여 /usr/share/mdadm/checkarray재 동기화 검사를 시작합니다.

이 스크립트에는 실행중인 모든 동기화 확인을 취소하는 옵션이 있습니다.

/usr/share/mdadm/checkarray -x --all

3

재 동기화를 취소하는 방법에 대해서는 잘 모르지만 일정은 /etc/cron.d/mdadm데비안 / 우분투 시스템에서 제어 합니다.

스크립트 /usr/share/mdadm/checkarray는 질문의 다른 부분에 약간의 빛을 비출 수 있습니다. cron이 호출하는 것이기 때문입니다.


3

md 장치가 md0이고 재 동기화 쓰기를 중지하려는 경우 :

echo "idle" > /sys/block/md0/md/sync_action

3

이에 대한 가능한 해결책은 세부 정보를 얻는 데 약간의 시간이 걸렸습니다.

내 시스템 : CentOS 6.5 mdadm v3.3.2

매주 지속적인 검사, 그중 하나를 일시 중지하고, RAID가 깨끗하며, 매주 실행되는 /etc/cron.d/raid-check 스크립트를 통해 검사가 호출되었습니다.

확인을 취소하려면 --misc --action 기능을 사용하십시오. RAID 장치가 / dev / md0이고 이는 주 단위 일관성 검사일 뿐이고 장치 오류가 아니라고 가정하면 루트로 다음과 같이됩니다.

mdadm --misc --action = idle / dev / md0

마찬가지로 일관성 검사를 시작하려면

mdadm --misc --action = check / dev / md0


2
echo "idle" > /sys/block/md0/md/sync_action

/ sys / block / md * / md / sync_action이 "resync"인 경우 작동하지 않습니다 (상태가 "check"또는 "repair"인 경우와 달리 "idle"을 sync_action 파일에 에코 할 수는 있지만 . 진행이 커널 문서 파일은 여기에 잘못이 작동한다고하지만 나를 위해 일한 적이있다 :

'idle'은 활성 재 동기화 / 복구 등을 중지합니다. 다른 재 동기화 / 복구가 자동으로 다시 시작되지 않을 수도 있습니다.


1
그러나이 상태에서 / sys / block / md * / md / sync_speed_max를 사용하여 "재 동기화"속도에 영향을 줄 수 있습니다. 왜 문서가 틀린지 잘 모르겠습니다. 아마 아무도 모릅니다
brian

스택 교환 마크 다운 구문 ( meta.serverfault.com/editing-help ) 을 배우려면 잠시 시간이 걸립니다.
Sven

0

나는 이것이 4 살짜리 게시물이라는 것을 알고 있지만 이것을 할 수도 있습니다 (md0을 배열로, sdb4를 재 동기 "디스크"로 가정) :

    mdadm /dev/md0 --fail /dev/sdb4 && mdadm /dev/md0 --remove /dev/sdb4

이 명령은 sdb4를 실패한 디스크로 가장하여 어레이에서 디스크를 시작하여 재 동기화를 중지합니다. 재 동기화 중지 작업 중에 오류가 없으면이 명령은 md0 배열에서 sdb4도 제거합니다. 오류가 있으면 디스크는 실패 상태를 유지하지만 어레이에는 남아 있습니다.

의 어느 곳에서나 디스크에 오류가 발생 mdadm하면 논리적으로 실패한 것으로 설정됩니다 . 어레이가 깨끗 하지 않은 경우 (저하되지 않은 경우 ) 디스크는 일관성을 유지하며 --add << disk >> --assume-clean 옵션을 사용하여 아무런 걱정없이 다시 추가 할 수 있습니다. 분리 된조치있는 경우 (예 : 재 동기화, 재 빌드 또는 쓰기) --assume-clean은 probalby에 실패하고 재 동기화 조치를 즉시 시작합니다.

변경 raid.speed_limit_minraid.speed_limit_maxIT / 정보뿐만 아니라 재 동기화에 영향을 미치는 속도뿐만 아니라 정상 작동 속도를 다시 때문에 어떻게 든 나쁜 생각, 그리고 아마도 당신은 RAID 배열을 사용하여 얻은 성과를 많이 잃게됩니다.


5
RAID에서 정상 디스크를 제거하는 것은 나쁜 생각이라고 생각합니다. 대부분의 경우 아무런 문제가 발생하지 않지만 그렇게 할 때마다 데이터가 손실되거나 데이터가 손상 될 위험이 있습니다.
kasperd

1
절대 이러지 마 --assume-clean라이브 시스템에 디스크를 추가 하고 나머지 디스크에 쓰기 작업이 있으면 문제가 발생합니다.
sanmai
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.