2013년 1월 25일 금요일

LVM 유지 보수 - 정말 HDD를 교체해야 되겠다!

꼭 일주일만에 또다시 LVM으로 잡은 논리 볼륨에서 오류가 발생하고 말았다. 재부팅을 해 보니 여섯번째 드라이브(바로 지난 주에 I/O error가 났던)의 인식이 신통치 않다. 부팅을 하면서 자동으로 디스크를 체크하는데 드디어 fsck를 매뉴얼로 실시하라는 메시지가 나왔다.

그래, 해 보지 뭐. 시간은 좀 걸리겠지만.

fsck -y <논리 볼륨명>

inode가 어쩌고 저쩌고.... 한참을 걸려 몇군데를 고치는가 싶더니 정상적으로 체크와 수정이 끝났다. 재부팅을 하니 무사히 시스템이 올라오고 드라이브가 마운트되었다. 또다시 에러가 발생하지 말라는 법이 없으니, 용의자 드라이브를 교체하는 것이 바람직할 것으로 생각한다.

하지만 LVM으로 묶은 드라이브 중 하나를 교체하는 것은 그렇게 심플하지 않다. 가장 바람직한 방법은 물리 볼륨을 하나 추가한 뒤, 에러가 빈발하는 드라이브를 제거하면 될 것이다. GUI tool(system-config-lvm)을 쓰면 간단히 해결될 것이다. 실제로 GUI tool을 실행시켜서 특정 드라이브를 제거하려고 하면 여유 공간이 없어서 진행하지 못한다는 메시지가 나온다. 100% 확신할 수는 없지만, 추가 물리 볼륨을 먼저 넣은 다음 진행해야 할 것으로 보인다.

그런데 드라이브를 꽂을 베이가 더 이상 없다. 이런 상황에서는 어떻게 해야 될까? 검색을 해 보니 pvmove로 제거할 드라이브의 데이터를 다른 드라이브로 옮기라고 한다. 그런 뒤 pvdisplay로 해당 드라이브가 사용되지 않음을 확인한 다음,

빼낼 드라이브의 크기만큼(혹은 그보다 조금 더) 논리 볼륨의 크기를 적절히 줄인 다음, 해당하는 물리 볼륨을 제거하면 될 것이다. 이제 비로소 vgreduce로 논리 볼륨에서 물리 볼륨을제거할 수 있게 되었다.

# pvmove /dev/sdf1
# pvdisplay /dev/sdf1
# vgreduce <볼륨 그룹> /dev/sdf1

단, 이상의 명령어는 아직 실행에 옮겨본 것은 아니다. GUI tool이 편한 것은 사실이지만, 디스크 관리 작업과 같이 시간이 많이 걸리는 명령을 실행할 경우 제대로 진행 중인지 혹은 에러가 발생한 것인지 알기 어렵다는 것이 문제이다. 그나마 CLI는 대부분의 경우 메시지가 나오기라도 하니까. 이상과 같이 디스크 교체가 아니라 문제가 발생한 디스크만 쏙 빼내고 싶은 경우 정확히 어떻게 해야 할까?

만일 다음에 LVM을 새로 설치하게 된다면 선형/스트라이프/미러 중 용도에 맞는 것을 골라서 설치하도록 하자. 스냅샷에 대해서도 공부를 해야 하는데...

우분투에서 LVM 관리는 또 다르지 않을까? 외국어로 친다면 2개 국어를 해야 할 형편이다. 우분투, 그리고 레드햇 계열(CentOS).

참고 문헌: 레드햇 LVM 관리자 가이드

댓글 없음: