#44. 물리서버

박현재·2022년 2월 25일
0


물리서버 내부구조에 대해 살펴봅니다.

1. 버스(BUS)

CPU, 메모리, HDD, NIC 등의 컴포넌트를 연결하는 선을 '버스(Bus)'라고 한다.

1-1. 대역이란?

원래는 주파수 대역을 가리키지만, IT 인프라에서는 '데이터 전송 능력'을 의미한다. 대역 = 전송폭(한번에 데이터를 보낼 수 있는 데이터의 폭) X 전송횟수(1초에 전송할 수 있는 횟수 또는 회선)이다.

1-2. 버스 대역


CPU간 대역은 편방향 10.4GT/s, 환산하면 20.8GB/s의 처리가 가능하다. 인터넷과 비교하면 170배나 빠른 속도다.
버스 흐름에서 중요한 것은 CPU와 장치 사이에 병목현상이 없어야 한다는 것이다.
병목 현상이란 데이터 전송이 어떤 이유로 막혀 있는 상태를 의미한다. 단순히 외부 데이터가 PCIe 슬롯을 통해 들어와서 HDD와 데이터 송/수신이 일어날 때, PCI Express 3.0 슬롯의 x8은 편방향 8GB/s 전송 능력을 가졌고, SAS 3.0 HDD의 전송능력은 1.2GB/s이기 때문에, 단순히 x8 슬롯에서는 7회선 이상 HDD가 동시에 I/O를 하면 PCI 버스에 병목현상이 발생한다.
8GB/s < 1.2GB*7회선=8.4GB/s 라는 차이가 생기기 때문이다. 물론, HDD가 100% 회전하는 경우는 거의 없기 때문에 어디까지나 예이지만, 하드웨어 설계, 특히 외부 장치와 연결을 검토할 때는 이렇게 버스나 I/O 전송능력을 고려해야 한다.

2. CPU (Central Processing Unit)

CPU는 웹 서버, DB의 프로세스, 입력장치 등으로부터 명령을 받아서 연산을 실행하고 결과를 반환하는 장치이다. 명령과 데이터는 기억 장치나 입츌력 장치를 통해 전달된다. 연산은 초당 10억 회 이상 실행할 수 있다.

3. 메모리

3-1. CPU 내부 메모리

레지스터나 L1/L2 캐시라고 불리는 CPU 내부 메모리도 존재한다. 메모리보다 빠르지만 용량이 매우 작다.

3-2. 메모리 컨트롤러와 채널

메모리 컨트롤러에는 최대 3개의 채널이 존재한다. 채널은 메모리와 CPU 간 데이터 경로를 말한다.메모리에는 미리 데이터를 CPU에 전달해서 처리지연(Latency)을 줄이는 '메모리 인터리빙' 기능이 있다.

3-3. 메모리 인터리빙

L2캐시에서 데이터 1을 읽으면 채널1을 통해서 데이터1을 반환하는 동시에 채널2,3을 통해 데이터2,3도 반환하는 기능이다. 이것은 대부분의 데이터가 연속해서 액세스 된다는 규칙을 기반으로 만들어진 것이다. 먼저 읽어서 처리 지연을 줄여준다는 효과를 가진다.

4. I/O 장치

4-1. 하드 디스크 드라이브(HDD) => 반도체 디스크(SSD)

HDD는 주로 데이터 영구저장 장소로 사용한다. 메모리는 전기가 흐르지 않으면 데이터가 사라지는 휘발성이지만, 디스크는 전기가 없어도 데이터가 사라지지 않는다.

SSD는 메모리와 같이 반도체로 만들어졌지만, 전기가 없어도 데이터가 사라지지 않는다. 메모리와 기억 장치 간 속도 차이가 거의 없어지고 있어 각광받고 있다.

HDD 또는 SSD가 많이 탑재돼 있는 하드웨어를 '스토리지'라고 한다. 이 저장소는 서버와 I/O 시에 직접 데이터를 교환하는 것이 아니라 캐시를 통해서 데이터를 교환한다.
읽기 캐시의 경우 캐시에 데이터가 존재하지 않으면 디스크에서 읽어서 캐시에 올리고 이를 서버에 반환한다.(라이트 스루) 그리고 읽고 싶은 데이터가 존재하는 경우는 캐시에서 꺼낸다.(라이트 백)
쓰기 캐시의 경우, 라이트 스루라이트 백 두가지 쓰기 I/O가 있다. 라이트 백은 캐시에만 데이터를 기록하고 완료했다고 간주하는 경우 데이터를 잃을 가능성이 있다. 대신, 캐시에 저장해서 쓰기 처리가 종료되기 때문에 고속 I/O를 실현할 수 있다.
라이트 스루는 캐시와 HDD에 모두 액세스하는 I/O다. 캐시와 디스크를 모두 읽어서 라이트 백과 비교하고, 더 확실한 쪽에 쓰기 처리를 실시하기 위해 액세스한다. 캐시의 장점을 살리기 위해 기본적으로 '라이트 백'으로 설정한다.

4-2. 네트워크 인터페이스 컨트롤러(NIC)

NIC는 내부 서버와 외부 장비(네트워크에 연결된 다른 서버나 저장소)를 연결하기 위한 외부 접속용 인터페이스다. 보통 1개의 PCI 카드에 1Gbps/10Gbps는 최대 4회선, 25Gbps는 최대 2회선을 접속할 수 있다. (물론, PCI 카드 증설 가능)

4-3. I/O 제어

IO 제어는 발전 속도가 빨라서 일반적인 구성이 없다. Xeon 확장형 프로세서의 경우, PCH(Platform Controller Hub)라는 칩셋이 탑재되어서 CPU가 제어하는 메모리나 PCIe(PCI Express) 외의 처리 속도가 비교적 늦어도 용서되는 I/O 제어를 담당하고 있다.

최종정리

PCI 컨트롤러 역할을 하는 CPU부터 HDD, 네트워크 등의 I/O 장치까지 일련의 데이터 흐름에 대해 알아봤다. HDD 데이터는 다양한 전송 버스를 지나서 몇 번의 캐시과정을 거친 후에 CPU에 이른다. 또한, CPU에 가까울수록 고속이고 멀수록 대용량이다.
하드웨어는 시스템의 기반이 되는 부분이다. 애플리케이션이나 OS는 하드웨어를 움직이기 위한 프로그램 집합이다. 프로그램이 동작하면 하드웨어가 어떤 식으로 동작하는지 이해한 후에 이것을 바탕으로 새로운 구조나 시스템을 만든다면 아주 탄탄할 것이다!

profile
바로 하자, Right Now!

0개의 댓글