SE업무/OS

fdisk로 root volume 2TB 이상 확장하기 (AWS EC2)

에륜 2021. 5. 19. 03:28
반응형

(먼저 NOCHANGED: partition 1 could only be grown by  이 오류를 보고 왔다면 잘 오셨습니다.

결론만 보고싶으면 4번으로 내려가시면 됩니다.)

 

이 방법은 매우 특이한 케이스이다.

전형적인 parted를 이용하여 디스크 할당하는건 다음시간에..

 

보통 fdisk를 쓴다고하면 mbr 형식으로 2테라미만에만 써야하는걸로 주로 알고있다.

AWS는 기본적으로 LVM을 쓰고 그래서 디스크 확장 문서들도 LVM이라는 가정하로 진행한다.

 

하지만 특이한일이 발생했다..

 

나는 특정 이미지를 사용하여 DB서버를 구성하였다

처음에는 용량 문제는 없었지만 추후 성능 및 용량증가를 위해 디스크 확장 요청을 하였는데

이상하게 안되어서 확인해보니

이전에 작업한 사람이 이미지를 만들면서 디스크를 포맷하여 LVM -> Linux Filesystem으로 지정하였다..

 

일반적인 방법으로 용량 확장을 시도해보겠다

 

현재 상태 5TiB 디스크 보유중

(작업당시 해결할려고 테스트로 만든 서버로 현재는 5테라지만 6테라로 늘리면서 과정을 보여드리겠습니다.)

 

 

정상적으로 인식되었고 fdisk -l 시 잘 보인다.

 

1. AWS Docs에 있는 growpart 사용

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html

 

볼륨 크기 조정 후 Linux 파일 시스템 확장 - Amazon Elastic Compute Cloud

볼륨 크기 조정 후 Linux 파일 시스템 확장 EBS 볼륨 크기를 늘리고 난 후에는 파일 시스템 관련 명령을 사용하여 파일 시스템의 크기를 늘려야 합니다. 볼륨이 optimizing 상태가 되자마자 파일 시스

docs.aws.amazon.com

 

NOCHANGED: partition 1 could only be grown by -6442450911 fudge=2048 에러를 뱉으면서 불가능하다고 나온다.

구글링해보면 aws ec2에서 위현상이 많고 아마 나와 같이 디스크 타입을 바꾼채 디스크 볼륨을 증가시키면 발생하는듯하다.

 

2. fdisk는 될까?

안타깝게도 fdisk는 추가한 섹터를 인식조차못한다. 삭제하면 될꺼라고 생각했지만.

최대 섹터가 이전과 동일하다

(2테라 미만일 경우 잘되는것으로 기억한다.)

 

3.parted로 도전

parted 에서 p로 현재상황을 볼려는 순간

에러 메세지가 뜨면서 디스크가 잘못되어 나머지공간을 사용못한다고 수정하라고 뜬다.

fix를 하여 수정하자.

그 후 resizepart 1로 확장을 시도해봤지만 마운트중인 상태라 실패하였다

마운트를 해제하고싶지만 root 볼륨이다..

서버를 내리고 연결을 해제한다음 다른 리눅스 서버에 붙여서 parted를 하면 가능하다.

 

하지만 과정이 너무 길다.

원본서버 다운, 신규서버에 장착 후 확장 신규서버 다운, 원본서버에 연결후 부팅

과정이 길면 장애나 실수가 발생할 확률이 높다.

 

결국 찾은 방법은

4.parted를 하여 디스크를 fix를 하면 fdisk가 정상 작동하는걸 알았다.

(growpart는 그대로 비정상 작동한다)

감격.. 물론 이경우에도 설정후 재부팅을 해야 정상 적용이 된다.

 

물론 최고는 디스크를 LVM으로 구성하는것이다.

하지만 이미 서비스를 투입하였다면 섣불리 구조를 변경하기 무섭다.

또 디스크 구성을 할때 마운트 해제후 확장을 위해 OS영역와 데이터 영역을 나눠서 디스크를 구성하는 것이 좋다.

 

해당 문제를 해결하기위해 점검전에 미리 출근하여서 여러가지 테스트를 하였고 라이브 서비스에 영향없이 확장 성공하였다.

 

긴글 읽어 주셔서 감사합니다.

반응형