크리우
CRIU![]() | |
개발자 | Virtuozzo OpenVZ팀 |
---|---|
초기 릴리즈 | 2012년 7월 [1] | , 전(
안정된 릴리스 | 3.15(2020년 11월 [2] [±] | , 전(
저장소 | |
기입처 | C와 어셈블러 |
운영 체제 | 리눅스 |
플랫폼 | x86-64, ARM, Power ISA, IBM System/390 |
유형 | 응용 프로그램 체크 포인트 |
면허증. | GNU GPL v.2 |
웹 사이트 | criu |
Checkpoint/Restore In Userspace(CRIU)(kree-oo, /kriu/로 발음)는 Linux 운영체제용 소프트웨어 도구입니다.이 도구를 사용하면 실행 중인 응용 프로그램(또는 일부)을 중지하고 파일 집합으로 영구 스토리지에 체크포인트를 지정할 수 있습니다.그런 다음 파일을 사용하여 정지된 시점부터 애플리케이션을 복원하고 실행할 수 있습니다.CRIU 프로젝트의 특징은 커널이 아닌 사용자 공간에서 주로 구현된다는 것입니다.
이 프로젝트는 현재 개발 중이며 안정적인 [3]릴리스를 위해 매월 릴리즈 사이클이 있습니다.
역사
CRIU 소프트웨어의 초기 버전은 2011년 [4]7월 15일 OpenVZ 커널 팀의 리더인 Pavel Emelyanov에 의해 Linux 개발자 커뮤니티에 제공되었습니다.
2011년 9월, 이 프로젝트는 Linux 배관공 [5]회의에서 발표되었습니다.일반적으로 참석자 대부분은 이 프로젝트에 대해 긍정적인 견해를 보였는데, 이는 프로젝트 구현에 필요한 커널 패치가 메인라인 커널에 다수 포함되어 있다는 사실로 입증되었습니다.그러나 앤드류 모튼은 약간 회의적이었다.
주의: 이것은 다양한 미친 러시아인들이 주로 사용자 공간에서 c/r을 수행하는 프로젝트이며, 다양한 홀수볼 도우미 코드가 커널에 추가되어 필요성이 입증되었습니다.하지만 개발자들보다는 이 모든 것이 결국 작동하게 될 것이라는 확신이 없습니다.따라서 CONFIG_CHECKPOINT_RESTORE 내에서 새로운 코드의 각 부분을 랩하는 것이 좋습니다.따라서 결국 모든 것이 중단되고 프로젝트 전체가 실패한다면, 그 흔적을 모두 지우는 것은 간단한 문제일부탁드립니다.
--
사용하다
CRIU 툴은 커널 내 체크포인트/복원 대체를 목적으로 OpenVZ 프로젝트의 일부로 개발되고 있습니다.컨테이너의 이행을 지원하는 것이 주안점이지만 사용자는 실행 중인 프로세스와 프로세스 그룹의 현재 상태를 확인하고 복원할 수 있습니다.이 도구는 현재 x86-64 및 ARM 시스템에서 사용할 수 있으며 다음 기능을 지원합니다.
- 프로세스: 계층, PID, 사용자 및 그룹 오센티케이터(UID, GID, SID 등), 시스템 기능, 스레드 및 실행 중지 상태
- 응용 프로그램 메모리: 메모리에 매핑된 파일 및 공유 메모리
- 파일 열기
- 파이프 및 FIFO
- UNIX 도메인 소켓
- EASTABLISHED 상태의 TCP 소켓을 포함한 네트워크 소켓(아래 참조)
- 시스템 V IPC
- 타이머
- 신호.
- 터미널
- Linux 커널별 시스템 호출:
inotify
,signalfd
,eventfd
그리고.epoll
2013년 [7][8]9월 2일 출시된 커널 버전 3.11 이후 필요한 모든 기능이 이미 Linux 커널 메인라인에 병합되었기 때문에 2013년 9월[update] 현재 커널 패치가 필요하지 않습니다.
TCP 접속 이행
초기 프로젝트의 목표 중 하나는 TCP 접속의 이행을 지원하는 것이었는데, 가장 큰 과제는 접속의 한쪽만 일시정지한 후 복원하는 것이었습니다.이는 OpenVZ의 체크포인트/복원 기능을 사용하는 주요 시나리오인 물리적 서버 간에 컨테이너의 라이브 마이그레이션(모든 활성 네트워크 연결 포함)을 수행하기 위해 필요했습니다.이 문제에 대처하기 위해 "TCP 복구 모드"라는 새로운 기능이 구현되었습니다.이 기능은 Linux 커널 메인라인[9] 버전 3.5에 포함되어 있어 접속 반대편과 네트워크 패킷을 교환할 필요 없이 TCP 소켓을 분해 및 재구성할 수 있습니다.
유사한 프로젝트
다음 프로젝트는 CRIU와 유사한 기능을 제공합니다.
레퍼런스
- ^ Pavel Emelyanov (2012-07-23). "Checkpoint-restore tool v0.1".
- ^ "Release schedule".
- ^ "Release schedule - CRIU".
- ^ Pavel Emelyanov (2011-07-15). "Checkpoint/restore mostly in the userspace".
- ^ "Checkpoint/restart in the userspace". Linux Plumbers Conf 2011.
- ^ "Merge branch 'akpm' (aka "Andrew's patch-bomb, take two")". Linux kernel source tree. 2012-01-13.
- ^ "Installation: Linux Kernel".
Linux kernel v3.11 or newer is required, with some specific options set
- ^ "Linux kernel 3.11, Section 1.5. Detailed tracking of which pages a task writes". kernelnewbies.org. 2013-09-02. Retrieved 2016-05-03.
- ^ Pavel Emelyanov (2012-02-29). "TCP connection repair". Linux Netdev Mailing List.
- ^ "DMTCP: Distributed MultiThreaded CheckPointing". SourceForge.
- ^ "Berkeley Lab Checkpoint/Restart (BLCR) for LINUX". Lawrence Berkeley National Laboratory.
- ^ "Linux Checkpoint/Restart". kernel.org.
추가 정보
- Sanidhya Kashyap. "Rebootless Kernel Update and Validation".
- Rami Rosen. "Linux Containers and the Future Cloud" (PDF).
- CRIU Team. "Comparison to other CR projects".