제목

리눅스 마스터 2급 대비 정리(12) (응용 분야 - 기술 동향, 활용 기술)

   2023년08월24일     14분읽었습니다.

리눅스 마스터 2급 시험 대비를 위해 관련 책을 바탕으로 내용들을 정리하는 포스트입니다. 이번 포스트는 리눅스의 응용 분야를 알아보는 파트로 기술 동향과 활용 기술에 대해 알아보겠습니다.


개요

이번 포스트는 리눅스의 응용 분야로 기술 동향과 활용 기술에 대해 알아보겠습니다.
참고한 책은 2023 이기적 리눅스 마스터 2급 기본서 - 권소라 저, 영진닷컴입니다. 실습한 리눅스 버전은 CentOS 7이고, ISO 명은 CentOS-7-x86_64-Minimal-2009.iso입니다.

목차

  1. 기술 동향
  2. 활용 기술

기술 동향

리눅스 동향

  1. 현재 리눅스 활용 분야는 크게 서버, 데스크톱 및 개발, 임베디드 분야로 나눌 수 있습니다
  2. 리눅스 탑재 운영체제 판매는 증가하나 유상 리눅스 운영체제 서버 판매는 감소하는 추세입니다
  3. 리눅스는 기본적으로 POSIX 표준, 인터넷 프로토콜 표준 등 국제 표준을 따르고 있습니다
  4. 리눅스는 저작권법상 컴퓨터 프로그램으로서 저작권 보호 대상입니다

클러스터링

  1. 정의
    • 여러 개의 시스템이 하나의 거대한 시스템으로 보이게 만드는 기술입니다
    • 여러 개의 컴퓨터를 네트워크를 통해 연결하여 하나의 컴퓨터처럼 동작하도록 제작한 시스템입니다
  2. 구성요소
    • 클러스터 노드: 클러스터의 실질적인 작업을 처리하는 것, 클러스터 노드는 클러스터에 속하도록 구성해야 함
    • 클러스터 관리자: 각 노드에 대한 자원 분배 및 관리를 할 수 있는 기능을 가짐, 클러스터 노드가 클러스터 관리자 기능을 갖기도 함, 환경에 따라 여러 대의 클러스터 관리자가 존재
  3. 클러스터 구축 목적
    • 공유 프로세싱을 통해 여러 시스템의 프로세싱 능력을 조합해 대용량의 프로세싱 능력을 갖는 하나의 시스템을 제공해 고성능 컴퓨팅(HPC)을 구축합니다
    • 여러 대의 웹서버 노드를 두고 중앙 관리 툴에서 부하를 조정합니다
    • 평소엔 동작하지 않고 주 서버에 문제가 발생했을 시에 백업 서버로 가동합니다. 이러한 기능을 fail-over이라고 합니다
  4. 종류
    • 고계산용 클러스터(HPC Cluster): 고성능 계산능력을 제공하기 위한 목적으로 제작되었으며 과학계산용으로 활용 가치가 높음
    • 부하 분산 클러스터(LVS): 대규모 서비스를 제공하기 위한 목적으로 제작되며 주로 웹서비스 등에 활용가치가 높음.
    • 고가용성 클러스터(HA): 지속적인 서비스 제공을 목적으로 제작되며 주로 금융권, 데이터센터, 회사의 기간업무 등에 사용됨

임베디드 시스템

  1. 정의
    • 컴퓨터의 하드웨어 제어인 프로세스, 메모리 입출력장치와 하드웨어를 제어하는 소프트웨어가 조합되어 특정한 목적을 수행하는 시스템
    • 미리 정해진 특정 기능을 수행하는 프로그램이 내장되어 있는 시스템
  2. 시스템 구성 요소
    • 하드웨어로는 프로세서/컨트롤러, 메모리, I/O 장치, 센서, 구동기 등이 있습니다
    • 소프트웨어는 운영체제, 시스템 S/W, 응용 S/W가 있습니다
  3. 특징
    • 특정 목적에 부합하는 최적화 설계가 가능합니다
    • 실시간 처리를 지원합니다
    • 높은 신뢰성을 보장합니다
    • 소형, 경량 및 저전력을 지원합니다
  4. 임베디드 리눅스 시스템의 장단점
    • 장점
      • 기능성과 확장성이 우수
      • 다양한 CPU Platform을 지원
      • 로열티가 없어 가격 경쟁력이 우수
      • 사용자층이 넓어 오류 수정이 빠르고 안정성이 우수
      • 기존의 데스크탑 개발 환경과 동일하여 개발이 용이
    • 단점
      • 기존의 RTOS보다 많은 메모리를 요구
      • 개발 환경이 Text 기반의 환경이므로 개발에 어려움이 있음
      • GUI 환경을 개발하기 어려움
      • 사용자모드와 커널모드 메모리 접근이 복잡하여 제품화하기 위한 솔루션 구성이 어려움
      • 많은 업체들과 개발자들이 독자적으로 개발하고 있어 표준화가 어려움

활용 기술

서버 가상화

  1. 서버 가상화 정의
    • 서버를 구성하는 모든 자원의 가상화를 의미합니다
    • 하나의 물리적 서버 호스트에서 여러 개의 서버 운영 체제를 게스트로 실행할 수 있게 해주는 소프트웨어 아키텍처입니다
    • 여러 개의 앱과 미들웨어 및 운영체제들이 서로 영향을 미치지 않으면서 동시에 사용될 수 있도록 해줍니다
    • 하이퍼바이저는 기존의 물리적 머신의 자원을 추상화해 가상머신상에서 운영됩니다
  2. 서버 가상화의 도입 목적
    • 서버들을 하나의 서버로 통합해 가상환경을 구동시킴으로써 물리서버 및 공간을 절감합니다
    • 하나의 서버가 오작동해도 다른 서버에서 동일 애플리케이션을 구동하므로 Redundancy를 확보할 수 있습니다
    • 서버 자원 통합 운영으로 하드웨어 가용성을 증가시킵니다
    • 체계적이고 안정적인 정보 센터 이전으로 업무 연속성을 확보할 수 있습니다
    • 손쉬운 이중화 구성과 유연한 자원 할당으로 시스템 가용성과 안정성을 확보합니다
    • 정보 시스템의 효율적인 배치를 통한 그린 IT 환경을 구성합니다
    • 통합구축, 공동 활용, 유지 관리, 전력 및 관리 비용 등 중복 투자 낭비 및 예산 절감합니다
  3. 하이퍼바이저(Hypervisor)
    • 가상머신과 하드웨어 사이에 우치해 다수의 가상머신들이 동작할 수 있게 해줍니다
    • CPU 및 메모리 등을 포함한 하드웨어 자원을 각 가상머신에 논리적으로 분할 할당하며 이들의 스케줄링을 담당합니다
    • 하드웨어 자원을 공유함에 있어 가상머신 간의 고립화를 보장합니다
    • 하이퍼 바이저는 운영 방식에 따라 Native 방식과 Hosted 방식으로 나뉩니다.
      • Native: 하드웨어에 직접 설치해 실행, 예로는 Xen, KVM, Xen Server, ESXi 등
      • Hosted: 일반 애플리케이션처럼 프로그램으로 실행, 예로는 Virtual Box, VMware work-station 등
  4. 오픈소스 하이퍼바이저 비교
    • Xen
      • 리눅스 기본 커널에 포함
      • KVM과 호환되는 가상 자잋 관리자 사용
      • 네트워크 MAC 주소 고정 가능
      • Xen 설치 후 Xen 커널로 부팅 필요
      • 반가상화 및 전가상화 모두 이용 가능
      • 상용화된 제품이 많음
    • KVM
      • x86 시스템 기반으로 CPU 전가상화 방식을 사용
      • CPU 가상화 기술인 인텔 VT 및 AMD-V 기반으로 동작하는 공개형 기술
      • 리눅스 기본 커널 포함
      • Xen과 호환되는 가상 장치 관리자 사용
      • 네트워크 Mac 주소 고정 가능
      • KVM 및 KVM 모듈 설치 후 관련 모듈 로딩 필요
    • Virtual Box
      • 리눅스 기본 커널에 포함되지 않음
      • 설치 후 관련 모듈 로딩 필요
      • 독자적인 가상 장치 관리자 사요
      • XEN 및 KVM에서 사용하는 가상 자잋 관리자에 비해 디자인이 우수
      • 전가상화만 지원
      • 대용량의 가상머신 생성 시에도 빠르게 설치 가능
      • Mac OS 지원으로 아이폰 OS 관련 응용프로그램 개발 시에 유용

서버 가상화 - 클라우드 컴퓨팅

  1. 정의
    • 공유 구성이 가능한 컴퓨팅 리소스를 통합 운영하여 어디서나 간편하게 요청에 따라 네트워크를 통해 접근하는 것을 가능하게 하는 것입니다
      • 공유 구성이 가능한 컴퓨팅 리소스: 네트워크, 서버, 스토리지,애플리케이션 서비스
  2. 특징
    • 사업자와 직접 상호작용하지 않고 사용자의 개별 관리 화면을 통해 서비스를 이용할 수 있습니다
    • 모바일 기기 등의 다양한 디바이스를 통해 서비스에 접속할 수 있습니다
    • 사업자의 컴퓨팅 리소스를 여러 사용자가 공유하는 형태로 이용합니다
    • 필요에 따라 필요한 만큼의 스케일업과 스케일다운이 가능합니다
    • 이용한 만큼 요금이 부과되어 증량이 측정 가능한 서비스입니다
  3. 장점
    • 소프트웨어와 데이터를 통합관리함으로써 소프트웨어 업데이트 작업 및 데이터 유지보수 효율성을 높여 비용을 절약할 수 있습니다
    • 컴퓨팅 리소스를 필요한 만큼 확장하고 필요하지 않을 때 축소하는 등 유연한 활용이 가능합니다
    • 하드웨어 장애가 발생하더라도 서비스를 계속해서 사용할 수 있도록 구성되어 있기 때문에 자체 시스템을 구축할 때보다 낮은 가격에 가용성이 높은 환경을 사용할 수 있습니다
    • 클라우드가 제공하는 하드웨어 소프트웨어를 이용하여 시스템을 신속하게 구축할 수 있습니다
  4. 서비스 종류
    • IaaS(Infrastructure as a Service)
      • 서버나 스토리지 같은 하드웨어 자원만을 임대해 주는 클라우드 서비스 AWS의 EC2드이 있습니다
    • PaaS(Platform as a Service)
      • 소프트웨어 서비스를 개발하기 위한 플랫폼을 제공하는 클라우드 서비스입니다. 대표적으로 구글 앱 엔진이 있습니다
    • SaaS(Software as a Service)
      • 클라우드 환경에서 동작하는 응용 프로그램을 서비스 형태로 제공합니다. 여로 메일 서비스, 네이버 클라우드, 구글 드라이브 등이 해당합니다
  5. 클라우드 서비스 모델
    • 사설 클라우드(Private Cloud): 기업들이 ‘자체적’으로 데이터센터 안에 클라우드 환경을 구축해 사용하는 방식, 회사 내 IT 리소스를 이요하려는 사용자가 자유롭게 어플리케이션 개발 및 운용이 가능한 환경 제공을 목표로 합니다
    • 공용 클라우드(Public Cloud): 클라우드 사업자가 시스템을 구축하고 인터넷 망 등의 네트워크를 통해 불특정 다수의 기업과 개인에게 서비스를 제공합니다. 필요한 컴퓨팅 자원을 단기가넹 저비용으로 마련할 수 있고 운용 관리 부담이 적습니다
    • 하이브리드 클라우드(Hybrid Cloud): 사설 클라우드와 공용 클라우드를 동시에 제공하고 양쪽의 장점만 선택해 사용도 가능한 클라우드 서비스를 의미합니다
  6. 구축환경
    • 아래 환경들은 기본적으로 IaaS 형태의 클라우드 컴퓨팅 오픈소스 프로젝트입니다.
    • 오픈스택(Open Stack): 5개의 코어 프로젝트 노바, 스위프트, 클랜스, 키스톤, 호라이즌, 퀀텀이 유기적으로 연결되 하나의 커다란 클라우드 컴퓨팅 시스템을 구축합니다
    • 클라우드 스택(Cloud Stack): 클라우드 서비스를 위한 자원의 배치, 관리, 클라우드 컴퓨팅 환경 구성을 하기 위해 클라우드 스택을 이용합니다
    • 유칼립투스(Eucalyptus): 아마존 EC2 API와 동일한 API를 쓰고있고 완벽하게 호환됩니다. 분리된 물리 자원에서 유칼립투스 컴포넌트들을 운영할 수 있는 환경을 지원합니다

서버 가상화 - 빅데이터

  1. 정의
    • 기존 데이터베이스 관리 도구의 데이터 수집, 저장, 관리, 분석 역량을 넘어서는 데이터입니다
  2. 3대 요소
    • 볼륨: 수십 테라바이트 혹은 수십 페타바이트 이상이 빅데이터의 범위에 해당합니다
    • 속도: 빅데이터의 속도적인 특징은 크게 실시간 처리와 장기적인 접근으로 나눌 수 있습니다. 데이터의 수집, 저장, 분석 등이 실시간으로 처리되어야 합니다. 하지만 모든 데이터가 실시간 처리만 요구하는 것은 아닙니다
    • 다양성: 데이터는 정형화 정도에 따라 정형, 반정형, 비정형으로 구분합니다. 빅데이터는 비정형 데이터도 처리할 수 있어야 합니다.
  3. 하둡(Hadoop)
    • 대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈 소스 프레임워크
    • 분산 파일 시스템인 HDFS에 데이터를 저장하고, 분산 처리 시스템인 맵리듀스를 이용해 데이터를 처리합니다

임베디드 시스템 - 모바일

  1. 정의
    • 스마트폰의 OS란 스마트폰을 구성하고 있는 하드웨어 부품인 메모리, LCD, CPU 등의 기계적 부품들을 효율적으로 관리 및 구동하게 하며, 사용자와의 편리한 의사소통을 위해 만들어진 소프트웨어 플랫폼입니다
  2. 리눅스 기반의 공개형 운영체제
    • 마에모: 노키아가 스마트폰 및 인터넷 태블릿용으로 만든 소프트웨어 플랫폼
    • 모블린: 인텔과 리눅스 재단이 개발한 오픈소스 운영체제로 MID, 넷붕 등 임베디드 모바일 기기를 위해 만들어짐
    • 미고: 인텔의 모블린과 노키아의 미에모가 합병해 만든 운영체제 프로젝트, 인텔과 노키아는 빠졌지만 프로젝트는 여러 버전이 개발 중
    • 리모: 삼성전자, NEC, 파나소닉, 바다폰등이 참여해 시작한 프로젝트로 프로젝트가 MeeGo로 대체됨
    • 타이젠: 인텔과 삼성을 주축으로 한 리눅스 재단, MeeGo 개발자 등이 함류해 만든 리눅스 기반의 무료 공개형 모바일 운영체제, 웹 표준과 HTML 5를 지원
    • iOS: 애플 전용 운영체제, 가장 많은 응용 프로그램을 보유한 운영체제
    • 안드로이드구글에서 만든 스마트폰용 운영체제로 언어는 자바 사용

임베디드 시스템 - 스마트 TV

  1. 정의
    • 텔레비전에 인터넷 접속 기능이 결합되어 각종 앱을 설치해 TV 방송 시청 이외의 다양한 기능을 활용할 수 있는 다기능 TV입니다.
  2. 스마트 TV 운영체제
    • 타이젠: 오픈소스 모바일 운영체제로, 리눅스 커널을 기반으로 하며 HTML5 및 C++ 기반으로 만들어집니다. IoT에 강점이 있고, 주기업은 삼성전자입니다.
    • 웹OS: 리눅스 커널에서 구동되는 모바일 운영체제입니다. 멀티태스킹이 편리하며 주기업은 LG전자입니다

임베디드 시스템 - IVI(In-Vehicle Infotainment)

  1. 정의
    • 정보전달에 오락성을 가미한 시스템이란 의미입니다. 최신 시스템에는 차량 관련 정보 및 정기점검 안내, 운전자 음성인식 기능, 도난 방지 경보 기능 등의 최첨단 기술이 적용됩니다
  2. 특징
    • GENIVI 표준 플랫폼 기반의 인포테인먼트 시ㅡ템으로 운전자 편의성 및 안정성을 증대시킵니다
  3. GENIVI(GENEVA In-Vehicle Infotainment)
    • 오픈 소스 기반 플랫폼 얼라이언스입니다. 오픈 소스 기반의 차량 멀티미디어 플랫폼 표준화 활동입니다.

참고 자료

  1. 2023 이기적 리눅스 마스터 2급 기본서 - 권소라 저, 영진닷컴