1. 하드웨어의 이해
[1] 컴퓨터의 구성요소
1) 중앙처리장치(CPU : Central Processing Unit)
- 명령어 해석, 연산, 결과반환 -> 컴퓨터 시스템 통제하는 컴퓨터 제어장치
- 레지스터와 연산장치(ALU : arithmetic_Logic Unit) 그리고 제어장치(Control Unit)으로 구성
- 레지스터 : CPU 연산처리를 위한 임시저장소 역할, 작은 데이터만 저장, 액세스 속도 빠름
- 연산장치 : 데이터들 간의 비교, 판단, 연산 수행
- 제어장치 : 입력된 명령어해석, 해석한 명령을 연산장치로 전송, 주소를 디코드하여 레지스터에 데이터를 저장
2) 주기억장치(Main memory)
- CPU가 처리할 명령어와 데이터를 저장하기 위한 장치
- 휘발성 메모리인 RAM(Random Access Memory)와 비휘발성 메모리인 ROM(Read Only Memory)로 분류
- RAM은 전원 공급중단시 정보 손실, 메모리상 어느주소든 엑세스시간 동일,
- RAM은 DRAM(Dynamic Random Access Memory)와 SRAM(Static Random Access Memory)로 나뉨
- ROM은 전원 공급 중단되도 데이터 유지, 컴퓨터 구동하기 위한 BIOS와 같은 프로그램이 적재
- ROM은 MASK ROM, PROM,EPROM으로구분
- MASK ROM : 메모리에 저장된 데이터 변경 X
- PROM(Programmable ROM) : 메모리에 저장된 데이터 1회 수정 가능
- EPROM(Erasable PROM) : 메모리에 저장된 데이터 수정 삭제 저장 가능
3) 입출력장치
- 입력장치 : 키보드,마우스,카메라,스캐너,ORM,OCR,MICR,트랙볼,
- 출력장치 : 모니터, 프린터
4) 보조기억장치
- 주기억장치는 속도빠르고 용량작고 비쌈. 전원공급시 데이터 소멸되기때문에 보조기억장치필요
- 보조기억장치는 속도 느림, 용량큼, 저렴
- 데이터저장 또는 주기억장치의 메모리가 부족함을 해결하기 위해 가상메모리를 위한 스왑영역으로 사용
- 하드디스크, SSD, CD-ROM, DVD, BD(Blu-ray Disc) 등이 있다
[2] 리눅스 설치를 위한 하드웨어 요구사항
1) CPU
- GNU C가 지원하는 CPU 환경이라면 이론적으로는 리눅스를 이식하여 구동할 수 있다
- 리눅스 배포판의 경우 인텔사의 x86, x64, x86_64와 같은 x86 계열 혹은 AMD 계열 CPU는 기본적으로 구동함
- 임베디드나 모바일 등 리눅스가 사용되고 있는 영역을 넓혀 살펴 보면 모토롤라, SPARC, Alpah, PowerPC, ARM, MIPS 등 다양한 CPU를 지원하고 있음을 알 수 있다
- 최근 CPU는 32bit CPU보다는 보다 많은 메모리를 주소 지정할 수 있는 64bit CPU를 기본선택하고 있다
- 병렬성을 높여 CPU의 최대 성능을 높이기 위해 CPU의 코어의 개수를 고려해야한다
- 가상머신의 성능극대화를 위해 CPU에서 가상화 기술(VT : Virtualiztion Technology)을 제공하는지 여부도 고려해야함
2) 메인보드
- 리눅스는 거의 대부분의 메인보드를 지원
- 만약 리눅스가 제대로 설치되지 않는 경우 바이오스를 업그레이드하는 것만으로도 해결되는 경우가 많다
3) 메모리
- 거의 모든메모리 지원함
- 메모리의 크기는 스왑 파티션의 크기와 연관성이 있기때문에 고려하여 결정
4) 하드디스크
- 리눅스는 IDE(Integrated Drvier Electronics), E-IDE(Enhanced IDE), SCSI(Small Computer System Interface), S-ATA(Serial ATA) 등 대부분의 인터페이스를 지원
- 하드디스크 공간을 효과적으로 나누기위한 파티션설정이나 메모리를 효율적으로 사용하기 위한 스왑설정 수행가능
5) 모니터와 그래픽카드
- 대부분의 모니터와 그래픽 카드 지원 -> 별도 모니터나 그래픽 카드의 드라이버 설치 없이 사용할 수 있다
- 화면 표시가 안되면 제조사의 모니터 또는 그래픽 카드의 드라이버 제공여부를 확인
- 시스템의 장착된 그래픽 카드를 알아보는 명령어 lspci | grep -I vga
6) LAN카드
- Intel, 3COM, Hp 등 대부분의 LAN카드 기본제공
- 이더넷,모뎀 등 다양한 네트워크 카드 규격 지원
- 유선뿐만 아니라 무선을 위한 무선랜 어댑터도 지원
7) 키보드 및 마우스
- 현재 존재하는 거의 대부분의 키보드와 마우스 지원
- 통신 인터페이스도 PS/2, Serial, USB 방식 등 모드 제공
2. 하드웨어의 선택
[1] RAID의 개요
: 하드디스크의 고성능 구현과 신뢰성을 위해 여러 개의 하드디스크를 구성하고 일부에 중복된 데이터를 나눠서 저장하는 복수 배열 독립 디스크(Redundant Array of Independent Disks)
[2] RAID의 종류
1) RAID-0
- 데이터를 여러 디스크에 걸쳐 저장하는 스트라이핑 기술을 사용하여 데이터를 디스크에 분산저장
- 데이터 저장시 여러 디스크에 동시에 쓸 수 있으므로 처리속도 빠름
- 데이터 중복이 없고 , 패리티 기술X -> 구성된 디스크 하나라도 오류나면 복구 불가
- 최소디스크개수 2, 용량계산 : 디스크수 x 디스크수
2) RAID-1
- 패리티X 스트라이핑X 미러링 기술 사용 데이터를 두개의 디스크에 동시에 기록
- 데이터를 동시에 읽어들여 읽기 속도 향상
- 하나쓰나 두개쓰나 쓰기 시간은 동일해서 쓰기 속도향상에는 도움X
- 디스크 오류시 미러링된 데이터복구가능
- 데이터를 중복 저장하기 때문에 디스크의 효율성이 50%로 떨어짐
- 최소디스크수 : 2
3) RAID-2
- 비트(bit)레벨의 스트라이핑을 통하여 최소 3개의 디스크에 데이터를 분산저장
- 오류 정정 부호(ECC)를 기록하는 전용의 하드디스크이용
- ECC를 통해 오류 복구할 수 있지만 추가 연산이 필요해 입출력 속도 떨어짐
- 최소 디스크수 : 3, 용량계산 :(디스크 수 -1) x 디스크 용량
4) RAID-3
- 바이트(byte)수준의 스트라이핑을 통해 데이터를 분산 저장한다
- 한번 읽거나 쓸때 각 디스크에 동시에 접근 가능하므로 순차적 쓰기성능과 순차적 읽기성능이 우수
- 패리티를 제공 -> 오류체크 및 복구수행가능
- 최소 디스크수 : 3, 용량계산 :(디스크 수 -1) x 디스크 용량
5) RAID-4
- 블록(block)레벨의 스트라이핑을 통해 데이터를 분산저장
- 패리티를 이용 -> 에러체크 및 정정 가능
- 블록단위로 데이터가 저장 -> 단일 디스크 OR 여러개의 디스크에서 동시에 데이터를 읽기가능
- 데이터 쓸때마다 패리티 디스크도 접근 -> 쓰기성능 좋지않음
- 최소 디스크수 : 3, 용량계산 :(디스크 수 -1) x 디스크 용량
6) RAID-5
- 1개의 디스크 오류만 대처 가능
- 블록수준 스트라이핑으로 저장, 패리티도 별도의 디스크가 아닌 모든 디스크에 나뉘어 저장
- 성능 면에서 RAID 0보다 부족하지만 성능, 안정성, 용량 세부분을 모두 고려하여 현장에서 많이 사용
- 최소 디스크수 : 3, 용량계산 :(디스크 수 -1) x 디스크 용량
7) RAID-6
- 2차 패리티 구성을 포함
- 2개의 디스크 오류에 대처 가능
- 최소 디스크수 : 4, 용량계산 :(디스크 수 -2) x 디스크 용량
8) RAID 0+1
- 디스크 2개를 스트라이핑 기술을 사용하는 RAID 0 으로 구성 -> 이세트를 다시 미러링 기술을 사용하는 RAID 1로 구성
9) RAID 1+0
- 디스크 2개를 미러링 기술을 사용하는 RAID1로 구성 -> 이세트를 다시 스트라이핑 기술을 사용하는 RAID 0으로 구성
- 최소 디스크수 : 4, 용량계산 :(디스크 수 /2) x 디스크 용량
10) RAID 5+3
- RAID-3 방식에 스트라이프 어레이를 구성하는 방식
- RAID-3보다 높은 성능을 제공하지만 가격이 더 비쌈
[2] 디스크 인터페이스
1) IDE(Integrated Drvier Electronics)
- 가장 오래된 규격으로 40개의 핀으로 구성된 병렬 인터페이스
- 병럴 전송을 강조하는 의미에서 PATA(Parallel Advanced Technology Attachment)라고도 함
2) S-ATA
- IDE의 성능한계를 극복하기위해 직렬로 데이터를 전달하는 인터페이스
- SATA1은 초당 150MB, SATA2는 초당 300MB, SATA3은 6Gbps의 속도를 제공
- SATA2는 허브를 이용해 하나의 포트에 여러개의 하드디스크를 연결할 수 있다
3) SCSI(Small Coomputer System Interface) ** 스커지/스카시(발음)
- 고성능과 안정성,신뢰성을 중시하는 워크스테이션 및 서버 시장에서 주로 사용하던 디스크 인터페이스
- 병렬 전송방식, 10000RPM에 달하는 고성능 하드디스크 장착으로 최적의 성능을 제공했으나 병렬방식이라 한계존재
4) SAS(Serial Attached SCSI)
- SCSI의 한계를 극복하기 위해 시리얼 방식(=직렬방식)을 도입한 디스크 인터페이스
- SCSI의 안정성과 확장성,신뢰성을 이어가면서 시리얼 전송을 통해 속도를 향상하였다
[3] LVM(Logical Volumne Manager)
1) LVM의 개요
- 블록디바이스의 유연한 관리를 위해 여러 블록디바이스를 가상의 Logical Volumn에 매핑하고 스토리지를 관리하는 커널 기능이다
- 기존에는 블록디바이스에 직접 I/O를 수행했지만 LVM 기반시스템은 블록디바이스 대신 LVM이 매핑한 Logical Volume에 I/O를 수행한다
- LVM을 통해 유연한 용량, 크기 조절 가능한 스토리지 풀, 온라인 데이터 재배치, 디스크 스트라이핑, 미러 볼륨, 볼륨 스냅샷 기능을 제공할 수 있다.
2) LVM의 구성도
3) LVM의 구성요소
- PV(Physical Volume) : 기존의 블록 디스크를 LVM에서 사용할 수 있도록 변환하나 볼륨 형식
- PE(Physical Extent) : PV는 PE라 불리는 일정 크기의 블록으로 구성. 기본 크기는 4mb이다
- VG(Volume Group) : 여러 PV를 하나의 VG로 묶어 통합할수있다. VG에 LV를 할당할 수 있다
- LV(Logical Volume) : VG에서 필요한 만큼 할당하여 만들어지는 공간. 사용자는 LV를 통해 하드디스크에 접근
- LE(Logical Extent) : LV를 구성하는 일정크기의 블록. 기본크기는 4mb
+) LVM 관련 명령어
- PV생성 : pvcreate
- 다수의 PV를 하나의 VG로 묶기 : vgcreate
- LV생성 : lvcreate
- VG 중 PE개수정보 : vgdisplay
- PV 중 PE의 개수정보 : pvdisplay
- LV 중 LE의 개수정보 : lvdisplay
반응형
'서버&백엔드 > 🐧 Linux' 카테고리의 다른 글
[Kali Linux] SSH를 통해 원격으로 리눅스서버 접속 (0) | 2023.07.15 |
---|---|
[리눅스마스터 1급] X 윈도우 (1) | 2023.07.09 |
[리눅스마스터 1급] 리눅스의 구조 (0) | 2023.07.09 |
[리눅스마스터 1급] 리눅스의 기초 (0) | 2023.06.28 |
[리눅스마스터 1급] 운영체제의 개요 (0) | 2023.06.26 |