ownCloud에 저장소를 만들어주기 위해 전에 사용하던 도킹스테이션을 꺼냈다.
디스크를 초기화하는 단계에서부터 초기화한 디스크를 RAID로 묶는 내용을 다룬다.
우선 lsblk
명령을 이용해서 블록디스크 목록을 조회해보니, 3.6T짜리 디스크 sda와 sdb가 있음을 알 수 있다.
fdisk 명령을 이용해 sda와 sdb에 Linux Raid 파티션을 생성한다.
sudo fdisk /dev/sda
d
는 파티션을 제거하는 명령이다.
n
은 새로운 파티션을 만드는 명령이다.
t
는 파티션의 타입을 정하는 명령이다.
t
대신 l
을 입력하면 파티션 타입에 해당하는 번호를 확인할 수 있다.w
는 변경사항을 디스크에 기록하는 명령이다.
위의 동작을 sdb에 대해서도 반복한다.
이제 Linux Raid 타입으로 만들어진 두 디스크가 생겼다.
하지만 lsblk 명령을 이용해 확인해보면 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 레벨을 의미한다.
--raid-devices
는 RADI에 사용할 장치 수를 의미한다.
다시 lsblk로 확인해보면 파티션 아래에 RAID 1이 만들어진 것을 확인할 수 있다.
--detail
을 이용하면 RAID 디스크의 상세 정보를 조회할 수 있다.
sudo mdadm \
--detail /dev/md127
현재 resyncing을 진행하는 중이다.
/proc/mdstat 파일을 이용해 resyncing이 얼마나 진행되었는지 확인할 수 있다.
cat /proc/mdstat
음.. 4090분은 2.84일 정도니까 약 3일 후 sync 작업이 완료됨을 알 수 있다.
새로만든 RAID 파티션을 ext4 형식으로 포맷한다.
journal을 만들고 superblock에 대한 정보를 작성하는데 다소 시간이 걸린다.
sudo mkfs.ext4 /dev/md127
❗ 이때 새로운 UUID가 할당된다. 마운트하려면 RAID 장치의 UUID가 아니라 파일시스템의 UUID가 필요하다.
앞서 만든 RAID 저장소를 특정 디렉토리에 마운트하는 내용을 다룬다.
/mnt 디렉토리 아래에 data라는 디렉토리를 생성한다.
sudo mkdir /mnt/data
❗ ownCloud에서 마운트한 디렉토리를 사용하려면 사용자와 그룹을 www-data로 설정해야 한다.
chown
명령을 이용해 디렉토리의 소유자를 변경한다.sudo chown -R www-data:www-data /mnt/data
생성한 디렉토리에 RAID 저장소를 마운트한다.
sudo mount /dev/md127 /mnt/data
-l
옵션을 이용해 마운트가 잘 되었는지 확인할 수 있다.
sudo mount -l | grep md127
df 명령을 이용해 파일 시스템, 용량, 마운트 위치 등을 조회할 수 있다.
df -TH | grep md127
부팅할 때 자동으로 마운트하도록 만드려면 /etc/fstab에 등록하면 된다.
문제는 RAID 장치의 번호가 바뀔 때도 있다는 점이다.
UUID를 이용하면 이 문제를 해결할 수 있다.
lsblk
에서 UUID를 조회할 수 있다.
lsblk -o UUID /dev/md127
/etc/fstab에 UUID와 파일 시스템에 대한 정보를 등록한다.
fstab 파일을 수정하려면 슈퍼유저 권한이 필요하다.
sudo vim /etc/fstab
파일의 제일 아래에 RAID 장치의 마운트 정보를 입력한다.
fstab에 등록한 모든 장치를 마운트 했을 때, 디렉토리에 lost+found
가 만들어지면 성공한 것이다.
mount -a
ls /mnt/data