Connecting

IT 인프라 2편 서버 - 유닉스 & x86 본문

인프라

IT 인프라 2편 서버 - 유닉스 & x86

팬도라 2018. 7. 10. 15:19
반응형

IT 인프라 2편 서버 - 유닉스 & x86

유닉스 서버

  • 지난 시간에는 메인프레임 서버에 대해서 알아보는 시간을 가져 보았습니다. 이번시간에는 유닉스 서버와 x86 서버는 무엇인지 알아보도록 하겠습니다.

  • 일단 유닉스에 대해 알아볼 필요가 있습니다.

  • 유닉스는 대부분의 현대적 컴퓨터 OS의 원형이라고 할 수 있습니다. 우리나라에서 대부분 사용하고 있는 윈도우가 아닌 리눅스, 안드로이드, macOS, iOS등 PC에 이어 모바일에 이르기 까지 우리가 일상 생활에서 사용하는 OS는 유닉스가 조상이라고 할 수 있습니다.

  • 유닉스가 탄생 배경이나 발전사항을 서술하다면 이번 장에서 다루기가 어려울 정도로 방대한 양의 내용이 되기 때문에 이번 장에서는 서버위주로 설명을 진행하도록 하겠습니다.

  • 지난 시간 메인프레임의 다양한 장점과 특징을 알아보았습니다. 하지만 크기가 매우크고 비싸다는 점 때문에 도입시 많은 비용이 들어가는 것이 큰 단점이었습니다.

  • 사람들은 물리적인 크기가 작고 접근성도 쉬운 새로운 시스템을 원하게 되었고 1980년대 몇몇 제조사에서 유닉스 서버를 개발하기 시작했습니다. 보통 유닉스 서버용 CPU를 만들어서 아키텍쳐에 맞는 OS도 개발하게 되었는데 IBM, HP, SUN(2009년 오라클에 인수) 3강 구도를 서버를 제작 판매하였습니다.

  • 필자가 가장 처음 운영하게 된 서버가 IBM의 AIX이었습니다. 거기에 WAS를 통해서 서비스를 제공하는 형태였는데 당시에 주기별로 DAT테이프에 백업을 진행했던 기억이 아직도 생각나네요.

  • 2000년대 들어서면서 x86으로 포팅하는 작업이 활발하게 이루어지게 되었습니다.

    • 과거 IBM의 POWER CPU가 있어는데, 사실 IBM에서 아키텍쳐를 만들고 메인프레임 용도로만 사용하기 아깝다는 생각을 하여 다른 용도를 찾는 도중 애플과 모토로라의 합작으로 인해 애플의 Power PC가 탄생하는 계기가 되었습니다.

    • 90년대 후반만 해도 x86에 비해 성능의 우위가 있었음은 물론 PC 업계의 양대 표준인 애플과 IBM이 공동으로 아키텍쳐를 추진하니 기대감이 있었던 것도 사실입니다.

    • 하지만 이러한 합작 형태는 인텔과 마이크로소프트의 반격과 성능 향상이 부진하는 등, 애플이 2006년 인텔 CPU로 갈아타게 되었고, 마이크로소프트도 Power PC 윈도우NT를 개발하였으나 4.0으로 결국 지원을 중단하게 되어 역사속으로 사라지게 되었습니다.

  • 1990년대 말 유닉스 서버의 전성기가 일어나고, 이때 서버 가상화라는 개념이 생기게 되었습니다. 저번 시간에 언급했던 LPAR과 같은 개념이 유닉스에 적용되기 시작한 것입니다.

  • 논리 파티셔닝은 물리 서버 1대의 여러 논리적인 서버를 설치하여 자원을 효율적으로 사용할 수 있도록 하는 개념으로서, 이를 위해서 CPU와 메모리, I/O 자원들을 분할하여 사용하게 됩니다.

    • IBM에서는 이전에 사용했던 LPAR이라고 부르게 되었고, 좀 더 발전한 DLPAR(Dynamic Logical PARtitions)이 나오게 되었습니다.

      DLPAR : LPAR에서 CPU나 메모리등 자원을 조정할 때 서버를 재기동 하지 않고 사용할 수 있는 기술

  • 다른 개념으로는 마이크로 파티셔닝이라는 기술도 있는데 이는 CPU를 최소 1/10 단위로 할당할 수 있고, 1/100 단위만큼 조정할 수도 있었습니다. 이 기술은 Virtual I/O라는 기술과 맞물리면서 관심을 가지게 되었는데 Virtual I/O는 마이크로 파티션으로 하나의 물리 서버에 수 많은 논리적 서버를 만들 수 있다보니 물리적인 I/O카드에 한계가 발생하여 이를 가상화 하여 공동으로 이용할 수 있도록 하는 기술을 말합니다.

  • HP의 경우 nPAR 셀 보드로 단위로 분리되어 하나의 셀 보드의 CPU나 메모리가 장애가 발생하여도 다른 셀 보드에 문제가 발생하지 않도록 하는 기술을 가지고 있습니다. 이와 반대로 vPAR은 여러 셀 보드를 하나로 묶어서 CPU나 메모리를 논리적으로 할당해주기도 합니다.

  • 각 화사마다 가상화는 제공하는 기술의 명칭은 다르나 실질적으로 동작하는 형태는 크게 다르지 않습니다. 과거의 가상화는 호스트 OS 기반 위에 동작하다 보니 오버헤드 문제와 안전성 문제로 인하여 개발용으로만 사용되는 것이 대부분이었지만 지금은 이러한 문제점이 많이 해결되어 가상화 기술을 주변에서도 흔히 볼 수 있는 기술이 되었습니다.

    • 가상화기술에는 대표적으로 Type-1, Type-2, 컨테이너 방식 3가지로 나눌 수 있습니다.

    • 각각 가상화 방식에 따른 솔루션과 방식이 다르지만 현재 컨테이너 방식(프로세스 격리방식) 가상화인 도커와 같은 가상화 플랫폼이 많이 사용되고 있으며, 위의 그림과 같이 각각의 가상화 타입을 합쳐서 사용하기도 합니다.

x86 시스템

  • x86은 시스템은 대부분 보급된 CPU가 바로 x86 시스템입니다. 약 30년전 인텔의 80286이라는 CPU를 개발하였고(이전에 8086, 8088도 있었습니다.) 이후 기술의 발전에 따라 자사의 CPU의 이름을 구분하기 위해서 386, 486이라는 이름을 붙이게 됩니다.

  • 486 CPU 다음 세대의 이름이 586이었으나 다른 CPU 제조사들이 호환 CPU를 비슷한 이름으로 제작하게 되면서 일반인들의 CPU 구별이 어려워 지자, 인텔은 자사의 이름을 보장해 달라고 소송을 하게 되었지만 결국 패배하게 되면서 펜티엄 브랜드 출시와 인텔 인사이드 브랜드 마켓팅을 대대적으로 성공시키면서 현재의 인텔이 있게된 계기가 되었습니다.

  • x86은 이러한 과거 인텔이 사용했던 아키텍쳐 명칭이라고 생각하면 되며, 아직까지도 고유 명칭으로 사용하게 되었습니다.

    • x86이 32비트 프로세서이기 때문에, 프로그램 명칭에 x86이라고 적혀있다면 32비트 응용프로그램이라고 말합니다.

  • 여기서 가장 많이 말하는 비트는 매우 중요한 요소입니다. 운영체제도 우리가 사용하는 프로그램도 하드웨도 비트를 지원해야 합니다.

    • 대표적으로 32비트 윈도우는 램을 4GB 밖에 인식하지 못하는데 이는 2의 32승이 4GB이기 때문입니다.

    • 이렇게 컴퓨터가 제 성능을 발휘하기 위해서는 CPU와 OS, 애플리케이션이 같은 비트로 구성되는 것이 중요합니다.

x86의 대표주자 인텔

  • 컴퓨터를 잘 모르시는 분들이라도 인텔이라는 회사는 들어 보셨을 것입니다.

  • 흔히 하스웰, 브로드웰, 스카이레이크, 카비레이크 등등 CPU 코드 네임으로 많이 명칭하는데요. 지금까지 Tick-Tock 전략으로 공정 미세화 - 신규 아키텍쳐 전략을 지켜왔으나 최근에 P(Process)-A(Architecture)-O(Optimaization) 전략으로 수정 전환하여 개발하고 있습니다.

    • 이는 반도체 공정의 미세화 공정이 한계에 다다랐기 때문에 말하는 의견이 지배적입니다.

    • 반도체 공정이 미세화가 이루어지게 되면, 집적도가 높아져서 더 많은 트렌지스터를 넣을 수도 있고, 같은 웨이퍼에 더 많은 제품을 생산할 수 있습니다.

    • 더불어 전자간 이동거리가 짧아져 성능 향상과 소비전력도 떨어지게 됩니다.

    • 하지만 미세화 공정이 이루어지게 되면 이를 생산 및 개발하기 위한 많은 비용은 물론 불량률도 올라가기 때문에, 8세대 제품이 아직 14nm 공정에 머물러 있습니다.

      • AMD 라이젠 피나클릿지 CPU의 경우 인텔보다 앞서 12nm 공정에서 생산되고 있는데 이는 인텔과 AMD의 CPU 생산방식의 차이가 있기 때문입니다. 이부분은 다음의 설명할 기회가 있다면 설명해 드리도록 하겠습니다.

  • 지난 2018년 1월 일명 CPU 게이트 사건이라고 부르는 스펙터 버그와 멜트다운 버그 때문에 한동한 서버 시장에 긴장감이 감돌기도 하였죠.

    • 이 버그는 보안상 매우 취약하고도 위험한 버그이기도 하며 전세계 x86 서버의 대부분이 인텔 CPU를 사용하기 때문에 국내외 서버 보안에 비상사태가 걸리기도 했습니다.

    • 현재는 보안패치로 인해서 사태가 안정화 되었지만 AMD에게 서버 시장의 일부를 내주게 되었습니다.

  • 인텔의 서버용 CPU는 제온(Xeon)이라는 브랜드명을 사용합니다. 데스크탑 CPU와는 달리 서버의 안전성과 성능을 보완하기 위해서 2~3년간의 추가적인 설계기간을 가지고 출시하게 됩니다. 때문에 데스크탑 CPU보다 코드네임이 이전버전을 판매하는 것이 일반적입니다.

  • 제온 CPU는 E3, E5, E7 3가지 등급으로 나뉘어 집니다.

    • E3는 엔트리급 CPU로서 보통 1U서버에 많이 사용되고 4코어 미만으로 소형 웹서버나 워크스테이션에 사용됩니다.

    • E5는 2개의 CPU를 사용하는 2U 서버에 많이 사용되며, 4~22코어 까지 다양한 규격이 존재하고 대부분의 기업에서 사용하는 CPU입니다.

    • E7는 4개 CPU를 사용하는 4U 서버에 사용하며, E5에 비해 높은 캐시와 클럭을 가지고 있습니다. 또한 문제발생시 로그기록에 사용되는 RAS 기능이 있기 때문에 미션 크리티컬한 시스템에서 많이 사용됩니다.

x86 서버 부품

  • 최근 PC에서는 DDR4급의 메모리가 장착되고 있습니다. 하나 CPU에 따라 지원하는 메모리 타입이 다르기 때문에 반드시 확인하고 넘어가야 합니다. (당연히 DDR3와 DDR4는 호환이 불가능합니다.)

  • 서버에 장착되는 메모리는 4GB ~ 128GB 까지 일반 PC에서는 상상할 수 없을 정도로 확장성이 뛰어납니다. 4U 서버에서는 메모리 슬롯이 48개까지 지원하니 128GB 메모리를 장착하면 최대 6TB 메모리를 장착하는 셈이됩니다.

    • 메모리를 이렇게 까지 많이 필요하다고 생각할 수 있겠지만 메모리야 말로 최소 비용으로 최대의 효과를 누릴 수 있는 부품이기 때문에 최대한 많은 메모리를 장착하기도 합니다. (일부 메모리를 기반으로 사용하는 서버의 경우 응용프로그램에서 라이센스를 별도로 요구하는 경우도 있습니다.)

  • 메모리를 증설할 때는 다음과 규칙이 있는데 반드시 주의해서 장착하셔야 합니다.

    • 위의 사진은 서버 메인보드의 모습인데 생김세가 일반 메인보드와 다른 것을 확인할 수 있습니다. CPU가 2개를 별도로 설치할 수 있고 각각의 메모리 슬롯도 존재하는 것을 볼 수 있습니다.

    • 여기서 중요한 것은 CPU가 인식할 수 있는 메모리 슬롯의 제한이 있다는 점입니다. 위의 사진에서 한 CPU당 설치할 수 있는 메모리 슬롯이 8개 인데 만약 CPU하나에 메모리를 16개를 설치하게 되면 동작하지 않습니다.

    • 이는 각 CPU안에 메모리 컨트롤러와 I/O 컨트롤러가 내장되어 있고 각각의 컨트롤러는 각 슬롯에 대해서만 접근 및 관리 할 수 있기 때문입니다.

    • 각각의 CPU와 메모리는 독립적으로 동작하게 되며, 이러한 환경에서 동시성이 깨지지 않도록 관리해 주는 역할이 바로 OS가 됩니다.

  • 데이터를 저장하는 디스크도 매우 중요한 요소가 됩니다.

    • 연결방식도 위에 그림과 같이 SATA 방식과 SAS 방식 2가지가 있고 디스크 RPM수도 일반 디스크에 비해 빠른편입니다.

    • 요즘은 SSD을 많이 도입하는 추세이며, 각 스토리지는 서버별 연결할 수 있는 수와 용량이 다양하기 때문에 용도에 맞춰서 구입해야 합니다.

    • 다중 디스크를 운영할 때 가장 고려해야 할 점이 데이터를 안전하게 보관하는 것인데요, 이러한 문제점을 해결하기 위해서 가장 많이 사용되는 것이 RAID입니다. 이는 다음에 기회가 되면 다시 자세히 설명해 드리도록 하겠습니다.

    • SAS 컨트롤러는 SATA 방식을 지원하지만 SATA 컨트롤러를 SAS를 지원하지 않기 때문에 반드시 유의하셔야 합니다.

  • 서버에서 계속해서 빠지지 않고 나오는 것이 안전성입니다. 때문에 서버에서 사용하는 PSU(파워서플라이)의 경우도 굉장히 고효율 그리고 전력 이중화를 통해서 혹시 모를 문제에도 대비합니다.

    • 위의 그림에서 볼 수 있듯히 3개의 파워서플라이가 존재하는데 이는 3개 중에 하나가 고장나는 상태가 발생하더라도 전원을 중지하지 않고 바로 교체할 수 있도록 하는 기능을 제공합니다.

    • 만약 처리량이 급증하여 전원공급량이 늘어났을 때 충분한 전력 공급이 되지 않는다면 바로 장애로 일어날 수 있기 때문에 대부분의 랙형 타입의 서버는 2중 파워를 지원하고 단일 파워를 사용하는 경우에는 굉장히 고효율의 파워를 사용하거나 서비스의 중요도가 낮은 경우에 사용하는 것이 대부분입니다.

  • 마지막으로 서버에서 가장 중요한 확장 슬롯입니다. 서버에서 슬롯이 많은 이유는 확장성 때문인데요. 이러한 확장성은 연결해야 하는 장비가 많고, 데이터를 안전하게 이동하고, 네트워크의 장애를 대비하여 2중으로 연결하는 등의 작업이 필요하기 때문입니다.

    • 위의 그림에서 보는 것과 같이 NIC라고 불리우는 이더넷 카드를 연결하는 것이 대부분이며, 속도는 최대 10Gbps에 이릅니다. 이를 LACP를 사용해서 2개의 회선을 하나로 묶어서 사용하는 경우도 많습니다.

      • (물론 장비들이 지원해야 합니다.)

    • 타입은 UTP, FC(광케이블) 종류가 사용되며, UTP보다는 광케이블을 많이 사용하고 LC 타입을 많이 사용합니다.

      • 케이블에도 종류가 많기 때문에 따로 시간을 내서 설명해드리도록 하겠습니다.

  • 이외에도 서버에는 수많은 특수한 장비들이 많이 장착됩니다. 서버를 관리하고 인프라에 관심이 있다면 각 확장인터페이스의 역할과 벤더별 지원사양, 호환리스트 등 검토를 꼼꼼히 확인하는 것이 필수 입니다.

서버의 형태

  • 서버도 형태와 모양이 다양합니다.

  • 일반적으로 사용되는 서버는 랙이라는 곳에 설치되는데 각각의 유닛(공간)이 5cm 정도 되는 규격입니다.

  • 서랍 넣듯이 밀어넣는 구조로 되어 있으며 어느 회사의 제품을 구매하더라도 호환이 된다는 것이 가장 큰 장점입니다.

    • 위의 그림과 같은 형태를 띄고 있고 가장 일반적인 형태로 설치됩니다.

    • 1칸 사이즈를 1U, 2칸 사이즈를 2U 이런식으로 말하며, 절반이면 Half-Rack, 전체이면 Full-Rack 이라고 부릅니다.

  • 랙형과 다르게 타워형으로 우리가 일반적으로 사용하는 PC형태로 설치하는 경우도 있는데 보통 워크스테이션이라고 불리고, 크기는 일반적인 PC보다 크다는 것이 특징입니다.

    • 타워형의 경우 일반적으로 설치만하면 되는 구조이기 때문에 관리가 쉬워 소규모 장소에 설치하기 용의하지만 많은 서버를 두기에는 공간활용도가 떨어진다는 단점을 가지고 있습니다.

  • 블레이드 서버라는 것도 존재하는데 서버의 양이 급격하게 증가하게 되면서 한정된 공간에 최대한 많은 서버를 설치하기 위한 얇은 서버라고 생각하면 됩니다.

  • 다만 Enclosure라고 부르는 10U크기의 전용 샤시가 있어야 설치가 가능하기 때문에 예전만큼 많이 사용되지는 않습니다.

  • HP에서 나온 Moonshot이라는 서버도 있습니다. 카트리지 형태의 서버로 각 카트리지에 CPU, 메모리, 네트워크, SSD까지 설치되어 카트리지를 꼽으면 증설할 수 있기 때문에 매우 집적률이 높다고 할 수 있습니다.

  • 이러한 서버의 다양한 형태와 업체별 특성이 있기 때문에 서버를 도입하고 운영하기 위해서는 각 회사별 하드웨어 리스트와 사양을 꼼꼼히 확인하는 습관이 반드시 필요합니다.

  • 이렇게 확인하지 않고 구입하게 되면 인식이 되지 않아 곤란한 상황이 생길 수 있기 때문입니다. 서버가 IT 인프라에 가장 기본이 되는 만큼 아주 디테일한 부분까지 꼼꼼하게 체크하는 습관을 길러야 합니다.

  • 각 서버의 특징이나 형태, 목적의 관해서는 각 회사의 홈페이지를 참조하시면 최신 서버의 특장점을 자세히 살펴보실 수 있을 것 입니다.


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

IT 인프라 6편 가상화  (0) 2018.10.19
IT 인프라 5편 네트워크  (0) 2018.10.05
IT 인프라 4편 - 백업 스토리지  (0) 2018.10.05
IT 인프라 3편 스토리지  (2) 2018.08.05
IT 인프라 1편 서버-메인프레임  (2) 2018.07.08
Comments