티스토리 뷰

지난 금요일 저녁, 부부의 세계가 끝나고 정전이 발생하면서 우리 지역구내 동전체가 정전이 되는 사태가 발생한적이 있다.

당연히 집에서 운영중이던 microserver가 죽어버렸고, 내부에 가상으로 돌던 xpenology가 떨어져버렸다.

 

재 접속한 DSM은 이전처럼 볼륨 충돌이 표시되고 있었고 별로 대수롭지 않게 생각하고 있었다.

그도 그럴것이 늘상 있었던 일이고 대부분의 경우 DSM의 특정 DISK가 충돌이 된 경우고 이경우 해당 디스크 복구를 통해 복구가 가능했었다. 

이때까지는 그랬다.

 

그런데 이번에 충돌은 Volume 자체가 충돌이 되어 복구기능도 모두 비활성화 되어 있어 어떤 액션도 할 수 없었다.

 

일단 이글을 검색해 들어오는 분들을 위해 증상을 나열 해 놓을테니 자신의 증상과 동일하다면 한번 시도 해보자.

볼륨을 깨고 새로 시작하는것보다 빠르고 간단하다.

 

지금은 정상이다. 시스템상태가 붉은색의 볼륨충돌로 표시되어 있을것이다.

한번도 보지 못한 오류케이스로 정신없이 복구하다보니 캡쳐따윈 없다.

지금 캡쳐는 정상적인 모습이지만 우측의 시스템상태에 볼륨 충돌이 표시되고 있었다.

자세한 정보는 저장소 관리자를 참조하란 메시지가 떠있는데 들어가보자.

 

저장소 관리자에 볼륨상태에 충돌로 표시된다. 스토리지 풀은 정상이고 볼륨만 충돌로 표시되는게 이번 증상이다.

 

본 이미지와 같이 스토리지 풀은 모두 정상으로 표기되었었다. 각각의 DIsk는 모두 할당과 상태가 정상으로 표기되고 있었다.

상기 이미지처럼 특별한 문제가 없는 상태였다. 단순 볼륨만 충돌된 상태였다.

 

볼륨은 위의 이미지에서 상태값이 '충돌'로 표기되어 있었고 그외 아무런 다른점이 없었다.
HDD 상태 또한 모두 정상으로 표기되고 있었다.

정말로 아무런 문제 없이 정상으로 표기되고 있었는데 볼륨만 충돌되어 있었다.

 

그리고 SSH로 nas에 접속해 보면 예상대로 이상한점을 볼 수 있다.

본인은 nas에 6TB를 묶어 두었는데 SSH로 접속한 NAS에서는 찾아볼 수 없었다.

disk 상태를 보면 지금은 /volume 가 보이지만, 그땐 보이지 않았다.

 

아마 이글을 검색해 들어온 분들은 이미 스스로 체크할 수있는 문제점은 모두 체크했고, 

시도할 수 있는 대부분의 것들은 시도 했으리라 생각된다.

 

이번 볼륨 충돌로 시도해본것들을 나열해 본다.

 

가장먼저 간단한 조치부터 진행했다. 

1. 재부팅

재부팅은 전혀 도움이 되지 않았다.

 

 

2. 가상 디스크를 모두 제거하고 부팅한뒤, 다시 가상 디스크를 붙여 재부팅

역시 효과 없었다.

 

3. SYNOBOOT 이미지 재작성.

이미지를 재작성하여 migration을 진행했다.

역시 아무런 도움이 되지 않았다. 덕분에 버전만 업했다.

 

4. 새로 xpenology를 생성하고 새 가상disk를 추가한다음 최초 설정까지 마치고 백업을 위한 disk를 모두 다시 연결하여 부팅한다.

 

이것은 해외에 많이들 추천되고 시도되는 작업인데 일부는 성공하고 일부는 실패하는듯 했다.

나또한 시도해 봤지만 바로 실패했다.

 

5. SATA 포트를 변경한다.

이또한 변화가 없었다.

 

ssh에 접속해서 본 시스템엔 내 파일 시스템이 정상이 아니란 생각에 일단은 마운트를 시켜야 한다는 생각에 마운트 방법만 찾게 되었고 그중에 찾은 방법이 복구가 가능했던 방법이다.

본인은 file system이 btrfs라 아래와 같은 명령어를 사용하지만 ext4를 사용하는 사용자는 다른 명령어를 사용해야 한다. 이부분은 햇갈리면 fstab에서 마운트 타입을 확인하자.

 

fstab에서 md2의 타입을 확인하자.

btrfs check --repair /dev/md2

 

btrfs rescue chunk-recover /dev/md2

 

btrfs check --init-extent-tree /dev/md2

 

btrfs check --init-csum-tree /dev/md2

입력하고 기다리자

 

sudo mount -o recovery,ro /dev/md2 /volume1

 

으로 md2를 /volume1에 마운트하자.

 

조금 기다리면 마운트가 되고 디렉토리내 file들을 확인할 수 있다.

확인된 file을 그대로 백업할 사람들은 백업을 하던 하면 되고, 그대로 시스템을 살릴 목적이라면 아래의 명령어를 더 입력하자.

 

sudo btrfs rescue super /dev/md2

busy로 나온다면 일단은 다음으로 넘어가고 진행이 되면 기다리자. 대부분은 busy로 표시된다.

 

 

sudo btrfs-find-root /dev/md2

명령어로 복구를 진행하자. 정상인경우 0이 return되고 비정상인경우 1이 return된다. 

나의 경우 1이 return되고 대략 40분정도 소요가 되었다.

 

대략 이런식으로 level 1이 떨어지면 시간이 많이 소요된다.

 

그리고 재부팅한다. 

 

평소보다 화면이 올라오는데 시간이 많이 소요된다면 성공이다.

기다렸다 접속하면 모든 시스템은 정상으로 돌아와 있다.

 

이 경우는 본인에 해당하는 경우이겠지만 다른 사람의 경우도 해당하리라 생각하여 공유한다.

반대로 본인이 또 같은 상황을 겪을때 참고를 위한 자료이기도 하다.

 

 

댓글