1. 하드웨어의 이해

-리눅스의 최적의 성능을 발위하기위해 알아야할 것

(1)CPU
(2)
메모리(RAM)

(3)하드디스크 드라이브

->리눅스는 초기에 사용하던 하드디스크 인터페이스인 IDE(Integrated Drive Electronices),E-IDE(Enhanced IDE), SCSI(Small Computer System Interface), S-ATA(Serial ATA)등 현존하는 하드디스크 대부분이 사용가능하다

-> 초고속 반도체 메모리를 저장매체로 사용한 USBSSD도 지원

-> IDEATAdev/hdx파일 형식 인식

-> S-ATA, USB메모리 , SSD SCSI /dev/sdx파일 형식으로 인식하여 사용

(4)모니터와 비디오 어댑터

->텍스트 기반의 콘솔 환경에는 모니터와 비디오 카드의 역할이 크게 중요하지 않으나. X-Window기반의 GUI환경에서는 정확한 정보가 필요하다

(5)네트워크 인터페이스

->이더넷, 모뎀, ISDN,ATM등 대부분의 네트워크 인터페이스를 지원한다 (특히 이더넷카드는 제조사에 상관없이 다지원)

-> 네트워트 설정하기위해서는 IP주소, 넷마크,게이트웨이주소, DNS서버의 IP주소를 알아야한다

(6)키보드 및 마우스

-> 키보드 는 PS/2,usb방식지원, 마우스는 표준시리얼 마우스, PS/2, USB방식 지원(x-window에서는 마우스의 휠기능도 지원)

(7)CD-Romdvd-rom

-> 하드디스크 인터페이스와 같이 사용되어 대부분 자동으로 인식된다

-> IDE를 사용하는 경우에는 /dev/hdx파일 형태로 사용

-> SCSI,S-ATA/dev/sdx

-> 최근은 /dev/cdrom, dev/dvd

 

2. 하드웨어의 선택

1. RAID(Redundant Array of Independent Disks)

- 여러 개의 하드디스크가 있을떄 동일한 데이터를 다른 위치에 중복해서 저장하는 방법

- 데이터를 여러 개의 디스크에 저장하여 입출력 작업이 균형을 이루게 되어 전체성능을 향상시키고 운영체제에서 하나의 raid는 논리적으로 하나의 디스크로 인식처리된다

-이용

->저용량 하드디스크를 하나의 디스크로 확장

->백업을 가능하게 하고, 안정적인 데이터의 보존과 유지기능, 속도 향상

- raid에서 사용하는 기술

 

(1)스트라이핑

-> 연속된 데이터를 여러 개의 디스크에 라운드 로빈 방식으로 기록하는 기술

-> 하나의 디스크에서 읽어 들이는 것 보다 더 빠르게 데이터를 읽거나 쓸수 있다면 매우 유용

(서로 겹쳐 읽거나 쓸수있도록 설계된 네개의 드라이브가 있는 경유 하나의 섹터에 읽을수 있는 시간에 네개의 섹터를 동시에 읽을수 있다)

(cf) 라운드 로빈: 하나의 중앙처리장치를 임의의 프로세스가 종료될 때까지 차지하는 것이 아니라 여러 프로세스가 조금씩 돌아가며 할당받아 실행되는 방식

 

(2)미러링

-> 디스크에 에러가 발생시 데이터의 손실을 막기위해 추가적으로 하나 이상의 장치에 중복 저장하는 기술

-RAID의 종류

(1)RAID-0

-> 스트라이핑 기술을 이용해 빠른 입출력 속도 제공

-> 데이터를 중복이나 패리티 없이 디스크에 분산하여 기록

-> 처리속도는 빠르나, 구성된 디스크중에 하나라도 오류 발생시 데이터 복구 불가

(2)RAID-1

->미러링 기술을 사용하여 두개의 디스크에 데이터를 똑같이 기록

-> 스트라이핑 기술은 사용하지 않으며 각 드라이블르 동시에 읽을수 있어 읽기 성능은 향상되나 쓰기성능은 단일 디스크와 같다

-> 디스크 오류시 데이터 복구 능력은 탁월하지만 중복저장으로 인한 디스크 낭비가 50%

(3)RAID-2

-> 스트라이핑 기술을 사용하여 구성

-> 디스크 에러감지와 수정을 위해 ECC(Error Check&Correction)정보 사용

(4)RAID-3

-> 스트라이핑 기술로 디스크 구성

-> 패리티 정보를 저장하기위해 별도로 하나의 디스크를 사용

-> 입출력 작업이 동시에 모든 디스크에 대해 이루어지므로 입출력을 겹치게 할 수는 없다

-> 보통 대형 레코드가 많은 시스템 에서사용

(5)RAID-4

-> 블록 형태의 스트라이핑 기술을 사용해 디스크구성

-> 단일 디스크로부터 레코드를 읽을수 있고 데이터를 읽을떄 중첩 입출력 장점이 있다

-> 쓰기 작업은 패리티 연산을 해야하고 패리티 디스크에 저장해야 되기 떄문에 입출력의 중첩이 불가하고 시스템 병목현상이 발생할 수 있다.

(6)RAID-5

-> 패리티 정보를 이용해 하나의 디스크가 고장이 발생한 경우에도 사용이 가능한 구성방식으로 최소 3개의 디스크로 구성해야함

-> 패리티 정보는 별도의 디스크를 사용하지 않고 구성된 디스크에 분산하여 기록하지만 데이터를 중복 저장하지는 않아 가장보편적으로 사용할 수 있다

-> 디스크에 쓰기 제한 주소를 지정하므로 모든 읽기 및 쓰기가 중첩될 수 있다

-> 작고 랜덤한 입출력이 많은 경우 더나은 성능 발휘

-> RAID-0의 단점인 결함허용을 지원하지 않고 RAID-1의 저장공간의 비효율성을 보완한 레벨로 디스크 개수를 늘릴수록 저장 공간의 효율성이 높아진다

(7)RAID-6

-> RAID-5와 전체적인 구성은 비슷하지만 디스크에 2차 패리티 구성을 포함해 매우 높은 고장 대비 능력

-> RAID-5 1개의 디스크 오류만 대처가 가능해 2개의 디스크오류 발생시 데이터 복구가 불가능 하지만 RAID-6 2개의 패리티를 사용해 두개의 디스크오류에도 데이터를 읽을수 있다

-> RAID-5에 비해 디스크 공간 효율성은 떨어진다

-> 복잡한 알고리즘으로 처리속도는 떨어지나 데이터에 대한 실뢰성은 향상된다

(8)RAID-7

-> 하드웨어 컨트롤러에 내장되어 있는 실시간 운영체제를 사용하여 구성하는 방식으로 속도가 빠른 버스를 이용한다

(9)RAID 0+1

-> 디스크 2개를 RAID-0을 스트라이핑 기술로 구성하고, 다시 RAID-1의 미러링 구성하는 방식

-> 최소 4개의 디스크가 필요하다(만약 6개의 디스크면 3개를 RAID-0으로 나머지는 RAID-1로구성)

(10)RAID-10

-> RAID 0+1과 반대

-> 미러링후 스트라이핑 하는 방식

(11)RAID-11

->RAID-3방식에 별도로 스트라이프 어레이를 구성하는 방식

 

2. LVM(Logical Volume Manager)

-리눅스 설치시 하드디스크를 추가하면 파티션을 분할하고 공간을 할당하는데 이때 설정한 공간의 크기는 고정이되어 변경이나 용량 증설이 어렵다 이를 해결하기 위한 방법이 LVM이다

-찰흙과 같은 개념으로 여러 개의 하드디스크를 하나의 뭉쳐서 하나의 디스크 인 것 처럼 만들수 있고 두개의 하드디스크를 세개의 하드디스크인 것처럼 만들수 있다 또한 사용중인 파티션의 크기 또한 늘릴수 있다

-LVM구성도와 관련된 용어

(1)물리적 볼륨(PV: physical volume)

-> 실제 디스크에 물리적 으로 분할한 파티션 /dev/sdb1과 같다

-> LVM에서는 이런 물리적 볼륨을 하나의 구성원으로 받아 들이는 형식으로 진행한다

(2)볼륨 그룸(VG: Volume Group)

-> 물리적 볼륨이 모여 생성한 덩어리

(3)논리적 볼륨(LG: Logical Volume)

->  VG에서 사용자가 필요한 만큼 할당하여 만들어지는 공간으로 물리적 디스크에서 분할하여 사용하는 파티션

(4)물리적확장(PE:Physical Extent)

-> PV에서 나누어 사용하는 일종의 블록 같은 영역

+ Recent posts