본문 바로가기

study/IT 인프라

물리 서버 내부 구조

 

서버 - 하드웨어 장비 및 데이터의 흐름

image-20200214062303504

물리 서버

서버 외관과 설치 장소

  • 서버는 랙(rack) 에 장착됨
  • 랙에는 서버 외에도 HDD가 정착돼 있는 저장소나 인터넷 및 LAN을 연결하기 위한 스위치 등도 탑재되어 있음
  • 랙의 규격
    • 대부분 랙의 폭은 19인치
    • 높이는 한 눈금에 약 4.5cm로 40~46개 눈금으로 이루어져 있음
    • 서버 높이의 단위 : 한 눈금당 1U(2U서버는 2눈금, 높이 약 9cm의 서버)
  • 전원이나 네트워크 케이블 배선등은 모두 랙 뒷면에서 연결됨
  • 서버 설치 시 중요한 정보
    • 서버 크기(1U)
    • 소비 전력(A)
    • 중량(Kg)
  • 서버 전면(Sun Server X3-2L 모델)
    • 일반적인 서버는 옆으로 긴 형태
    • 옆에 랙 마운트 레일(rack mount rail) 이 있어서 장롱 서랍처럼 설치 가능
    • 전면에 HDD나 전원 버튼 등이 있음
    • HDD는 교체하기 쉽게 되어 있어서 손으로 당겨서 꺼낼 수 있음
  •  
  • image-20200214015018730

서버 내부 구성

image-20200214014235715

  • FAN 뒤에는 HDD가 있음
  • PC 부품과 같은 종류가 들어가 있음
  • 각 컴퍼넌트(부품)를 연결하는 선을 버스(bus) 라고 함
  • CPU가 두 개 연결 되어 있고 그 옆에 메모리가 배치 됨
    • CPU와 메모리는 물리적으로 직접 연결되어 있음
  • PCI Express 슬롯 - 외부 장치를 연결하는 곳
  • NIC(네트워크 인터페이스)
  • CPU를 중심으로 HDD나 NIC는 메모리에 비해 멀리 있음

CPU

  • CPU(Central Processing Unit) - 서버 중심에 위치해서 연산 처리를 함
  • CPU는 명령을 받아 연산을 실행하고 결과를 반환
  • 명령과 데이터는 기억장치나 입출력 장치를 통해 전달 됨
  • 연산은 1초에 10억회 이상 실행 가능
  • CPU를 코어 라고 하며, 하나의 CPU에 여러개의 코어가 존재하는 멀티 코어화가 진행되고 있음
  • 코어는 각자가 독립된 처리 가능

image-20200214024232877

  • 명령이나 데이터는 기억 장치(메모리, HDD)에 있음
  • 운영체제(OS)라는 소프트웨어에서 CPU에 명령을 내림
  • 프로세스(OS상에서 동작하는 웹 서버나 데이터베이스)와 사용자 키보드, 마우스를 통한 입력으로 OS에 명령을 내림
  • 키보드,마우스,프로세스 -> OS -> CPU
  • 키보드나 마우스가 하는 처리를 끼어들기(interrupt) 처리 라고 함

메모리

  • 기억 영역으로, CPU 옆에 위치함
  • CPU에 전달하는 내용이나 데이터를 저장하거나 처리 결과를 받음
  • 메모리에 저장되는 정보는 영구성이 없음
  • 서버를 재시작하면 데이터가 사라짐
  • 메모리 액세스가 매우 빠르게 이뤄짐
  • 전기적인 처리만으로 데이터 저장 (물리적인 모터를 구동하지 않아도 됨)
  • CPU 자체의 메모리를 레지스터, 1차(L1)/2차(L2) 캐시라고 부름
    • 메모리보다 빠르지만 용량이 메모리보다 매우 작음
  • 캐시를 여러 단으로 배치해서 대기 시간을 줄임
  • image-20200214031717935
  • L1, L2 캐시에 있는 데이터가 L3 캐시에도 존재함
    • 다른 코어는 자신 이외의 캐시를 확인하지 않고 L3 캐시만 확인하면 됨
  • 메모리 영역이 CPU안에 여러개 존재하는 이유
    • 처리 지연을 줄이기 위해 가장 자주 사용하는 명령/데이터를 코어 가까운 곳에 배치
      • 메모리를 이용하려면 메모리 컨트롤러를 경유해 CPU밖으로 나가야함(처리 지연- latency, 레이턴시)
      • 고속 CPU에서는 이런 처리지연 조차 허락하지 않음
    • 액세스 속도
      • 일반적으로 캐시 메모리가 커질수록 액세스 속도가 느려짐
      • 가능한 CPU 가까운 곳에 많은 캐시를 두기 위해 캐시를 여러 단계로 배치
      • 초고속으로 액세스하고 싶은 데이터는 L1 캐시, 고속으로 액세스 하고 싶은 데이터는 L2 캐시에 두는 형태
  • 메모리 인터리빙(memory Interleaving) - 데이터를 미리 CPU에 전달해서 처리 지연을 줄이는 메모리 기능
    • 채널 : CPU와 메모리 간의 데이터 경로
    • 뱅크 : 하나의 채널 안에서 하나 또는 그 이상의 메모리 묶음
    • 최대 3개의 채널을 사용해서 데이터1을 요구하면, 데이터2와 데이터3도 함께 보내버림
    • 대부분 데이터가 연속해서 액세스 된다는 규칙을 기반으로 만들어짐
  • image-20200214041358075
  • 메모리 인터리빙을 사용하기 위해서는 모든 채널의 동일 뱅크에 메모리를 배치해야함

I/O 장치

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

  • CPU와 (메모리에 비해) 멀리 떨어져 있으며 주로 장기 저장 목적의 데이터 저장 장소로 사용
  • 메모리는 전기가 흐르지 않으면 데이터가 사라지지만, 디스크는 전기가 없어도 데이터가 사라지지 않음
  • HDD 내부
    • 자기 원반이 여러 개 들어 있는데, 이것이 고속으로 회전하고 레코드 바늘 같은 것을 사용해서 읽기/쓰기를 처리함(CD나 DVD와 같은 구조)
    • 회전 구조 때문에 속도가 물리 법칙에 의해 좌우되며, 메모리처럼 순식간에 액세스 할 수 없음
    • 일반적으로 수 밀리초에서 수십 밀리초 정도의 시간이 걸림 (메모리는 수~수십 마이크로초)
  • hddimg
  • 최근에는 SSD(Solid State Disk, 반도체 디스크)를 많이 사용함
    • 물리적인 회전 요소를 사용하지 않는 디스크
    • 메모리와 같이 반도체로 만들어짐
    • 전기가 없어도 데이터가 사라지지 않음
    • 메모리와 기억 장치 간 속도 차이가 거의 없음
  • HDD가 많이 탑재된 하드웨어를 스토리지(Storage, 저장소) 라고 함
    • 스토리지는 I/O의 서브 시스템이라고 불리는 장치
    • 내부에 CPU와 캐시가 존재하고 수많은 HDD 외에도 여러 기능을 탑재
  • 서버 I/O 시에는 HDD가 직접 데이터를 교환 하지 않고 캐시를 이용함
  • 저장소 캐시는 CPU 캐시 이용 방법과 동일함

![](http://library.gabia.com/wp-content/uploads/2016/03/%EB%94%94%EC%8A%A4%ED%81%AC.png)

네트워크 인터페이스

  • 서버와 외부 장비를 연결
  • 외부 접속용 인터페이스
  • 이더넷(ethernet) 네트워크 어댑터

image-20200214050227651

  • 서버 외부 장비로는 네트워크에 연결된 다른 서버나 저장소 장치가 있음

버스

  • 서버 내부의 컴포넌트들을 서로 연결시키는 회선
  • 버스가 어느 정도의 데이터 전송 능력을 갖고 있는지가 중요함

대역

  • IT인프라에서 대역은 데이터 전송 능력을 의미함
  • 한 번에 데이터를 보낼 수 있는 데이터의 폭(전송폭), 1초에 전송할 수 있는 횟수(전송 횟수) 로 결정 됨
  • 전송 횟수
    • 1초 / 1 처리당 소요 시간(응답 시간)
  • 대역을 스루풋(throughput, 처리량) 이라고 부름
  • 대역은 전송폭 * 전송 횟수
  • image-20200214054151133

버스 대역

  • CPU와 가까운 쪽이 1초당 전송량이 큼
    • Sun Fire X4170 M2 기준으로 CPU-CPU 간은 12.8GB/s 전송
  • 일상에서 접하는 대역으로 광랜 인터넷이 있음
    • 최대 200Mbps = 25MB/s 대역으로 통신 가능
  • 버스 흐름에서 CPU와 장치 사이에 병목 현상이 없어야 함
    • 병목 현상(bottleneck): 데이터 전송이 어떤 이유로 막혀 있는 상태