1. 물리서버

  • 하드웨어 장비 및 데이터 흐름

 

1.1. 서버 외관 및 설치

  • 서버는 랙에 장착되며, 랙에는 서버 외에도 HDD가 장착되어 있는 저장소나 인터넷 및 LAN을 연결하기 위한 스위치 등도 탑재
  • 전원이나 네트워크 케이블 배선 등은 모두 랙 뒷면에서 연결

  • 랙 규격
    • 대부분 랙의 폭은 19인치
    • 높이는 한 눈금에 약 4.5cm
    • 서버 높이의 단위 : 한 눈금당 1U(2U 서버는 2눈금, 높이 약 9cm의 서버)
  • 서버 장착 시 중요 정보
    • 서버 크기(1U), 소비 전력(A), 중량(kg)

 

1.2. 서버 내부 구성

  • 서버 내부 구성
    • CPU가 2개 연결되어 있으며 옆에 메모리 배치, CPU와 메모리는 물리적으로 직접 연결
    • CPU를 중심으로 HDD나 NIC는 메모리에 비해 떨어진 곳에 위치
    • 각 컴퍼넌트(부품)을 연결하는 선 버스(bus)
    • PCI Express 슬롯 : 외부 장치 연결하는 곳
    • NIC : 네트워크 인터페이스

 

1.3. CPU(Central Processing Unit)

  • 서버 중심에 위치해서 연산 처리
  • CPU는 OS(운영체제)라는 소프트웨어에서 명령을 받아 연산을 실행하고 결과 반환
    • 프로세스(OS상에서 동작하는 웹 서버나 데이터베이스)와 사용자 키보드, 마우스를 통한 입력으로 OS에 명령
    • 키보드, 마우스, 프로세스 → OS → CPU
  • 명령과 데이터는 기억 장치나 입출력 장치를 통해 전달
  • 연산은 1초에 1억회 이상 실행
  • CPU 안에서 물리적인 연산(데이터 처리)을 담당하는 코어는 각자 독립된 처리가 가능하며, 하나의 CPU에 여러 개의 코어가 존재(멀티 코어)
  • 명령이나 데이터는 기억 장치(메모리, HDD)에 존재

 

1.4. 메모리

  • 기억 영역으로 CPU 옆에 위치
  • CPU에 전달하는 내용이나 데이터를 저장하거나 처리 결과를 수신
  • 메모리에 저장되는 정보는 영구성이 없으며, 서버를 재시작하면 데이터 존재 X
  • 메모리 액세스가 매우 빠르게 이루어지며, 전기적인 처리만으로 데이터 저장
  • CPU 자체의 메모리를 레지스터, 1차(L1)/2차(L2) 캐시라고 호칭 → 메모리보다 빠르지만 용량이 메모리보다 작은 형태
  • 캐시를 여러 단으로 배치해서 대기 시간 축소
  • L1, L2 캐시에 있는 데이터는 L3 캐시에도 존재 → 다른 코어는 자신 이외의 캐시를 확인하지 않고 L3 캐시만 확인
  • 메모리 영역이 CPU 안에 여러 개 존재하는 이유
    • 처리 지연을 줄이기 위해 가장 자주 사용하는 명령/데이터를 코어 가까운 곳에 배치
      1. 메모리를 이용하려면 메모리 컨트롤러를 경유해 CPU 외부로 나가야 함
      2. 메모리를 사용하면 처리 지연 발생(latency)
    • 액세스 속도
      1. 일반적으로 캐시 메모리가 커질수록 액세스 속도 저하
      2. 초고속으로 액세스하고 싶은 데이터는 L1 캐시, 고속으로 액세스하고 싶은 데이터는 L2 캐시에 캐싱하는 형태
  • 메모리 인터러빙(memory interleaving) : 데이터를 미리 CPU에 전달해서 처리 지연을 줄이는 메모리 기능
    1. 채널 : CPU와 메모리 간의 데이터 경로
    2. 뱅크 : 하나의 채널 안에서 하나 또는 그 이상의 메모리 묶음
    3. 최대 3개의 채널을 사용해서 데이터 1을 요구하면 데이터 2와 데이터 3도 함께 보내는 형태
    4. 대부분 데이터가 연속해서 액세스 된다는 규칙을 기반으로



2. I/O 장치

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

  • CPU와 떨어져 있으며 주로 장기 저장 목적의 데이터 저장 장소로 사용
  • 메모리는 전기가 흐르지 않으면 데이터가 사라지지만, 디스크는 전기가 없어도 데이터 사라지지 않는 형태
  • HDD 내부
    • 자기 원반이 여러 개 들어있는데, 이것이 고속으로 회전하고 레코드 바늘 같은 것을 사용해서 읽기/쓰기 처리
    • 메모리처럼 빠른 속도로 액세스 할 수 없으며, 일반적으로 수 밀리초에서 수십 밀리초 정도의 시간 소요(메모리는 수~수십 마이크로초)
  • 최근에는 SSD(Solid State Disk)를 많이 사용
    • 물리적인 회전 요소를 사용하지 않는 디스크
    • 메모리와 기억 장치 간 속도 차이 거의 x
  • HDD가 여러 개 탑재된 하드웨어를 스토리지(storage, 저장소)라고 호칭
    • 스토리지는 I/O 서브 시스템이라고 불리는 장치
    • 내부에 CPU와 캐시가 존재하고 수많은 HDD 외에도 여러 기능 탑재
  • 서버 I/O 시에는 HDD가 직접 데이터를 교환하지 않고 캐시 이용
    • 저장소 캐시는 CPU 캐시 이용 방법과 동일
  • 대형 저장소와 연결할 때는 파이버 채널이라는 케이블을 사용하여 SAN(Storage Area Network)를 경유
    • SAN에 접속하기 위한 파이버 채널 인터페이스를 FC 포트로 호칭
    • 보통 서버 시스템 포트에 FC 포트가 없기 때문에 PCI 슬롯에 HBA 카드를 삽입해서 사용

 

2.1.1. 하드 디스크 내부 구조

  • 하드디스크 내부 구조
    1. 전원 커넥터 : 하드디스크에 전원을 공급하는 역할
    2. 데이터 커넥터 : 하드디스크와 컴퓨터 사이의 데이터를 전송해주는 단자
    3. 헤드 : 데이터를 읽어주는 역할
    4. 액추에이터암 : 헤드를 데이터가 있는 곳으로 움직이는 역할
    5. 플래터 : 실제로 데이터가 저장
    6. 스핀들 : 플래터를 돌려주는 역할
  • 트랙, 섹터
    • 하드 디스크 기록 단위의 하나로 자기 매체에 늘어선 동심원으로 구획된 하나하나를 트랙이라고 부르며, 그 트랙들을 작은 단위로 쪼갠 것을 섹터라고 호칭
    • 디스크에서 데이터를 읽고 쓰는 단위는 섹터 512가 아니며 4KB인 disk block으로 나누어 관리
  • 실린더
    • 다수개의 플래터의 트랙을 수직적으로 관통하는 3차원 적인 스택
    • 하드 용량 = (헤드수) * (실린더 수) * (섹터수) * (섹터당 기록 용량) 의 공식으로 계산
    • 모든섹터가 같은 길이를 갖도록 데이터를 기록하는 방식을 사용하는 것이 일반적인 추세
    • 하드디스크의 헤드 위치에 관한 정보를 읽을 수 있도록 별도의 헤드를 하나 더 사용



2.1.2. 하드 디스크 각종 규격

  1. SATA(Serial Advanced Technology Attachment)
    • SATA_1 규격에서는 초당 150MB, SATA_2는 초당 300MB의 전송 속도
    • STAT_2 규격에서는 USB처럼 하나의 포트에 여러 개의 하드 디스크 연결 가능
    • PC를 끄지 않고 장치를 연결할 수 있는 핫플러그 기능 추가
  2. SCSI (Small Computer System Interface)
    • 서버나 워크스테이션 등에 쓰이는 고속 인터페이스
    • 사용을 위해 별도 확장 카드 필요
    • 이를 대체하는 SAS 인터페이스가 등장하면서 사용도 저하
  3. SAS(Serial Attached SCSI)
    • SCSI 규격을 한 단계 발전한 것으로 서버 등의 주로 사용
  4. SSD(Solid State Drive, Solid State Disk)
    • 하드디스크 드라이브와 비슷하게 동작하면서 기계적 장치인 HDD와 다르게 반도체를 이용해 정보 저장

 

2.2. 네트워크 인터페이스

  • 서버와 외부 장비를 연결, 이더넷 네트워크 어댑터
  • OSI 7 계층에서 데이터 링크 계층과 달리 물리 계층 사이에서 통신 가능하게 함
  • 통신을 위해 인터페이스 역할 수행하며 고성능의 데이터 처리를 위해 송수신 되는 데이터 압축
  • NIC 카드에는 물리적인 하드웨어 주소인 MAC 주소 할당

 

 

3. 버스

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

 

3.1. 대역

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

 

3.2. 버스 대역

  • CPU와 가까운 쪽이 1초당 전송량 ↑
  • 일상에서 접하는 대역
  • 버스 흐름에서 CPU와 장치 사이에 병목 현상이 없어야 함

 

+ Recent posts