Ubuntu - RAID 0, 1, 5 실습
/posts/ubuntu-hard-disk-management-add-disk
1. 하드 7개 추가
bash
# RAID 패키지
sudo apt update
sudo apt -y install mdadm
2. RAID 0 구축
bash
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1
# mdadm: 리눅스에서 소프트웨어 RAID를 관리하기 위한 유틸리티
# --create: 새로운 RAID 배열을 생성하기 위한 옵션
# /dev/md0: 생성할 RAID 배열의 장치 이름
# --level=0: RAID 레벨을 지정, 여기서는 RAID 0(스트라이핑) 레벨을 사용
# --raid-devices=2: RAID 배열에 사용할 디스크 장치의 수를 지정, 여기서는 2개의 디스크를 사용
# /dev/sdb1 /dev/sdc1: RAID 배열에 포함될 디스크 파티션, 여기서는 /dev/sdb1과 /dev/sdc1 두 개의 파티션을 사용
bash
# 모든 RAID 배열에 대한 상세 정보를 출력
sudo mdadm --detail --scan
bash
# /dev/md0 장치에 ext4 파일 시스템을 생성
# RAID 배열을 생성한 후, 파일 시스템을 초기화하여 사용할 수 있게 하는 중요한 단계
mkfs.ext4 /dev/md0
bash
/dev/md0 /raid0 ext4 defaults 0 0
bash
# mdadm.conf 등록
sudo mdadm --detail --scan /dev/md0 >> /etc/mdadm/mdadm.conf
# 업데이트
sudo update-initramfs -u
bash
systemctl daemon-reload
2. RAID 1 구축
bash
# RAID Disk 정보 확인
fdisk -l /dev/sdd
fdisk -l /dev/sde
bash
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdd1 /dev/sde1
# mdadm: 리눅스에서 소프트웨어 RAID를 관리하기 위한 유틸리티
# --create: 새로운 RAID 배열을 생성하기 위한 옵션
# /dev/md1: 생성할 RAID 배열의 장치 이름
# --level=1: RAID 레벨을 지정, 여기서는 RAID 1 레벨을 사용
# --raid-devices=2: RAID 배열에 사용할 디스크 장치의 수를 지정, 여기서는 2개의 디스크를 사용
# /dev/sdd1 /dev/sde1: RAID 배열에 포함될 디스크 파티션, 여기서는 /dev/sdd1과 /dev/sde1 두 개의 파티션을 사용
bash
# Raid 정보 확인
mdadm --detail /dev/md1
bash
# 마운트할 폴더 생성
sudo mkdir /raid1
# mdadm.conf 등록
sudo mdadm --detail --scan /dev/md1 >> /etc/mdadm/mdadm.conf
# 업데이트
sudo update-initramfs -u
#등록 확인
cat /etc/mdadm/mdadm.conf
bash
# /dev/md1 장치에 ext4 파일 시스템을 생성
# RAID 배열을 생성한 후, 파일 시스템을 초기화하여 사용할 수 있게 하는 중요한 단계
mkfs.ext4 /dev/md1
bash
# raid1 으로 mount
mount /dev/md1 /raid1
#마운트 확인
df
bash
# /etc/fstab 에 등록 (부팅 시 마운트)
echo '/dev/md1 /raid1 ext4 defaults 0 0' | sudo tee -a /etc/fstab
# 등록 확인
cat /etc/fstab
#데몬 재시작
systemctl daemon-reload
3. RAID 5 구축 (3개)
bash
# RAID Disk 정보 확인
fdisk -l /dev/sdf
fdisk -l /dev/sdg
fdisk -l /dev/sdh
bash
mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sdf1 /dev/sdg1 /dev/sdh1
bash
mdadm --detail /dev/md5
bash
mkfs.ext4 /dev/md5
bash
sudo mkdir /raid5
sudo mdadm --detail --scan /dev/md5 >> /etc/mdadm/mdadm.conf
sudo update-initramfs -u
cat /etc/mdadm/mdadm.conf
bash
mount /dev/md5 /raid5
bash
df
bash
echo '/dev/md5 /raid5 ext4 defaults 0 0' | sudo tee -a /etc/fstab
cat /etc/fstab
systemctl daemon-reload
4. RAID 0 1 5 장치 고장 내기
bash
# 각 폴더에 더미파일 생성
fallocate -l 100M /raid0/dummy_file.img
fallocate -l 100M /raid1/dummy_file.img
fallocate -l 100M /raid5/dummy_file.img
각 RAID의 장치 하나씩을 제거하여 고장과 같은 상황을 만듬
bash
# 확인
mdadm --detail /dev/md0
mdadm --detail /dev/md1
mdadm --detail /dev/md5
bash
#장치 확인
ls -l /dev/sd*
df
bash
RAID 확
mdadm --detail --scan
bash
#시작
mdadm --run /dev/md0
mdadm --run /dev/md1
mdadm --run /dev/md5
mdadm --detail --scan
plaintext
# 변경 후
gedit /etc/fstab
# 데몬 재시작
systemctl daeon-reload
plaintext
# 수정
sudo gedit /etc/mdadm/mdadm.conf
sudo update-initramfs -u
bash
mdadm --detail /dev/md1
mdadm --detail /dev/md5
5. RAID 0 1 5 복구
제거한 하드 3개 추가
bash
# 추가된 목록 확인
ls -l /dev/sd*
bash
# 새로운 파티션 생성 (리눅스 오토 fd)
fdisk /dev/sdc
fdisk /dev/sde
fdisk /dev/sdg
bash
# ext4 파일 시스템 생성
mkfs.ext4 /dev/sdc1
mkfs.ext4 /dev/sde1
mkfs.ext4 /dev/sdg1
bash
- RAID 0 재생성 -
# 확인
mdadm --detail --scan
# 상세확인 (Raid 0이 md127로 변경됨)
mdadm --detail /dev/md127
# RAID 중지
mdadm --stop /dev/md127
# RAID 재생성
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1
bash
# UUID 수정
sudo gedit /etc/mdadm/mdadm.conf
sudo update-initramfs -u
sudo mount /dev/md0 /raid0
gedit /etc/fstab
systemctl daeon-reload
bash
- RAID 1 은 재생성이 아닌 추가 -
# 상세 확인
mdadm --detail /dev/md1
bash
# Raid에 추가
mdadm /dev/md1 --add /dev/sde1
# Raid 확인
mdadm --detail /dev/md1
# 파일 확인
ls -l /raid1
bash
- RAID 5 는 재생성이 아닌 추가 -
# 상세 확인
mdadm --detail /dev/md5
bash
# Raid에 추가
mdadm /dev/md5 --add /dev/sdg1
# Raid 확인
mdadm --detail /dev/md5
# 파일 확인
ls -l /raid5
bash
# Raid 전부 확인
mdadm --detail --scan