Ubuntu에서 RAID 1 구축 방법 | mdadm을 이용한 이중화 및 복구 절차 완전 가이드

目次

1. 소개

Ubuntu에서 RAID 1을 구축하는 이유는?

Ubuntu는 개인부터 기업 수준까지 폭넓게 사용되는 Linux 배포판입니다. 신뢰성과 유연성이 높아 서버 용도로도 많이 채택됩니다. 이러한 Ubuntu 환경에서 RAID 1(미러링)을 구축함으로써, 데이터의 중복성을 확보하고 디스크 장애로 인한 데이터 손실 위험을 최소화할 수 있습니다. RAID 1은 2대 이상의 디스크에 동일한 데이터를 실시간으로 기록함으로써, 한쪽 디스크가 고장 나도 시스템 전체가 계속 동작한다는 장점이 있습니다. 따라서 중요한 파일이나 서비스를 다루는 Ubuntu 환경에서는 RAID 1 도입이 효과적인 보호책이 됩니다.

소프트웨어 RAID와 하드웨어 RAID의 차이

RAID를 구축하는 방법은 크게 두 가지로 나뉩니다. 하나는 하드웨어 RAID로, 전용 RAID 컨트롤러나 마더보드의 RAID 기능을 사용해 구축하는 방식입니다. 또 하나는 소프트웨어 RAID로, OS 상의 소프트웨어(리눅스에서는 주로 mdadm)를 이용해 구성합니다. Ubuntu에서는 비용과 구성의 유연성을 고려하여 소프트웨어 RAID 선택이 주류입니다. 이 기사에서는 Ubuntu에서 RAID 1을 구축하는 방법을 중심으로, 설치 시 설정 방법과 운영·관리 포인트, 장애 발생 시 대응까지를 포괄적으로 설명합니다.

이 기사에서 배울 수 있는 내용

이 가이드를 읽음으로써 다음과 같은 지식과 기술을 얻을 수 있습니다:
  • RAID 1의 기본과 Ubuntu에서의 운영 방법
  • 소프트웨어 RAID(mdadm)를 이용한 RAID 1 구축 절차
  • RAID 1 재구축, 상태 확인, 문제 대응
  • Ubuntu Server와 Desktop의 차이점 및 주의사항
  • 실제 운영에 유용한 FAQ와 GRUB·fstab 설정 지식
RAID는 한 번 구축하면 그다지 손이 많이 가지 않지만, 초기 설정에 대한 이해가 매우 중요합니다. 본 기사에서는 초보자도 이해하기 쉽고 실용적인 정보를 자세히 설명하므로, 끝까지 읽어 주시기 바랍니다.
侍エンジニア塾

2. RAID 1의 기본 지식

RAID 레벨 종류와 RAID 1의 특징

RAID(Redundant Array of Independent Disks)는 여러 하드 디스크를 결합하여 데이터 안전성 및 접근 속도를 향상시키는 기술입니다. RAID에는 여러 ‘레벨’이 존재하며 각각 특징이 있습니다. 대표적인 RAID 레벨에는 다음과 같은 것이 있습니다:
  • RAID 0:스트라이핑을 통해 속도를 높이지만, 중복성은 없습니다
  • RAID 1:미러링으로 중복성을 확보(본 기사 주제)
  • RAID 5:3대 이상 디스크에서 패리티 정보를 사용해 중복성을 부여한다
  • RAID 6:RAID 5의 강화 버전. 두 개의 패리티를 가지고, 더 높은 내결함성을 구현한다
  • RAID 10(1+0):RAID 1과 RAID 0을 결합한 구성
이 중 RAID 1은 동일 데이터를 두 개의 디스크에 기록하는 ‘미러링’ 방식을 채택하고 있습니다. 따라서 한쪽 디스크가 고장 나도 다른 쪽에서 데이터를 읽어낼 수 있어 가용성이 뛰어납니다.

미러링의 구조(도식 이미지)

RAID 1의 구조는 매우 단순합니다. 예를 들어, 아래와 같이 디스크 A와 디스크 B가 있다고 가정합니다:
[쓰기]
사용자가 파일 A를 저장 → 동시에 디스크 A와 디스크 B에 기록된다

[읽기]
읽기는 임의의 디스크에서 수행되며, 성능 최적화가 가능하다
이처럼, 데이터가 항상 복제되기 때문에 물리적 고장에 대한 내성이 높다는 것이 RAID 1의 가장 큰 장점입니다.

소프트웨어 RAID와 하드웨어 RAID의 차이

RAID 구축 방법은 크게 다음 두 가지로 나뉩니다:
  • 소프트웨어 RAID(mdadm 등) Ubuntu에서 주로 사용되는 방식입니다. OS 수준에서 RAID 제어를 수행하며, 유연한 설정과 비용 측면의 장점이 있습니다. RAID 어레이의 구축·관리에 있어 가장 자유도가 높고, 일반적인 서버 구축에 널리 사용됩니다.
  • 하드웨어 RAID(RAID 카드 및 BIOS 탑재 기능) 전용 컨트롤러를 사용해 RAID를 구성합니다. CPU 부하가 적고, OS에서는 하나의 디스크로 인식되지만, 컨트롤러가 고장났을 경우 복구가 어려워지는라는 단점도 있습니다.

페이크 RAID(BIOS RAID)란?

일부 마더보드에서는 BIOS 수준에서 RAID 기능을 제공하는 경우가 있습니다. 이는 ‘페이크 RAID(Fake RAID)’라고도 불립니다. 페이크 RAID는 겉보기에는 하드웨어 RAID처럼 보이지만, 실제로는 드라이버 수준에서 제어되며, 소프트웨어 RAID에 가까운 구조입니다. Ubuntu에서도 일부 지원하고 있지만, mdadm에 의한 소프트웨어 RAID가 관리하기 쉽고 복구성도 높아 일반적으로 페이크 RAID는 크게 권장되지 않습니다.

3. 소프트웨어 RAID(mdadm)를 이용한 RAID 1 구축

3.1 구축 전 준비 및 요구 사항 확인

RAID 1을 구축하려면 최소 2대의 물리 디스크(또는 사용되지 않은 파티션)이 필요합니다. 이미 시스템 디스크로 사용 중인 것은 대상에서 제외되므로 전용 스토리지를 준비하세요. 먼저, 대상이 되는 디스크를 확인합니다。
lsblk
또는 아래에서 상세 정보를 확인합니다:
sudo fdisk -l
디스크가 /dev/sdb/dev/sdc라고 가정하고 진행합니다。 ※구축 전에, 대상 디스크에 중요한 데이터가 포함되어 있지 않은지 반드시 확인하십시오. RAID 생성 시 포맷되어 모든 데이터가 삭제됩니다。

3.2 mdadm 설치

mdadm은 Ubuntu 표준 저장소에 포함되어 있으며, 아래 명령으로 쉽게 설치할 수 있습니다:
sudo apt update
sudo apt install mdadm
설치 시 “메일 알림에 관한 설정”이 요구될 수 있지만, 나중에 설정을 변경할 수 있습니다. 처음에는 기본값 그대로 사용해도 됩니다。

3.3 RAID 1 어레이 생성 절차

대상 디스크를 확인했으면, 아래 명령으로 RAID 1 어레이를 생성합니다。
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
명령어 설명:
  • /dev/md0:새로 생성되는 RAID 디바이스 이름
  • --level=1:RAID 레벨 1(미러링)을 지정
  • --raid-devices=2:구성에 사용할 디바이스 수
  • /dev/sdb /dev/sdc:실제로 사용할 디스크
생성 완료 후, 다음 명령으로 상태를 확인할 수 있습니다:
cat /proc/mdstat
출력에 /dev/md0와 함께 동기화 중인 정보가 표시되면, RAID 1 생성이 성공한 것입니다。

3.4 RAID 구성 영구화 설정(mdadm.conf와 fstab)

RAID 어레이는 생성만으로는 재부팅 후 자동 인식되지 않으므로, 영구화 설정이 필요합니다。 먼저, 현재 RAID 구성을 mdadm.conf에 저장합니다。
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
다음으로, RAID 어레이에 파일 시스템을 생성합니다(예: ext4):
sudo mkfs.ext4 /dev/md0
마운트 포인트를 생성하고, 마운트해 봅니다。
sudo mkdir -p /mnt/raid1
sudo mount /dev/md0 /mnt/raid1
동작 확인 후, 자동 마운트를 위해 /etc/fstab에 UUID를 추가합니다:
sudo blkid /dev/md0
출력된 UUID를 기반으로, 아래와 같이 /etc/fstab에 기록합니다。
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/raid1 ext4 defaults 0 0
이렇게 하면 재부팅 후에도 RAID 1이 자동으로 마운트됩니다。

4. Ubuntu 설치 시 RAID 1을 구성하는 방법

4.1 Ubuntu Server 버전 설치 프로그램으로 RAID 구성하는 절차

Ubuntu Server 설치 프로그램은 RAID 및 LVM 등 고급 스토리지 설정을 지원합니다. 여기서는 RAID 1 구성 절차를 소개합니다。 단계 1: 설치 미디어에서 부팅 Ubuntu Server ISO를 USB 메모리 등에 기록하고 대상 머신을 부팅합니다。 단계 2: 네트워크와 기본 설정을 완료한다 언어·키보드·네트워크 설정 등 초기 설정을 차례대로 완료합니다。 단계 3: 스토리지 설정으로 진행Custom Storage Layout(커스텀 구성)」를 선택합니다。 단계 4: RAID를 구성한다
  1. 2대의 빈 디스크를 선택
  2. 파티션을 생성(예: /boot, swap, / 등)
  3. 「Create Software RAID(소프트웨어 RAID 생성)」를 선택
  4. RAID 1을 선택하고, 대상 디바이스를 선택해 어레이를 구성
  5. RAID 어레이에 파일 시스템을 할당하고, 마운트 포인트를 지정
단계 5: 부트 로더(GRUB) 설치 RAID 구성에서는, 두 디스크 모두에 GRUB를 설치하는 것이 권장됩니다. 이를 통해 어느 한 디스크가 손상되어도 부팅이 가능해집니다。

4.2 Ubuntu Desktop 버전에서 RAID를 사용하고 싶은 경우

Ubuntu Desktop에는 설치 시 RAID 구성 기능이 표준으로 탑재되어 있지 않습니다. 따라서 RAID 1을 사용하고 싶을 경우 아래와 같은 절차가 필요합니다。 방법 1: Live 환경에서 수동으로 RAID 구성 → Desktop 환경 설치
  1. Live USB로 부팅
  2. mdadm을 사용하여 RAID 1을 구축
  3. RAID 디바이스(예: /dev/md0)에 Desktop 환경을 설치
  4. grubfstab 설정을 조정
이 방법은 다소 번거롭지만, 유연성이 높고 GUI 환경에서 RAID 1을 사용하고 싶은 경우에 유효합니다。
방법 2: Server 버전에서 RAID 구성 → GUI 패키지를 나중에 추가 RAID 구성이 가능한 Server 버전으로 설치를 수행하고, 나중에 ubuntu-desktop 메타 패키지를 추가하여 GUI 환경을 구축하는 방법입니다。
sudo apt update
sudo apt install ubuntu-desktop
이 방법은 안정성이 높으며, RAID 구성된 환경에 GUI를 추가하고 싶은 경우에 추천합니다。

Desktop와 Server 선택 기준

비교 항목Server 버전Desktop 버전
RAID 구성 용이성◎ 설치 프로그램에 내장됨△ 수동 구축 필요
GUI 유무×(CLI 중심)◎(표준으로 GUI)
초보자용△ 익숙해져야 함◎ 설치가 간단
유연성◎ 서버용도에 특화○ 커스터마이즈로 대응 가능
RAID를 중심으로 운영을 고려할 경우, 처음부터 Server 버전을 선택하는 것이 더 원활하게 구축할 수 있습니다. Desktop에 집착하는 경우는 Live 환경에서 구축하거나, 나중에 GUI를 추가하는 방법이 적합합니다。

5. RAID 1 운영 및 문제 대응

5.1 RAID 어레이 상태 모니터링 및 확인 방법

RAID 1 상태를 일상적으로 모니터링하는 것은 장애를 조기에 발견하는 것과 직결됩니다. 아래 명령어로 현재 RAID 어레이 상태를 확인할 수 있습니다.
cat /proc/mdstat
이 명령어는 RAID 어레이의 동기화 상태와 장애 디스크 여부를 표시합니다. 동기화 중이라면 [UU]와 같이 표시되고, [_U]처럼 언더스코어가 포함된 경우는 한 대의 디스크가 분리된 상태입니다. 더 자세한 정보를 얻고 싶다면, 아래 명령어를 사용합니다:
sudo mdadm --detail /dev/md0
출력 결과에는 각 디바이스 상태, UUID, 리빌드 진행 상황 등이 표시됩니다. 정기적인 로그 확인 및 이메일 알림 설정도 고려하면 좋습니다.

5.2 디스크 장애 시 대응 및 재구축 절차

RAID 1의 큰 강점은 한 대의 디스크가 고장 나도 운영을 지속할 수 있다는 점에 있습니다. 다만, 장애가 발생하면 신속히 대응해야 합니다. 【절차1】고장 디스크 식별 mdadm --detail 결과에 “Removed” 또는 “Faulty” 로 표시된 디바이스가 있다면, 그것이 문제 디스크입니다。 【절차2】RAID 어레이에서 고장 디스크 제거
sudo mdadm /dev/md0 --remove /dev/sdX
/dev/sdX는 해당 디스크 이름으로 교체하십시오) 【절차3】새 디스크 준비 새 디스크를 장착하고 파티션을 만들 경우는 아래와 같습니다:
sudo fdisk /dev/sdX
RAID용으로 fd(Linux RAID 자동 감지)타입으로 설정하는 것이 바람직합니다。 【절차4】RAID 어레이에 추가하고 재동기화 시작
sudo mdadm /dev/md0 --add /dev/sdX
그 후, cat /proc/mdstat으로 재구축 진행 상황을 확인할 수 있습니다. 몇 분에서 몇 시간까지 걸릴 수 있습니다。

5.3 GRUB 설치 및 중복성 확보

RAID 1 구성에서는 부트 로더(GRUB)를 양쪽 디스크에 설치함으로써, 어느 한 디스크가 고장 나도 시스템 부팅을 지속할 수 있게 됩니다。 이미 설치된 시스템에서, GRUB를 다른 디스크에도 설치하려면:
sudo grub-install /dev/sdX
sudo update-grub
/dev/sdX는 새로운 디스크) GRUB 설정을 업데이트해 두세요:
sudo update-grub
이 절차를 수행하면, 한쪽 디스크가 고장 난 상태에서도 BIOS 부팅 순서를 전환하기만 하면 부팅이 가능해집니다. RAID의 중복성을 최대한 활용하려면, GRUB 다중 설치는 필수 사항입니다。

6. 하드웨어 RAID를 이용하는 경우

6.1 하드웨어 RAID란?

하드웨어 RAID는 전용 RAID 컨트롤러(RAID 카드)를 사용하여 RAID 어레이를 구성합니다. RAID 처리를 OS나 CPU가 아니라 컨트롤러 측에서 담당하기 때문에 성능이 뛰어나고 CPU 부하가 감소한다는 장점이 있습니다. 또한, OS 측에서는 하나의 디스크로 인식되므로 mdadm 등의 설정을 하지 않아도 일반 스토리지처럼 사용할 수 있습니다.

6.2 Ubuntu에서 하드웨어 RAID를 사용할 때의 장점과 단점

장점:
  • RAID 처리를 하드웨어에서 완료할 수 있어 CPU에 대한 부담이 적다
  • BIOS 수준에서 RAID 구성이 가능해 OS에 의존하지 않고 도입할 수 있다
  • 고장 시 데이터 복구가 빠르고, 핫스와핑을 지원하는 모델도 많다
단점:
  • RAID 카드 자체가 고장 나면, 동일 모델·동일 펌웨어의 카드가 아니면 복구가 어렵다
  • RAID 카드에 의존하기 때문에 유연한 마이그레이션이나 디버깅이 어렵다
  • 비용이 많이 든다 (RAID 카드는 수만 엔~수십만 엔)

6.3 Ubuntu에서 하드웨어 RAID 확인 및 대응 방법

Ubuntu를 설치한 머신에 RAID 카드가 연결되어 있는 경우, OS에서는 일반 블록 디바이스(예: /dev/sda)로 RAID 어레이가 표시됩니다. 따라서 mdadm 명령으로는 인식되지 않습니다。 RAID 어레이 상태 확인은 RAID 카드 제조사가 제공하는 전용 유틸리티를 사용합니다。 대표적인 RAID 카드와 툴:
제조사툴명(예시)비고
LSI / Broadcomstorcli 또는 MegaCLI많은 서버에 탑재되어 있음
HP / HPEhpssacli 또는 ssacliProLiant 시리즈용
Dellomreport(OpenManage)Dell 전용 서버용
IntelIntel RAID Web ConsoleGUI 지원도 있음
Ubuntu에서 사용할 경우, 제조사 공식 사이트에서 Linux 대응 패키지(.deb)를 다운로드하여 설치해야 합니다。

6.4 페이크 RAID(BIOS RAID)와의 차이에 주의

하드웨어 RAID처럼 보이지만 실제로는 BIOS 수준에서 RAID를 에뮬레이트하는 “페이크 RAID”도 있습니다. 이는 OS에 드라이버를 제공하는 형태로 RAID를 구성하기 때문에 실질적으로는 소프트웨어 RAID에 가까운 동작을 합니다。 Ubuntu에서 페이크 RAID를 사용하려면 “dmraid”나 “mdadm”의 특수한 설정이 필요하고, 복구나 호환성 측면에서 문제가 많이 발생하기 쉬워 초보자에게는 별로 권장되지 않습니다。

6.5 하드웨어 RAID를 선택해야 할 경우는?

다음과 같은 상황에 해당하는 경우, 하드웨어 RAID 도입이 적합합니다:
  • 대량의 스토리지를 일괄 관리하는 중·대규모 서버 용도
  • 핫스와핑 및 배터리 내장 캐시 등 RAID 카드 고유의 기능이 필요
  • CPU 리소스를 스토리지 제어 외에 집중시키고 싶다
  • 소프트웨어 RAID보다 장애 감지·로그 관리를 엄격히 하고 싶다
반대로, 소규모 파일 서버나 개인용이라면 mdadm에 의한 소프트웨어 RAID가 비용 효율성과 유연성에서 더 우수합니다

7. 자주 묻는 질문(FAQ)

Q1. RAID 1은 백업 대신이 될 수 있나요?

A1. 아니요, RAID 1은 백업의 대체가 되지 않습니다. RAID 1은 디스크 장애에 의한 시스템 중단을 방지하기 위한 이중화 구성입니다. 실수로 파일을 삭제했을 경우나, 악성코드 피해, OS 결함으로 데이터가 손상된 경우 등은 두 디스크 모두에 동일하게 영향을 미칩니다. 따라서 별도의 백업과 병행하는 것이 필수적입니다.

Q2. RAID 1 구성 중에 디스크 1대가 고장 나면 어떻게 됩니까?

A2. 정상적인 다른 1대의 디스크에서 시스템은 정상적으로 동작합니다. RAID 1은 미러 구성이므로 한쪽 디스크가 물리적으로 파손되어도 시스템은 계속 가동됩니다. 로그 등에서 이상을 확인한 후, 고장난 디스크를 새 것으로 교체하고 RAID 어레이에 다시 추가하여 재동기화함으로써 복구가 가능합니다.

Q3. Ubuntu Desktop 버전에서도 RAID 1을 사용할 수 있나요?

A3. 네, 가능합니다. 다만 설치 프로그램을 통해 RAID 구성을 할 수는 없습니다. Ubuntu Desktop의 표준 설치 프로그램에는 RAID 구축 기능이 없으므로, 다음 두 가지 방법으로 대응합니다:
  • Live USB에서 수동으로 RAID를 구축한 후 OS를 설치하는
  • Ubuntu Server에서 RAID를 구성한 후 GUI를 도입하는
후자가 문제 발생이 적고, 초보자에게도 추천됩니다.

Q4. RAID 1 구성 후에 RAID 상태를 정기적으로 확인하려면?

A4. cat /proc/mdstatmdadm --detail /dev/md0 를 사용합니다. RAID의 가동 상태를 확인하려면, 다음과 같은 명령을 사용합니다:
cat /proc/mdstat
sudo mdadm --detail /dev/md0
또한, /etc/mdadm/mdadm.conf 에 알림 설정을 하면 메일을 통한 알림도 가능합니다.

Q5. RAID 1에서 디스크를 교체하면 GRUB도 재설치해야 합니까?

A5. 네, 교체한 디스크에도 GRUB을 설치해야 합니다. RAID 1 구성에서는 두 디스크 모두에 GRUB을 설치해 두는 것이 이중성을 확보하는 데 연결됩니다. 한쪽만 설치하면 해당 디스크가 고장났을 때 부팅할 수 없게 될 가능성이 있습니다.
sudo grub-install /dev/sdX
sudo update-grub
(/dev/sdX는 새로운 디스크)

Q6. mdadm과 하드웨어 RAID 중 어느 것이 더 안전합니까?

A6. 사용 환경에 따라 다르지만, 개인 용도나 소규모 서버에서는 mdadm이 더 다루기 쉽고 안전합니다. 하드웨어 RAID는 고성능이고 신뢰성이 높지만, RAID 카드가 고장났을 경우 복구가 어렵고 동일 모델의 카드가 필요할 수도 있습니다. 반면, mdadm은 Linux 상에서 완결되므로, 문제 발생 시 정보가 많고 대응도 쉬운 편입니다.

Q7. RAID 어레이의 일시 정지 및 재시작이 가능한가요?

A7. 네, 어레이의 정지·재시작은 가능합니다. 다만 주의가 필요합니다. 정지 명령 예시:
sudo mdadm --stop /dev/md0
재시작(재조립) 예시:
sudo mdadm --assemble --scan
※시작 시 자동으로 어레이가 구성되도록 mdadm.confinitramfs 설정을 잊지 말고 수행합시다.

8. 요약

RAID 1은 “중복성 확보”가 목적

RAID 1의 가장 큰 특징은, 실시간으로 데이터를 복제하고, 1대의 디스크가 고장 나도 운영을 지속할 수 있다는 점입니다. 이를 통해 예기치 않은 하드웨어 장애로 인한 서비스 중단을 회피할 수 있습니다. 다만, RAID는 백업을 대체할 수 없다는 점을 잊어서는 안 됩니다. 삭제나 덮어쓰기, 바이러스 피해에 대응하려면 별도의 백업 체계가 필수적입니다.

Ubuntu에서의 RAID 선택지

Ubuntu에서는, 아래와 같이 상황과 목적에 따라 RAID 구성 방법을 선택할 수 있습니다.
구성 방법특징추천 용도
mdadm(소프트웨어 RAID)유연하고 저비용으로 구축 가능하며, 정보도 풍부개인 사용자, 소규모 서버
하드웨어 RAID고성능·저 CPU 부하. 고가이며 복구 난이도도 높음기업용, 대규모 스토리지 환경
페이크 RAID( BIOS RAID)중간적인 성격. Ubuntu에서는 비추천기본적으로 피하는 것이 무난
특히 mdadm에 의한 구축은 Ubuntu 사용자에게 가장 실용적인 선택지입니다.

구축 후 운영 및 유지보수가 신뢰성을 좌우한다

RAID 구축은 시작점에 불과합니다. 정기적인 상태 확인 및 장애 발생 시 신속한 대응, GRUB 및 fstab의 적절한 설정이 장기적인 안정 운영을 실현하는 핵심이 됩니다. 아래는 기억해 두면 좋은 유지보수 포인트입니다:
  • cat /proc/mdstatmdadm --detail에 의한 정기 확인
  • RAID 어레이 재구축 절차 파악
  • GRUB의 다중 설치에 의한 부팅 중복성
  • 정기 백업 병행

마지막으로

RAID는 어려워 보일지라도, Ubuntu와 mdadm을 사용하면 명령 기반으로 간단히 구축 가능합니다. 본 기사 내용을 참고하면, 처음 RAID에 도전하는 사람도 트러블에 강한 견고한 시스템 환경을 만들 수 있을 것입니다. 앞으로의 서버 운영 및 시스템 설계에서 RAID 1을 활용하여, 안심하고 안정적인 Linux 생활을 즐기시기 바랍니다.