EEPROM 과 NVRAM 의 차이

작성자 : 유창훈(dbckdgns0515@hotmail.com)

 

먼저 EEPROM과 NVRAM의 구조를 그림으로 살펴보도록 하자


 

솔라리스의 부팅 프로세스 순서는 다음과 같다.

1. PROM

.1 POST

.2 BOOT-device 동작

.3 BOOT block LOAD

2. Boot Program usfboot = kernel 의 시작 함수 호출

3. Kernel초기화( 모듈로드)

4. init process동작

 

여기서 1. PROM 과정을 수행하는 도중 PROM에서 NVRAM으로 어떤 정보가 넘어가는지 살펴보도록 하자.

 

전원을 켜고 POST 과정을 수행한다.

이후 부팅과정에 필요한 하드웨어적인 셋팅값들을 NVRAM안에 EEPROM으로 던져준다.

(POST코드가 EEPROM으로 넘어가는지 여부와 Device driver코드가 어떤식으로 적용되는지궁금하다. 아시는분은 메일로답변부탁바랍니다.)

 

NVRAM은 x86/64 머신의 CMOS와 같다고 생각하면된다.

NVRAM의 구성은 위와 같고 Time of day clock 값과 NIC, HOST ID정보는 하드웨어적으로 초기값이 저장되어 공장에서 나온값이다. 이를 사용자가 setenv 과 같은 명령어로 바꾸게 되면 EEPROM에 변경된 값이 저장되어 있다.

가끔 NVRAM의 리튬 베터리가 방전되면 삑삑거리며 에러를 발생시키는걸 볼 수 있는데, 이때 EEPROM의 안에 값들은 NVRAM이 가지고있는 공장초기값들로 변경된걸 볼 수있다.

추가) HOST ID는 NVRAM칩에 내장된 하드웨어 고유의 식별값으로써, 라이센스 방식의 소프트웨어 패키지에서 HOST ID를 기준으로 라이센스를 발급한다.


AND



 
시나리오
솔라리스 두개를 같은 네트워크 대역으로 두고 솔라리스 둘다의 default router address는 래드헷의 가상 네트워크 주소를 향하게 한다
신호를 받은 래드헷의 가상 랜 카드는 실제랜카드로 인터넷에 엑세스 하게된다.
결과적으로 솔라리스에서도 인터넷 가능하도록해야한다
이런식으로 sol 을 계속적으로 추가할 수 있음.

셋팅값

Sol 1
ip 100.100.23.10
default 100.100.23.1 
 
Sol 2
ip 100.100.23.20
default 100.100.23.1 

RedHat eth0
ip 200.200.200.94
default 200.200.200.1
 
RedHat eth0:1
ip 100.100.23.1
default 200.200.200.1
 



레드햇 명령어

# netconfig -d eth0 
eth0 물리랜 설정
# netconfig -d eth0:1 
가상랜설정

# etc/rc.d/init.d/network restart
# echo "1" > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -j MASQUERADE
# iptables -t nat -F   ////초기화    윗줄을 두번이상했을때
 
1.각각 솔라리스와 레드헷 ping확인
2. 인터넷이 되기 위해선 추가적으로 해야할 것이 있다
솔라리스에서 
# ifconfig [interfacename] inet [ip address] netmask [netmask] up
/etc/hosts   수정  
/etc/defaultrouter   수정
/etc/resolv.conf 
;;; 실제 dns주소
 
/etc/netmasks 수정

*** 이렇게 해서 인터넷이 되야 정상인데 안된다.ㅠ
 




하드디스크 /var 공간이 다 찾을때 새로운 하드를 추가하여 고대로 백업하는거 === 해결과정

/dev/dsk/c0d0s3이    /var 에 마운트 되어있을때 
다운로드나 압축풀때 메일 프린트 에서 사용하는 디렉토리가    /var

새로운 하드 추가후 
#devfsadm
#format 으로 장치 네임확인 및 label로 저장후 나오기 
#newfs 로 장치에 파일시스템 생성
새로운 디렉토리 생성후 방금 생성한 파일시스템 마운트
  
# tar cvf - . |  (cd /migration ; tar xvf - )
혹은
# ufsdump 0f /var | (cd /migration ; ufsrestore -rf - )
띄어쓰기 조심
 
용량확인 
# du -sh /var
# du -sh /migration

부팅시 접속가능하도록 확
# vi /et/vfstab



시스템내에 계정 정보 확인

# logins
옵션
-p ; 패스워드가 없는 사용자 알려줌
-l : id 명령어와 같음

/var/am/loginlog      존재유무 확인 없으면 만들기
# touch /var/adm/loginlog
# chmod 600 loginlog
# chown root:sys loginlog

# vi /etc/default/login
내용중    RETRIES=5                 ;  5회이상 틀리면 로그 
; 원격에서 접속시 5번이상 암호 틀리면 loginlog에 저장
근데 한번만 틀려도 저장된다.....????





원격에서 root접속 막기
/etc/default/login
내용중 CONSOLE=/dev/console    주석처리하면 root 접근가능

SU관련
관련파일
/etc/default/su
CONSOLE=/dev/console 부분이 주석처리 되어있음
이것을 제거하게 되면 /var/adm/sulog에 su 를 사용한 f정보를 남기게된다.

 
AND

최종 수정일  :  2001년 7월 12일
글쓴이 :  윤 일 (admin@rootman.org)

HOW-TO Configuration zone file


zone 파일은 네임서버 설정시 가장 중요한 도메인 데이터 베이스 파일이고 네임서버 가동시에  zone 파일을 읽어 들여서 네임서버 서비스가 가동된다. zone 파일은 도메인을 IP 주소로 변환해 주는 역할을 한다. 

아래는 루트맨의 zone 파일을 설정한 화면이다. 

 

############# /var/named/fedora.zone 파일 설정 #####################

 

############# /var/named/fedora.zone 파일 설정 #####################

 

1. zone파일 작성시 주의 사항(필독)
@(origin)의 역활
@는 named.conf에서 zone "rootman.co.kr" 로 지정해준 rootman.co.kr. 을 의미한다.  

zone 파일 설정시 루트 도메인 ( . ) 의 중요성.
흔히 우리가 사용하는  도메인 주소는 aaa.com ,  bbb.co.kr 과 같이 끝에 루트도메인( . )을 사용하지 않는다.
하지만 aaa.com 과 bbb.com 의 정확한 도메인 주소는 aaa.com.  ,  bbb.co.kr. 과 같이 표기할 수 있다.
루트 도메인( . )은 최상위 도메인을 의미하는데 즉 .com  .net  .org 등의 상위 도메인이다. 
도메인을 이용해서 특정 호스트로 접속할 때 특별히 루트 도메인( . )까지 표기 하지 않아도 접속할 수 있다. 
하지만 네임서버 설정시 zone파일을 작성할 때는 꼭 최상위 도메인을 붙인 완전한 도메인 주소를 사용해야 된다.
예들 들어  ns1.rootman.co.kr 이라는 주소를 표기 할 때는 꼭 제일 끝에 루트 도메인( . )을 붙여 줘야 된다.
만약 루트 도메인( . )을 붙이지 않으면 그 도메인을 완전한 도메인으로 인식하지 않기 때문에 그 도메인 두에 @에 해당하는 도메인을 덧 붙여주게 된다. 즉 루트 도메인으로 마무리 되지 않은 도메인은 @(origin)의 호스트로 인식하는 것이다. 

ns1.rootman.co.kr          ->     ns1.rootman.co.kr.rootman.co.kr

위와 같이 "ns1.rootman.co.kr "  은  "ns1.rootman.co.kr.rootman.co.kr"로 작성한 것과 같은 영향을 미친다.
뒤에 추가된 rootman.co.kr은 @ 에 해당하는 도메인이다.
이런 이유 때문에 linux.rootman.co.kr  이라는 서브 도메인을 zone 파일에서 설정할 때 "linux" 만 적어도
"linux.rootman.co.kr." 을 적은 것과 같은 결과를 얻게 된다.
 

$TTL 43200
bind 9 의 zone파일 설정시 주의 해야 될 것은 꼭 zone파일의 첫줄에 TTL 값을 설정해야 된다는 것이다.
bind 9 이전 버젼에서는 TTL 값을 지정하지 않으면 네임서버 가동시에 default값으로 자동 설정 되었는데 bind 9에서는
꼭 zone파일의 첫줄에 꼭 설정해야 된다. 
TTL은 다른 네임서버를 제어 하는 부분인데 특정 네임 서버가 rootman.co.kr의 네임 서버에 www.rootman.co.kr을 질의하고 그 정보를 가져 간 후 그 정보를 보유하고 있을 시간을 지정해 주는 것이다.
한가지 예로 어떤 사용자가 한국 통신의 DNS(168.126.63.1)를 이용해서 rootman.co.kr을 접속할 경우 한국 통신의 DNS는 rootman.co.kr의 네임 서버에 rootman.co.kr의 IP를 물어 보고 사용자에게 정보를 준 후 그 정보를 자신도 보관한다.
rootman.co.kr의 정보를 가지고 있는 한국 통신 DNS는 다음 부터 rootman.co.kr에 대해 사용자가 물어 보면 그 때부터는 보관된 정보를 이용해서 사용자에게 알려주는 것이다. 바로 이 TTL값이 한국  통신 DNS가 한번 퍼 간 정보를 얼마 동안 보관할 것인가를 결정한다.

자주 올라오는 질문 중에 네임 서버의 zone파일을 수정했는데 계속 전에 설정했던 값으로 적용된다고 질문을 하시는 분이 많은데 바로 그 이유도 클라이언트에서 이용하는 DNS가 아직 수정 전에 설정했던 값을 보관 하고 있어서 새로운 정보를 해당 네임 서버에서 퍼올 때 까지 이전의 설정값을 사용자에게 알려 주기 때문이다.

자주 네임 서버 수정을 하는 시스템에서는 이 값을 줄여서 사용하면 되는데 너무 작은 값을 설정하면 너무 자주 네임서버에 
질의 해 오기 때문에 네임 서버에 과부하가 걸릴 수 있다. 


2 . zone 파일 설정 형식
host_name      [TTL]          class           record_type             data      
--->>  zone 파일의 모든 행은 위의 형식을 따른다.

host_name 
설정하고 싶은 호스트 네임을 지정해 주면 된다. 꼭 호스트 네임 설정시 루트 도메인( . )에 대해 주의를 하세요.
host_name이 
생략된 행은 바로 윗 행의 host_name 설정을 적용 받는다.

TTL 
zone파일의 첫행에 default값을 지정했기 때문에 생략 가능한다. ($TTL 43200)
루트맨의 zone 파일 설정에는 모두 생략되어 있다.

class
IN은 internet 클래스를 가리키는데 저도 IN 이외에 다른것을 설정해서 사용한 적이 없습니다.

record_type

레코드 유형

역활

SOA

zone 파일의 시작을 알리고 전체 영역에 영향을 미치는 파라미터를 정의한다.

NS

네임서버를 지정한다.

A

호스트 이름을 IP 주소로 매핑할 때 사용한다. 즉 A 레코드의 data는 IP 주소를 설정해야 된다.

PTM

IP 주소를 호스트 이름으로 매핑할 때 사용한다. PTR 레코드는 reverse zone파일 설정에 사용된다.

MX

메일 포워딩 개념으로 메일을 MX 레코드로 지정한 호스트로 포워딩한다.

CNAME

호스트의 alias(엘리어스)를 정의한다.

HINFO

호스트 정보를 표시하는 레코드


data
각 레코드 타입에 해당하는 데이타를 설정하면 된다.

3 .  각 레코드 별 data 설정
::SOA 레코드의 data 설정
모든 zone파일은 SOA 레코드로 zone파일의 시작을 알린다. 
꼭 다음과 같은 형식을 지켜야 된다.

@               IN         SOA              ns1.rootman.co.kr.      yunil.rootman.co.kr.  (
                                            20010504            ; serial
                                            10800               ; refresh
                                            3600                ; retry
                                            3600000             ; expire
                                            43200  )            ; mininum


SOA 레코드의 data 부분은 여러개의 요소로 구성된다. 각 data 부분의 설명은 다음과 같다.

ns1.rootman.co.kr.    
1차 네임 서버를 정의하고 있다.

yunil.rootman.co.kr.  
관리자 메일 주소를 정의하고 있다. @는 zone파일에서 특별한 의미를 갖고 있기 때문에 yunil@rootman.co.kr. 을 
yunil.rootman.co.kr. 로 표기 해야 된다.

주의 : bind 9 (bind 8.2.3 이후) 부터는 SOA 레코드의  2차 네임 서버와 관련된 data 설정을 시작하는  여는 괄호 " ( " 는 
꼭 SOA 레코드의 첫행의 마지막에 위치 해야 된다. 다른 곳에 위치 할 겨우 bind 9에서 error을 발생시킬 수 있다.

20010504               ; serial
zone 파일의 버젼을 의미한다. 보통 zone파일을 수정하거나 생성한 날을 숫자로 설정한다.
2차 네임  서버는 정기적으로 1차 네임 서버의 이 값을 확인하고 2차 네임 서버의 사본을 나타내는 일련 번호보다 크면
1차 네임 서버로 부터 zone파일을 전송해서 2차 네임 서버 정보를 갱신한다.
즉 1차 네임 서버의 정보가 갱신 되었는지를 2차 네임 서버는 이 값을 통해서 확인한다.

10800                  ; refresh
2차 네임 서버가 1차 네임 서버의 갱신 내용을 확인하기 위해 주기적으로 체크하는 시간을 초(s)로 설정한다.

3600                   ; retry
2차 네임 서버가 refresh값에 의해 1차 네임 서버로 접속시도 때 1차 서버의 문제가 접속을 못한 경우 다시 접속 시도할 
시간을 설정한다. (예 : 1차 네임 서버의 정전, 네트웍 과부하 등)

3600000                ; expire
2차 네임 서버가 1차 네임 서버의 정보를 얼마나 오랫동안 신임 할 것인가를 설정한다.
만약 1차 네임 서버가 오랫동안 다운 된다거나 시스템 파괴로 인해 2차 네임 서버가 1차 네임 서버에 접속할 수 없을 때
전에 백어 받아온 1차 네임 서버 정보를 이 값이 초과 할때 까지 신임한다.
루트맨의 설정은 1000일(3년)동안 1차 네임 서버가 소식이 없더라도 그 전에 백업 받아온 파일로 2차 네임서버를 운영하라는것이다. 보통 한달 정도를 설정해서 쓴다.
즉 위의 설정값이 초과하면 2차 네임 서버는 자신이 가지고 있는 1차 네임 서버 정보를 파기한다.  
루트맨이 3년으로 설정한 것은 저의 특이한 성격 때문에 설정한 값으로 말도 않되는 값이기 때문에 따라 하는 사람이 없기를 바란다..  저처럼 특이한 성격의 소유자라면 상관 없지만.

43200                  ; mininum
TTL 값 설정 부분이다. TTL 설명을 참고

::NS 레코드의 데이타 설정
NS 레코드는 해당 호스트의 네임서버 호스트를 지정하는 레코드이다. 
루트맨의 네임 서버 호스트는 ns1.rootman.co.kr. 이다.
rootman.co.kr.                 IN                NS                 ns1.rootman.co.kr

::HINFO 레코드의 데이타 설정
HINFO 레코드는 시스템의 정보를 제공하기 위해 사용하느 레코드이다. 

rootman.co.kr.                 IN                HINFO                "Inter Pentium" "RedHat"
HINFO 레코드의 데이터 부분인 문자열은 사용자 마음대로 설정하면 된다.

::A 레코드의 데이터 설정
A 레코드는 host_name의 IP 주소를 지정하는 레코드이다.

linux.rootman.co.kr.           IN                 A                  203.241.205.91
rootman.co.kr의 서브 도메인인 linux.rootman.co.kr의 IP 주소를 203.241.205.91로 지정했다.
A 레코드로 하나의 호스트에 대해서 여러개의 IP 주소를 지정할 수도 있다. 
예를 들어 호스트 linux.rootoman.co.kr 에 대해 zone 파일에서 A 레코드로 203.241.205.91 과 203.241.205.92 로 설정했을 경우 클라이언트에서 linux.rootman.co.kr 로 접근 시도할 때 클라이언트는 IP 주소 203.241.205.91 과 203.241.205.92 를 랜덤으로 접속하게 된다. 즉 사용자가 상황에 따라 203.241.205.91에 접속될 수도 있고 203.241.205.92에 접속될 수도 있다.
이러한 설정은 방문자수가 많은 웹 사이트에서 부하를 줄이기 위해 종종 사용하는 방법이다. 
실예로 www.daum.net은 총 14개의 IP로 랜덤하게 접근하도록 설정되어 있다.

::MX 레코드의 데어터 설정
MX 레코드는 Mail Exchange 설정을 해준다.
host_name에 해당하는 주소로 오는 메일을 다른 호스트로 exchange 한다.
실제로는 이 설정만으로는 Mail Exchange를 완벽하게 할 수 없다. 
실제 메일이 들어오는 서버를 큐잉 서버로 만들어야 되고 MX 레코드에 의해 설정된 메일의 최종 도착지에서는 메일 수신
자를 설정해야 되는데 이에 대한 자세한 설명은 sendmail 강좌중에 독립 메일 서버 만들기를 참고하기를 바란다.
host_name에 해당하는 IP 주소와 Mail Exchange 될 호스트의 IP 주소가 같을 경우 이 설정을 사용하지 않도록 한다.  
가끔 쓸데없이 같은 IP 주소에 mail 호스트를 설정하고 MX 레코드로 지정해 주는 분들이 있는데 이런 설정은 시스템에 
아무런 도움도 주지 못한다.  zone 파일을 최대한 줄일수 있는것이 시스템 리소스를 절약하는 방법이다.

::CNAME 레코드의 데이터 설정
CNAME 레코드는 host_name에 대한 alias 기능을 한다.

linux.rootman.co.kr.              IN                  A                      203.241.205.91
ftp.rootman.co.kr.                IN                  CNAME                  linux.rootman.co.kr.


위의 경우는 linux.rootman.co.kr. 이라는 호스트에 A 레코드를 이용하여 IP 주소 203.241.205.91을 설정하고 ftp.rootman.co.kr은 A 레코드가 아닌 CNAME 레코드로 linux.rootman.co.kr로 alias 설정을 한 것이다.
쉽게 생각하면 ftp.rootman.co.kr을 linux.rootman.co.kr에 링크를 시켰다고 생각하면 된다.
물론 CNAME 레코드 부분을 A 레코드로 바꾸고 IP 주소를 지정해도 똑같은 효과를 줄 수 있다.

AND


/etc/named.conf
option                  은 전역으로 적용
      
 /var/named          는 dns db디렉토리라고한다    .  외우기  여기안에 *.zone 와 *.rev 존재

DNS셋팅시 추가해야할 부분

  key   아무나 업뎃 못하게 원격에서 참고하는값 
 
 Controls에서 keys { }   요기에다가 위에 정의한 key   " xxx "  부분의 xxx을 똑같이 넣어준다.


zone :  도메인을 정의하는 단위     //정방향 조회와 역방향 조회는 한 쌍이다. 로컬안에서                                                            는 쌍으로 존재해야한다. 원격에서 받아오는건 제외하고 

포워드 존     :  정방향조회와 관련

zone "localhost"........     이부분

리버스 존     :  역방향조회와 관련

zone " 0.0.127" ............ 이부분


bind 의 보안정책으로 적용된게 rncd key이다
:  원격에서는 rndc값을 넣어줘야되지만 dns-update를 통해서 dns값을 업데이트 가능

zone " 0.0.0.0.0.0.0.  ................   --> ipv6에 대한부분
zone "."   

type hint;           ---> 다른 zone항목에 없는 값을 요구했을때, hint 이 존을 보게 되는데, file이  named.ca 이다.
** named.ca는 외부로 엑세스할때, dns 정보를 요청하게되는 슈퍼컴퓨터 주소 , 종종없어지긴 하지만 새로운게올라온다.
주기적으로 crontab으로 named.ca를 업뎃해주자 2개월에 한번씩!!

 

/etc/named.conf 에 정의된 zone을 셋팅해주면 zone안에 정의된 file을 참조한다. file은 /var/named/   에 넣어놓는다.



/var/named/localhost
host_name      [TTL]          class           record_type             data      의 형식으로 이루어 져 있음
참고 : dbckdgns0515.tistory.com 블로그에 HOW-TO Configuration zone file


$ ; 동적캐시
처음 @는 변수              /etc/named.conf 안에          zone에 셋팅된    " 도메인 " ---->   zone "localhost"
뒤에 있는 SOA @는 앞에있는 @을 허가하겠다는 뜻  관례상 .


Host_name 이 다음행에 선언되어 있지 않다면 이전 행에 선언된 Host_name이 영향을 주게된다. 



/etc/named.conf
에 다음과 같이 zone을 추가해놓고 
zone "ch.com" IN {
        type maskter;
        file "ch.com.zone";
};http://www.google.co.kr/

zone "200.200.200.in-addr.arpa" IN {
        type master;
        file "ch.com.rev";
};
/var/named/ 로 이동 후  
# cp localhost.zone ch.com.zone
# cp named.local ch.com.rev


# vi ch.com.zone

$TTL    86400
@ IN SOA   ns.ch.com.       root (
                                           42 ; serial (d. adams)
                               3H ; refresh
                                      15M ; retry
                                       1W ; expiry
                                           1D ) ; minimum

          IN NS ns.ch.com.
                IN A 200.200.200.95        ------->> 이것이 ch.com과 ip를 맵핑시켜주는 라인             
                cafe IN A 200.200.200.96
      (IN A 200.200.200.95)        ------->> 만약 윗줄이 아닌 여기에 있게된다면,                                                                                              ch.com은 접속 불가능하다. IP가 맵핑이 안되서.


********참고 HOW-TO Configuration zone file         



자동으로 dns 학습하기 설정
/etc/named.conf 수정
zone 추가
zone " jsh.net" IN {
type slave;
file "jsh.net.zone";
masters {"200.200.200.x"};
};

**  jsh.net 서버는 자기자신의 도메인을 확인할 수 있어야한다
그래야 dns학습을 원하는 서버도 jsh.net.zone파일을 생성할 수 있다. 




웹서버 띄우기

svcs -a | grep apache
svcadm restart svc:network/http:apache2
cd /etc/apache2

cp httpd conf-example httpd.conf
echo "test" > /var/apache2/htdocs/index.html
svcadm disable svc:/network/http:apache2
svcadm enable svc: network/http




DNS- NFS- APACH2 이용해서 공유웹서버 

시나리오
; 서버와 클라이언트 모델이 있다. 여기서 양 측은 dns 자동학습을 통해 서로의 웹 브라우저에서 도메인으로 접속이 가능한 상태이어야 하고
서버는 nfs 디렉토리를 셋팅한다. (/var/apache2/htdoc)
클라이언트는 서버의 디렉토리를 자신의 임의의 장소에 마운트하여, index.html을 수정하도록한다.(서버측에서 index.html 및 nfs권한 고려)
이후 서버와 클라이언트에서 웹상으로 수정된 내용을 동시에 볼 수 있으면 된다.













AND

1. 터미널을 열어서

2. #pkginfo | grep <package name>으로 설치유무 확인(Apache, MySQL, php)
    ex) #pkginfo | grep Apache를 검색하면

         system     SUNWaclg                         blablabla...
         system     SUNWapch2d                     blablabla... 
         system     SUNWapch2r                      blablabla...
         system     SUNWapch2u                     blablabla...
         system     SUNWapchd                       blablabla...
         system     SUNWapchr                        blablabla...
         system     SUNWapchu                       blablabla...

        요래 출력이 되면서 현재 아파치 패키지의 이러이러이러한 게 설치되어있음을 표시함.
        MySQL도, php도 마찬가지. 

3. http://www.sunfreeware.com/ < Sun사 freeSW 구할수 있는 사이트.

    찾아가서 화면의 우측메뉴에 있는 Pick/Processor OS -> x86/Solaris 10 을 클릭한다.
     apache-2.2.9-sol10-x86-local *
    libiconv-1.11-sol10-x86-local *
    openssl-0.9.8i-sol10-x86-local *
    curl-7.19.2-sol10-x86-local
    libidn-1.11-sol10-x86-local
    php-5.2.6-sol10-x86-local *
    db-4.2.52.NC-sol10-intel-local
    libintl-3.4.0-sol10-x86-local
    sasl-2.1.21-sol10-x86-local *
    freetype-2.3.1-sol10-x86-local
    libxml2-2.6.31-sol10-x86-local *
    gd-2.0.35-sol10-x86-local
    mysql-5.0.67-sol10-x86-local *
    libgcc-3.4.6-sol10-x86-local *
    openldap-2.4.11-sol10-x86-local *
 까지 다운로드 완료.
* 근데 사실 수업시간에는 체크한 8개만 깔아서 ;ㅁ;;ㅁ;;ㅁ; 다시 나머지도 다운받아서 설치했다능;

4. 다운받은 파일 모두 gunzip filename으로 압축풀기.
    ex) 다운로드 받은 파일이 있는 폴더로 이동
        
        #gunzip -d *.gz 

           -포든 gz파일이 풀리고 패키지 설치파일이 보인다

5. 그리고 각각 #pkgadd -d ./해당폴더명 으로 설치.
    ex) #pkgadd -d ./apache 2.2.9 ...... 

          선택하라는 메세지에서 Enter or all 


6. 그러면설치 완료 :D

8. 다운받은 모든 파일을 설치 완료 후
    #cd /usr/local/apach2/bin/httpd 실행시키고         =================>>>>> 이부분에서 에러가난다.
ld.so.1:httpd: fatal: libexpat.so.1: open failed: No such file or directory.       .///// 에러 메세지!!!!
 
이거 단순 경로상의 문제같은데 /etc/profile열어서 LD_LIBRARY에 libexpat.so.1의 경로인 /usr/sfw/lib 추가해주었는데도 안된다.
패키지로 설치했기 때문에 아예 설치되지 않은 패키지가 있거나, PATH상에서 안잡힌 경우 두가지로 나눠볼 수 있겠는데.... 아직 원인을 모르겠다.

 
 
웹브라우저 실행후  http://localhost/입력해서    It;s works! 뜨면 정상인데 위의 과정에서 에러가 나서 완료 못함.. 

해결후 다시 포스팅하겠음.

AND

hostname : sol-25
NIC name : e1000g0

 1. hostname.e1000g0파일 생성
# echo "inet sol-25" > /etc/hostname.e1000g0 

 2. dhcp.e1000g0 파일 생성
# touch /etc/dhcp.e1000g0 

** 호스트 이름은 로컬에서 셋팅해놓고 dhcp에서 받아오길 원치 않는 상황이라면 
/etc/default/dhcpagent 파일을 수정하면된다

PARAM_REQUEST_LIST=1,3,6,12,15,28,43

PARAM_REQUEST_LIST=1,3,6,15,28,43

3. resolv 파일생성 후 nameserver추가 

#  vi /etc/resolv.conf
nameserver 168.126.63.1
nameserver 8.8.4.4

4. nsswitch 파일수정
# vi /etc/nsswitch.conf
hosts:    file       을  아래와 같이 수정한다. 
hosts:    file dns     

5. dhcp  시작
 
 
AND

Solaris Zone 구성하기
vmware처럼 한대의 물리적 pc안에 여러대의 solaris운영체제를 설치할 수 있도록 지원하는 .

다른 운영체제는 설치 불가능한가???

새로운 랜카드 추가후 

# touch /reconfigure
# devfsadm
# ls /dev/e1000g1 // 확인
# ifconfig e1000g1 plumb

#mkdir -p /zone/wizard01
#chmod 700 /zone/wizard01
#zonecfg -z wizard01

create
set zonepath=/zone/wizard01
set autoboot=false
add net
set physical=e1000g0
set address=200.200.200.91
info
end
verify
add attr
set name=comment
set type=string
set value="wizard01 zone DB Server"
end
veryfy
commit
exit

#zoneadm -z wizard01 install
#zoneadm -z wizard01 resdy
#zoneadm -z wizard01 boot
#zlogin -C wizard01

zone삭제하기

# zoneadm list -iv 
존 글로벌은 vmware프로그램이라 생각하고 wmware에 설치된 solaris를 제거하는것이다
# zoneadm -z wizard01 halt
먼저 solaris를 시동끄고
# zoneadm list -iv 
제대로 시동이 꺼졌으면 installed라고 표시됨
# zoneadm -z wizard01 uninstall
#zonecfg -z wizard01 delete
#zoneadm list -iv
제거되었는지 확인






점프스타트
= 네트워크 설치
윈도우는 1번씨디없어도 가능하다.

설치시 당연히 동일 네트워크에 존재해야함

tftp 
서브디렉토리 확인하지 않고 로그인없이 엑세스가 가능하다    
69번 포트


관련 파일관련( 교재참고 )
/tftpboot           파일은  -->> /etc/inetd.conf    에서 tftp가 주서처리된걸 제거
/etc/ethers는 솔 10에서 소멸
/etc/bootparams 는 솔 10에서 소멸

############
채크사항 및 순서

1. 서버에서 tftp 서비스가 활성화 되어 있어야한다.
svcs -a | grep tftp            >> 꼭 확인
 
2. 이후 서버에서는 dhcp구성하여 접속을 시도하는 client에게 IP를 할당한다
3. dhcp 구성시, server IP와 client mac address를 셋팅하게된다. (헷갈리지 말도록!!!)
4.client입장에서 접속과정 정리
a. tftp 접속가능한 서버찾기
b. 찾았으면 접속, 아니면 대기후 종료
c. tftp연결이 되면 서버에 미리 등록된 client mac address를  접속한 client의 mac address와 비교
d. 맞으면 서버측에 정의된 정책에 따라 ip할당 
e. 통신시작. 


설치 과정은 교재를 참고해서  따라하면 되며 중간중간 서버측에서 셋팅하는 값이 서버를 위한것인지 client를 위한 것인지 판단하여 입력하여야 한다. 

점프스타트 추가!!
명령어 순서
tftp확인
# inetadm | grep tftp 
# vi /etc/inet/inetd.conf     
tftp dgram udp6 wait root.......  이줄 주석 제거
# inetconv
#inetadm | grep ftp 
확인하고

x86점프스타트 설치 서버 구성
# mkdir /export/install
# cd /cdrom/cdrom0/Solaris_10/Tools
# ./setup_install_server /export/install                //솔10dvd 시디넣고
# mkdir /export/config
# vi sysidcfg
필자는
root_password=
network_interface='클라이언트네트웍인터페이스이름'{hostname='클라이언트이름'
....
default_route='디폴트라우터주소'

# vi begin
#!/bin/sh
echo "begin 점프스타트"
# hmoe 755 begin

# vi finish
#!/bin/sh
echo " finish 점프스타트"
# chmod 755 finish

# vi profile
그림추가
# vi rules
hostname clientA begin profile finish
# cd /export/config
# cp /export/install/Solaris_10/Misc/Jumpstart_sample/check .
# ./check

#vi /etc/dfs/dfstab
share -F nfs -o ro,anon=0 /export/install
share -F nfs -o ro,anon=0 /export/config

# /etc/init.d/nfs.server start

# shareall
# share
/etc/dfs/dfstab 의 추가한 내용나오는지 확인
# showmount -e localhost
확인

# cd /export/install/Solaris_10/Tools/
# ./add_install_client -d -e 클라이언트맥주소 \
-s sol10u9:/export/install/ \
-c sol10u9:/export/config/ \
-p sol10u9:/export/config/ i86pc

여기서 약간의 에러가뜨지만 무시하고 
결과적으로 나오는 
Boot server IP : 서버 자신의 IP
Boot file      : 01클라이어트의맥주소
이 두줄을 꼭 확인하고 맞는지 본다

# /usr/sadm/admin/bin/dhcpmgr &

다음부턴 그놈환경에서 그래픽 처리이므로 말로 대신하겠다잘보도록하세요

서버구성선택은 dhcp서버로구성
DHCP 구성데이터를 텍스트 파일로저장
저장경로는 /var/dhcp
이름서비스는 /etc/hosts
임대기간은 1주일
DNS도메인은 kns.kornet.net    168.126.63.1
네트워크 주소는 자기가 속한 네트워크 주소 서브넷마스크도 지정
아까전에 셋팅에서 확인한 Boot server IP와 같은 네트워크대역 점프스타트 추가!!
명령어 순서
tftp확인
# inetadm | grep tftp 
# vi /etc/inet/inetd.conf     
tftp dgram udp6 wait root.......  이줄 주석 제거
# inetconv
#inetadm | grep ftp 
확인하고

x86점프스타트 설치 서버 구성
# mkdir /export/install
# cd /cdrom/cdrom0/Solaris_10/Tools
# ./setup_install_server /export/install                //솔10dvd 시디넣고
# mkdir /export/config
# vi sysidcfg
필자는
root_password=
network_interface='클라이언트네트웍인터페이스이름'{hostname='클라이언트이름'
....
default_route='디폴트라우터주소'

# vi begin
#!/bin/sh
echo "begin 점프스타트"
# hmoe 755 begin

# vi finish
#!/bin/sh
echo " finish 점프스타트"
# chmod 755 finish

# vi profile
그림추가
# vi rules
hostname clientA begin profile finish
# cd /export/config
# cp /export/install/Solaris_10/Misc/Jumpstart_sample/check .
# ./check

#vi /etc/dfs/dfstab
share -F nfs -o ro,anon=0 /export/install
share -F nfs -o ro,anon=0 /export/config

# /etc/init.d/nfs.server start

# shareall
# share
/etc/dfs/dfstab 의 추가한 내용나오는지 확인
# showmount -e localhost
확인

# cd /export/install/Solaris_10/Tools/
# ./add_install_client -d -e 클라이언트맥주소 \
-s sol10u9:/export/install/ \
-c sol10u9:/export/config/ \
-p sol10u9:/export/config/ i86pc

여기서 약간의 에러가뜨지만 무시하고 
결과적으로 나오는 
Boot server IP : 서버 자신의 IP
Boot file      : 01클라이어트의맥주소
이 두줄을 꼭 확인하고 맞는지 본다

# /usr/sadm/admin/bin/dhcpmgr &

다음부턴 그놈환경에서 그래픽 처리이므로 말로 대신하겠다잘보도록하세요

서버구성선택은 dhcp서버로구성
DHCP 구성데이터를 텍스트 파일로저장
저장경로는 /var/dhcp
이름서비스는 /etc/hosts
임대기간은 1주일
DNS도메인은 kns.kornet.net    168.126.63.1
네트워크 주소는 자기가 속한 네트워크 주소 서브넷마스크도 지정
아까전에 셋팅에서 확인한 Boot server IP와 같은 네트워크대역 
네트워크 유형은 LAN, 경로지정은 그냥 놔두고
NIS도메인도 그냥 놔두고
NIS+서버도 그냥 넘어가고 완료누르기
주소마법사를 시작해서 IP주소갯수는 1개( 클라이언트갯수에에 맞춰서 지정)
DHCP서버관리는 자신의 hostname 시작 ip주소는 client에 할당할 IP 시작주소
임대할 IP목록한번봐주고 클라이언트 구성정보 다음으로 넘기고
임대유형 동적 해주고 설정완료
대화상자사라지고 화면에 매크로 탭을 선택--> 메뉴의 "편집"--> 작성 클릭
앞에서 add_install_client 스크립트 실행후 나온 정보를 바탕으로 매크로이름은 "01클라이언트맥주소"
BootSrvA 서버주소(즉 자기자신주소)
BootFile 01클라이언트맥주소
확인후 넘어가기
매크로 만들어졌는지 확인하고 메뉴의 "서비스" 의 "재시작" 눌러주고 종료

# vi /tftpboot/menu.list01클라이언트맥주소
내용중에 중간에
kernel$ /I86PC.Solaris_10-1multiboot kernel/$ISADIR/unix -B
여기서 -install dhcp 이걸 추가해주면된다
kernel$ /I86PC.Solaris_10-1multiboot kernel/$ISADIR/unix -install dhcp -B


서버 켜놓고 클라이언트를 네트워크 부트모드로 부팅하면된다. 
그럼 잘됨.
안되면 연락바람.. 스샷찍어서 멜보내삼.

dbckdgns0515@hotmial.com
네트워크 유형은 LAN, 경로지정은 그냥 놔두고
NIS도메인도 그냥 놔두고
NIS+서버도 그냥 넘어가고 완료누르기
주소마법사를 시작해서 IP주소갯수는 1개( 클라이언트갯수에에 맞춰서 지정)
DHCP서버관리는 자신의 hostname 시작 ip주소는 client에 할당할 IP 시작주소
임대할 IP목록한번봐주고 클라이언트 구성정보 다음으로 넘기고
임대유형 동적 해주고 설정완료
대화상자사라지고 화면에 매크로 탭을 선택--> 메뉴의 "편집"--> 작성 클릭
앞에서 add_install_client 스크립트 실행후 나온 정보를 바탕으로 매크로이름은 "01클라이언트맥주소"
BootSrvA 서버주소(즉 자기자신주소)
BootFile 01클라이언트맥주소
확인후 넘어가기
매크로 만들어졌는지 확인하고 메뉴의 "서비스" 의 "재시작" 눌러주고 종료

# vi /tftpboot/menu.list01클라이언트맥주소
내용중에 중간에
kernel$ /I86PC.Solaris_10-1multiboot kernel/$ISADIR/unix -B
여기서 -install dhcp 이걸 추가해주면된다
kernel$ /I86PC.Solaris_10-1multiboot kernel/$ISADIR/unix -install dhcp -B


서버 켜놓고 클라이언트를 네트워크 부트모드로 부팅하면된다. 
그럼 잘됨.
안되면 연락바람.. 스샷찍어서 멜보내삼.

dbckdgns0515@hotmial.com

 

'OS > Solaris' 카테고리의 다른 글

솔라리스 10 웹서버 구축하기.  (0) 2011.05.09
솔 10 dhcp 클라이언트 셋팅 . 자동 ip 받아오기  (0) 2011.05.09
0504 dump, nfs, acl, RBAC, syslog  (0) 2011.05.05
0503 정리  (0) 2011.05.05
RAID 정리한자료  (0) 2011.05.02
AND

crash and core dump
 
crash dump
cpu및 기타 하드웨어 장애로인한 재부팅시 crash dump file 이생성된다. 


/etc/dumpadm.conf파일에 설정된 값을 기본으로 하여 크래쉬 발생시 저장한다. 

dumpadm.conf에 설정값 말고 새로운 설정을 할때. 명령어

dumpadm   -c all -m 20% -y            
커널에대한 것만 아니라 -c 옵션을 통해 all(전체) 에 대한 것도 저장가능하다.
-m옵션은  하드디스크 공간이 20프로이상은 남아줘야 저장한다는 전제 조건
yes는 세이브 코어라고 하는 프로그램이 파일로 저장하는것(/var/crash/'hostname'
 
core dump 
 
리부팅은 되지 않지만 실행중인 프로세스에서 치명적인 오류가 발생하여 프로세서가 중단되는 경우 생성된다.
 /etc/oreadm.conf 에 설정된 값을 기본으로 하여 파일이 생성된다. 

coreadm 명령어는 사용자 프로파일에 선언한다.
coreadm -p core.%f.%p.%u.$$
옵션은 인터넷 참고
 
 
테스트 방법

# sleep 300 &  
# kill -8 sleepPID
사용자 홈디렉토리에 가서 core파일을 확인해볼수 있다 . 텍스트파일아님



명령어가 커널에 보내는 시그널 확인해보기

# $$    // 현재 터미널의 PID값을 확인하는 명령어
# truss -p PID   //
 커널이 보내는 시그널 정보를 확인할 수 있다.





NFS

용법
-----서버구성--
# mkdir /share
# touch /share/file1 /share/file2
#vi /etc/dfs/dfstab
share -F nfs -o ro -d "share directory" /share   추가
# /etc/init.d/nfs.server start
# svcs -a | grep nfs                  ///////// 확인
# share
# dfshares
 
# more /etc/dfs/sharetab            //확인

---클라이언트
# dfshares NfsServerIP 
확인했으면
# mount -F nfs NfsServerIP:/[share디렉토리]     // share디렉토리는 dfshares로 확인했을때 디렉토리이름
# vi /etc/vfsatab에서   //부팅시 자동으로 마운트하기위해 설정
NfsServerIP:/share디렉토리 - 마운트포인트 nfs yes ro.bg.soft

** 장애처리***
# share 명령어로 제대로 올라오지 않았을 때 확인해 보는 방법
# svcs -a | grep nfs           //  나온결과를 보고 해당 줄의 앞에 offline가 뜨면
# svcs -d [svc:/network/~~~]    //[  ]는 offline라고 표시되어있는 부분의 내용
세부적으로 올라오는 서비스들을 볼 수 있는데 동작하지 않는 값들을 enable로 바꾸어준다. 
offline이 보이면 위의 명령어를 통해 disable되어있는 세부 사항을 확인해 보고 enable로 바꾸어야 한다. 세부사항이 다 online되어야 최초에 확인했던 값들도 online이 된다.
# /etc/init.d/nfs.server start 
그리고 다시 스타트해보면올라온다.

svcs -l svc;/network/~~~~ 하면 세부정보가올라온다.





NFS를 시용한 솔라리스 웹서버 구축
=======>>>>> 하다말았는데 인터넷 보고 하는게 빠를듯.


cd /var/apache/htdocs/          ==>요기   
index.html추가

svcs - a |grep http
disable되어있으면 svcadm으로 활성화하고 


svc로 할 수도 있지만 수동으로 하는 방법은 아래와같다
/etc/apache2/httpd-std.conf 파일을 /etc/apache2/httpd.conf 파일로 복사해놓는다.
/usr/apache2/bin/apachectl restart 

현재 되지 않음
문제 해결 방법
svcs -xv와 tail -f /var/adm/messages 로 확인하는데 .. 예전엔 이랬음 ㅋ




ACL 
특정 파일이나 디렉토리에 속에서만 다른 권한을 주는 것이다. 
명령어
setfacl
getfacl  ;;보는거

디렉토리만들고
setfacl -m d:user::rwx, d:group::r-x:other:r-x, d:user:user:test1:rwx,d:mask:rwx 디렉토리
파일생성후
su - test1
해당디렉토리가서 파일 수정 가능





----------------------------------
test1이 test2 와 만 데이터쓰고 읽기를 원할 때 주고 ACL을 사용한다.
setfacl -s u::rw-, g::---, o:---,m:rw-,u:test2:rw- test file           ;;;; -s 옵션은 수정할때 기존것을...
getfacl -a test_file

su - test2
cd /export/home/test1
ls -l test_file   ;;other에 권한 없는것을 확인
cat test_file    ;;하지만 보이는걸 확인





Role Based Access Control
RBAC

sudo 와같이특정 역할을 할때만 권한을 부여 
root의 비번을 알 필요없이 role계정의 비번만 알아서 해 볼 수 있다. 
실제로는 인증이 들어가는것이 좋다. 



/etc/security/prof_attr
여기에 임의의 명칭을 추가시켜주고 이렇게 
mymy:::
/etc/security/exec_attr   
여기에 마지막에 mymy:suser:cmd:::/usr/bin/passwd:uid=0    이렇게 실행될 루트권한의 명령어를 적어준다.

이후 일반 유저계정 생성하고 암호지정하고
role계정생성한다
roleadd -m -d /홈디렉토리 로긴이름
role계정 암호생성

일반 유저계정에 Role를 적용한다
usermod -R role계정로긴이름 유저계정로긴이름

Role에 Profile적용한다
rolemod -P mymy role계정로긴이름

하지만 여기에는 인증과정이 없다. 
실제로는 인증과정을 거치게되어 /etc/user_attr에 인증부분이 추가되어진다.  실무에선 꼭 인증을 해야함..



 이거 둘다 확인해서 시스템 명령어를 확인하고 
거기 안에 있는 profiles=SystemShutdown 을 보고 SystemShutdown 이 항목을 확인해야한다. 
그래서 없으면 임의로 추가해서 테스트 해보자



다 되면
/etc/user_attr 정보를 확인해야한다.

하지만,,,,실습에서는..인증을  꼭 해서 하자





syslog

/etc/syslog.conf

*.alert * 콘솔
root 사용자이름
/var 파일
@ 원격
*.debug= 딱 요것만
*.debug; debug이상

*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages
==>> 모든개체에 대해서 남기는데 커널은 디버그이상, 데몬은 노티스이상 메일은 cirt이상만 남겨라

*.info;mail.nonelcron.none   /var/adm/test
=====>> 해석???


syslog는 /var/adm/messages 에 저장된다
TEST
inetadm -p |grep trace
inetadm -M tcp_trace=TRUE
ftp접속해서 확인  종료후 로그확인해서 정보있나보자




AND

0503 정리

OS/Solaris 2011. 5. 5. 22:34
raid구성을 위해서 metadb를 생성하고 metadb를 디스크에 저장한다. 
metadb -a -f /dev/rdsk/~~~
metadb 옵션 메타데이터가저장될장소 
원래는 -c 옵션을 사용하여 복제본의 갯수 까지 지정해야 하는데, 실습에서는 복제본 없이 하나만 생성하기로한다.


확인
metadb
metastat 명령어로 보여지는 정보. 즉, 생성된 볼륨의 정보가 저장되는 공간이다.
metadb명령어로 보여지는 목록은 metadb가 저장되는 장소이다.


metastat
새로 구성하여 생성된 볼륨의 정보를 보여준다.

볼륨구성후 파일시스템을 생성후 마운트 하는 것들

raid0 콘케트네이트
기존 볼륨 1에과 새로운 2를 그냥 수직적으로 갖다 붙여서  볼륨3 을 생성한다
이는 데이터가 저장될 때, 추가된 볼륨 2에 복제나 분산저장을 하지 않고 단순히 새로운 저장공간 2를 갖다 붙이는 것으로 생각하면된다. 
 
raid0 스트라이프
* 이전 게시물 참고

이중화 구성시 

metainit d0 -m d1 d2
는 다음과 같다
metainit d0 -m d1     
metattach d0 d2


베리타스 소프트웨어 . 대용량 저장장치를 다루는 솔라리스 프로그램


raid 5 
 -r 추가하기
raid5 는 최소 3개의 저장소를 필요로 하므로 metainit -r 저장소1 저장소2 저장소3으로 하면된다.





hotspare   
준비하고 있는 ( 즉시 대응할 수 있는 ) 보조장치 , 사용하는 장치의 수명이 다 했을시 자동으로 연결
;  미러링에서 사용되기 때문에 미러링되는 공간 보다 커야 미러링시 대체해서 사용가능하다.

metadb에 추가되어 있지 않은 장치를 hotspare에 사용한다.



OS 미러링
똑같은 용량 , 똑같은 실린더 사이즈. 똑같은 파티션으로 준비하고
OS설치부터 구성을 권장한다. 

metadb 에서 -f옵션은 마운트되어 있는 볼륨이라도 강제로 db에 등록한다.
하지만 '/' 는 안되는거 같다.

AND

RAID 정리한자료

OS/Solaris 2011. 5. 2. 23:41
내용은 기존 인터넷에서 찾은 자료에 더하고 빼서 제가 이해하기 쉽도록 정리한 자료입니다. 
출처는 네이버 여러 곳 입니다.


 
 RAID

유창훈

** 각 레벨별 장단점과 특징 위주로 작성하였습니다.


1. RAID?

    Redundant Array of Independent Disks 또는 Redundant Array of Inexpensive Disks 로서 서버에서 주로 사용되며, 여러대의 하드디스크를 운영체제에게 논리적으로 하나의 하드디스크로 인식시킨다. 또한 동일 한 데이터를 다른 위치에 중복 저장함으로써 고장에 대비하는 능력이 있다.

    하드웨어적으로 컨트롤러 카드를 장착해서 구성하는 것이 적극 추천하는 바이며 , 백업용이 아닌 고장에 대비하는 용도로만 인식하고 백업을 생활화 해야 할 것이다.

2. RAID 사용 기술

    Striping (스트라이핑)
    성능향샹을 위해 단일 파일과 같은 논리적으로 연속된 데이터 세그먼트들이, 논리적으로 하나의 디스크로 인식된(물리적으로 여러개의 하드 디스크 드라이브로 묶음) 저장장치에 라운드 로빈 방식으로 나뉘어 기록될 수 있게하는 기술. 쉽게 말해 데이터 전체를 하나의 큰 덩어리라고 보고 쪼개기...

    , 하드디스크의 용량은 작은 것을 기준으로 한다. , 300G500G를 스트라이핑 하게되면 600G가 되는 것이다.

    Mirroring (
    미러링)
    -
    데이터 기록시 하나의 Disk를 또다른 Disk에 동시에 기록하는 기술로, 하나의 diskFault 되어도 미러된 diskdata를 안전하게 관리할 수 있다. 똑같은 내용의 복사본을 만드는 것이다.

    Parity (패리티)
    Data
    의 오류검출 확인에 사용되는 기술

     

3. RAID 구성 종류

1) RAID0

    스트라이핑 방식이라고 하기도 한다. 하드디스크의 데이터를 하나의 큰 파일이라고 보고 특정한 크기로 데이터를 쪼갠다. 이렇게 쪼개진 데이터를 분산 저장한다

    <아래 그림을 클릭하세요>

    장점 : 하드디스크의 속도 향상에 도움이 된다. 따라서 입, 출력 속도가 높아야 하는 웹서버나 스트리밍 서버, 그래픽 환경에 주로 사용된다

    단점 : 쪼개진 부분이 2개이상의 장치에 분산저장이 되므로 하나의 장치라도 고장이 나게 되면 전체 데이터는 손상되게 되어 데이터가 중요하게 여겨지는 대부분의 서버에서는 이용하지 않는 환경이다.

    특징 : 빠른 입출력 속도가 요구되나 장애 복구 능력은 필요없는 경우에 적합하다.



2) RAID1

다른말로 미러링이라고 한다. 데이터 저장시 똑같은 복사본을 다른 디스크에 저장한다. 똑같은 내용의 저장소가 하나더 생긴다고 생각하자.

<아래 그림을 클릭하세요> 




장점 : 안정성, RAID 비구성시보다 읽기 시간은 향상된다.

단점 : 500G 짜리 하드디스크 2를 묶어도 복사본이 항상 같이 저장되야 되기 때문에 실제 데이터 저장에 이용되는 공간은 500G뿐이다.


3) RAID0+1

레이드01을 함께 적용한다. 스트라이프를 사용해 만들어진 디스크를 다시 미러링한다.

일단 스트라이핑을 먼저하고(쪼개서 분산저장한 상태에서) 미러링을 한다(고대로 똑같은복사본을 만든다)

<아래 그림을 클릭하세요>



단점 : 전체 디스크 용량의 반밖에 사용못함, 비용이 많이듬


 
4) RAID1+0
 
레이드01을 함께 적용한다. RAID0+1에서 순서만 반대인 경우이다.
 
미러링을 통해 똑같이 복사된 복사본을 만들고 각각 스트라이핑을 한다.
 
단점 : 전체 디스크 용량의 반밖에 사용못함, 비용이 많이듬

** RAID0+1, 1+0은 하드디스크 갯수에 따라서 저장되는 방식이 달라진다. 따라서 하드디스크 갯수에따른 데이터의 저장구성을 그림으로 그릴줄 알아야 한다.


5) RAID2

디스크들간에 스트라이프를 사용하며, 추가적으로 hamming 오류정정코드만 저장되는 디스크를 추가로 사용한다.
*
모든 현행 드라이브들이 ECC를 탑재하고 있기 때문에 거의 사용되지 않는다.

사용자 삽입 이미지


6) RAID3

이 형식은 RAID0 과 똑같은 스트라이프를 사용하며 RAID0의 단점인 하나만 고장나도 전체가 복구 안되는 것을 보안하기 위해, 패리티 정보만을 저장하는 백업용 디스크를 한 개를 추가적으로 쓴다. 따라서 최소 드라이브 개수는 3개이며 ,입출력 작업이 동시에 모든 드라이브에 대해 이루어지므로, RAID-3은 입출력을 겹치게 할 수 없다. 이런 이유로 RAID-3는 대형 레코드가 많이 사용되는 업무에서 단일 사용자시스템에 적합하다.


장점 : RAID0보다 안정적이다

단점 : 패러티 디스크로의 병목현상과 패러티 디스크가 장애가 생기면 역시 복구 불가능

특징 : 패러티용 디스크와의 동기화, 저장을 Byte단위로 한다.


 
7) RAID4
 
RAID3과 똑같으나 저장단위가 Block이라서 한번의 작업으로 RAID3보다 많은 양의 데이터를 읽을 수 있다.

8) RAID5

RAID 3, 4의 단점을 보완한 방식으로 스프라이팅을 이용한 방식으로 데이터저장하고 패러티저장디스크 대신에 모든 하드디스크에 패러티 정보를 분산 저장한다. 가장많이 쓰인다


<아래 그림을 클릭하세요>



장점 : RAID3,4에서의 패러티디스크에 생기는 병목현상을 줄인다.

단점 : 사방에 흩어져 있는 패러티 정보를 갱신 할때의 성능저하


9) RAID6

이 형식은 RAID-5와 비슷하지만, 다른 드라이브들 간에 분포되어 있는 2차 패리티 구성을 포함한다.



<아래 그림을 클릭하세요>

장점 : 높은 안정성

단점 : 기술 구현이 복잡해서 잘 사용하지 않는다.


10) RAID7

이 형식은 컨트롤러로서 내장되어 있는 실시간 운영체계를 사용하며, 속도가 빠른 버스를 통한 캐시, 독자적인 컴퓨터의 여러 가지 특성들을 포함하고 있다.


사용자 삽입 이미지


11) RAID-10

이 형식은 각 스트라이프는 RAID-1 드라이브 어레이인 스트라이프 어레이를 제공한다. 이 방식은 RAID-1보다 높은 성능을 제공하지만, 값이 더 비싸다.


<아래 그림을 클릭하세요>




12) RAID-53

이 형식은 각 스트라이프는 RAID-3 디스크 에레이인 스트라이프 어레이를 제공한다. 이 방식은 RAID-3보다 높은 성능을 제공하지만, 값이 더 비싸다.

사용자 삽입 이미지




사진 출처: 네이버까페 login

관련자료 링크 겁니다. 제대로 보고싶으신분은 꼭 참고하세요
http://cafe.naver.com/linuxjjangclub/3831
 

AND