RAID 개념 정리 RAID0, RAID1, RAID5, RAID6

http://blog.naver.com/ldbina/120047918516

RAID의 정의와 종류

RAID는 'Redundant Array of Inexpensive Disks'의 약어로, 여러 디스크를 한 디스크처럼 사용하도록 함으로써 비용을 절감하면서도
신뢰성을 높이고, 또한 성능을 향상시키기 위한 저장 장치를 의미한다.

RAID의 종류는 크게 하드웨어 RAID와 소프트웨어 RAID로 나눌 수 있다.


1) 하드웨어 RAID
하드웨어 RAID는 하드웨어 제조업체에서 여러 하드디스크를 이용해서 장비를 만들고 그 자체를 공급하는 것이다.
하드뒈어 RAID는 좀 더 안정적이고, 기술 지원을 각 제조업체에서 받을 수 있어서 많이 선호하는 방법이다. 단점은 가격이 꽤 비싸다. 수억 원대를 호가하기도 하며, 저렴해도 몇 천만원대를 하는 게 보통이다. 대부분의 하드웨어 RAID는 SCSI 하드디스크를 사용하지만, 최근 저렴한 IDE 하드디스크를 이용하여 만들어진 장치도 종종 있다.


2) 소프트웨어 RAID
고가의 하드웨어 RAID 대안으로, 하드디스크만 있으면 운영체제에서 지원하는 방식으로 RAID를 구성하는 방법을 말한다. 하드웨어 RAID에 비해서 신뢰성이나 속도 등이 떨어질 수 있지만, 아주 저렴한 비용으로 좀더 안전한 데이터의 저장이 가능하다는 점에서 적극 고려해 볼 수 있는 방식이다.

앞으로 소개하는 방식은 모두 소프트웨어 RAID 방식이지만, 하드웨어 RAID도 같은 개념으로 하드웨어에 구현했다는 것일 뿐 별반 다르지 않다.





RAID 레벨

RAID는 구성 방식에 따라 기본적으로 0,1,2,3,4,5 까지 6개로 분류할 수 있다.
실무에서 주로 사용되는 방식은 RAID 0, 1, 5와 RAID 5의 변경인 5+1, 6 그리고 RAID 0과 1의 혼합인 RAID 0+1, RAID 10 등이다.


1) 단순 볼륨
하나의 하드디스크를 하나의 볼륨으로 사용하는 방법으로, RAID 방식에는 포함되지 않는다. 앞 전에 설명했던 "하드디스크 한 개 추가"가 이에 해당한다.



2) LVM과 RAID 0
LVM은 RAID 방식에는 포함되지 않지만, 비슷한 개념으로 사용된다. 하드디스크가 최소 2개 필요하다. LVM을 사용자 기준으로 본다면 RAID 0과 별반 차이가 없어 보인다. 2개 이상의 하드디스크를 1개의 볼륨으로 사용한다는 점은 비슷해 보이지만 가장 큰 차이점은 저장되는 방식이다.

LVM 방식은 2개의 하드디스크를 1개의 볼륨으로 사용하며, 파일이 저장되는 방식은 앞 하드디스크에 데이터가 완전히 저장된 후에 다음 하드디스크에 데이터가 저장된다. 즉, 앞 하드디스크에 데이터가 완전 저장되지 않는다면 다음 하드디스크는 전혀 사용되지 않는 것이다. 반면, RAID 0 방식은 모든 디스크를 동시에 사용한다.

즉,
LVM은 첫 번째 하드디스크가 모두 채워진 후에 두 번째 하드디스크를 사용하기 시작한다. RAID 0은 첫 번째, 두 번째, 세 번째 하드디스크에 동시에 저장된다.

예를 들어 "안녕하세요? 반갑습니다"라는 내용이 저장될 때 다음의 모습과 같다.

RAID 0 에는 "안세반니"
RAID 1 에는 "녕요갑다"
RAID 2 에는  "하?습"


여기서 "동시에"라는 말은 중요한 의미를 지닌다. LVM에서 "안녕하세요?반갑습니다"가 저장되는 시간이 한 글자당 1초라고 가정하면
LVM의 경우에는 총 11초의 시간이 저장되는 데에 소요된다. RAID 0의 경우에는 동시에 3개를 사용하므로 각 하드디스크당 4글자가 저장되어 4초면 저장이 완료된다. 이렇게 여러 하드디스크에  동시에 저장되는 방식을 '스트라이핑(Stripping)' 방식이라고 부른다. 이렇게 RAID 0 방식은 저장되는 시간 또는 속도적인 측면에서 RAID 방식 중 성능이 가장 뛰어나다고 할 수 있다. 또한, 디스크의 개수만큼 용량을 모두 사용하므로 공간 효율이 아주 좋다.

단점을 살펴보자. RAID 0의 경우 세 하드디스크 중 하나가 고장 날 경우에는 모든 데이터를 잃어버리게 된다. 두 번째 하드디스크가 고장
났다고 생각하고 글자를 읽으면 "안X하X요X반X습X다"가 될 것이다. 이를 가지고 원래의 데이터가 무엇이였는지 예측할 수는 없다. 즉, 전혀 쓸모 없는 데이터가 되는 것이다. 그러므로, RAID 0 방식을 사용하는 데이터는 '빠른 성능을 요구하되, 혹시 전부 잃어버려도 큰 문제가 되지 않는 자료'를 저장하는 데 적절한 방식이라고 생각할 수 있겠다.



3) RAID 1
RAID 1의 핵심은 미러링(Mirroring) 이라고 할 수 있다. 즉, 똑같은 데이터의 거울을 만들어 놓는다는 것이다. 예를 들어, 2개를 RAID 1 방식으로 "안녕하세요?반갑습니다"를 저장하면 11Byte를 저장하는 데 그 두 배인 24Byte가 소요된다. 즉, 데이터를 저장하는 데 두 배의 용량이 필요하다. (총 용량의 절반밖에 사용하지 못한다는 말이다)

장점은, 두 디스크 중 하나가 고장나더라도 데이터는 손상되지 않는다는 것이다.
이것을 "결함 허용(Fault-tolerance)을 제공하다"라고
표현하기도 한다.

단점은 두 배의 저장 공간이 필요하다는 것이다. 즉 비용이 두 배로 든다.
(또는 공간 효율이 떨어진다고 표현한다)
RAID 1 방식을 사용하기에 적당한 경우는 '하드디스크가 고장나도 없어져서는 안 될 중요한 데이터'가 있을 때라고 생각하면 된다. 즉, 비용이 많이 들더라도 중요도가 높은 데이터들을 저장하면 될 것이다.

이번에는 저장되는 속도를 생각해 보자. 똑 같은 데이터를 두 번 저장하므로, 두 배의 시간이 걸린다고 생각할 수도 있겠지만,
똑같은 데이터가 다른 하드 디스크에 동시에 저장되는 것이므로, 저장되는 속도는 빠르지도 느리지도 않는다고 말할 수 있다.위의 예에서 11Byte가 11초 걸린다면, 각각 저장되는 것이므로 총 11초의 시간이 걸린다고 할 수 있겠다.


   RAID 0  RAID 1
 성능 (속도)  뛰어남  변화 없음
 데이터 안정성 (결함 허용)  보장 못함 (결함 허용 안 함)  보장함(결함 허용함)
 공간 효율성   좋음   안 좋음



4) RAID 5
RAID 1 처럼 데이터의 안전성이 어느 정도 보장되면서 RAID 0 처럼 공간 효율성도 좋은 장점을 어느 정도 포용하는 방식이다. RAID 5는 최소한 3 개 이상의 하드디스크가 있어야만 구성이 가능하며 대개는 5개 이상의 하드디스크로 구성된다. 하드디스크에 오류가 발생했을 때에는 패리티(Parity)를 이용해서 데이터를 복구할 수 있다.

예를 들어 "000 111 010 011"(12bit) 라는 데이터를 하드디스크 4개로 구성된 RAID 5에 저장해 보도록 하자.

짝수 Parity면 각 행은 짝수가 되어야 한다.

      sda   sdb   sdc    sdd
        0       0       0       (0) ===> 0+0+0+Parity는 짝수가 되어야 하므로 Parity는 0이 입력된다.
        1       1      (1)       1  ===> 1+1+Parity+1도 짝수가 되어야 하므로 Parity는 1이 된다.
        0      (1)      1        0
       (0)      0       1        1


이렇게 저장이 완료된 RAID 5 는 어느 정도의 결함을 허용한다. 4개의 디스크 중 1개가 고장 나더라도 원래 데이터를 추출할 수 있다.
두 번째 디스크인 sdb가 고장났다면 "0+알수없음+0+0=짝수" 이어야 하므로 sdb의 값은 '0' 이 되는 것을 예측할 수 있다. 나머지도 마찬가지로 유추해 낼 수 있으므로 원래의 데이터를 손실 없이 사용할 수 있다.

RAID 5 의 장점은
어느 정도의 결함 허용을 해주며 저장 공간의 효율도 좋다는 것이다. 만약, 4 개의 디스크를 각각 4GB라고 한다면 총 사용할 수 있는 공간은 3GB이다. 전체 용량의 75%를 사용할 수 있다. 예를 들어 RAID 5를 1GB 디스크 10개로 구성했다면, 전체 10GB 중 1개의 패리티로 사용하는 1GB를 제외한 나머지 9GB를 사용할 수 있으므로 전체 용량의 90%를 사용할 수 있는 것이다. (디스크의 개수가 N개라고 하면, N-1 만큼의 공간을 사용할 수 있다.)



5) RAID 6
RAID 5 방식을 사용하다 디스크 1개가 고장나더라도, 데이터에는 이상이 없는 것을 확인했다. 하지만, 디스크 10개를 RAID 5로 구성 했을 때 디스크 2개가 동시에 고장난다면 어떻게 될까?? 모든 데이터는 전혀 복구될 수 없다. RAID 6 방식은 RAID 4 방식의 개선으로, RAID 5 는 패리티를 사용하지만, RAID 6는 2개의 패리티를 사용함으로써 공간 효율은 RAID 5 보다 약간 떨어지지만, 2개의 디스크가 동시에 고장나도 데이터에는 이상이 없도록 하는 방식이다. 디스크 10개로 구성한다면 1개당 1GB라고 했을 때, '디스크 개수-2' 인 8GB 의 용량을 사용할 수 있다.

RAID 6 은 최소 네 개로 구성해야 한다.
즉, 장점은 RAID 6 은 RAID 5 보다 공간 효율은 떨어지지만 데이터에 대한 신뢰도는 좀 더 높아지는 효과를 갖는다.

단점은, RAID 5 는 패리티를 1개만 생성하면 되지만, RAID 6 은 패리티를 2개 생성해야 하므로, 내부적인 쓰기(Write) 알고리즘이 복잡해져서 성능(속도)은 RAID 5에 비해 약간 떨어진다는 것이다.



6) RAID 0+1 방식
이름에서 알 수 있듯이 RAID 0(Stripping) 한 데이터를 RAID 1(Mirroring)하는 방식이다. 공간 효율성은 RAID 1과 마찬가지로 50% 밖에 안되므로 비용이 많이 든다. "안녕하세요?반갑습니다"를 저장하면 2개의 디스크에 빠른 속도로 저장되고, 동시에 그 복사본이 다른 디스크 2개에 생성된다. 신뢰도는 RAID 5 와 같은 수준이다. 즉, 두 개가 동시에 고장나면 복구할 수 없다.



7) RAID 10 방식
RAID 0 한 데이터를 다시 RAID 0 하는 방식이다. 신뢰성(안전성)과 성능(속도)가 0+1 에 비해서 더욱 뛰어나다.


Posted by 눈빛마음

2010/03/15 12:56 2010/03/15 12:56
Response
No Trackback , No Comment
RSS :
http://iz.apgu.co.kr/tc/rss/response/533

웹 소스 날짜 지난 새션 삭제하기

find ./ -mtime +7 -exec rm -rf {} \;

이렇게 하면 7일이 지난 세션들은 삭제할 수 있다.

Posted by 눈빛마음

2010/03/08 21:46 2010/03/08 21:46
Response
No Trackback , No Comment
RSS :
http://iz.apgu.co.kr/tc/rss/response/532

TCP: Treason uncloaked

TCP: Treason uncloaked! Peer 0000:0000:0000:0000:0000:ffff:d267:cb12:1598/80 shrinks window 1741444664:1741450184. Repaired.

Client와 서버간의 수신되는 윈도우 사이즈 문제임.
결론적으로는 무시해도 된다는 말 ^^


포 트 문제는 아니고 리모트 호스트의 수신윈도우 사이즈 때문이다. tcp로 데이터를 송수신할 때 서로 윈도우 사이즈를 교환하게 되어 있는데 리모트 호스트가 리눅스 서버와 협상하지 않고 윈도우사이즈를 축소할 경우 발생하는 메시지이며 이는 window scaling 을 사용할 때 종종 발생하는 문제이니 무시하여도 무방

Posted by 눈빛마음

2010/03/04 18:28 2010/03/04 18:28
Response
No Trackback , No Comment
RSS :
http://iz.apgu.co.kr/tc/rss/response/530

kernel: nf_conntrack: table full, dropping packet.

웹 서버를 운영하다가 보면 엄청난 TCP와 싸우게 된다.
이때 다음의 것을 만나게 될텐데....

난 올리지도 않았던 iptable이 있어서 당황하게 된 거다.
아무튼 iptable이 필요한 곳이 있다면 다음을 보자

출처 : http://genes1s.egloos.com/2423721

# 시스템에서 처리할수 있는 패킷이 초과되면서 이후 패킷에 대해서 drop처리되는 메세지
   ping 으로 확인시 시스템이 다운된것처럼 체크됨
Jul 31 18:41:00 www kernel: nf_conntrack: table full, dropping packet.
Jul 31 18:41:06 www kernel: nf_conntrack: table full, dropping packet.
Jul 31 18:41:10 www kernel: nf_conntrack: table full, dropping packet.
Jul 31 18:41:15 www kernel: nf_conntrack: table full, dropping packet.
 
# conntrack 모듈이란....
2.6.x 버전이상에는... nf_conntrack 이라는 명칭이며....이하는 ip_conntrack
ESTABLES 관련이 있으며 현접속상태에 대한 정보를 일정시간동안 시스템에서 기억하는 모듈이다.
대게 FTP 접속하고 관련이 있는데....FTP 특성상 접속을 맺는포트 (20번) 데이타 전송포트 (21번)으로
분리되어있다보니... 세션이 이루어지고 데이타 전송되는 SRC IP / DST IP 정보를 담고있어야 된다.
이에 CONNTRACK 테이블에 해당 정보를 가지고 있음....
ex)
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
# 임시방편으로는 conntrack 테이블갯수를 늘려준다...
[monawa.com, /proc/net >cat /proc/sys/net/nf_conntrack_max
65536   ==> 기본...
아래와 같이 늘려주면 되나....접속량자체가 많은것이므로 문제해결에 대한방법은아니며 해당 커널변수를
무한정으로 그리고 수치를 크게 늘리게 되면 시스템에 타 기능에 문제가 발생될 소지가 많음
echo 100000 >  /proc/sys/net/nf_conntrack_max
echo 0 > /proc/sys/net/nf_conntrack_max  ==> 무한정
 
# nf_conntrack 관련모듈
lsmod |grep conntrack
nf_conntrack_ipv4      17225  4
nf_conntrack_ftp       16489  0
nf_conntrack           65217  3 nf_conntrack_ipv4,xt_state,nf_conntrack_ftp
nfnetlink              13321  2 nf_conntrack_ipv4,nf_conntrack

# nf_conntrack 현재 접속카운트
watch -d cat /proc/sys/net/netfilter/nf_conntrack_count

# nf_conntrack 접속정보를 담고있는 부분
[monawa.com, /proc/net >pwd
/proc/net
[monawa.com, /proc/net >cat nf_conntrack

#### 시스템 커널변수값 수정사항 ####
[monawa.com, /proc/sys/net/netfilter >cat nf_conntrack_tcp_timeout_established
432000
[monawa.com, /proc/sys/net/netfilter >echo 3600 >  nf_conntrack_tcp_timeout_established
# 초기값 65535
echo 100000 >  /proc/sys/net/nf_conntrack_max
# 초기값 60
echo 30 >  tcp_fin_timeout
##########################################

Posted by 눈빛마음

2010/03/04 15:22 2010/03/04 15:22
Response
No Trackback , No Comment
RSS :
http://iz.apgu.co.kr/tc/rss/response/528

ubuntu telnet 설치

inetd를 사용하는 방법이 있고 xinetd를 사용하는 방법이 있다.

우선은 굳이 xinetd를 쓸 필요가 없다면 inetd로 하자
[ 이 글을 쓴건 그 이유다. ]
출처 - http://blog.banbeit.com/2009/12/ubuntu-linux-enable-telnet-service.html

sudo apt-get install telnetd
sudo /etc/init.d/openbsd-inetd restart



다음은 xinetd 를 깔아서 구현하는 방식이다.

http://pneuma08.tistory.com/18

service telnet
{
     disable = no
     flags = REUSE
     socket_type = stream
     wait = no
     user = root
     server = /usr/sbin/in.telnetd
     log_on_failure += USERID
}


Posted by 눈빛마음

2010/02/11 17:55 2010/02/11 17:55
Response
No Trackback , No Comment
RSS :
http://iz.apgu.co.kr/tc/rss/response/509

crontab 옵션 지정법

출처 : http://k.daum.net/qna/view.html?qid=3ysRA

2) crontab 파일 형식
----------    ----------  ---------------------------------------------------
  필  드                 의  미           범  위
----------    ----------  ---------------------------------------------------
첫 번째                      분              0-59
두 번째                      시              0-23
세 번째                      일              0-31
네 번째                      월              1-12
다섯 번째                  요일             0-7 (0 또는 7=일요일, 1=월, 2=화, ...)
여섯 번째                명령어             실행할 명령을 한줄로 쓴다.
----------    ----------  ---------------------------------------------------

Posted by 눈빛마음

2010/02/08 14:44 2010/02/08 14:44
, , ,
Response
No Trackback , No Comment
RSS :
http://iz.apgu.co.kr/tc/rss/response/525

빠스타에서 나오는 괜찮은 대사

꼬시는 기술이 뭔데요? 어떻게 해야 잘 꼬실수 있는데요?

니 요리는 짝사랑이다. 니 요리에 사람들이 좋아하고 인정해줄 꺼라는 확신과 자신감이 부족하다.
요리사 스스로 확신이 없는 요리는 살아있는 매력으로 포크와 나이프를 꼬시지 못한다.

짝사랑만 하지 말고 꼬셔봐 재대로.

Posted by 눈빛마음

2010/02/07 13:03 2010/02/07 13:03
,
Response
No Trackback , No Comment
RSS :
http://iz.apgu.co.kr/tc/rss/response/524

ubuntu를 잘 쓰는데 윈도우 사용자와 파일 공유가 안되시나요?
윈도우 사용자가 주려는 파일이 있는데 폴더로 접근이 안되시나요?

즉... smb://192.168.10.2/ 이렇게 접속하여
특정 폴더에 접근하려는데 폴더에 ID / Password 를 넣어도 접근이 안되시나요?

해결책이 있습니다. !!!!

/etc/smb.conf 파일을 수정해주시면 깔끔하게 해결됩니다.

sudo vim /etc/samba/smb.conf 를 열어서
[global] 옵션 밑에 다음을 추가해줍니다.

client lanman auth = yes
lanman auth = yes

이러면 끝나네요.. 와!!! 이거 때문에 고생하고 포기했던 스트레스를 생각하면....

다음은 해결책을 찾았던 영문 사이트 입니다.
http://sidux.com/PNphpBB2-viewtopic-t-14163.html

Posted by 눈빛마음

2010/02/04 11:53 2010/02/04 11:53
, , ,
Response
No Trackback , No Comment
RSS :
http://iz.apgu.co.kr/tc/rss/response/523

오~ 구글 애드 센스를 달고 이런 광고도 나오는 걸 봤는데
요거 괜찮네요.

제 블로그야 리눅스 이야기가 많으니깐.
redhat이 적당하고 생각한 것 같은데
이미지도 이쁘고 좋네요 ^^a

사용자 삽입 이미지

Posted by 눈빛마음

2010/02/02 09:28 2010/02/02 09:28
Response
No Trackback , No Comment
RSS :
http://iz.apgu.co.kr/tc/rss/response/522

무언가 해보기로 마음 먹은 이상
남들이 하는건 한번씩 다 해보려고 합니다.

아무튼 구글 애드 센스 달아서 이건 뭔가 느껴보기로 했습니다.

거북 스러우시더라도 양해 부탁 드릴께요 @_@a
아직 이쁘게 보이게는 못했네요.

거북 스러우시면 방명록에 간단히 좀 써주세요 ^^

Posted by 눈빛마음

2010/02/01 21:34 2010/02/01 21:34
, ,
Response
No Trackback , No Comment
RSS :
http://iz.apgu.co.kr/tc/rss/response/521

« Previous : 1 : 2 : 3 : 4 : 5 : ... 36 : Next »

블로그 이미지

눈빛마음의 사색공간

- 눈빛마음

Archives

Calendar

«   2010/03   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Site Stats

Total hits:
278927
Today:
98
Yesterday:
267