インスタンスオプション¶
インスタンスオプションはインスタンスに直接関係する設定オプションです。
インスタンスオプションをどのように設定するかの手順はインスタンスオプションを設定するを参照してください。
key/value 形式の設定は、名前空間で分けられています。 以下のオプションが利用できます:
各オプションに型が定義されていますが、すべての値は文字列として保管され、REST API で文字列としてエクスポートされる(こうすることで後方互換性を壊すことなく任意の追加の値をサポートできます)ことに注意してください。
その他のオプション¶
以下のセクションに一覧表示される設定オプションに加えて、以下のインスタンスオプションがサポートされます:
Key: | agent.nic_config |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | virtual machine |
コンテナでは、デフォルトネットワークインタフェースの名前とMTUを使うようになります。
仮想マシンでは、このオプションをtrue
に設定するとデフォルトのネットワークインタフェースの名前とMTUがインスタンスデバイスと同じになります。
Key: | cluster.evacuate |
Type: | string |
Default: |
|
Live update: | no |
cluster.evacuate
はクラスタメンバーが退避される際にインスタンスがどのように扱われるかを制御します。
利用可能なモード:
auto
(デフォルト): インスタンスのタイプと設定されたデバイスに基づいてベストな退避の方法をシステムが自動的に決定します:マイグレーションに適さないデバイスがある場合、インスタンスはマイグレーションされません(停止のみされます)。
ライブマイグレーションは
migration.stateful
設定を有効にした仮想マシンでのみ実行され、仮想マシンのすべてのデバイスもマイグレートされます。
live-migrate
: インスタンスが別のサーバーにライブマイグレートされます。つまりインスタンスはマイグレーションプロセス中にも稼働して操作可能なままになり、切断は最小限ですみます。migrate
: このモードでは、インスタンスはクラスター内の他のサーバーにマイグレートされます。マイグレーションプロセスはライブではありません。つまり、インスタンスはマイグレーション中に短時間ダウンタイムが発生します。stop
: インスタンスはマイグレートされません。代わりに現在のサーバー上で停止されます。stateful-stop
: インスタンスはマイグレートされません。代わりに現在のサーバー上で停止されますが、復元時にレジュームできるように実行状態(メモリ)をディスク上に保存します。force-stop
: インスタンスはマイグレートされません。代わりに強制停止されます。
詳細はクラスタメンバーの退避と復元を参照してください。
Key: | linux.kernel_modules |
Type: | string |
Live update: | yes |
Condition: | container |
カーネルモジュールをカンマ区切りリストで指定します。
Key: | linux.sysctl.* |
Type: | string |
Live update: | no |
Condition: | container |
Key: | environment.* |
Type: | string |
Live update: | yes (exec) |
key/value の環境変数をインスタンスにエクスポートできます。
これらはその後 incus exec
に設定されます。
ブート関連のオプション¶
以下のインスタンスオプションはインスタンスのブート関連の挙動を制御します:
Key: | boot.autorestart |
Type: | bool |
Live update: | no |
true
に設定するとインスタンスの異常終了時に1分間に10回まで自動で再起動します。
Key: | boot.autostart |
Type: | bool |
Live update: | no |
false
に設定すると、最後の状態を復元します。
Key: | boot.autostart.delay |
Type: | integer |
Default: | 0 |
Live update: | no |
インスタンスが起動してから次のインスタンスを起動するまでの待ち時間の秒数。
Key: | boot.autostart.priority |
Type: | integer |
Default: | 0 |
Live update: | no |
一番大きな値のインスタンスが最初に起動されます。
Key: | boot.host_shutdown_action |
Type: | integer |
Default: | stop |
Live update: | yes |
ホストの停止の際に行うアクション
Key: | boot.host_shutdown_timeout |
Type: | integer |
Default: | 30 |
Live update: | yes |
インスタンスを強制停止する前に停止するのを待つ秒数。
cloud-init
設定¶
以下のインスタンスオプションはインスタンスのcloud-init
設定を制御します:
Key: | cloud-init.network-config |
Type: | string |
Default: |
|
Live update: | no |
Condition: | イメージでサポートされる場合 |
中身がcloud-init
へのシード値として使用されます。
Key: | cloud-init.user-data |
Type: | string |
Default: |
|
Live update: | no |
Condition: | イメージでサポートされる場合 |
中身がcloud-init
へのシード値として使用されます。
Key: | cloud-init.vendor-data |
Type: | string |
Default: |
|
Live update: | no |
Condition: | イメージでサポートされる場合 |
中身がcloud-init
へのシード値として使用されます。
Key: | user.network-config |
Type: | string |
Default: |
|
Live update: | no |
Condition: | イメージでサポートされる場合 |
Key: | user.user-data |
Type: | string |
Default: |
|
Live update: | no |
Condition: | イメージでサポートされる場合 |
Key: | user.vendor-data |
Type: | string |
Default: |
|
Live update: | no |
Condition: | イメージでサポートされる場合 |
これらのオプションのサポートは使用するイメージに依存し、保証はされません。
cloud-init.user-data
とcloud-init.vendor-data
の両方を指定すると、両方のオプションの設定がマージされます。
このため、これらのオプションに設定するcloud-init
設定が同じキーを含まないようにしてください。
リソース制限¶
以下のインスタンスオプションはインスタンスのリソース制限を指定します:
Key: | limits.cpu |
Type: | string |
Default: | 1 (VMs) |
Live update: | yes |
インスタンスに見せるCPUの番号または範囲。
詳細はCPUピンニングを参照してください。
Key: | limits.cpu.allowance |
Type: | string |
Default: | 100% |
Live update: | yes |
Condition: | container |
CPUのどれだけを使えるか制御するため、パーセント(50%
)でソフトリミットかタイムスライス(25ms/100ms
)でハードリミットを指定します。
詳細は割り当てと優先度(コンテナのみ)を指定してください。
Key: | limits.cpu.nodes |
Type: | string |
Live update: | yes |
インスタンスのCPUを配置するNUMAノードIDのカンマ区切りリストか範囲。
あるいは、起動時に一番忙しくないNUMAノードをIncusが選んで使用するbalanced
という値も使えます。
詳細は割り当てと優先度(コンテナのみ)を参照してください。
Key: | limits.cpu.priority |
Type: | integer |
Default: |
|
Live update: | yes |
Condition: | container |
リソースをオーバーコミットする際、同じCPUを共有する他のインスタンスと比較したCPUスケジュールの優先度を指定します。 0から10の間の整数を指定します。
詳細は割り当てと優先度(コンテナのみ)を参照してください。
Key: | limits.disk.priority |
Type: | integer |
Default: |
|
Live update: | yes |
負荷がかかった際のインスタンスのI/Oリクエストにどれぐらいの優先度を与えるかを制御します。
0から10の間の整数を指定します。
Key: | limits.hugepages.1GB |
Type: | string |
Live update: | yes |
Condition: | container |
1 GB huge pageの数を制限するための(バイト単位の)固定値。 さまざまな接尾辞がサポートされます(ストレージ、メモリとネットワーク制限の単位参照)。
詳細はhuge page の制限を参照してください。
Key: | limits.hugepages.1MB |
Type: | string |
Live update: | yes |
Condition: | container |
1 MB huge pageの数を制限するための(バイト単位の)固定値。 さまざまな接尾辞がサポートされます(ストレージ、メモリとネットワーク制限の単位参照)。
詳細はhuge page の制限を参照してください。
Key: | limits.hugepages.2MB |
Type: | string |
Live update: | yes |
Condition: | container |
2 MB huge pageの数を制限するための(バイト単位の)固定値。 さまざまな接尾辞がサポートされます(ストレージ、メモリとネットワーク制限の単位参照)。
詳細はhuge page の制限を参照してください。
Key: | limits.hugepages.64KB |
Type: | string |
Live update: | yes |
Condition: | container |
64 KB huge pageの数を制限するための(バイト単位の)固定値。 さまざまな接尾辞がサポートされます(ストレージ、メモリとネットワーク制限の単位参照)。
詳細はhuge page の制限を参照してください。
Key: | limits.memory |
Type: | string |
Default: |
|
Live update: | yes |
ホストのメモリのパーセンテージかバイト単位の固定値。 さまざまな接尾辞がサポートされます。
詳細はストレージ、メモリとネットワーク制限の単位を参照してください。
Key: | limits.memory.enforce |
Type: | string |
Default: |
|
Live update: | yes |
Condition: | container |
インスタンスの目盛リミットがhard
の場合、インスタンスはそのリミットを超えられません。
soft
の場合、ホストのメモリに余裕があればインスタンスはそのリミットを超えられます。
Key: | limits.memory.hugepages |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | virtual machine |
このオプションがfalse
に設定された場合、通常のシステムメモリが使用されます。
Key: | limits.memory.swap |
Type: | string |
Default: |
|
Live update: | yes |
Condition: | container |
true
かfalse
に設定すると、カーネルがスワップしたメモリの一部をコンテナが受け取るかどうかを制御します。
あるいはバイト数の値をセットすると、コンテナがスワップを通じて追加のメモリを使用できるようにします。
Key: | limits.memory.swap.priority |
Type: | integer |
Default: |
|
Live update: | yes |
Condition: | container |
0から10の間の整数を指定します。 値が高いほど、インスタンスがディスクにスワップされにくくなります。
Key: | limits.processes |
Type: | integer |
Default: | empty |
Live update: | yes |
Condition: | container |
空の場合は、制限なし。
Key: | limits.kernel.* |
Type: | string |
Live update: | no |
Condition: | container |
インスタンスにカーネルの制限を設定できます、たとえば、オープンできるファイル数を制限できます。 詳細は カーネルリソース制限 を参照してください。
PU制限¶
CPU 使用率を制限するための異なるオプションがあります:
limits.cpu
を設定して、インスタンスが見ることができ、使用することができる CPU を制限します。 このオプションの設定方法は、CPUピンニングを参照してください。limits.cpu.allowance
を設定して、インスタンスが利用可能な CPU にかける負荷を制限します。 このオプションはコンテナのみで利用可能です。 このオプションの設定方法は、割り当てと優先度(コンテナのみ)を参照してください。
これらのオプションは同時に設定して、インスタンスが見ることができる CPU とそれらのインスタンスの許可される使用量の両方を制限することが可能です。
しかし、limits.cpu.allowance
を時間制限と共に使用する場合、スケジューラーに多くの制約をかけ、効率的な割り当てが難しくなる可能性があるため、limits.cpu
の追加使用は避けるべきです。
CPU 制限は cgroup コントローラーのcpuset
とcpu
を組み合わせて実装しています。
CPUピンニング¶
limits.cpu
はcpuset
コントローラーを使って、CPU を固定(ピンニング)します。
どの CPU を、またはどれぐらいの数の CPU を、インスタンスから見えるようにし、使えるようにするかを指定できます:
どの CPU を使うかを指定するには、
limits.cpu
を CPU の組み合わせ(例:1,2,3
)あるいは CPU の範囲(例:0-3
)で指定できます。単一の CPU にピンニングするためには、CPU の個数との区別をつけるために、範囲を指定する文法(例:
1-1
)を使う必要があります。CPU の個数を指定した場合(例:
4
)、Incus は特定の CPU にピンニングされていないすべてのインスタンスをダイナミックに負荷分散し、マシン上の負荷を分散しようとします。 インスタンスが起動したり停止するたびに、またシステムに CPU が追加されるたびに、インスタンスはリバランスされます。
仮想マシンのCPUリミット¶
注釈
Incus はlimits.cpu
オプションのライブアップデートをサポートします。
しかし、仮想マシンの場合は、対応する CPU がホットプラグされるだけです。
ゲストのオペレーティングシステムによって、新しい CPU をオンラインにするためには、インスタンスを再起動するか、なんらかの手動の操作を実行する必要があります。
Incus の仮想マシンはデフォルトでは 1 つの vCPU だけを割り当てられ、ホストの CPU のベンダーとタイプとマッチした CPU として現れますが、シングルコアでスレッドなしになります。
limits.cpu
を単一の整数に設定する場合、Incus は複数の vCPU を割り当ててゲストにはフルなコアとして公開します。
これらの vCPU はホスト上の特定の物理コアにはピンニングされません。
vCPU の個数は VM の稼働中に変更できます。
limits.cpu
を CPU ID(incus info --resources
で表示されます)の範囲またはカンマ区切りリストの組に設定する場合、vCPU は物理コアにピンニングされます。
このシナリオでは、Incus は CPU 設定が現実のハードウェアトポロジーとぴったり合うかチェックし、合う場合はそのトポロジーをゲスト内に複製します。
CPU ピンニングを行う場合、VM の稼働中に設定を変更することはできません。
たとえば、ピンニング設定が 8 個のスレッド、同じコアのスレッドの各ペアと 2 個の CPU に散在する偶数のコアを持つ場合、ゲストは 2 個の CPU、各 CPU に 2 個のコア、各コアに 2 個のスレッドを持ちます。 NUMA レイアウトは同様に複製され、このシナリオでは、ゲストではほとんどの場合、2 個の NUMA ノード、各 CPU ソケットに 1 個のノードを持つことになるでしょう。
複数の NUMA ノードを持つような環境では、メモリーは同様に NUMA ノードで分割され、ホスト上で適切にピンニングされ、その後ゲストに公開されます。
これらすべてにより、ゲストスケジューラはソケット、コア、スレッドを適切に判断し、メモリーを共有したり NUMA ノード間でプロセスを移動する際に NUMA トポロジーを考慮できるので、ゲスト内で非常に高パフォーマンスな操作を可能にします。
割り当てと優先度(コンテナのみ)¶
limits.cpu.allowance
は、時間の制限を与えたときは CFS スケジューラのクォータを、パーセント指定をした場合は全体的な CPU シェアの仕組みを使います:
時間制限(たとえば、
20ms/50ms
)はハードリミットです。 たとえば、コンテナが最大で 1 つの CPU を使用することを許可する場合は、limits.cpu.allowance
を100ms/100ms
のような値に設定します。この値は 1 つの CPU に相当する時間に対する相対値なので、2 つの CPU の時間を制限するには、100ms/50ms
あるいは200ms/100ms
のような値を使用します。パーセント指定を使う場合は、制限は負荷状態にある場合のみに適用されるソフトリミットです。 設定は、同じ CPU(もしくは CPU の組)を使う他のインスタンスとの比較で、インスタンスに対するスケジューラの優先度を計算するのに使われます。 たとえば、負荷時のコンテナの CPU 使用率を 1 つの CPU に制限するためには、
limits.cpu.allowance
を100%
に設定します。
limits.cpu.priority
は、CPU の組を共有する複数のインスタンスに割り当てられた CPU の割合が同じ場合に、スケジューラの優先度スコアを計算するために使われる別の因子です。
huge page の制限¶
Incus では limits.hugepage.[size]
キーを使ってコンテナが利用できる huge page の数を制限できます。
アーキテクチャはしばしば huge page のサイズを公開しています。 利用可能な huge page サイズはアーキテクチャによって異なります。
huge page の制限は非特権コンテナ内でhugetlbfs
ファイルシステムのmount
システムコールをインターセプトするように Incus を設定しているときには特に有用です。
Incus がhugetlbfs
mount
システムコールをインターセプトすると Incus は正しいuid
とgid
の値をmount
オプションに指定してhugetblfs
ファイルシステムをコンテナにマウントします。
これにより非特権コンテナからも huge page が利用可能となります。
しかし、ホストで利用可能な huge page をコンテナが使い切ってしまうのを防ぐため、limits.hugepages.[size]
を使ってコンテナが利用可能な huge page の数を制限することを推奨します。
huge page の制限はhugetlb
cgroup コントローラーによって実行されます。これはこれらの制限を適用するために、ホストシステムがhugetlb
コントローラーをレガシーあるいは cgroup の単一階層構造(訳注:cgroup v2)に公開する必要があることを意味します。
カーネルリソース制限¶
コンテナインスタンスには、リソース制限を設定するのに使用できる一般の名前空間キーlimits.kernel.*
を公開しています。
limits.kernel.*
接頭辞に続いて指定されるリソースについて Incus が全く検証を行わないという意味でこれは汎用です。
Incus は対象のカーネルがサポートするすべての利用可能なリソースについて知ることはできません。
代わりに、Incus はlimits.kernel.*
接頭辞の後の対応するリソースキーとその値をカーネルに単に渡します。
カーネルが適切な検証を行います。
これによりユーザーはシステム上でサポートされる任意の制限を指定できます。
よくある制限のいくつかは以下のとおりです:
Key: | limits.kernel.fsize |
Type: | string |
Resource: |
|
Key: | limits.kernel.locks |
Type: | string |
Resource: |
|
Key: | limits.kernel.memlock |
Type: | string |
Resource: |
|
Key: | limits.kernel.nice |
Type: | string |
Resource: |
|
Key: | limits.kernel.nofile |
Type: | string |
Resource: |
|
Key: | limits.kernel.nproc |
Type: | string |
Resource: |
|
Key: | limits.kernel.rtprio |
Type: | string |
Resource: |
|
Key: | limits.kernel.sigpending |
Type: | string |
Resource: |
|
指定できる制限の完全なリストは getrlimit(2)
/setrlimit(2)
システムコールの man ページで確認できます。
limits.kernel.*
名前空間内で制限を指定するには、RLIMIT_
を付けずに、リソース名を小文字で指定します。
たとえば、RLIMIT_NOFILE
はnofile
と指定します。
制限は、コロン区切りのふたつの数字もしくはunlimited
という文字列で指定します(たとえば、limits.kernel.nofile=1000:2000
)。
単一の値を使って、ソフトリミットとハードリミットを同じ値に設定できます(たとえば、limits.kernel.nofile=3000
)。
明示的に設定されないリソースは、コンテナを起動したプロセスから継承されます。 この継承は Incus でなく、カーネルによって強制されることに注意してください。
マイグレーションオプション¶
以下のインスタンスオプションはインスタンスがあるLXDサーバーから別のサーバーに移動される場合の挙動を制御します:
Key: | migration.incremental.memory |
Type: | bool |
Default: |
|
Live update: | yes |
Condition: | container |
インスタンスのメモリのインクリメンタルなメモリ転送を使用するとダウンタイムを短縮できます。
Key: | migration.incremental.memory.goal |
Type: | integer |
Default: |
|
Live update: | yes |
Condition: | container |
Key: | migration.incremental.memory.iterations |
Type: | integer |
Default: |
|
Live update: | yes |
Condition: | container |
NVIDIAとCUDAの設定¶
以下のインスタンスオプションはインスタンスの NVIDIA と CUDA の設定を指定します:
Key: | nvidia.driver.capabilities |
Type: | string |
Default: |
|
Live update: | no |
Condition: | container |
指定されたドライバーのケイパビリティはlibnvidia-container NVIDIA_DRIVER_CAPABILITIES
を設定するのに使われます。
Key: | nvidia.require.cuda |
Type: | string |
Live update: | no |
Condition: | container |
指定されたバージョンはlibnvidia-container NVIDIA_REQUIRE_CUDA
を設定するのに使われます。
Key: | nvidia.require.driver |
Type: | string |
Live update: | no |
Condition: | container |
指定されたバージョンはlibnvidia-container NVIDIA_REQUIRE_CUDA
を設定するのに使われます。
rawインスタンス設定のオーバーライド¶
以下のインスタンスオプションは Incus 自身が使用するバックエンド機能に直接制御できるようにします:
Key: | raw.apparmor |
Type: | blob |
Live update: | yes |
指定されたエントリは生成されるプロファイルに追加されます。
Key: | raw.idmap |
Type: | blob |
Live update: | no |
Condition: | unprivileged container |
例: both 1000 1000
Key: | raw.qemu |
Type: | blob |
Live update: | no |
Condition: | virtual machine |
Key: | raw.qemu.conf |
Type: | blob |
Live update: | no |
Condition: | virtual machine |
詳細はQEMU設定のオーバーライドを参照してください。
Key: | raw.qemu.qmp.early |
Type: | blob |
Live update: | no |
Condition: | virtual machine |
Key: | raw.qemu.qmp.post-start |
Type: | blob |
Live update: | no |
Condition: | virtual machine |
Key: | raw.qemu.qmp.pre-start |
Type: | blob |
Live update: | no |
Condition: | virtual machine |
Key: | raw.qemu.scriptlet |
Type: | string |
Live update: | no |
Condition: | virtual machine |
重要
これらのraw.*
キーを設定すると Incus を予期せぬ形で壊してしまうかもしれません。
このため、これらのキーを設定するのは避けるほうが良いです。
QEMU設定のオーバーライド¶
VM インスタンスに対しては、Incus は-readconfig
コマンドラインオプションで QEMU に渡す設定ファイルを使って QEMU を設定します。
この設定ファイルは各インスタンスの起動前に生成されます。
設定ファイルは/run/incus/<instance_name>/qemu.conf
に作られます。
デフォルトの設定はほとんどの典型的な利用ケース、VirtIO デバイスを持つモダンな UEFI ゲスト、では正常に動作します。 しかし、いくつかの状況では、生成された設定をオーバーライドする必要があります。 たとえば以下のような場合です。
UEFI をサポートしない古いゲスト OS を実行する。
VirtIO がゲスト OS でサポートされない場合にカスタムな仮想デバイスを指定する。
マシンの起動前に Incus でサポートされないデバイスを追加する。
ゲスト OS と衝突するデバイスを削除する。
設定をオーバーライドするには、raw.qemu.conf
オプションを設定します。
これはqemu.conf
と似たような形式ですが、いくつか拡張した形式をサポートします。
これは複数行の設定オプションですので、複数のセクションやキーを変更するのに使えます。
生成された設定ファイルのセクションやキーを置き換えるには、別の値を持つセクションを追加します。
たとえば、デフォルトの
virtio-gpu-pci
GPU ドライバーをオーバーライドするには以下のセクションを使います:raw.qemu.conf: |- [device "qemu_gpu"] driver = "qxl-vga"
セクションを削除するには、キー無しのセクションを指定します。 たとえば:
raw.qemu.conf: |- [device "qemu_gpu"]
キーを削除するには、空の文字列を値として指定します。 たとえば:
raw.qemu.conf: |- [device "qemu_gpu"] driver = ""
新規のセクションを追加するには、設定ファイル内に存在しないセクション名を指定します。
QEMU で使用される設定ファイル形式は同じ名前の複数のセクションを許可します。 以下は Incus で生成される設定の抜粋です。
[global]
driver = "ICH9-LPC"
property = "disable_s3"
value = "1"
[global]
driver = "ICH9-LPC"
property = "disable_s4"
value = "1"
オーバーライドするセクションを指定するには、インデクスを指定します。 たとえば:
raw.qemu.conf: |-
[global][1]
value = "0"
セクションのインデクスは 0(指定しない場合のデフォルト値)から始まりますので、上の例は以下の設定を生成します:
[global]
driver = "ICH9-LPC"
property = "disable_s3"
value = "1"
[global]
driver = "ICH9-LPC"
property = "disable_s4"
value = "0"
セキュリティーポリシー¶
以下のインスタンスオプションはインスタンスのSecurityポリシーを制御します:
Key: | security.agent.metrics |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | virtual machine |
Key: | security.csm |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | virtual machine |
このオプションを有効にする際は、security.secureboot
をfalse
に設定してください。
Key: | security.guestapi |
Type: | bool |
Default: |
|
Live update: | no |
詳細はインスタンス〜ホスト間の通信を参照してください。
Key: | security.guestapi.images |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | container |
Key: | security.idmap.base |
Type: | integer |
Live update: | no |
Condition: | unprivileged container |
このオプションを設定すると自動検出をオーバーライドします。
Key: | security.idmap.isolated |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | unprivileged container |
指定すると、このインスタンスに使用するidmapはこのオプションを設定したインスタンス間でユニークになります。
Key: | security.idmap.size |
Type: | integer |
Live update: | no |
Condition: | unprivileged container |
Key: | security.nesting |
Type: | bool |
Default: |
|
Live update: | yes |
Condition: | container |
Key: | security.privileged |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | container |
Key: | security.protection.delete |
Type: | bool |
Default: |
|
Live update: | yes |
Key: | security.protection.shift |
Type: | bool |
Default: |
|
Live update: | yes |
Condition: | container |
このオプションをtrue
にするとインスタンスの起動時にファイルシステムでUID/GIDがシフトされなくなります。
Key: | security.secureboot |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | virtual machine |
このオプションを無効にする場合、security.csm
を有効にすることを検討してください。
Key: | security.sev |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | virtual machine |
Key: | security.sev.policy.es |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | virtual machine |
Key: | security.sev.session.data |
Type: | string |
Default: |
|
Live update: | no |
Condition: | virtual machine |
Key: | security.sev.session.dh |
Type: | string |
Default: |
|
Live update: | no |
Condition: | virtual machine |
Key: | security.syscalls.allow |
Type: | string |
Live update: | no |
Condition: | container |
\n
で区切られた許可するシステムコールのリスト。
このリストはsecurity.syscalls.deny
と相互排他的である必要があります。
Key: | security.syscalls.deny |
Type: | string |
Live update: | no |
Condition: | container |
\n
で区切られた拒否するシステムコールのリスト。
このリストはsecurity.syscalls.allow
と相互排他的である必要があります。
Key: | security.syscalls.deny_compat |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | container |
x86_64
上では、このオプションはcompat_*
システムコールをブロックするかどうかを制御します。
他のアーキテクチャーでは、このオプションは無視されます。
Key: | security.syscalls.deny_default |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | container |
Key: | security.syscalls.intercept.bpf |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | container |
Key: | security.syscalls.intercept.bpf.devices |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | container |
このオプションはBPFプログラムが単一階層構造のデバイスcgroupをロードするのを許可するかどうかを制御します。
Key: | security.syscalls.intercept.mknod |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | container |
これらのシステムコールはキャラクター/ブロックデバイスの限定されたサブセットの作成を許可します。
Key: | security.syscalls.intercept.mount |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | container |
Key: | security.syscalls.intercept.mount.allowed |
Type: | string |
Live update: | yes |
Condition: | container |
インスタンス内部のプロセスが安全にマウントできるファイルシステムのカンマ区切りリストを指定します。
Key: | security.syscalls.intercept.mount.fuse |
Type: | string |
Live update: | yes |
Condition: | container |
FUSE実装にリダイレクトすべきファイルシステムのマウントを指定します(例えば、ext4=fuse2fs
)。
Key: | security.syscalls.intercept.mount.shift |
Type: | bool |
Default: |
|
Live update: | yes |
Condition: | container |
Key: | security.syscalls.intercept.sched_setcheduler |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | container |
このシステムコールはプロセスの優先度を増加させることができます。
Key: | security.syscalls.intercept.setxattr |
Type: | bool |
Default: |
|
Live update: | no |
Condition: | container |
このシステムコールは制限された拡張属性の限定されたサブセットを設定できます。
スナップショットのスケジュールと設定¶
以下のインスタンスオプションはインスタンススナップショットの作成と削除を制御します:
Key: | snapshots.expiry |
Type: | string |
Live update: | no |
1M 2H 3d 4w 5m 6y
のような式を指定します。
Key: | snapshots.pattern |
Type: | string |
Default: |
|
Live update: | no |
スナップショット名を表すPongo2のテンプレート文字列を指定します。 このテンプレートはスケジュールされたスナップショットと無名のスナップショットに使用されます。
詳細はスナップショットの自動命名を参照してください。
Key: | snapshots.schedule |
Type: | string |
Default: | empty |
Live update: | no |
cronの式(<minute> <hour> <dom> <month> <dow>
)かスケジュールのエイリアス(@hourly
, @daily
, @midnight
, @weekly
, @monthly
, @annually
, @yearly
)のカンマ区切りリストを設定するか、あるいは自動スナップショットを無効にするためには空にしてください。
Key: | snapshots.schedule.stopped |
Type: | bool |
Default: |
|
Live update: | no |
スナップショットの自動命名¶
snapshots.pattern
オプションはスナップショット名をフォーマットする Pongo2 テンプレート文字列です。
スナップショット名にタイムスタンプを追加するには、Pongo2 コンテキスト変数 creation_date
を使用します。
スナップショット名に使用できない文字を含まないようにテンプレート文字列をフォーマットするようにしてください。
例えば、 snapshots.pattern
を {{ creation_date|date:'2006-01-02_15-04-05' }}
に設定し、作成日時を秒の制度まで落として、スナップショットを命名するようにします。
名前の衝突を防ぐ別の方法はパターン内に %d
プレースホルダを使うことです。
最初のスナップショットでは、プレースホルダは 0
に置換されます。
後続のスナップショットでは、既存のスナップショットが考慮され、プレースホルダの位置の最大の数を見つけます。
この数が 1 増加されて新しい名前に使用されます。
揮発性の内部データ¶
以下の揮発性のキーはインスタンスに固有な内部データを保管するため Incus で現在内部的に使用されています:
Key: | volatile.<name>.apply_quota |
Type: | string |
ディスククォータはインスタンスの次回起動時に適用されます。
Key: | volatile.<name>.hwaddr |
Type: | string |
ネットワークデバイスのMACアドレスはデバイス自身にhwaddr
プロパティが設定されていない場合に使用されます。
Key: | volatile.<name>.last_state.created |
Type: | string |
取りうる値はtrue
またはfalse
。
Key: | volatile.<name>.last_state.hwaddr |
Type: | string |
物理デバイスがインスタンスに移動する際に使われた元のMAC
Key: | volatile.<name>.last_state.ip_addresses |
Type: | string |
ネットワークデバイスの最後に使用されたIPアドレスのカンマ区切りリスト。
Key: | volatile.<name>.last_state.mtu |
Type: | string |
物理デバイスがインスタンスに移動する際に使われた元のMTU
Key: | volatile.<name>.last_state.pci.driver |
Type: | string |
PCIデバイスの元のホストドライバー。
Key: | volatile.<name>.last_state.pci.parent |
Type: | string |
PCIデバイスをインスタンスに割り当てる際に使用された親のホストデバイス。
Key: | volatile.<name>.last_state.pci.slot.name |
Type: | string |
親のホストデバイスのPCIスロット名。
Key: | volatile.<name>.last_state.usb.bus |
Type: | string |
元のUSBバスアドレス。
Key: | volatile.<name>.last_state.usb.device |
Type: | string |
元のUSBデバイス識別子。
Key: | volatile.<name>.last_state.vdpa.name |
Type: | string |
VDPAデバイスファイルディスクリプターをインスタンスに移動する際に使用されたVPDAデバイス名。
Key: | volatile.<name>.last_state.vf.hwaddr |
Type: | string |
VF(仮想ファンクション)をインスタンスに移動する際に使用された元のMAC。
Key: | volatile.<name>.last_state.vf.id |
Type: | string |
VF(仮想ファンクション)をインスタンスに移動する際に使用されたID。
Key: | volatile.<name>.last_state.vf.parent |
Type: | string |
VF(仮想ファンクション)をインスタンスに移動する際に使用された親のホストデバイス。
Key: | volatile.<name>.last_state.vf.spoofcheck |
Type: | string |
VF(仮想ファンクション)をインスタンスに移動する際に使用された元のspoolチェック設定。
Key: | volatile.<name>.last_state.vf.vlan |
Type: | string |
VF(仮想ファンクション)をインスタンスに移動する際に使用された元のVLAN。
Key: | volatile.<name>.mig.uuid |
Type: | string |
NVIDIA MIGインスタンスUUID。
Key: | volatile.<name>.name |
Type: | string |
デバイス自身にname
プロパティがせってされていない場合のインスタンス内部のネットワークインタフェース名。
Key: | volatile.<name>.vgpu.uuid |
Type: | string |
NVIDIA仮想GPUインスタンスUUID。
Key: | volatile.apply_template |
Type: | string |
次回起動時に指定された名前のテンプレートが起動されます。
Key: | volatile.base_image |
Type: | string |
インスタンスの作成に使われたイメージのハッシュ値(インスタンスがイメージから作成されなかった場合は空)
Key: | volatile.cloud_init.instance-id |
Type: | string |
Key: | volatile.cluster.group |
Type: | string |
インスタンスが作成時に限定されていた1つまたは複数のクラスタグループ。 これは退避のようなイベントをスケジュールする際にインスタンスを指定した組の中に維持するのに使われます。
Key: | volatile.container.oci |
Type: | bool |
Default: |
|
Key: | volatile.evacuate.origin |
Type: | string |
退避前にインスタンスが存在していたクラスタメンバー。
Key: | volatile.uuid.generation |
Type: | string |
インスタンス生成UUIDはインスタンスの時刻が遡るたびに変更されます。 全てのサーバーとプロジェクトに対してグローバルにユニークです。
注釈
揮発性のキーはユーザは設定できません。