RAID

물리 디스크 -> 논리적으로 인식 -> 논리디스크

논리 디스크 = 물리 디스크들의 인덱스를 묶어서 사용 -> 동작 인터페이스 단계

 

RAID 컨트롤러 - 서버에서 인터페이스 컨트롤러와 별개로 있다.

 

물리적인 디스크와 논리적인 디스크의 차이 : 각 하드디스크는 자신의 물리 주소를 기억하는 인덱스가 필요함

 

RAID 0 스트라이핑- 100mb + 100mb =200mb 보다 좀 적음 -> 합치면서 만들어야 하는 논리 인덱스 공간이 필요하기 때문

RAID 1 미러링 - 두개의 하드를 하나로 인식하게 함 100mb + 100mb = 100mb 보다 좀 적음

 

CentOS7에 1개의 물리 디스크(sda)가 있다.

(s)da 동작방식 : 구형 : h - ATA or IDE          -> 병렬 연결 방식

                           신형 : s - SCSI or SATA    -> 직렬 연결 방식

s(d)a                :  Disk

sd(a)                :  물리적으로 인식된 1번째 디스크


실습환경

하드 4개 사용, 각 디스크당 용량 10mb

 

 

 

1. 운영체제에서 디스크를 인식했는지 확인

/dev = 운영체제가 인식한 모든 디바이스는 여기에 인식된다.

 

fdisk -L  - 시스템이 인식한 디스크

df  - 현재 사용가능한 시스템의 정보 확인(sdc, sdd등 보이지 않음)

     -> 시스템에서 인식했으나 운영체제가 자신이 사용할 저장소로 인식하지 않음

 

 

2. 운영체제에게 디스크를 사용할 수 있도록 설정해줘야 한다.  -> 파티셔닝을 해줘야 한다.

dev/sdb 디스크 파티셔닝 = fdisk 대상 디스크 지정

-> fdisk /dev/sdb

새로운 파티션 추가 = n

primary - 기본 파티션 : 모든 디스크는 최대 4개 기본 파티션을 가질 수 있다.

extended - 확장 파티션 : 기본 파티션보다 많은 수의 파이션으로 나눌 때 사용된다.(4개 이상)

 

sdb 디스크의 전체 영역을 2048부터 208895까지 총 101mb를 지정했다.

파티션의 기본값을 설정해줘야 한다. -> 시스템 ID 초기값 83(Linux)

레이드에서 사용할 시스템 ID -> fd(Linux raid auto)

 

3. 파티션 초기화 작업 -> 포멧(format)

현재 사용하고 있는 파일 시스템 확인 df -T

타입을 사이즈로 변환해서 확인 df -h

 

 sdb1 의 파일 시스템을 ext4로 포멧

mkfs -t ext4 /dev/sdb1

 

blkid  -> 시스템이 인식하고 있는 장치의 고유 식별 변호 (시리얼번호)

리눅스는 모든 장치를 /(root) 밑에 붙여서(mount) 사용한다.

4. 마운트 대상 디렉터리 설정

mkdir -p /share/sdb1_mount

 

sdb1_mount 디렉터리에 touch test_file로 파일 하나를 만들어줌

 

5. mount 해준다.

mount -t ext4 /dev/sdb1 /share/sdb1_mount/

lost+found = 각 디스크(파티션)의 휴지통 --> 디스크의 root에 존재한다.

 

touch test_file 을 하나 더 만들었을 때 저장되는 위치는 ? sdb1

umount sdb1_mount/ 로 마운트 해제 시 보이는 test_file 의 위치는 sda이다.

 

sdb1 <- 파티셔닝을 다시 한 뒤 RAID 설정

fdisk /dev/sdb

p - 기본

d - 삭제

n - 새로운

p - 기본

t - 변환

w - 저장

마운트 상태에서 건들면 안됨!!

나머지 sdc, sdd, sde 도 RAID로 설정해줘야됨

fdisk /dev/sdb

p - n - p - t - fd - w

 

RAID를 사용할 때 가상 디스크 -> md : meta disk = 사용되기 전의 순수한 디스크 (파티셔닝만 한 순정 상태)

md를 관리하기 위한 유틸리티 = mdadm


목표 : sdb1과 sdc1을 묶어서(RAID 구성) 하나의 디스크(md0)를 생성

RAID 0 모드(스트라이핑 모드)로 동작시키자 -> 동작 레벨 : 0

 

mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1

fdisk -l

포멧

mkfs -t ext4 /dev/md0

mount -t ext4 /dev/md0 /share/sdb1_mount/

mdstat -> /proc/mdstat

                -------                -> 프로세스 정보를 담고 있다.

cat /proc/mdstat

1block 당 size = 1024byte

 


실습 예제

sdd1 /sde1 -> raid 1 - 미러링을 구성하시오

mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdd1 /dev/sde1

mkfs -t ext4 /dev/md1

mount -t ext4 /dev/md1 /share/md1/

 

RAID 묶은거 삭제하는 법

mdadm --remove /dev/md1

mdadm --stop /dev/md1

 

md 생성 후 재부팅 시 남아있음

마운트가 풀리는 문제 발생

blkid 시 UUID 확인 가능

fstab에 등록해주면 부팅시 알아서 mount되게 설정

vim /etc/fstab

UUID=2ddcb03d-22cd-4d3a-bcad-12c1b5950897 /share/md1    ext4    defaults 0 0

 


실습 예제 2

sdb1 , sdc1 = raid0 /  sdd1, sde1 = raid0 / 0+1을 만들어라!

 

mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1

mkfs -t ext4 /dev/md0

mdadm --create /dev/md1 --level=0 --raid-devices=2 /dev/sdd1 /dev/sde1

mkfs -t ext4 /dev/md1

mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/md0 /dev/md1

mkfs -t ext4 /dev/md2

mount -t ext4 /dev/md2 /share/md2/

lsblk로 정상적으로 mount 된 것 확인

blkid 로 UUID 확인 후 vim /etc/fstab 에서 설정값 변환

init 6로 재부팅 후 df 하면 정상적으로 붙은걸 확인

 raid 0 + 1 을 사용 시 속도향상과 복사본 생성이라는 두 가지 목적을 동시에 구현할 수 있다.

 

raid 1 + 0 은 raid 0의 속도적인 장점을 살리고, raid 1로 안전성을 보강한다.


실습 예제 3

RAID 5 -> 표준형   /  RAID 컨트롤러 기본 적용

3대 이상의 하드디스크가 필요하다.

mdadm --create /dev/md5 --level=5 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

              ---------- -c            -------- -l 5  ------------------- -n 4

mkfs -t ext4 /dev/md5

mount -t ext4 /dev/md5 /share/md5/

오류1

mdadm 오류 발생 1 : stop으로 삭제는 진행했으나, 삭제되지 않았다고 나올 때

해결법 : mdadm --zero-superblock /dev/sdb1으로 삭제. 나머지 sdc sdd sde도 삭제해준다.

mdadm --detail --scan 으로 살아있는지 확인

 

mkfs 오류 발생 2 : 설정 시 will not make a filesystem here 이라는 오류가 발생했는데, umount 후 mdadm --stop로 삭제했으나 md2만 살아나는 현상이 발견됨.

다시 mdadm --stop /dev/md2 로 삭제해주고 mkfs 시 정상적으로 포멧 됨

 

이후 mount 해주니 오류가 해결되었다.

오류 해결된 후 md5로 정상적으로 mount


하드웨어 기반의 RAID 구성  = Provisioning이라고 부른다.

hpe 서버에서는 SSA

 

'서버' 카테고리의 다른 글

IDS - Snort  (0) 2023.07.12
DISKQUOTA  (0) 2023.06.22
SAMBA(smb)  (0) 2023.06.20
CMS  (0) 2023.06.07
PHP 설치  (0) 2023.05.30