Deweloperzy skupieni wokół OpenVZ, otwartej platformy wirtualizacji systemu operacyjnego dla linuksa, pozwalającej na uruchomienie kilku systemów wirtualnych (VPS), niezależnie od siebie, z wykorzystaniem wspólnego jądra, poinformowali o wydaniu CRtools 0.1.
CRtools jest funkcjonalnością OpenVZ, znaną pod nazwą checkpoint/restore, jak również CPT, której zadanie polega na umożliwieniu zamrożenia maszyny wirtualnej i zrzut jej aktualnego stanu (m.in. procesów, pamięci, połączeń sieciowych) do pliku na dysku twardym. Stan maszyny, może być następnie wznowiony, a procesy przywrócone, tak jakby nic się nie stało.
Funkcja jest na tyle elastyczną i zaawansowaną, że można z jej pomocą migrować kontenery na żywo, wykonywać szybkie restarty, czy implementować wysoką dostępność.
Wadą nowej funkcjonalności, jak mówią jej twórcy, jest obszerny i skomplikowany kod. Przez to autorom nie udało się go dodać do jądra Linux, gdyż na drodze znalazło się wielu oponentów, twierdzących, że niosło by to za sobą zbyt wiele zmian w kodzie kernela.
Dlatego autorzy postanowili, że wdrożą większość elementów CPT w przestrzeni użytkownika, w postaci osobnego programu, a nie w obrębie Linux Kernel. Problem powodowało to, że część funkcji CRtools pochodzi bezpośrednio z jądra i nie można ich od tak odłączyć. Zaletą natomiast jest zmniejszenie zmian w Linuksie do wymaganego minimum.
Aktualnie w obrębie CRtools oferuje się wsparcie dla:
- Linux Kernel w wersji 3.5,
- architektury 64-bit,
- Linkowania procesów,
- Grup procesów i sesji (bez TTY),
- Mapowanie jakiejkolwiek pamięci (dzielenie, pliki itp.),
- Wątków,
- Otwartych plików (dzielenie pomiędzy zadaniami oraz częściowe otwieranie i odlinkowanie),
- Potoków i kolejek FIFO z danymi,
- Socketów Uniksowych z zawartością,
- Socketów TCP i UDP (wsparcie istniejących połączeń TCP, ale wymaga dopracowania),
- Powiadomień, eventpoll i eventfd,
- Konfiguracji zadań sigactions, list uwierzytelniających i itimers,
- IPC, montowania i przestrzeni nazw PID.