정보보안공부

Linux_리눅스 RAID - Linear / Stripe 본문

Linux

Linux_리눅스 RAID - Linear / Stripe

Steady_sp 2018. 7. 20. 00:00

리눅스 RAID - Linear / Stripe

- 오라클 가상 머신 사용

- CentOS6

 

<RAID - Linear / Stripe>

 

#1 RAID ( Redundant Array of Independent Disks )

- 여러 개의 하드 디스크에 일부 중복된 데이터를 나눠서 저장하는 기술이다. 데이터를 나누는 다양한 방법이 존재하며, 이 방법들을 레벨이라 하는데 레벨에 따라 저장장치의 신뢰성을 높이거나 전체적인 성능을 향상시키는 등의 다양한 목적을 만족시킬 수 있다.

- RAID는 여러 개의 디스크를 하나로 묶어 하나의 논리적 디스크로 작동하게 하는데, 하드웨어적인 방법과 소프트웨어적인 방법이 있다. 하드웨어적인 방법은 운영 체제에 이 디스크가 하나의 디스크처럼 보이게 한다. 소프트웨어적인 방법은 주로 운영체제 안에서 구현되며, 사용자에게 디스크를 하나의 디스크처럼 보이게 한다.

 

*** RAID 구성
1) Linear ( 선형 )
 - 디스크를 배열 형태로 단순 연결
 - 데이터의 내용을 순차적으로 기록

2) Stripe ( Level0 )
 - 데이터의 내용을 분산 저장 ( 장점 : 데이터 이동시 속도가 빠르다. )
 - 속도가 빠른 장점이 있다.
 - 데이터의 안전성을 보장 할 수 없다. (여러개의 분산된 데이터중 일부가 고장나면 전부 사용불가)

3) Mirror ( Level1 )
 - 데이터의 안전이 뛰어난 구성이다.
 - 디스크의 용량을 절반밖에 사용 할 수 없다.

4) Level 5
 - stripe 장점 (빠르다) + mirror 장점 (안전)
 - 최소 3개 이상의 디스크 필요
 - 전체 디스크에 -1한 숫자로 나눈뒤 저장한다.
 - XOR 연산 ( 동일한 데이터면 0 서로다른 데이터면 1) 한값을 mirror 디스크에 저장
 - parity bit(XOR) 연산된 값을 통해 고장난 디스크의 데이터값을 유추할 수 있다.
 -> 2개 이상의 장치에 장애가 발생한 경우에는 복구 불가능

5) Level 0+1 ( stripe 구성후 mirror 구성으로 묶어준다. )
 - 데이터를 반으로 나눠서 stripe구성으로 저장된후 mirror 디스크에 저장이된다.

 

#2 RAID - linear 구성해보기

 

*** 디스크 추가

 

 

-> 가상머신 종료후 디스크 추가

 

 

-> /dev/sdf , /dev/sdg 두개의 디스크 사용

 

*** 파티션 생성 ( 레이드 파티션 )

- 해당디스크를 전체 용량으로 만든다음 시스템 ID를 RAID로 바꾼다.

# fdisk 장치명

 

fdisk /dev/sdf

-> n -> p -> 1 -> enter -> enter -> t -> fd ( RAID ) -> w

fdisk /dev/sdg

-> n -> p -> 1 -> enter -> enter -> t -> fd ( RAID ) -> w

 

=> LVM과 마찬가지로 해당디스크를 전체용량으로 만드는데 LVM 은 시스템ID가 8e고 RAID는 시스템ID가 fd이다.

 

 

-> 설정한 파티션 확인

 

*** RAID 생성

- mdadm 패키지를 설치한다.

 

 

- /dev/md라는 디렉토리를 만들어놓고 --create옵션과 -l linear 옵션, -n 2 옵션을 이용해 만든다.( /dev는 장치관련 디렉토리, 주로 디스크 )

 

 

-> linear는 옵션 -l linear로 사용한다.

 

*** RAID 확인

- /dev디렉토리 안에 디바이스를 직접 확인한다.

 

 

-> 만든 /dev/md/linear파일은 심볼릭 파일로 /dev/md127 장치파일(디스크)을 가리키고있다.

 

# /proc/mdstat

 

 

# mdadm --detail

 

 

*** 파일시스템 생성

- ext4 파일시스템으로 설정한다.

 

 

*** 마운트

- 윈도우에 USB를 꽂으면 폴더가 생기는것을 마운트로 생각하면 된다.

- 마운트한뒤 재부팅을하게되면 설정한 마운트는 해제된다. UUID를 이용해 /etc/fstab에 저장하면 부팅시에도 자동 마운트가 이루어진다.

 

 

-> 장치파일에 UUID와 파일시스템 종류를 알수있는 blkid 명령어

 

 

-> 마운트 설정전에 해당 디렉토리에 파일을 만든뒤에 마운트 후에 확인을 해보면 마운트 후에 만든 파일 raid1,2,3은 /dev/md127 디스크에 연결이 되므로 마운트전에 만든 파일 file1,2,3은 보이지 않는다. 마운트 전에 만든파일은 / 와 /dev/sda2와 마운트 되있는거로봐선 /dev/sda2 디스크에 연결되었을때 보인다.

-> 만약 마운트한 파일에 실행파일이 있었다면 마운트후에 해당 실행파일은 동작하지 않는다.

 

==> 기존에 마운트로 사용하던 디렉토리에 또다른 장치와 마운트를 연결하면 기존 디렉토리의 파일들은 보이지 않고 사용할 수 없다. 실행파일이 있던 디렉토리는 주의해야한다. 연결한 장치와 마운트를 해제하면 사용가능하다.

 

*** 장치해제

- umount로 장치를 해제한다.

- mdadm --stop을 이용해 링크를 끊는다.

- mdadm --zero-superblock을 이용해 해당 디스크의 흔적을 지운다.

 

 

#2 RAID - stripe ( Level0 )구성해보기

- 만들때 stripe로 만드는것만 차이가있고 나머진 linear설정방식과 동일하다.

 

 

-> /dev/md/stripe 라는 파일은 /dev/md127로 심볼릭링크 되어있다.

-> stripe는 옵션 -l 0 으로 사용한다. 0은 level0을 의미

'Linux' 카테고리의 다른 글

Linux_리눅스 ACL  (0) 2018.07.21
Linux_리눅스 RAID - Mirror / Level 0+1  (0) 2018.07.20
Linux_리눅스 LVM  (0) 2018.07.19
Linux_리눅스 쉘스크립트 실습  (0) 2018.07.12
Linux_리눅스 쉘스크립트  (0) 2018.07.11
Comments