RAID 저장소 만들기

은재형·2023년 4월 30일
0

NAS 만들기

목록 보기
2/2
post-thumbnail
post-custom-banner

개요

ownCloud에 저장소를 만들어주기 위해 전에 사용하던 도킹스테이션을 꺼냈다.

RAID 디스크 만들기

디스크를 초기화하는 단계에서부터 초기화한 디스크를 RAID로 묶는 내용을 다룬다.

디스크 초기화

우선 lsblk 명령을 이용해서 블록디스크 목록을 조회해보니, 3.6T짜리 디스크 sda와 sdb가 있음을 알 수 있다.
lsblk

fdisk 명령을 이용해 sda와 sdb에 Linux Raid 파티션을 생성한다.

sudo fdisk /dev/sda

d는 파티션을 제거하는 명령이다.

  • 현제 파티션이 없으므로 아무런 동작도 하지 않는다.

n은 새로운 파티션을 만드는 명령이다.

  • 새로 생성할 파티션의 수를 입력한다. 엔터를 누르면 기본 값인 1로 설정한다.
  • 첫 번째 섹터와 마지막 섹터를 설정하는데, 이 역시 엔터를 눌러 기본 값으로 설정했다.
  • 기존에 raid를 만들었던 기록이 있어 시그니처를 제거했다.

t는 파티션의 타입을 정하는 명령이다.

  • 파티션을 하나만 만들었으므로 1번으로 설정했다.
  • 파티션의 타입을 입력해야 한다. 29번은 Linux Raid 파티션을 의미한다.
  • t 대신 l을 입력하면 파티션 타입에 해당하는 번호를 확인할 수 있다.

w는 변경사항을 디스크에 기록하는 명령이다.

  • 기록을 완료하면 프롬프트가 나온다.

fdisk

위의 동작을 sdb에 대해서도 반복한다.
이제 Linux Raid 타입으로 만들어진 두 디스크가 생겼다.
하지만 lsblk 명령을 이용해 확인해보면 RAID라기보다 별개의 디스크가 두 개 있는 것으로 보인다.
lsblk after fdisk

RAID 구성

이 두 디스크를 RAID로 묶으려면 mdadm 명령을 사용해야 한다.

sudo mdadm \
--create /dev/md127 \
--level=1 \
--raid-devices=2 /dev/sda1 /dev/sdb1

mdadm은 RAID 장치를 관리하는 명령이다.
--create 옵션은 새로운 RAID를 만드는 모드다.

  • /dev/md[0-9]+를 이용해 새로 만들 장치 이름을 설정한다.

--level은 RAID 레벨을 의미한다.

  • 백업용으로 만든 것이므로 mirroring에 해당하는 1로 설정했다.

--raid-devices는 RADI에 사용할 장치 수를 의미한다.

  • sda1, sdb1을 사용할 것이므로 2로 설정했다.
  • 이후 사용할 장치 명을 입력한다.

mdadm

다시 lsblk로 확인해보면 파티션 아래에 RAID 1이 만들어진 것을 확인할 수 있다.

RAID 상태 조회

lsblk after mdadm

--detail을 이용하면 RAID 디스크의 상세 정보를 조회할 수 있다.

sudo mdadm \
--detail /dev/md127

mdadm detail

현재 resyncing을 진행하는 중이다.
/proc/mdstat 파일을 이용해 resyncing이 얼마나 진행되었는지 확인할 수 있다.

cat /proc/mdstat

mdstat

음.. 4090분은 2.84일 정도니까 약 3일 후 sync 작업이 완료됨을 알 수 있다.

파일시스템 설정

새로만든 RAID 파티션을 ext4 형식으로 포맷한다.
journal을 만들고 superblock에 대한 정보를 작성하는데 다소 시간이 걸린다.

sudo mkfs.ext4 /dev/md127

mkfs

❗ 이때 새로운 UUID가 할당된다. 마운트하려면 RAID 장치의 UUID가 아니라 파일시스템의 UUID가 필요하다.

RAID 저장소와 디렉토리 연결

앞서 만든 RAID 저장소를 특정 디렉토리에 마운트하는 내용을 다룬다.

마운트할 디렉토리 생성

/mnt 디렉토리 아래에 data라는 디렉토리를 생성한다.

sudo mkdir /mnt/data

mkdir

❗ ownCloud에서 마운트한 디렉토리를 사용하려면 사용자와 그룹을 www-data로 설정해야 한다.
chown 명령을 이용해 디렉토리의 소유자를 변경한다.

sudo chown -R www-data:www-data /mnt/data

RAID 저장소 마운트

생성한 디렉토리에 RAID 저장소를 마운트한다.

sudo mount /dev/md127 /mnt/data

-l 옵션을 이용해 마운트가 잘 되었는지 확인할 수 있다.

sudo mount -l | grep md127

df 명령을 이용해 파일 시스템, 용량, 마운트 위치 등을 조회할 수 있다.

df -TH | grep md127

mount

부팅 시 자동 마운트 설정

UUID 조회

부팅할 때 자동으로 마운트하도록 만드려면 /etc/fstab에 등록하면 된다.
문제는 RAID 장치의 번호가 바뀔 때도 있다는 점이다.
UUID를 이용하면 이 문제를 해결할 수 있다.

lsblk에서 UUID를 조회할 수 있다.

lsblk -o UUID /dev/md127

uuid

fstab에 UUID 등록

/etc/fstab에 UUID와 파일 시스템에 대한 정보를 등록한다.
fstab 파일을 수정하려면 슈퍼유저 권한이 필요하다.

sudo vim /etc/fstab

파일의 제일 아래에 RAID 장치의 마운트 정보를 입력한다.

fstab

마운트 결과 확인

fstab에 등록한 모든 장치를 마운트 했을 때, 디렉토리에 lost+found가 만들어지면 성공한 것이다.

mount -a
ls /mnt/data

result

profile
정리를 잘 못하는 개발자
post-custom-banner

0개의 댓글