아리아 날다

1,2장. 인프라 아키텍처, 서버 본문

IT 인프라구조

1,2장. 인프라 아키텍처, 서버

Aria Park 2024. 5. 29. 08:29

1.1 인프라 아키텍처란?

  • 인프라(Infra)
    • ‘기반’이라는 뜻으로 생활을 지탱하는 바탕이나 토대
  • IT 인프라(IT Infra)
    • IT의 기반이 되는 것
    • 방대한 데이터를 관리하고 지탱하고 있는 것
  • 인프라 아키텍처(Infra Architecture)
    • IT 인프라의 구조
    • 인터넷 검색 시스템이나 항공 회사 티켓 발권 시스템, 편의점 계산대 등 모두가 이용 방법이나 사용자가 다르지만 IT 인프라 위에서 동작하고 있음

1.2 집약형, 분할형 아키텍처

  • 집약형 아키텍처
    • 대형 컴퓨터(범용 장비, 호스트, 메인 프레임) → 하나의 컴퓨터로 모든 처리가 가능: 집약형
    • 장점: 구성이 간단, 대형 컴퓨터 리소스 관리와 이중화 안정성이 높고 고성능
    • 단점: 대형 컴퓨터 도입 비용과 유지 비용이 비쌈, 확장성 한계
  • 분할형 아키텍처
    • 여러 대의 컴퓨터를 조합해서 하나의 시스템 구축
    • 표준 OS나 개발 언어를 사용 → ‘오픈 시스템’이라고도 부름
    • 여러 대의 컴퓨터 연결 → ‘분산 시스템’이라고도 부름
    • 장점: 낮은 비용으로 시스템 구축 가능, 서버 대수를 늘릴 수 있어서 확장 용이
    • 단점: 대수가 늘어나면 관리 구조가 복잡해짐, 한 대가 망가지면 영향 범위를 최소화하기 위한 구조를 검토해야함
  • 물리 서버 VS 논리 서버
    • 물리 서버: 컴퓨터 자체를 가리키는 경우
      • 인텔 x86 서버는 인텍 아키텍처(Intel Architecture)를 채용하고 있어서 ‘IA서버’라고도 함
    • 논리 서버

1.3 수직 분할형 아키텍처

  • 클라이언트-서버형 아키텍처(수직 분할형)
    • 장점: 클라이언트 측에서 많은 처리를 실행할 수 있어서 소수의 서버로 다수의 클라이언트 처리 가능
    • 단점: 클라이언트 측의 소프트웨어 정기 업데이트 필요, 서버 확장성 한계
  • 3계층형 아키텍처(수직 분할형)
    • 장점: 서버 부하 집중 개선, 클라이언트 단말의 정기 업데이트 불필요, ‘처리 반환’에 의한 서버 부하 저감
    • 단점: 구조 복잡

1.4 수평 분할형 아키텍처

  • 용도가 같은 서버를 늘려나가는 방식
  • 샤딩(Sharding), 파티셔닝(Partitioning)
  • 단순 수평 분할형 아키텍처
    • 장점: 수평으로 서버를 늘리기 때문에 확장성이 향상, 분할한 시스템이 독립적으로 운영되므로 서로 영향을 주지 않음
    • 단점: 데이터를 일원화해서 볼 수 없음, 애플리케이션 업데이트는 양쪽을 동시에 해 주어야 함, 처리량이 균등하게 분할돼 있지 않으면 서버별 처리량에 치우침이 생김
  • 공유형 아키텍처
    • 데이터는 상호 간 교환, 어느 쪽에서든 참조 가능
    • 장점: 수평으로 서버를 늘리기 때문에 확장성이 향상, 분할한 시스템이 서로 다른 시스템의 데이터 참조 가능
    • 단점: 분할한 시스템 간 독립성이 낮아짐, 공유한 계층의 확장성 낮아짐
  • 엣지 컴퓨팅
    • 서버로 처리를 분산하고 처리 결과만 중앙으로 보내는 아키텍처

1.5 지리 분할형 아키텍처

  • 스탠바이형 아키텍처
    • 물리 서버를 최소 두 대를 준비하여 한 대가 고장 나면 가동 중인 소프트웨어를 다른 한 대로 옮겨서 운영하는 방식
    • 소프트웨어 재시작을 자동으로 하는 구조 → 페일오버(Faillover, 페일, F/O)
    • 리소스 측면에서 낭비가 발생할 수 있기 때문에 스탠바이를 따로 두지 않고, 양쪽 서버를 동시에 교차 이용하는 경우도 많음
  • 재해 대책형 아키텍처
    • 특정 데이터 센터에 있는 상용 환경에 고장이 발생하면 다른 사이트에 있는 재해 대책 환경에서 업무 처리를 재개하는 것
    • 데이터는 매일 갱신되기 때문에 실시간성을 유지해서 사이트 간 동기 처리가 중요

2장. 서버를 열어보자

2.1 물리서버

→ 서버는 랙(Rack)에 장착되고 랙에는 서버 외에도 HDD가 가득 장착돼 있ㄴ는 저장소나 인터넷 및 LAN을 연결하기 위한 네트워크 스위치 등도 탑재돼 있음

  • 버스(BUS): 컴포넌트를 연결하는 선
  • PCI Express 슬롯: 외부 장치를 연결하는 곳(Xeon 확장 프로세서 아키텍처에선 CPU가 PCI를 직접 제어)
  • BMC(Baseborad Management Controller): 서버의 H/W 상태를 감시하며 독립적으로 움직(ex. 서버의 H/W에서 장애가 발생한 경우 BMC 콘솔을 통해 서버 상태를 확인하거나 네트워크로 접속해서 서버 원격 재시동 가능)

2.2 CPU(Central Processing Unit)

  • 대량의 전기 신호를 처리하기 때문에 발열일 심함(냉각기 설치)
  • 주변을 감싸고 있는 대량의 핀이 버스에 연결돼 있어서 메모리나 디스크와 데이터를 교환
  1. CPU는 명령을 받아서 연산을 실행하고 결과를 반환
  2. 명령과 데이터는 기억 장치나 입출력 장치를 통해 전달(연산은 1초에 10억 회 이상 실행 가능)\

*명령은 운영체제(Operating System, OS)에서 내림

*OS에서 동작하는 웹 서버나 데이터베이스의 실체인 ‘프로세스’와 사용자 키보드, 마우스 등을 통한 입력을 통해서 OS에 명령을 내림

2.3 메모리

  • 기억 영역, CPU 옆에 위치하며 CPU에 전달하는 내용이나 데이터를 저장하거나 처리 결과를 받음
  • CPU 자체 메모리 → 레지스터, 1차(L1)/2차(L2) 캐시 → CPU 내부에 존재 (메모리보다 더 빠르긴 하지만, 용량이 메모리에 비해 매우 작음)

 

  • 캐시를 여러 단으로 배치해서 대기 시간(액세스 속도)을 줄임
  • 초고속으로 액세스하고 싶은 데이터는 L1 캐시에, 준고속으로 댁세스하고 싶은 데이터는 L2 캐시에 배치
  • 메모리 인터리빙(Memory Interleaving): 미리 데이터를 CPU에 전달해서 처리 지연을 줄이는 기능

2.4 I/O 장치

  • 하드 디스크 드라이브(HDD)
    • 장기 저장 목적의 데이터 저장 장소(메모리에 비해 CPU에서 떨어진 곳에 HDD가 배치)
    • HDD가 많이 탑재돼 잇는 하드웨어: 스토리지(Storage, 저장소)→ I/O의 서브 시스템이라고도 불리는 장치, 내부에는 CPU와 캐시가 존재하고 수많은 HDD외에도 여러 기능 탑재
  • SDD(Solid State Disk, 반도체 디스크)
    • 물리적인 회전 요소를 사용하지 않는 디스크
    • 메모리와 같이 반도체로 만들어졌지만 전기가 없어도 데이터가 사라지지 않음
  1. 대형 저장소와 연결할 때는 일반적으로 파이버 채널(Fibre Channel, FC)이라는 케이블을 사용해서 SAN(Storage Area Network)이라는 네트워크를 경유
    1. SAN에 접속하기 위한 파이버 채널 인터페이스를 FC 포트라고 함
    2. 보통은 서버 시스템 포트에 FC 포트가 없기 때문에 PCI 슬롯에 HBA라는 카드를 삽입
  • 라이트 백(Write Back)
    • 읽기/쓰기 시에 캐시라는 메모리 영역에 액세스하는 방법
    • 읽기 캐시의 경우는 캐시상에 데이터 복사본만 있으면 되지만, 쓰기 시에는 캐시에만 데이터를 기록하고 완료했다고 간주하는 경우 데이터를 잃을 가능 성이 있음
  • 라이트 스루(Write Through)
    • 캐시와 HDD에 모두 액세스하는 I/O
    • 읽기 시에는 캐시에 데이터가 없으면 읽기 처리를 위해 액세스 하고, 쓰기 시에는 캐시와 디스크를 모두 읽어서 라이트 백과 비교하고, 더 확실한 쪽에 쓰기 처리를 실시하기 위해 액세스 함(쓰기 캐시 장점X)
  • I/O 제어
    • Xeon 확장형 프로세서 → PCH(Platform Controller Hub)라는 칩셋 탑재
    • CPU가 제어하는 메모리나 PCIe(PCI Express) 외의 처리 속도가 비교적 늦어도 용서되는 I/O.

2.5 버스

  • 버스(Bus)란?
    • 서버 내부에 있는 컴포넌트들을 서로 연결시키는 회선
    • 버스가 어느 정도의 데이터 전송 능력을 가지고 있는지(대역이 어느정도 인지)가 중요

 

  • 대역이란?
    • 데이터 전송 능력, 스루풋(Throughput, 처리량)
    • 한번에 데이터를 보낼 수 있는 데이터의 폭(전송폭) X 1초에 전송할 수 있는 횟수(전송 횟수)
      • 전송 횟수: 1초 / 1 처리 당 소요 시간(응답 시간)
  • 버스 흐름에서 중요한 것은 CPU와 장치 사이에 병목 현상이 없어야 한다는 것
  • 하드웨어 설계, 특히 외부 장치와 연결을 검토할 때는 버스와 I/O 능력을 고려해야 함
  • SSD 규격
    • SATA(Serial ATA), SAS(Serial Attached SCSI), NVME(NVM Express)로 오른쪽으로 갈수록 속도가 빠름

*HDD 데이터는 다양한 전송 버스를 지나서 몇 번이고 캐시된 후에 CPU에 이르고, CPU에 가까울 수록 고성능, 멀 수록 저성능이다.

 

'IT 인프라구조' 카테고리의 다른 글

3장. 3계층형 시스템을 살펴보자  (0) 2024.05.29
7장. 무정지를 위한 인프라 구조  (0) 2024.05.29
Comments