搶救 (檢查點和用戶空間中的還原) 是一種工具,可讓您保存一個或一組進程的狀態 然後從保存的位置恢復工作,即使重新啟動系統或在另一台服務器上也不會中斷已建立的網絡連接。
有了這個工具, 可以凍結正在運行的應用程序 (或部分) 並將其作為文件的集合放在持久性存儲中。 然後可以使用這些文件從凍結的位置還原和運行該應用程序。
特色 CRIU項目的原因是 它主要在用戶空間中實現,而不是在內核中實現。
關於CRIU
CRIU工具 正在作為OpenVZ項目的一部分進行開發, 目的是覆蓋內核中的檢查點/還原。
雖然 它的主要重點是支持容器遷移,允許用戶驗證和還原正在運行的進程和進程組的當前狀態。
目前, 該工具可以在x86-64和ARM系統上使用 y 支持以下功能:
- 進程:其層次結構、PID、用戶和組身份驗證器(UID、GID、SID 等)、系統功能、線程以及運行和停止狀態
- 應用程序內存:內存映射文件和共享內存
- 打開文件
- 管道和先進先出
- Unix域套接字
- 網絡套接字,包括處於ESTABLISHED狀態的TCP套接字
- 系統V IPC
- 定時器
- 信號
- 碼頭
- 內核調用特定係統:inotify,signalfd,eventfdyepoll
應用區域之間 觀察到CRIU技術 操作系統在不中斷進程連續性的情況下重新啟動 長時間運行的隔離容器實時遷移,加快慢進程的啟動速度(可以在初始化後從保存的狀態開始),無需重新啟動服務即可執行內核更新,定期保存任務的長期運行狀態以在發生崩潰時恢復工作,跨群集節點的負載平衡,另一台計算機上的重複進程(分支到遠程系統),在運行期間創建用戶應用程序的快照以在另一台系統上進行分析,或者在需要取消程序中的更多操作時進行創建。 CRIU用於OpenVZ,LXC / LXD和Docker等容器管理系統。
關於CRIU 3.15的新版本
目前,該工具的版本為3.15,它最近發布並引入了 criu-image-streamer 服務,該服務允許在凍結/恢復操作期間直接將過程圖像流式傳輸到 CRIU 或從 CRIU 流式傳輸。
- 圖像可以從外部存儲(S3、GCS 等)傳輸,無需在本地文件系統上進行緩衝。
- 對MIPS體系結構的支持已添加。
- 允許凍結不屬於現有PID名稱空間的進程,然後還原到現有PID名稱空間。
- 添加了其他機制來驗證文件。
- 添加了對凍結和還原BPF結構BPF_HASH_OF_MAPS和BPF_ARRAY_OF_MAPS的支持。
- 添加了對第二版cgroup的初始支持。
如何在Linux上安裝CRIU?
對於那些有興趣安裝此工具的人,他們應該知道它可以在大多數 Linux 發行版的官方渠道中獲得。
所以為了安裝工具 只需打開一個終端,然後在包管理器的幫助下查找該工具或使用我們共享的以下命令之一。
對於那些 Debian,Ubuntu用戶和以下兩者的派生產品:
sudo apt install criu
而對於那些使用 Arch Linux及其任何派生產品:
sudo pacman -S criu
對於那些是 opensuse:
sudo zypper install criu
終於 對於那些想要編譯工具的人 他們可以通過輸入以下內容來做到這一點:
git clone https://github.com/checkpoint-restore/criu.git
cd criu
make clean
make
make install
sudo criu check
sudo criu check --all
如果您想了解更多 關於此工具,您可以查看詳細信息 在下面的鏈接中。