정보보안공부
Linux_리눅스 RAID - Linear / Stripe 본문
리눅스 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 |