본문 바로가기
Tips/Linux

[Linux] CentOS 7 RAID1 디스크 용량 확장하기

by DevJaewoo 2022. 9. 1.
반응형

회사 그룹웨어 서버 적정용량이 5TB인데 현재 4TB HDD 2개로 RAID1로 구성되어있어 적정 용량의 80%도 채 안되는 상황이라고 한다. 이 상태로 쓰다가 결국 몇년만에 용량이 다 차버렸다.

새로 들어오신 서버 담당자분께서 도와달라고 하셔서 RAID1 용량 확장 방법에 대해 알아봤다.

 

현재 50GB도 채 안남아서 남은 용량마저 꽉 차버리기 전에 4TB HDD 2개를 8TB 2개로 변경하기로 했다.

인터넷을 찾아보니 하나씩 빼고 새로 갈아끼우면 된다고 하는데, 연습 없이 실제 서버에 바로 적용시키기엔 너무 위험한것 같아 VMWare로 잘 되는지 테스트해봤고, 그 과정을 기록하기로 했다.

 

+ 소프트웨어 RAID인줄 알았는데 알고보니 하드웨어 RAID여서 작용은 못시켰다.


CentOS 7 설치

아래와 같이 VM 환경을 설정했다.

5GB HDD/bootswap에 할당하고, 10GB HDD 2개를 RAID1로 설정한 뒤 20GB 2개로 업그레이드 해볼 것이다.

VM 설정

 

이제 CentOS를 설치해주자.

CentOS 설치 방법은 아래의 글에서 확인할 수 있다.

 

[Linux] CentOS 7 설치하기

CentOS 7 설치 준비물: USB 1. CentOS ISO 파일 다운로드 아래 사이트에 접속합니다. https://www.centos.org/download/ Download As you download and use CentOS Linux or CentOS Stream (What's the differenc..

devjaewoo.tistory.com

 

CentOS 설치 중 아래와 같이 파티션을 변경해주자.

5GB인 sda에는 /boot와 swap을, 10GB인 sdb와 sdc는 RAID1로 묶어 root에 할당해줬다.

파티션 설정

 

CentOS RAID 구성 방법은 아래의 글에서 확인할 수 있다.

 

[Linux] CentOS 7 RAID 구성하기

CentOS 7 RAID 구성하기 준비물: CentOS 7 부팅 USB, 2개 이상의 디스크 1. CentOS 설치 진행 시스템 설치 대상 선택 이전까지는 기본적인 OS 설치 과정과 같습니다. 자세한 내용은 아래의 글을 참조해주세

devjaewoo.tistory.com

 

RAID 구성이 완료되었으면 설치를 끝까지 진행하고 재부팅해 설치를 완료하자.


RAID1 구성 확인

우선 RAID가 정상적으로 설치됐는지 확인해보자.

참고로 이번 포스팅의 명령어들은 대부분 관리자 권한으로 실행해야 하기 때문에 su로 진행하는 것을 추천한다.

mdadm --detail --scan
mdadm -E /dev/sdb1

mdadm scan 결과

위와 같이 RAID가 정상적으로 구성된 것을 볼 수 있다.


디스크 교체

데이터가 손실되지 않는 것을 확인하기 위해 간단한 테스트 파일을 만들어보자.

mkdir test
echo "RAID1 test" > test/test.txt

 

이제 /dev/sdc에 해당하는 드라이브를 제거할건데, 제거하기 전에 아래의 명령어를 통해 동기화 및 제거 해주자.

sync
mdadm /dev/md127 --fail /dev/sdc1 --remove /dev/sdc1

드라이버 제거 전 sync

 

그 다음 10GB HDD 하나를 제거하고 20GB HDD 하나를 추가한다.

현재 서버가 재부팅하기 힘든 상황이기 때문에 연습 시에도 재부팅을 하지 않고 진행한다.

드라이버 제거 및 추가

원래 부팅 시 자동으로 추가된 HDD가 인식되지만, 지금은 부팅을 해주지 않았기 때문에 수동으로 인식시켜줘야 한다.

아래의 명령을 통해 디스크를 다시 인식시킬 수 있다.

echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan

 

추가한 HDD가 잘 스캔되었는지 확인해보자.

fdisk -l

아래와 같이 20GB의 디스크가 추가된것을 볼 수 있다.

디스크 추가 확인

 

아래의 사진처럼 /dev/sdd에 파티션을 생성해준다.

사실 이 경우 sdd 전체를 쓸 것이기 때문에 파티션을 따로 생성할 필요는 없다. 그냥 /dev/sdd 자체를 RAID에 추가해도 되지만 연습 삼아 생성해보도록 하겠다.

파티션 설정

 

/dev/sdd1을 RAID1에 포함시켜준다.

mdadm --manage /dev/md127 --add /dev/sdd1

추가된 파티션 RAID 설정
sdc1에 있던 md127이 사라지고 sdd1에 추가된 것을 볼 수 있다.

sdb 파티션도 위와 동일하게 제거하고 20GB의 파티션을 새로 만들어 설정해주자.

만약 2번째 20GB 디스크가 인식이 안될 때 아래의 명령어를 입력하면 다시 될 수도 있다.

echo "1" > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan
echo "1" > /sys/class/scsi_disk/0\:0\:1\:0/device/rescan
echo "1" > /sys/class/scsi_disk/0\:0\:2\:0/device/rescan
echo "1" > /sys/class/scsi_disk/0\:0\:3\:0/device/rescan

RAID1 용량 확장

이전 과정까지 잘 따라왔다면 아래와 같이 2개의 20GB 디스크가 10G의 RAID1 볼륨으로 묶여있는 상태일 것이다.

mdadm 설정 확인

 

이제 아래의 명령어를 통해 RAID1을 최대 크기로 확장시키면 끝난다.

mdadm --grow /dev/md127 -z max --assume-clean

RAID1 확장

 

이전에 만든 테스트 파일이 잘 남아있는지 확인해보자.

테스트 파일 확인


참고자료

반응형