Incus データベースについて

サーバーの設定と状態を保管するために Incus は分散データーベースを使用します。 これにより(たとえば、LXC でそうされているように)設定が各インスタンスのディレクトリー内に保管される場合より高速に問い合わせができます。

利点を理解するため、すべてへのインスタンスに「どのインスタンスがbr0を使用しているか?」のような問い合わせをすることを考えてみましょう。 データベースが無ければ、この問いに答えるためには、設定を読み込んで解釈し、どのネットワークデバイスが設定上に定義されているかの確認を、ひとつひとつのインスタンスに対して行う必要があります。 データベースがあれば、この情報を得るためにデータベースにシンプルな問い合わせを実行できます。

Cowsql

Incus クラスタ内では、クラスタのすべてのメンバーが同じデータベースの状態を共有する必要があります。 このため、Incus は SQLIte の分散版であるCowsqlを使用しています。 Cowsql はレプリケーション、冗長性、外部のデータベースプロセスを必要としない自動フェールオーバーの機能を提供します。

Incus をクラスタではなく単一マシンとして使用する場合は、Cowsql のデータベースは実質的には通常の SQLite データベースのように振る舞います。

ファイルの保管場所

データベースは Incus のデータディレクトリー(/var/lib/incus/database/)のdatabaseサブディレクトリーに保管されます。

Incus を新しいバージョンにアップグレードする際はデータベーススキーマの更新が必要かもしれません。 この場合、Incus は自動的にデータベースのバックアップをしてから更新を実行します。 詳細はIncusをアップグレードするを参照してください。

バックアップ

Incus データベースの内容をどのようにバックアップするかについての手順はデータベースのバックアップを参照してください。