Cgroups

cgroups
원저자Paul Menage, Rohit Seth
개발자kernel.org (Tejun Heo et al.), freedesktop.org
발표일2007년
프로그래밍 언어C
운영 체제리눅스
종류시스템 소프트웨어
라이선스GPL 및 LGPL
웹사이트www.kernel.org/doc/Documentation/cgroup-v1/ and www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/

cgroups(control groups의 약자)는 프로세스들의 자원의 사용(CPU, 메모리, 디스크 입출력, 네트워크 등)을 제한하고 격리시키는 리눅스 커널 기능이다.

구글의 엔지니어들이 2006년에 이 기능에 대한 작업에 착수하였고 당시 이름은 "프로세스 컨테이너"(process container)였다.[1] 2007년 말에 리눅스 커널 문맥에서 "컨테이너"라는 용어의 의미가 여러 개이므로 혼란을 방지하기 위해 이름이 "컨트롤 그룹"(control groups)으로 변경되었으며, 컨트롤 그룹 기능은 2008년 1월에 출시된 커널 버전 2.6.24에 리눅스 커널 메인라인으로 병합되었다.[2] 그 뒤로 개발자들은 수많은 새로운 기능과 컨트롤러들을 추가해오고 있는데, 이를테면 kernfs 지원,[3] 방화벽,[4] 통합된 계층구조를 포함한다.[5]

채택

다양한 프로젝트들이 cgroups를 기반으로 사용하고 있으며, 여기에는 코어OS, 도커, 하둡, Jelastic, Kubernetes,[6] lmctfy (Let Me Contain That For You), LXC (리눅스 컨테이너/LinuX Containers), systemd, Mesos, Mesosphere,[6] HTCondor 등이 있으며 메인라인 리눅스 커널에 채택된지 3년이 지난 2010년 11월에 레드햇 엔터프라이즈 리눅스 6과 같은 주요 리눅스 배포판에도 또한 채택되었다.[7]

같이 보기

각주

  1. Jonathan Corbet (2007년 5월 29일). “Process containers”. LWN.net. 
  2. Jonathan Corbet (2007년 10월 29일). “Notes from a container”. LWN.net. 2015년 4월 14일에 확인함. The original 'containers' name was considered to be too generic – this code is an important part of a container solution, but it's far from the whole thing. So containers have now been renamed 'control groups' (or 'cgroups') and merged for 2.6.24. 
  3. “cgroup: convert to kernfs”. 2014년 1월 28일. 
  4. “netfilter: x_tables: lightweight process control group matching”. 23 April 2014. 24 April 2014에 원본 문서에서 보존된 문서. 
  5. “cgroup: prepare for the default unified hierarchy”. 2014년 3월 13일. 
  6. “Mesosphere to Bring Google’s Kubernetes to Mesos”. Mesosphere.io. 2014년 7월 10일. 2015년 9월 6일에 원본 문서에서 보존된 문서. 2014년 7월 13일에 확인함. 
  7. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/pdf/6.0_Release_Notes/Red_Hat_Enterprise_Linux-6-6.0_Release_Notes-en-US.pdf

외부 링크

  • Linux kernel documentation on cgroups
  • Linux kernel Namespaces and cgroups by Rami Rosen
  • Namespaces and cgroups, the basis of Linux containers (including cgroups v2), slides of a talk by Rami Rosen, Netdev 1.1, Seville, Spain, 2016
  • Understanding the new control groups API, LWN.net, by Rami Rosen, March 2016
  • Large-scale cluster management at Google with Borg, April 2015, by Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune and John Wilkes
  • Job Objects, similar feature on Windows
  • v
  • t
  • e
가상화 소프트웨어
플랫폼 가상화 소프트웨어 비교
하드웨어
가상화
(하이퍼바이저)
네이티브
호스트 방식
특수한 방식
독립 방식
도구
운영체제 수준
가상화
데스크톱
가상화응용 프로그램
가상화
네트워크
가상화
  • DOVE
  • NVGRE
  • 오픈 v스위치
  • 버추얼 시큐리티 스위치
  • VXLAN
관련 항목: 에뮬레이터 목록
  • v
  • t
  • e
조직
리눅스 커널
지원
기술
디버깅
시작 프로세스
ABIs
APIs
사용자 공간
FS, 데몬
래퍼 라이브러리
커널 부분
시스템 호출 인터페이스
커널 내부
  • ALSA
  • DRI
  • Video4Linux
  • New API
  • 크립토API
리눅스 커널
구성요소
  • 커널 모듈
  • BlueZ
  • cgroups
  • 콘솔
  • bcache
  • 장치 매퍼
  • dm-cache
  • dm-crypt
  • DRM
  • EDAC
  • evdev
  • 커널 동일 페이지 병합 (KSM)
  • LIO
  • 프레임버퍼
  • LVM
  • KMS 드라이버
  • 넷필터
  • Netlink
  • nftables
  • Network scheduler
  • perf
  • SLUB
  • zram
  • zswap
변종들
가상화
리눅스 채택
리눅스의 사용 범위
  • 데스크톱
  • 임베디드
  • 클라이언트:
    • LTSP
    • Thinstation
  • 서버:
채택자
  • 리눅스 채택자들 목록
  • 리눅스의 상용 소프트웨어