'리눅스마스터'에 해당되는 글 2건

  1. 2015.08.16 | 리눅스마스터1급(2.2 리눅스의 구조)
  2. 2015.08.16 | 리눅스마스터1급(2.1 리눅스와 하드웨어)

교재: "국가공인" 리눅스마스터 1급 ((주)수퍼유저, 저자 박성수, 강기봉, 정우영)


국가공인 리눅스마스터 1급

저자
박성수강기봉 지음
출판사
수퍼유저코리아 | 2014-01-13 출간
카테고리
컴퓨터/IT
책소개
국가공인 리눅스마스터 1급 교재이다. 리눅스마스터 1급 1차, ...
가격비교

 



Part1. 리눅스 실무의 이해

Chapter 02. 리눅스 시스템의 이해

2.2 리눅스의 구조

2.2.1 부트 매니저

2.2.2 디렉토리 구조 및 디렉토리별 기능

2.2.3 부팅과 셧다운

2.2.4 파일시스템 이해



방대한 책범위와 시험기간이 얼마 안남은 관계로 전략변경

- 빠른 시일내에 책 훑기

- 문제를 풀면서 내용 정리


- 업데이트 할 목록

-> 부팅 과정(GRUB포함), 파일시스템, ext내용 정리 및 특징 

- 업데이트: 15-08-18





- 리눅스 시스템 전체 부팅과정(리눅스 종류에 따라 파일 위치는 다를 수 있음)

예)최신 ubuntu에서의 inittab의 부재


1단계: 전원스위치 ON

- 시스템 전원공급

- 메인보드의 ROM-BIOS에 있는 BIOS프로그램 자동 실행


2단계: BIOS프로그램들의 실행 내용들

- 자체진단기능(POST, Power On Self Test): CMOS검사, CPU, MEMORY, 그래픽카드, 키보드, 마우스등 각종 장치들의 이상유무 를 검사하고 이들 장치(하드웨어들)을 초기화

- 부팅매체검색과 부트로더 실행: POST과정이 이상없이 진행완료되면 검색된 부팅매체(하드디스크, CD-ROM, 플로피 디스크등)에서 부트로더(예:GRUB, LILO)를 불러들임, 부트로더(GRUB)가 메모리에 적재되면 BIOS는 종료되고, 시스템제어권은 부트로더 (GRUB)이 갖게됨


3단계: 부트로더(GRUB)의 실행

-  GRUB은 실행과 함께 /boot/grub/grub.conf파일을 읽어서 어떤 부팅메뉴(커널)로 부 팅을 할 것인가를 결정하게 됨

-  GRUB은 커널(kernel)이미지를 불러들임. 그리고 시스템 제어권을 커널에게 넘김


4단계: 커널의 로딩

- 커널은 swapper프로세스(PID 0번)를 호출

- swapper는 커널이 사용할 각 장치드라이브들을 초기화하고 init프로세스(PID 1번)를 실행

- init프로세스가 실행되면서 /etc/inittab파일을 읽어들여서 그 내용들을 차례대로 실행


5단계: init프로세스의 실행

각 부팅 레벨로 실행될 경우 /etc/rc.d/rcx.d의 파일들이 순차대로 실행됨(최근 우분투의 경우 etc/rcx.d)

- 시스템 부팅 레벨

0- halt

1- 단일 유저 모드

2- 멀티유저, 단 네트워크를 지원하지 않음

3- 멀티유저모드(default)

4- 사용되지 않음

5- X window 모드

6- reboot    //6으로 하면 부팅될 때 무한 리부팅이 되려나..


- 파일시스템

http://egaoneko.github.io/os/2015/05/24/linux-starter-guide-4.html 참고

- 파일시스템(file system)은 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체계를 지칭


- 확장 파일 시스템(extended file system)

1. ext: 리눅스 초기에 사용되던 파일 시스템, 호환성 없음

2. ext2: ext3이 개발되기 이전 많이 사용되었음. 하지만 fsck(file system checker)하는 데 있어 오랜 시간 소요


[EXT2 아이노드]


[EXT2 슈퍼블록]


3. ext3: ext2의 단점을 보완하기 위해 저널링(Journaling)을 지원하도록 확장된 파일 시스템.


[자세히]


[저널링 기술]


4. ext4: ext3 파일시스템을 확장한 파일시스템으로 Extent라는 기능을 제공하여, 파일에 디스크 할당 시 물리적으로 연속적인 블록을 할당할 수 있도록 하여, 파일 접근 속도 향상 및 단편화5를 줄이도록 설계된 파일시스템


- 파일시스템 구조

http://egaoneko.github.io/os/2015/05/24/linux-starter-guide-4.html 만큼 잘 쓸 자신이 없어서 해당 링크가 더 이해하는 데 도움이 될 듯...


- 리눅스 주요 파일시스템 디렉토리 설명


- 리눅스 파일 시스템은 크게 네 가지로 구분



부트 블록 

(Boot Block)

슈퍼 블록 

(Super Block)

아이노드 블록

(Inode Block) 

데이터 블록 

(Data Block)


1. 부트 블록: 운영체제를 부팅시키기 위한 코드 저장됨

2. 슈퍼 블록: 파일시스템과 관련된 정보 저장

3. 아이노드 블록: 파일에 대한 정보를 저장하고, 모든 파일은 반드시 아이노드 블록을 하나 가지고 있음

4. 데이터 블록: 파일이 보관해야 하는 데이터를 저장

*아이노드 블록에는 파일 유형, 접근권한, 하드링크 수, 소유주 이름, 그룹 이름, 파일 크기, 생성 날짜가 저장 되어 있고, 파일 이름은 디렉토리 파일의 데이터 블록에 저장됨!



- 리눅스 파일 시스템 종류

- 리눅스는 다양한 파일 시스템을 지원

(ext2, ext3, minix, xiats, umsdos, hpfs OS/2, isofs, CD-ROM, msdos, nfs, sysv 등)


댓글을 달아 주세요

교재: "국가공인" 리눅스마스터 1급 ((주)수퍼유저, 저자 박성수, 강기봉, 정우영)


국가공인 리눅스마스터 1급

저자
박성수강기봉 지음
출판사
수퍼유저코리아 | 2014-01-13 출간
카테고리
컴퓨터/IT
책소개
국가공인 리눅스마스터 1급 교재이다. 리눅스마스터 1급 1차, ...
가격비교

 



Part1. 리눅스 실무의 이해

Chapter 02. 리눅스 시스템의 이해

2.1 리눅스와 하드웨어

2.1.1 하드웨어의 이해

2.1.2 하드웨어의 선택



방대한 책범위와 시험기간이 얼마 안남은 관계로 전략변경

- 빠른 시일내에 책 훑기

- 문제를 풀면서 내용 정리


- 업데이트 할 목록

-> RAID, SCSI


- 업데이트: 15-08-27


- http://weroot.co.kr/solaris/643  (RAID 장점, 그림 삽입)

- http://smsinfo.tistory.com/176  (본문의 예)




- RAID(Redundant Array of Independent)

- 여러 대의 하드디스크가 있을 때 동일한 데이터를 다른 위치에 저장하는 방법. 입출력 작업이 균형을 이루게 되어 전체적인 성능 향상

- 여러 개의 디스크를 배열하여 속도의 증대, 안전성의 증대, 효율성, 가용성의 증대를 하는데 쓰이는 기술


- RAID 장점

1. 운용 가용성, 데이터 안정성 증대

- RAID 1(mirror) 또는 RAID5 의 경우 볼륨에 포함되어 있는 디스크 중 하나의 디스크에 장애가 발생하더라도 남은 디스크가 백업 역할이 가능 

(이로 인해 데이터 손실로 인해 복구하는데 소요되는 시간 없이 운용 지속 가능)

2. 디스크 용량 증설 용이

- RAID 0(Concatenate)의 경우 기존의 사용하던 디스크를 제외한 여분의 디스크가 하나 있을 경우 기존 사용하던 디스크의 데이터를 보존한 상태로 여분의 디스크와 하나의 볼륨으로 구성하여 사용 가능

3.  디스크 I/O 성능 향상

- RAID 0(Stripe)의 경우 데이터를 구성된 디스크들에게 나눠 저장하므로 I/O 성능 향상의 효과 있음



- RAID 종류

1. RAID 0: RAID 0에는 두 가지 방식이 있음 (필요 드라이브 최소 2개 이상)

- Concatenate(concat) 방식

- 두 개 이상의 디스크에 데이터를 순차적으로 쓰는 방법

- 장점: 디스크 기본 공간이 부족할 때 데이터는 보존하며 여분의 디스크를 볼륨에 포함하여 용량 증설 가능

- 단점: RAID 0의 특성상 디스크 중 하나의 디스크라도 장애 발생시 복구 어려움. 오류검출 지원안함


concat.gif 


- Stripe 방식

- 흔히 RAID 0 이라고 하면 Stripe 방식을 말하는 것으로 생각하면 됨

- 하나의 데이터는 Stripe 기술을 이용하여 여러개의 같은, 일정한 크기로 나뉘게 됨. 이 하나하나의 조각을 Stripe Unit이라함

- 장점: 데이터를 사용할 때 I/O를 디스크 수 만큼 분할하여 쓰기 때문에 I/O 속도가 향상 되고 I/O Controller나 I/O board 등 I/O를 담당하는 장치가 별도로 장착된 경우 더큰 속도 향상 볼 수 있음

- 단점: Stripe를 구성할 시 기존 데이터는 모두 삭제.RAID 0구성 시 중요데이터는 반드시 백업!

- 예) "리눅스마스터" 라는 단어를 2개의 드라이브로 구성된 RAID 0에 저장한다면 

 하나의 드라이브는 "ㄹㄴㄱㅅㅁㅅㅌ"라는 자음을 저장하고

 나머지 드라이브는 "ㅣㅜㅡㅏㅡㅓ"라는 모음을 저장하게 된다.

 그렇기 때문에 저장하거나 불러오는 속도는 빠르지만 에러 발생 시 완전한 데이터를 불러오지  못하게 됨. 즉 안정성이 낮은 구성


stripe.gif



2. RAID 1 (mirror)

- 적어도 2개의 디스크가 사용되며, 하나의 하드디스크에 기록되는 모든 데이터가 나머지 하나의 하드디스크에 복사되는 방법으로 아예 똑같기 때문에 mirroring이라고 함 (필요 드라이브 최소 2개 이상)

- 장점: 볼륨 내 디스크 중 하나의 디스크만 정상이어도 데이터는 보존되어 운영이 가능하기 때문에 가용성이 높음, 안정성이 상당히 우수함

- 단점: 용량이 절반으로 줄고(2개의 경우) 쓰기 속도가 느려짐


mirror.gif 


3. RAID 2 

- 디스크들간의 Stripe를 사용하며, 몇몇 디스크들은 에러를 감지하고 수정하는 ECC 정보를 가짐

- 기록용 드라이브와 데이터 복구용 드라이브를 별도로 두는데 4개 하드디스크에 기록하기 위해서는 3개의 부가 데이터를 기록해야 하기 되기 때문에 효율성 측면에서 거의 사용하지 않음

- RAID 0처럼 Stripe 방식이지만 RAID 0 은 에러체크를 하지 않는 반면 에러체크와 수정을 할 수 있도록 Hamming Code 사용하는 것이 특징



4. RAID 3,4 (필요 드라이브 최소 3개 이상)

- RAID 3, 4는 RAID 0, 1의 문제점을 보완하기 위한 방식

- 기본적으로 RAID 0과 같은 Stripe 방식 사용을 사용하여 성능 보완 및 추가로 에러 체크 및 수정을 위한 패리티 정보를 별도의 디스크에 따로 저장함

- 3은 Byte 단위로 데이터를 저장하는 반면, 4는 블록 단위로 저장한다는 차이점이 있음

-> 블록 단위로 저장할 경우 작은 파일의 경우 한번의 작업으로 데이터를 읽을 수 있기 때문 성능상의 장점이 있음. 또한 3은 동기화를 거쳐야 되기 때문에 3보다는 4를 많이 사용함

-> 데이터가 저장되어 있는 드라이브에 장애가 발생할 경우 패리티 정보를 이용하여 복구를 할 수 있으나, 정작 패리티 정보가 저장되어 있는 하드디스크에 장애가 발생하면 복구 불가능

-> 또한, 패리티 하드디스크에 병목현상이 생겨 속도가 저하될 수 있음

- RAID 0 의 구성에 백업용 드라이브를 하나 더 달아서 안정성을 확보한 구성


5. RAID 5 (필요 드라이브 최소 3개 이상)

- 레벨 3과 레벨 4의 단점을 보완한 방식으로, 패리티 정보의 저장을 전달하는 하드디스크 대신 모든 하드디스크에 패리티 정보를 분산 저장

-> 쓰기(Write)에는 패리티 정보가 분산되어 저장되기 때문에 Level 3,4의 단점인 병목은 줄여주지만 읽기(Read)에서는 사방에 흩어져 있는 패리티 정보를 갱신하며 일게 되기 때문에 성능 저하 있음

- RAID 3,4와 달리 패리티 정보가 저장된 디스크가 따로 없어 패리티 디스크 고장과 같은 문제에서 자유롭고 실제 서버/워크스테이션에서 가장 많이 사용하는 방식

- 여러개의 디스크를 Stripe 방식으로 볼륨을 구성하고, 패리티 정보를 사용하여 데이터의 정합성 제공

- 장점: 데이터의 정합성의 유지 및 RAID 1에 비해 용량 활용성 높음

- 단점: 데이터를 쓸 때마다 패리티 연산을 해야하고, 이로 인해 부하 발생

(쓰기 작업이 많은 서버의 경우 RAID 1구성이 나을 수 있음)


raid5.gif 


6. RAID 6 (필요 드라이브 최소 4개 이상)

- RAID 5와 같은 개념이지만 다른 드라이브 간에 분포되어 있는 2차 패리티 정보를 넣어 2개의 하드에 문제가 생겨도 데이터를 복구할 수 있음. 즉 RAID 5보다 데이터 안정성 고려

하드를 스트라이핑으로 묶었기 때문에 RAID 0+1이나 RAID 10(1+0)보다 성능은 더 높고 신뢰성도 우수 하지만 패리티 정보를 2중으로 저장하면서 읽기 성능은 RAID 5와 비슷하지만 쓰기 작업 구현이 아주 복잡해서 일반적으로 잘 사용하지 않음


7. RAID 7

- 하드웨어 컨트롤러에 내장되어 있는 운영체제를 사용하여 속도가 빠른 버스를 통한 캐시, 독자적인 컴퓨터의 특성을 포함.(잘 사용안함..)


8. RAID 0+1, RAID 1+0 (필요 드라이브 최소 4개 이상)

- RAID 0과 1의 복합 구성. 즉 0의 Stripe 방식과 1의 Mirror의 기능이 합쳐진 것으로, 분산 저장을 통한 성능 향상, 데이터의 안정성 또한 보장 할 수 있음

-> 그러나 여전히 전체 용량의 50%만 사용할 수 있으며, 비용이 많이 드는 문제점 발생

0+1.gif 


- 성능은 비슷하지만 가용성 측면에서는 RAID 1+0이 높아 많이 사용함


1+0.gif 

- RAID 1+0은 RAID 0+1과 비슷한 개념이지만 구성순서의 차이가 있음. mirror를 먼저 구성한 뒤 두개의 볼륨을 Stripe로 묶는 순서로 구성

- 예)

1. DISK 1,2(혹은 3,4)에 장애 발생의 경우             사용 가능 O           사용 불가 X
2. DISK 1,3(혹은 2,4)에 장애 발생의 경우             사용 불가 X           사용 가능 O
3. DISK 1,4(혹은 2,3)에 장애 발생의 경우             사용 불가 X           사용 가능 O


1 의 경우 RAID 0+1 3,4에 1,2의 데이터를 그대로 보존하고 있기 때문에 사용 가능 하지만 RAID 1+0은 1,2에 데이터가 없기 때문에 사용이 불가능

2과 3의 경우 RAID 0+1은 두개의 Stripe 볼륨에 멤버인 디스크가 하나 씩 장애가 발생하므로 볼륨 전체가 깨져서 사용이 불가능하나 RAID 1+0의 경우에는 mirror 에 멤버인 디스크에 장애가 발생하였으므로 데이터를 보존하고 있어 사용이 가능

-> 이로 인해 RAID 0+1은 가용성이 33.3%이지만 RAID 1+0은 66.6% 두배의 고가용성을 확보할 수 있는 장점이 있음

- 드라이브가 6개일 때

RAID 0+1은 RAID 0으로 구성된 드라이브들을 최종적으로 RAID 1로 묶는 것이라 각각 3개씩 하드 가 나눠지며, RAID 1+0은 2개씩 RAID 1으로 묶여있는 하드들이 RAID 0으로 구성됨  

RAID 0+1의 경우 1개의 하드만 고장나서 복구해도 다른 RAID 0 구성에서 나머지 하드까지 데이터 전체를 복구해야 하지만, RAID 1+0으로 만든 시스템은 고장난 하드가 하드 1개라고 하면 미러링으로 묶인 하드를 통해 데이터만 복구하면 되므로 실제로 운용하는데는 RAID 1+0 이 훨씬 유리 



- SCSI (Small Computer System Interface)

- 추후 업데이트 예정


댓글을 달아 주세요

블로그 이미지

꽃경남

카테고리

분류 전체보기 (127)
프로그래밍 (31)
기타 (48)
해킹 (48)