맨위로가기

CRIU

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

CRIU(Checkpoint/Restore In Userspace)는 사용자 공간에서 실행 중인 프로세스의 상태를 체크포인트화하고 복원할 수 있도록 하는 도구이다. OpenVZ 프로젝트의 일부로 개발되었으며, 컨테이너 마이그레이션을 지원하는 것을 목표로 한다. 2011년 파벨 예멜리아노프에 의해 처음 공개되었으며, x86-64 및 ARM 아키텍처 시스템에서 사용 가능하다. TCP 연결 마이그레이션 기능도 지원하며, OpenVZ, DMTCP, BLCR, Linux C/R과 같은 유사한 프로젝트가 존재한다.

더 읽어볼만한 페이지

  • 리눅스 소프트웨어 - 구글 크롬
    구글 크롬은 구글이 개발한 웹 브라우저로, 크로미엄 프로젝트를 기반으로 오픈 소스 코드를 활용하여 개발되었으며, 다양한 기능과 운영체제 지원을 통해 세계 시장 점유율 1위를 기록하지만 개인 정보 보호 정책으로 비판을 받기도 한다.
  • 리눅스 소프트웨어 - HPLIP
    HPLIP는 HP에서 제공하는 리눅스용 프린터 및 스캐너 드라이버이자 툴 모음으로, GUI 환경 설정 및 명령줄 유틸리티를 통해 장치 구성, 인쇄, 스캔, 팩스 등의 작업을 지원하며, 자동 설치 프로그램과 hpiod 프로세스와 연동되어 작동한다.
CRIU - [IT 관련 정보]에 관한 문서
기본 정보
기타
발음/kriu/

2. 역사

CRIU는 2011년 OpenVZ 커널 팀 리더 파벨 예멜리아노프(Pavel Emelyanov)에 의해 처음 공개되었고[11][2], 같은 해 리눅스 플럼버스 콘퍼런스에서 발표되었다.[12][3] 이 프로젝트는 리눅스 커널 개발자 커뮤니티에서 논의되었으며, 앤드루 모턴은 다소 회의적인 반응을 보이기도 했다.[4]

2. 1. 개발 초기

CRIU 소프트웨어의 최초 버전은 2011년 7월 15일 OpenVZ 커널 팀 리더인 파벨 예멜리아노프(Pavel Emelyanov)에 의해 리눅스 개발자 커뮤니티에 공개되었다.[11][2]

2011년 9월, 이 프로젝트는 리눅스 플럼버스 콘퍼런스에서 발표되었다.[12][3] 전반적으로 참석자들은 이 프로젝트에 대해 긍정적인 시각을 보였는데, 이는 프로젝트 구현에 필요한 여러 커널 패치가 메인라인 커널에 포함된 것으로 증명된다. 그러나 앤드루 모턴은 약간 회의적이었다.

2. 2. 발표 및 반응

CRIU 소프트웨어의 최초 버전은 2011년 7월 15일 OpenVZ 커널 팀 리더인 파벨 예멜리아노프에 의해 리눅스 개발자 커뮤니티에 공개되었다.[11][2]

2011년 9월, 이 프로젝트는 리눅스 플럼버스 컨퍼런스에서 발표되었다.[12][3] 전반적으로 참석자들은 이 프로젝트에 대해 긍정적인 시각을 보였는데, 이는 프로젝트 구현에 필요한 여러 커널 패치가 메인라인 커널에 포함된 것으로 증명된다. 그러나 앤드루 모턴은 약간 회의적인 반응을 보였다.

앤드루 모턴은 "주로 유저스페이스에서 c/r을 수행하기 위해 다양한 괴짜 헬퍼 코드를 커널에 추가한, 여러 미친 러시아인들의 프로젝트입니다... 하지만 저는 개발자들만큼 이것이 결국 잘 될 것이라고 확신하지 못합니다! 그래서 제가 그들에게 요청하는 것은, 새로운 코드의 각 부분을 CONFIG_CHECKPOINT_RESTORE 안에 래핑하는 것입니다. 따라서 결국 모든 것이 실패하고 프로젝트 전체가 실패하더라도, 모든 흔적을 삭제하는 것은 간단한 문제가 될 것입니다."라고 언급했다.[4]

3. 기능

CRIU는 x86-64 및 ARM 아키텍처 시스템에서 사용할 수 있으며 다음과 같은 기능을 지원한다.


  • 프로세스: 계층 구조, PID, 사용자 및 그룹 인증자 (UID, GID, SID 등), 시스템 능력, 스레드, 실행 및 중지 상태
  • 애플리케이션 메모리: 메모리 맵 파일 및 공유 메모리
  • 열린 파일
  • 파이프 및 FIFO
  • 유닉스 도메인 소켓
  • 네트워크 소켓, TCP 소켓(ESTABLISHED 상태) 포함
  • System V IPC
  • 타이머
  • 시그널
  • 터미널
  • 리눅스 커널 관련 시스템 호출: inotify, signalfd, eventfdepoll

4. TCP 연결 마이그레이션

초기 프로젝트 목표 중 하나는 TCP 연결의 마이그레이션을 지원하는 것이었으며, 가장 큰 과제는 연결의 한쪽만 일시 중단했다가 복원하는 것이었다. 이는 물리 서버 간의 컨테이너(모든 활성 네트워크 연결 포함)의 라이브 마이그레이션을 수행하는 데 필요했으며, OpenVZ에서 체크포인트/복원 기능을 사용하는 주요 시나리오였다. 이 문제에 대처하기 위해 "TCP 복구 모드"라는 새로운 기능이 구현되었다. 이 기능은 리눅스 커널 메인라인 버전 3.5에 포함되었으며, 연결 반대편과 네트워크 패킷을 교환할 필요 없이 TCP 소켓을 분해하고 재구성할 수 있는 추가적인 수단을 사용자에게 제공한다.

5. 유사 프로젝트

다음은 CRIU와 비슷한 기능을 제공하는 프로젝트들이다.

6. 활용

CRIU 도구는 OpenVZ 프로젝트의 일환으로 개발되어 커널 내 체크포인트/복원 기능을 대체하는 것을 목표로 한다. 주된 목표는 컨테이너 마이그레이션을 지원하여, 사용자가 실행 중인 프로세스와 프로세스 그룹의 현재 상태를 저장(체크포인트)하고 나중에 복원할 수 있도록 하는 것이다. 현재 이 도구는 x86-64 및 ARM 아키텍처 시스템에서 사용할 수 있으며, 다음과 같은 기능을 지원한다.


  • '''프로세스''': 프로세스 계층 구조, PID, 사용자 및 그룹 인증자 (UID, GID, SID 등), 시스템 능력, 스레드, 실행 및 중지 상태
  • '''애플리케이션 메모리''': 메모리 맵 파일 및 공유 메모리
  • '''열린 파일'''
  • '''파이프 및 FIFO'''
  • '''유닉스 도메인 소켓'''
  • '''네트워크 소켓''': TCP 소켓(ESTABLISHED 상태) 포함 (아래 참조)
  • '''System V IPC'''
  • '''타이머'''
  • '''시그널'''
  • '''터미널'''
  • '''리눅스 커널 관련 시스템 호출''': inotify, signalfd, eventfdepoll


2013년 9월 2일에 출시된 커널 버전 3.11 이후 리눅스 커널 메인라인에 이미 필요한 모든 기능이 통합되었기 때문에 커널 패치는 필요하지 않다.

참조

[1] 웹사이트 Checkpoint-restore tool v0.1 https://lists.openvz[...] 2012-07-23
[2] 웹사이트 Checkpoint/restore mostly in the userspace https://lwn.net/Arti[...] 2011-07-15
[3] 웹사이트 Checkpoint/restart in the userspace https://www.linuxplu[...]
[4] 웹사이트 Merge branch 'akpm' (aka "Andrew's patch-bomb, take two") https://git.kernel.o[...] 2012-01-13
[5] 웹사이트 Installation: Linux Kernel https://criu.org/Ins[...]
[6] 웹사이트 Linux kernel 3.11, Section 1.5. Detailed tracking of which pages a task writes http://kernelnewbies[...] 2013-09-02
[7] 웹사이트 TCP connection repair https://lwn.net/Arti[...] 2012-02-29
[8] 웹인용 Checkpoint-restore tool v0.1 https://lists.openvz[...] 2012-07-23
[9] 웹인용 Release schedule https://criu.org/Rel[...]
[10] 웹인용 Release schedule - CRIU https://criu.org/Rel[...]
[11] 웹인용 Checkpoint/restore mostly in the userspace https://lwn.net/Arti[...] 2011-07-15
[12] 웹인용 Checkpoint/restart in the userspace https://www.linuxplu[...]
[13] 웹인용 DMTCP: Distributed MultiThreaded CheckPointing http://dmtcp.sourcef[...] SourceForge
[14] 웹인용 Linux Checkpoint/Restart https://ckpt.wiki.ke[...] kernel.org
[15] 웹인용 Berkeley Lab Checkpoint/Restart (BLCR) for LINUX http://crd.lbl.gov/d[...] 2022-08-06



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com