Linux/Linux 기본

Linux SoftRaid ?

SE KK 2022. 3. 23. 02:52

SoftRaid란 : OS에 포함이 되어 있는 RAID이다. CPU의 자원을 사용하기 때문에 성 능의 제약이 있어 상대적으로 느리다. 별도의 하드웨어 없이 소프트웨어로만 구현이 되어 있기 때문에 하드웨어 구현 방식에 비해 저렴하지만, 데이터의 손실이나 에러, 바이러스 에 대해 상대적으로 취약한 점이 있다.

 

1. SoftRaid 구축방법

 1.1 RAID 1 구축

■ 구성 : VirtualBox, SATA 128GB*2(SoftRaid 1)

■ 운영체제 : CentOs 6

 

- SoftRAID 구축 방법

1) OS 설치 중 SoftRaid 파티션으로 나눠 설치

-> OS 설치 중 SoftRaid 파티션으로 똑같은 크기의 RAID 파티션을 생성한다.

 

-> RAID 파티션 생성 후 다음과 같이 설정 후 RAID 장치를 만들어준다.

 

-> 파티션을 만들어 준후 계속 진행 시 다음과 같이 SoftRaid 파티션을 생성한다.

 

-> cat /proc/mdstat 명령어로 RAID 구성 파티션 및 RAID 장치를 확인 할 수 있다.

<레이드가 깨졌을시 [UU]가 아닌 [U_], [_U] 등으로 표시 된다.>

 

2) OS 설치 후 명령어를 통한 SoftRaid 파티션 설정

OS 설치 이후 추가 혹은 변경으로 SoftRaid를 구성해야 하는 상황으로 테스트 진행

 

기존 디스크에 파티션 추가하여 SoftRaid 구성

-> fdisk -l 명령어로 확인한 파티션들 확인. (추가로 SoftRAID를 구성하기 위 해 10GB 정도의 공간을 남겨둠)

 

-> fdisk [장치명] - n(new) - 만들려는 파티션들 값 입력 - p(print) - w(write)

-> /dev/sda7 , /dev/sdb7에 동일한 크기로 파티션을 만들어 준다.

 

-> mdadm --create /dev/md5 --level=1 --raid-devices=2 /dev/sda7 /dev/sdb7 명령어로 SoftRaid를 구성한다.

 

-> mdadm --detail /dev/md5 명령어로 해당 레이드의 구성을 확인할 수 있다.

<현재 구성 후 바로 확인을 하여 resysncing 상태로 표시 된다.>

 

-> 레이드 장치에 맞는 파일시스템을 생성 해준다.

-> /DATA 디렉토리를 만든 후 /dev/md5를 마운트 한다.

(df -Th로 확인 하였을 때 마운트 된 것을 확인 할 수 있다.)

->/etc/fstab 에 /DATA의 정보를 등록하여 재부팅 후에도 자동으로 마운트 될 수 있도록 설정가능.              

# 해당 디렉토리의 레이드 장치의 UUID 값은 ll /dev/disk/by-uuid로 확인 가능

 

2. SoftRaid 장애테스트 및 복구 방법

2.1 장애 테스트

■ 장애 테스트 구성 : VirtualBox, SATA 128GB*2(SoftRaid

■ 상황: /dev/sdb 디스크에 오류가 생겨 Raid가 깨진 상태

 

 -> mdadm --detail /dev/md0 명령어로 레이드를 확인하였을때 제거가 된 것 을 확인할 수 있다.

 

-> log를 확인하니 2개의 mirror 중 1개만 활성화 되어있다. /proc/mdstat로 확인을 해보면 [2/1] [U_]가 되어 있으며,

(경우에 따라 다르게 표 시된다.) /dev/sda의 파티션들만 active되어 있는것을 확인할 수 있다.

-> 종료 후 새로운 128GB의 가상 디스크를 만들어 준 후 다시 부팅한다.

 

-> sfdisk -d [장치명] > [파일이름] 명령어로 dump 파일을 만든다.

# sfdisk : 여러 디스크를 원본 디스크와 동일한 파티션으로 나눠야 할 경우 유용하게 사 용 할 수 있는 명령어

-s : 파티션의 사이즈 출력

-l : 각 장치의 파티션 정보 출력

-d : 해당 파티션 dump

 

-> sfdisk /dev/sdb < sdadump.txt 명령어로 파티션들 복사

-> mdadm [레이드장치] --add [추가할파티션] 명령어를 통하여 각 레이드에 장치를 추가한다.

/proc/mdstat 명령어로 구성 상황을 확인 할 수 있다.

 

## 논외...

핫스왑 서버가 아닐경우 디스크 교체를 위해 서버를 종료해야한다. 그런데, 디스크 교체 후 부팅이 안되는 경우가 있다.여러가지 이유가 있겠지만, Grub이 설치가 안되어있어 부팅이 안되는 경우가 많았다.

Grub 관련되서 여러 포털 사이트에 내용이 많다.

 

 

 SoftRaid로 구성했을때 Grub은 한개의 디스크에 설치되는데, Grub이 설치된 디스크를 교체한다면? 부팅이 되지 않는 상황이 발생한다. 그렇다면 Grub은 어떻게 설치할까? 생각보다 간단하다.

 

 # grub-install [설치할 디스크]

 

혹은  grub로 진입해 설치 가능하다.

# grub

root (hd1,0)

# setup (hd1)