서버와 메인프레임

2021. 8. 9. 19:17잡다한 IT/개발자도 궁금한 IT인프라

서버(server)와 메인프레임(mainframe)

 

server란 서비스를 제공해 주는 것을 의미하는데 일반적으로 it에서는 웹 서버(web server)를 의미한다.

이 웹 서버는 pc를 구성하는 하드웨어/소프트웨어 중 소프트웨어에서 말하는 서버를 의미하는데 소프트웨어 == > 웹서버 == HTTP, HTTPS프로토콜을 사용하여 사용자들에게 웹 기반의 서비스를 제공할 수 있도록 해 주는 서버를 의미한다

 

Http, https란?

  ==> Hyper text transfer protocol

  서버/클라이언트 모델을 따라 데이터를 통신하기 위한 프로토콜(약속)이다.

 ==> Hyper text transfer protocol secure

  http에 데이터 암호화를 추가한 -즉-보안(secure) 요소를 추가한 프로토콜이다.

  보안요소로서 공개키, 개인키를 추가한 요소다.

 

개발자가 생각하는 서버란? == > 내가 작성한 프로그램이 수행되는 장소

인프라에서 말하는 서버란? == > 하드웨어로서의 서버 ==> pc와 구조는 동일하나 cpu나 메모리 디스크를 좀 더 많이 장착할 수 있어 훨씬 높은 성능과 뛰어난 안정성을 가진 장비

 

하드웨어에서 표현하는 서버는 대표적으로 메인프레임, 유닉스, X86 3가지가 있다.

메인프레임이란?

사전적 정의 == > 수많은 사용자와 애플리케이션, 장치를 다수의 사람에게 동시에(동시성) 지원할 수 있는 컴퓨터 라고 정의 내릴 수 있다.

 

IBM사의 메인프레임(mainframe) ==> 80년~90년대에 나타났는데 이 당시에는 IT장비의 가격이 매우 비싸며 네트워크 인프라 역시 굉장히 열악했기 때문에 1 티어 구조인 메인프레임을 사용하는 환경이 구성되었다.

 

티어란?

1~3 티어로 나누어진다. 각 티어의 특징으로써는

 1 티어 ==> 단순하고 효율적이지만 컴퓨팅 처리 비용이 높은 1 티어 구조이다. 

Host - terminal(호스트-터미널(단말) 방식)

단말기(terminal)에는 모니터와 자판만 있어 입/출력(in/out)만 담당하며 입력된 내용을 바탕으로 컴퓨팅(연산, 저장)을 수행하는 메인 호스트(host, mainframe과 같은 server)를 의미한다.

 

 2 티어 ==> 사용자 화면(UI==User Interface)이나 프로그램 처리 등의 비즈니스 로직은 클라이언트에서 수행하고 대용량의 배치나 실시간(online) 처리는 서버에서 수행되는 ‘client-server구조(2 티어)’. ==> 이는 1 티어 구조의 서버 운영 비용 감소와 기술발전에 따라 발생하였다.

 

 3 티어 ==> 개발이 용이하며 서버 부하를 경감시킬 수 있어서 현재까지도 일부 은행이나 금융사에서 사용하고 있으며 최근에는 클라이언트-웹서버—데이터베이스 서버 구조로 형성(3 티어)이 구성이 되고 있다. 3 티어가 사용되는 가장 구체적인 이유는 대부분이 웹 기반 서비스를 제공하기 때문에 확장성이 좋고 관리하기 쉬우며 프로그램 재사용이 가능한 장점을 가지고 있기 때문이다.

 

동시성이란? == 다수의 사람에게 동시에 ==> 수행되어야 하는 작업들을 스케쥴링하고 그 작업들의 큐(Queue)와 세마포어(semaphore)를 관리해 특정 시점에서는 하나의 작업만 처리되도록 해야 함

각각의 입/출력 장치를 통해 정보를 주고받아야 함. 또한 메모리 관리를 하여 데이터 저장 사용을 함. 즉 CPU, 램, 입/출력장치가 조화롭게 처리될 수 있어야 함

동시에 어떤 작업을 수행해 주는 서버들은 그 서버들 간의 모든 정보를 공유하고 있어야 한다.

 

동시 처리를 위해 가져야 할 4 속성 ACID

원자성 Atomicity.   transaction(트랜잭션)은 완결된 처리가 되어야 하고 일부만 수행되고 중단되서는 안 된다. 

일관성 Consistency.  데이터를 일관된 상태로 유지할 수 있어야 한다.

고립성 Isolation.     동시에 실행되는 다른 트랜잭션에 무관하게 실행돼야 한다.

지속성 Durability.   정상 처리된 트랜잭션의 결과는 영구히 유지되어야 한다.

 

트랜잭션(transaction)이란? 거래, 하나의 완결된 업무 처리, 더 이상 나눌 수 없는 업무 처리의 단위

 

동시성을 제어하는 기술 1. 시스템

메인프레임의 성능이 뛰어나긴 하지만 1대의 기기만 사용하는 것보다 여러 대의 메인 프레임을 논리적으로 하나의 장비처럼 구성해 사용하는 것이 더욱 효율적이다. 이때 장비 간 동시 처리를 위해서 Coupling Facility(CF)라는 기술을 사용해야 한다.

 

메인프레임 1 === CF장비 === 메인프레임 2

 

의 형식으로 2대의 메인프레임을 연결하기 위해선 총 3대의 기기가 필요하다. 이렇게 CF를 기반으로 여러 대의 메인프레임을 단일 시스템처럼 사용할 수 있도록 해 주는 연결 방식을 ‘병렬 SYSPLEX’라 지칭한다.

CF는 유닉스나 x86의 cluster와 기술적으로 유사하지만 CF는 별도의 메인프레임 장비를 활용하는 하드웨어 방식의 클러스터이다.

  *CF는 실제로 애플리케이션을 구동하지는 않는다.

 

CF는 모든 서버의 동시성 제어를 위해 lock 관리, cash 관리, data list관리 를한다.

하드웨어로 제어 하기에 동시성 제어, 정합성 유지가 가능하며 시스템 장애, 오류로 인한 중단 이벤트가 발생할 경우 처리 중이던 작업이 그대로 다른 시스템에서 중단 없이 처리된다.

 

Lock 관리

 다수의 user(사용자)가 단일 data를 사용할 때 상호 간의 변경 사항이 상충되어 데이터 정합성이 해치는 상황을 방지하기 위해 사용자의 권한, 접근 순서에 따라 변경을 제한하는 것이다.

 

Cash 관리

 개별 시스템 상호 간의 정합성 보장을 위한 관리이다.

 

Data list 관리

 모든 메모리의 변경 사항을 추적, 관리하고 서로 다른 장비를 논리적으로 하나의 장비로 제어할 수 있게 한다.

 

 하드웨어로 제어 하기에 동시성 제어, 정합성 유지가 가능하며 시스템 장애, 오류로 인한 중단 이벤트가 발생할 경우 처리 중이던 작업이 그대로 다른 시스템에서 중단 없이 처리된다.

 

동시성을 제어하는 기술 2. 정보공유

 

메인프레임에서 파일 시스템을 공유할 때는 IBM에서만 제공하는 솔루션이자 기법인 DASA(direct access storage device) 기술을 사용한다. CF내부의 다른 메인 프레임 장비가 하나의 스토리지를 공유할 수 있다. 다른 솔루션으로는 CICS(customer information control system) == 유닉스나 리눅스의 웹 로직, 턱시도, 톰캣 같은 역할. 온라인 트랜잭션을 처리하는 프로그램 이 있다.

 

메인프레임의 장점 1.신뢰성

메인프레임은 비싼데 이것을 왜 사용할까? 바로 하드웨어, 운영체제, 그 위에 올라가는 서드파티(third-party)솔루션 까지 검증해서 높은 안정성을 보장한다.

 

Third-party 솔루션

  서버의 제조업체(자회사, 하청 포함)가 아닌 회사가 독자적으로 만든 하드, 소프트웨어를 통칭해 부르는 용어

  Ex) MS window에서 사용하는 한글과 컴퓨터-한컴

 

메인프레임의 장점 2. 안정성(+보안성)

 과부하 상황에서 처리 성능이나 안정성 저하가 유닉스나 x86에 비해 매우 낮다. 또한 폐쇄적인 환경에 더해 사용자의 수도 낮기 때문에 해킹사고가 거의 없다.

 

메인프레임의 장점 3. 유연성

 다른 장비에 비해 처리용량이 뛰어나며 파티션 기능을 활용할 수 있으며 물리적으로 분리된 장비를 논리적으로 하나의 장비로 구성하여 동시처리를 가능하게 하는 ‘논리적 결합’이 가능하다

 Ex) 기존에 10개의 cpu 가 장착된 메인프레임이 20개의 cpu가 필요한 환경에 쳐 해졌을 때 한 번에 cpu20개를 새로 구입하는 것이 아닌 기존의 10개 + 새로 구입할 10개의 cpu를 장착하면 된다.

 

금융사, 대기업, 연구실 등에서 사용되었으나 다음에 기술될 유닉스, x86에 밀려 점점 사용하지 않게 되었다. 하지만 아직까지 사용 중인 메인프레임은 TN3270 프로토콜을 사용해 일반 PC와 메인프레임을 통해 통신할 수 있다.

 

 TN3270 ==> telnet기반의 터미널 모델 명칭이었으나 터미널 생산이 중단된 후 프로토콜의 이름으로 사용됨