1. Libreria
  2. 서버와 인프라
  3. 서버 기초

Aggiornato 1 mese fa

서버는 단순한 가정 하나를 기반으로 설계됩니다. 모든 것은 결국 고장난다. 유일한 질문은 언제냐는 것입니다.

전원 공급 장치는 언젠가 죽습니다. 하드 드라이브는 손상됩니다. 메모리 모듈은 오작동합니다. 팬은 멈춥니다. 서버 하드웨어는 이런 고장을 막으려 하지 않습니다. 오히려 고장이 불가피하다고 가정하고 그에 맞게 설계됩니다. 주요 구성 요소는 모두 이중화되어 있거나, 핫스왑이 가능하거나, 혹은 둘 다입니다. 목표는 절대 고장나지 않는 하드웨어를 만드는 것이 아닙니다. 고장이 발생하더라도 계속 작동하는 하드웨어를 만드는 것입니다.

이 철학이 서버와 데스크탑 하드웨어 사이의 모든 차이를 설명합니다.

프로세서: 속도보다 처리량

서버 프로세서는 데스크탑 프로세서와는 다른 특성을 우선시합니다. 데스크탑 CPU는 응답성을 최적화합니다. 비디오 게임이나 사진 편집 프로그램이 빠릿빠릿하게 느껴지도록 만드는 것이죠. 서버 프로세서는 처리량과 안정성을 최적화합니다.

코어 수가 훨씬 많습니다. 고급 데스크탑이 8~16개의 코어를 가진다면, 서버 프로세서는 보통 32개, 64개, 혹은 그 이상입니다. 덕분에 하나의 작업을 가능한 한 빠르게 처리하는 대신, 여러 작업을 동시에 처리할 수 있습니다.

멀티 프로세서 지원이 기본입니다. 서버 마더보드에는 흔히 2개, 4개, 심지어 8개의 프로세서 소켓이 있어, CPU를 추가하는 방식으로 처리 능력을 확장할 수 있습니다. 데스크탑 시스템은 하나 이상의 프로세서를 지원하는 경우가 거의 없습니다.

캐시 크기가 더 큰 이유는 서버가 동시에 여러 사용자의 데이터를 처리하기 때문입니다. 캐시가 많을수록 더 느린 RAM에서 데이터를 기다리는 시간이 줄어듭니다.

클럭 속도는 오히려 데스크탑 프로세서보다 낮을 수 있습니다. 64코어 2.5 GHz 서버 CPU는 서버 작업에서 8코어 4.5 GHz 데스크탑 CPU를 능가합니다. 작업이 모든 코어에 걸쳐 병렬로 분산되기 때문입니다.

신뢰성 기능도 서버 프로세서에는 있고 데스크탑 칩에는 없는 것들이 있습니다. ECC 메모리 지원, 하드웨어 오류를 감지하는 머신 체크 아키텍처(MCA), 지속적인 운영을 보장하는 이중화 기능 등이 그것입니다.

메모리: 용량, 신뢰성, 그리고 우주선

서버의 메모리 요구사항은 용량과 신뢰성 모두에서 데스크탑을 압도합니다.

ECC(오류 정정 코드) 메모리는 사실상 필수입니다. 이유는 이렇습니다. 일반 RAM은 우주선(宇宙線) — 실제로 우주에서 날아오는 입자 — 이나 전기적 간섭으로 인해 가끔 비트가 뒤집힙니다. 데스크탑에서는 사소한 오류나 충돌로 끝날 수 있지만, 금융 거래를 처리하거나 데이터베이스를 관리하는 서버에서는 비트 하나가 뒤집히면 데이터가 조용히 손상될 수 있습니다. ECC 메모리는 이러한 오류를 자동으로 감지하고 수정합니다.

용량은 훨씬 더 큽니다. 데스크탑이 최대 64~128 GB라면, 서버는 보통 256 GB, 512 GB, 혹은 수 테라바이트의 RAM을 갖습니다. 방대한 데이터셋을 메모리에 캐시하거나 수많은 애플리케이션을 동시에 실행할 수 있습니다.

메모리 채널이 서버 플랫폼에서는 더 많습니다. 채널이 많을수록 RAM과의 대역폭이 높아지고, 많은 프로세스가 동시에 메모리에 접근할 때 병목을 줄입니다.

핫스왑 DIMM은 일부 고급 서버에서 지원되어, 서버를 중지하지 않고도 고장난 메모리 모듈을 교체할 수 있습니다. 다만 대부분의 구성에서는 여전히 드문 기능입니다.

스토리지: 드라이브는 반드시 죽는다고 가정하라

서버 스토리지는 단순한 용량이 아닌 이중화와 지속적인 성능을 중심으로 설계됩니다.

엔터프라이즈급 드라이브는 데스크탑 드라이브와는 다른 기준을 충족합니다. 데스크탑 드라이브는 하루 8시간 사용, 연간 55 TB 쓰기로 정격됩니다. 엔터프라이즈 드라이브는 연속 작동과 연간 550 TB를 위해 정격됩니다. 이 차이는 마케팅이 아닙니다. 서로 다른 고장 예상치를 위한 공학적 결과입니다.

엔터프라이즈 SSD는 용량 대신 내구성과 일관된 성능을 위해 SLC(단일 레벨 셀) 또는 MLC(다중 레벨 셀) 플래시를 사용합니다. 소비자용 SSD는 지속적인 작업 부하에서 속도가 크게 떨어질 수 있는 TLC 또는 QLC 플래시를 사용합니다.

핫스왑 베이를 통해 서버가 실행 중인 상태에서 드라이브를 제거하고 교체할 수 있습니다. 드라이브가 고장나면 — 드라이브는 언젠가 반드시 고장납니다 — 기술자가 다운타임 없이 교체합니다.

RAID 컨트롤러는 기본 장비입니다. 이 전용 프로세서는 드라이브 배열을 관리하며, 소프트웨어 RAID로는 달성하기 어려운 이중화와 성능을 제공합니다. 쓰기 도중 전원이 끊기더라도 전송 중인 데이터를 보호하기 위해 배터리 또는 플래시 백업 캐시가 포함됩니다.

여러 종류의 드라이브가 혼합 사용되는 경우도 많습니다. 빠른 랜덤 액세스가 필요한 데이터베이스에는 SSD, 대용량 스토리지에는 하드 드라이브, 가장 까다로운 작업에는 NVMe 드라이브를 사용합니다.

네트워크 인터페이스: 이중화된 경로

서버의 네트워크 연결은 인터페이스가 고장나거나 케이블이 뽑힐 수 있다고 가정합니다.

여러 개의 네트워크 포트가 기본입니다. 대부분의 서버는 최소 2개의 1 Gbps 또는 10 Gbps 인터페이스를 갖추며, 보통 4개 이상입니다. 이는 이중화를 제공하고 다양한 트래픽 유형을 분리할 수 있게 합니다.

네트워크 본딩은 여러 인터페이스를 결합해 더 높은 대역폭이나 이중화를 제공합니다. 두 개의 10 Gbps 인터페이스는 20 Gbps의 대역폭을 제공하거나, 인터페이스나 경로 중 하나가 고장날 경우 장애 조치를 제공합니다.

더 높은 속도가 일반적입니다. 데스크탑 연결은 보통 1 Gbps로 동작합니다. 서버는 흔히 10 Gbps, 25 Gbps, 혹은 100 Gbps 인터페이스를 사용합니다. 특히 다른 서버나 스토리지 시스템에 연결되는 데이터 센터에서 그렇습니다.

특수 네트워크 어댑터는 특정 작업 부하를 처리합니다. 일부는 CPU에서 암호화 또는 패킷 검사를 오프로드합니다. 다른 것들은 서버 간 극도로 낮은 지연 통신을 위한 RDMA(원격 직접 메모리 액세스)를 지원합니다.

전원 공급 장치: 가장 중요한 이중화

전원 시스템은 고장이 불가피하다고 가정합니다.

이중 전원 공급 장치가 기본입니다. 대부분의 서버에는 최소 2개의 독립적인 전원 공급 장치가 있으며, 각각이 서버 전체에 전원을 공급할 수 있습니다. 하나가 고장나도 다른 하나가 중단 없이 계속됩니다. 고장난 장치는 서버가 실행 중인 상태에서 교체할 수 있습니다.

더 높은 효율이 기본입니다. 데스크탑 전원 공급 장치는 약 80% 효율일 수 있습니다. 서버 전원 공급 장치는 일반적으로 90% 이상의 효율을 달성해, 낭비되는 에너지와 열을 줄입니다. 수천 대의 서버를 운영할 때 이는 매우 중요합니다.

이중 전원 입력을 통해 서버를 별도의 전원 공급원에 연결할 수 있습니다. 상용 전원과 발전기 백업, 또는 두 개의 다른 전기 회로가 그 예입니다. 하나의 전원이 끊기면 나머지가 서버를 계속 작동시킵니다.

냉각: 열은 적이다

서버는 상당한 열을 발생시키며 적극적인 냉각이 필요합니다.

여러 개의 이중화된 팬이 팬 하나가 고장나더라도 공기 흐름이 유지되도록 합니다. 서버는 일반적으로 여러 개의 팬이 함께 작동하며, 하나가 멈추면 나머지가 자동으로 보완합니다.

전면 흡기, 후면 배기 구조가 랙 서버의 표준입니다. 차가운 공기는 앞에서 들어오고, 뜨거운 공기는 뒤로 배출됩니다. 데이터 센터는 서버를 행으로 배열합니다. 전면끼리 마주보는 냉기 통로(콜드 아일)와 후면끼리 마주보는 열기 통로(핫 아일)를 구성해 효율적인 냉각을 실현합니다.

온도 모니터링이 광범위하게 이루어집니다. 섀시 전체에 걸친 센서들이 관리 시스템에 보고하며, 자동으로 팬 속도를 조절하거나 관리자에게 문제를 알립니다.

원격 관리: 키보드 없이도 된다

서버는 키보드, 마우스, 모니터 없이 동작합니다. 원격 관리 기능이 하드웨어 자체에 내장됩니다.

BMC(베이스보드 관리 컨트롤러) 인터페이스 — HP의 iLO, Dell의 iDRAC, Lenovo의 IMM 이라고 불립니다 — 는 운영 체제와 독립적으로 서버에 네트워크 접근을 제공합니다. OS가 충돌했거나 설치되지 않은 상태에서도 서버를 켜고 끄고, 콘솔에 접근하고, 원격 미디어를 마운트하고, 하드웨어 상태를 모니터링할 수 있습니다.

이것이 중요한 이유: 수천 킬로미터 떨어진 서버가 부팅 중 멈추면, 누군가를 직접 보낼 필요가 없습니다. BMC에 연결하면 화면에 무엇이 표시되는지 정확히 볼 수 있습니다.

센서 모니터링을 통해 온도, 팬 속도, 전력 소비, 구성 요소 상태에 대한 자세한 정보를 얻을 수 있습니다. 모두 원격으로 접근 가능합니다.

폼 팩터: 밀도를 위해 설계되다

서버 하드웨어는 데이터 센터 배치에 최적화된 형태로 제공됩니다.

랙 서버는 표준 19인치 랙에 장착되는 납작한 직사각형 장치입니다. 높이는 "U" 단위로 측정됩니다(1U = 1.75인치). 일반적인 서버는 1U 또는 2U 높이로, 42U 랙에 수십 대의 서버를 수용할 수 있습니다.

블레이드 서버는 밀도를 더욱 높입니다. 여러 개의 얇은 서버 블레이드가 전원, 냉각, 네트워킹을 공유하는 섀시에 끼워집니다. 단위 면적당 더 많은 컴퓨팅 파워를 제공하지만, 더 정교한 인프라가 필요합니다.

타워 서버는 대형 데스크탑 컴퓨터처럼 생겼으며, 서버 랙이 없는 환경 — 보통 소규모 비즈니스나 원격 사이트 — 을 위해 설계됩니다.

절대 멈추지 않는 것의 비용

서버 하드웨어는 비슷해 보이는 데스크탑 부품보다 훨씬 비쌉니다. 그 이유는 핵심 철학으로 거슬러 올라갑니다.

신뢰성 공학은 구성 요소를 더 광범위하게 테스트하고, 더 고급 재료를 사용하며, 이중화 기능을 포함한다는 의미입니다. 서버용 드라이브, 메모리, 프로세서는 데이터 센터 조건에서의 연속 운영에 대해 검증됩니다.

포괄적인 지원에는 흔히 수 년간의 익일 현장 서비스가 포함되며, 이는 구매 가격에 반영됩니다.

특수 기능 — 원격 관리, 핫스왑 기능, 모든 곳의 이중화 — 이 비용을 추가합니다.

하지만 계산은 맞아떨어집니다. 데스크탑은 충돌에서 회복합니다. 서버는 애초에 충돌해서는 안 됩니다. 서버가 다운될 때 거래 손실, 서비스 중단, 또는 SLA 위반으로 이어진다면, 이중화 비용은 오히려 싸게 보입니다.

핵심 정리

  • 서버 하드웨어는 모든 구성 요소가 결국 고장난다는 가정 하에 설계됩니다. 목표는 고장을 막는 것이 아니라, 고장이 발생하더라도 계속 작동하는 것입니다.
  • 서버 프로세서는 클럭 속도보다 코어 수와 처리량을 우선시하며, 방대한 병렬 처리를 위해 마더보드당 여러 CPU를 지원하는 경우가 많습니다.
  • ECC 메모리는 서버의 표준으로, 비트 오류(우주선에 의한 것 포함)를 감지하고 수정하며, 용량은 256 GB에서 수 테라바이트까지 확장됩니다.
  • 서버 스토리지는 24/7 운영에 정격된 엔터프라이즈급 드라이브, 다운타임 없이 교체를 위한 핫스왑 베이, 이중화를 위한 전용 RAID 컨트롤러를 사용합니다.
  • 네트워크 연결은 대역폭 집계 또는 장애 조치를 위한 본딩 기능과 함께 10 Gbps 이상의 여러 이중화 인터페이스를 포함합니다.
  • 핫스왑 가능한 이중 전원 공급 장치와 이중 전원 입력은 전원 공급 장치 고장에도 작동이 계속되도록 보장합니다.
  • 원격 관리 인터페이스(BMC/iLO/iDRAC)는 운영 체제와 독립적인 하드웨어 수준의 접근을 제공합니다. 물리적 접근 없이 서버를 관리하는 데 필수적입니다.
  • 서버 하드웨어가 더 비싼 이유는 다운타임 비용이 이중화 비용을 훨씬 초과하기 때문입니다.

서버 하드웨어에 관한 자주 묻는 질문

데스크탑 하드웨어로 서버를 구축할 수 있나요?

기술적으로는 가능하지만, 서버 하드웨어를 정의하는 신뢰성 기능을 잃게 됩니다. ECC 메모리 지원, 이중 전원 공급 장치, 핫스왑 드라이브 베이, 원격 관리가 없어집니다. 홈 랩이나 개발 서버라면 데스크탑 하드웨어로도 충분합니다. 하지만 가동 시간이 중요한 환경에서는 이중화 부재가 취약점이 됩니다.

서버는 왜 게이밍 PC보다 낮은 클럭 속도를 사용하나요?

서버 작업은 병렬화가 가능합니다. 여러 독립적인 작업들이 별도의 코어에서 동시에 실행될 수 있는 형태로 구성됩니다. 2.5 GHz 64코어 프로세서는 5 GHz 8코어 프로세서보다 더 많은 총 작업량을 처리합니다. 8배나 많은 작업을 병렬로 처리할 수 있기 때문입니다. 게임은 단일 스레드 속도를 우선시합니다. 게임 엔진은 작업을 여러 코어에 분산시키기가 쉽지 않기 때문입니다.

서버는 보통 얼마나 오래 사용하나요?

서버는 일반적으로 프로덕션 환경에서 3~5년 동안 사용됩니다. 하드웨어 자체는 훨씬 더 오래 작동하는 경우가 많습니다. 교체 주기는 하드웨어 고장보다는 새로운 하드웨어의 효율성 향상과 벤더 지원 종료에 의해 결정됩니다. 이중화 덕분에 구성 요소가 고장나더라도 계속 작동하기 때문입니다.

RAID 배열에서 서버 드라이브가 고장나면 어떻게 되나요?

RAID 컨트롤러는 고장난 드라이브를 교체 대상으로 표시하면서 나머지 드라이브를 사용해 계속 작동합니다. 기술자가 고장난 드라이브를 핫스왑 베이에서 제거하고 교체 드라이브를 삽입합니다. 컨트롤러는 살아남은 드라이브의 이중화 정보를 사용해 새 드라이브에 데이터를 자동으로 재구축합니다. 서버는 절대 멈추지 않습니다.

Questa pagina è stata utile?

😔
🤨
😃