CRIU

Checkpoint/restore software
CRIU
開発者VirtuozzoのOpenVZチーム
初回リリース2012年7月23日; 13年前[1] (2012-07-23)
安定版リリース3.18 (2023年4月22日; 2年前[2] ) [±] (2023-04-22)
リポジトリ
  • github.com/チェックポイントリストア/criu
書かれたC言語アセンブリ言語
オペレーティング·システムリナックス
プラットフォームx86-64ARMPower ISAIBM System/390
タイプアプリケーションチェックポイント
ライセンスGNU GPL v.2
Webサイトcriu.org

Checkpoint/Restore In Userspace ( CRIU ) (発音:kree-oo/kriu/ ) は、 Linuxオペレーティングシステム用のソフトウェアツールです。このツールを使用すると、実行中のアプリケーション(またはその一部)をフリーズし、ファイルの集合として永続ストレージにチェックポイントとして保存することができます。その後、これらのファイルを使用して、フリーズした時点からアプリケーションを復元し、実行することができます。CRIUプロジェクトの特徴は、カーネルではなく、 主にユーザー空間で実装されていることです。

歴史

CRIUソフトウェアの初期バージョンは、OpenVZカーネルチームのリーダーであるPavel Emelyanovによって2011年7月15日にLinux開発者コミュニティに発表されました。[3]

2011年9月、このプロジェクトはLinux Plumbers Conferenceで発表されました。[4]参加者の大半は概ねプロジェクトに好意的な評価を示しており、これはプロジェクトの実装に必要なカーネルパッチがメインラインカーネルに多数含まれていたという事実からも明らかです。 しかし、アンドリュー・モートンはやや懐疑的でした。

注記:これは、主にユーザー空間からc/rを実行するための、複数の狂ったロシア人によるプロジェクトです。必要に応じてカーネルに様々な奇妙なヘルパーコードが追加されています…しかし、開発者たちほど、最終的にすべてがうまくいくとは思っていません!そこで、彼らにお願いしたいのは、新しいコードをすべてCONFIG_CHECKPOINT_RESTOREで囲むことです。そうすれば、もし最終的にすべてが失敗し、プロジェクト全体が失敗したとしても、その痕跡をすべて削除するのは簡単なはずです。[5]

— アンドリュー・モートン

使用

CRIUツールはOpenVZプロジェクトの一環として開発されており、カーネル内のチェックポイント/リストアを置き換えることを目的としています。主な焦点はコンテナの移行をサポートすることであり、ユーザーは実行中のプロセスおよびプロセスグループの現在の状態をチェックポイント化およびリストアできます。このツールは現在、x86-64およびARMシステムで使用でき、以下の機能をサポートしています。

2013年9月現在[update]、必要な機能はすべて2013年9月2日にリリースされたカーネルバージョン3.11以降、Linuxカーネルメインラインにすでに統合されているため、カーネルパッチの適用は必要ありません。 [6] [7]

TCP接続の移行

当初のプロジェクト目標の一つは、TCP接続の移行をサポートすることでしたが、最大の課題は接続の片側のみを一時停止し、その後復元することでした。これは、OpenVZのチェックポイント/リストア機能の主な用途である、物理サーバー間でコンテナ(およびそれらのアクティブなネットワーク接続すべて)のライブマイグレーションを実行するために必要でした。この問題に対処するために、「TCP修復モード」という新機能が実装されました。この機能はLinuxカーネルメインラインのバージョン3.5 [8]に含まれており、接続の反対側とネットワークパケットを交換することなく、TCPソケットを分解および再構築するための追加手段をユーザーに提供します。

参考文献

  1. ^ パベル・エメリャノフ (2012-07-23)。 「チェックポイント復元ツール v0.1」。
  2. ^ 「リリーススケジュール」.
  3. ^ Pavel Emelyanov (2011-07-15). 「チェックポイント/リストアは主にユーザー空間で行われる」
  4. ^ 「ユーザー空間でのチェックポイント/リスタート」。Linux Plumbers Conf 2011
  5. ^ 「ブランチ 'akpm' をマージ(別名「Andrewのパッチ爆弾、第2弾」)」Linuxカーネルソースツリー. 2012年1月13日.
  6. ^ 「インストール:Linuxカーネル」。Linuxカーネルv3.11以降が必要で、特定のオプションが設定されている。
  7. ^ 「Linuxカーネル3.11、セクション1.5。タスクが書き込むページの詳細な追跡」kernelnewbies.org . 2013年9月2日. 2016年5月3日閲覧
  8. ^ Pavel Emelyanov (2012-02-29). 「TCP接続の修復」. Linux Netdevメーリングリスト.

さらに読む

  • Sanidhya Kashyap. 「再起動不要のカーネルアップデートと検証」
  • Rami Rosen. 「Linux コンテナと将来のクラウド」(PDF)
  • CRIUチーム。「他のCRプロジェクトとの比較」。
Retrieved from "https://en.wikipedia.org/w/index.php?title=CRIU&oldid=1307100206"