From 75749b870a425e9fd9a9355380593e7932f8db7a Mon Sep 17 00:00:00 2001 From: Hiroaki Nakamura Date: Sat, 6 Nov 2021 13:14:23 +0900 Subject: [PATCH 1/3] Update Update translations of LXD 4.20 (Closes #207) Signed-off-by: Hiroaki Nakamura --- doc/api-extensions.md | 71 ++++ doc/clustering.md | 20 + doc/environment.md | 1 + doc/index.md | 14 +- doc/instances.md | 121 +++++- doc/metadata.yaml | 12 +- doc/network-acls.md | 60 ++- doc/network-peers.md | 49 +++ doc/network-zones.md | 90 ++++ doc/networks.md | 19 +- doc/projects.md | 1 + doc/rest-api.yaml | 932 ++++++++++++++++++++++++++++++++++++------ doc/server.md | 1 + 13 files changed, 1243 insertions(+), 148 deletions(-) create mode 100644 doc/network-peers.md create mode 100644 doc/network-zones.md diff --git a/doc/api-extensions.md b/doc/api-extensions.md index 462fd25..70dd3a0 100644 --- a/doc/api-extensions.md +++ b/doc/api-extensions.md @@ -2753,3 +2753,74 @@ This includes the following endpoints: --> * `GET /1.0/metrics` + +## image\_source\_project +`POST /1.0/images` に `project` フィールドを追加し、イメージコピー時にコピー元プロジェクトを設定できるようにします。 + + +## clustering\_config +クラスターメンバーに `config` プロパティーを追加し、キー・バリュー・ペアを設定可能にします。 + + +## network\_peer +ネットワークピアリングを追加し、 OVN ネットワーク間のトラフィックが OVN サブシステムの外に出ずに通信できるようにします。 + + +## linux\_sysctl +`linux.sysctl.*` 設定キーを追加し、ユーザーが一コンテナー内の一部のカーネルパラメータを変更できるようにします。 + + +## network\_dns +組み込みの DNS サーバーとゾーン API を追加し、 LXD インスタンスに DNS レコードを提供します。 + + +以下のサーバー設定キーが追加されます。 + + + - `core.dns_address` + +以下のネットワーク設定キーが追加されます。 + + + - `dns.zone.forward` + - `dns.zone.reverse.ipv4` + - `dns.zone.reverse.ipv6` + +以下のプロジェクト設定キーが追加されます。 + + + - `restricted.networks.zones` + +DNS ゾーンを管理するために下記の REST API が追加されます。 + + + - `/1.0/network-zones` (GET, POST) + - `/1.0/network-zones/` (GET, PUT, PATCH, DELETE) + +## ovn\_nic\_acceleration +OVN NIC に `acceleration` 設定キーを追加し、ハードウェアオフロードを有効にするのに使用できます。 +設定値は `none` または `sriov` です。 + diff --git a/doc/clustering.md b/doc/clustering.md index 826ee51..f2e6d86 100644 --- a/doc/clustering.md +++ b/doc/clustering.md @@ -225,6 +225,26 @@ an individual node is available with `lxc cluster show `. --> クラスターが形成されると、`lxc cluster list` を実行して、ノードのリストと状態を見ることができます。ノードそれぞれのもっと詳細な情報は `lxc cluster show ` を実行して取得できます。 +### クラスターメンバーの設定 + +各クラスターメンバーは以下のサポートされるネームスペース内で独自のキー・バリュー設定を持てます。 + + +- `user` (ユーザーのメタデータ用に自由形式のキー・バリュー) +- `scheduler` (メンバーが自クラスターによりどのように動的にターゲットされるかに関連するオプション) + +現状サポートされるキーは以下の通りです。 + + +| キー | 型 | 条件 | デフォルト値 | 説明 | +| :----------------- | :----- | :-------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| scheduler.instance | string | - | all | `all` の場合、最低数のインスタンスを持っていれば、メンバーがインスタンス作成に自動でターゲットされます。 `manual` の場合、インスタンスは `--target` が指定されたときのみメンバーにターゲットされます。 | +| user.\* | string | - | - | 自由形式のユーザーのキー・バリュー・ストレージ (検索で使用可能) | + ### 投票 (voting) メンバーとスタンバイメンバー クラスターは状態を保管するために分散 [データベース](database.md) を使用します。 diff --git a/doc/environment.md b/doc/environment.md index 2fcb7f2..b86314c 100644 --- a/doc/environment.md +++ b/doc/environment.md @@ -35,3 +35,4 @@ the user's environment and to turn some advanced features on and off. `LXD_UNPRIVILEGED_ONLY` | `true` に設定すると非特権コンテナーしか作れなくなるように強制します。 LXD_UNPRIVILEGED_ONLY を設定する前に作られた特権コンテナーだけが引き続き特権を持つことに注意してください。このオプションを LXD デーモンを最初にセットアップするときに設定するのが実用的です。 `LXD_OVMF_PATH` | `OVMF_CODE.fd` と `OVMF_VARS.ms.fd` を含む OVMF ビルドへのパス `LXD_SHIFTFS_DISABLE` | shiftfs のサポートを無効にする(従来の UID シフトを試す際に有用です) +`LXD_DEVMONITOR_DIR` | デバイスモニターでモニターするパス。主にテスト用。 diff --git a/doc/index.md b/doc/index.md index 25d3e64..ed95a6c 100644 --- a/doc/index.md +++ b/doc/index.md @@ -71,18 +71,6 @@ sudo apt update sudo apt install acl attr autoconf dnsmasq-base git golang libacl1-dev libcap-dev liblxc1 liblxc-dev libsqlite3-dev libtool libudev-dev liblz4-dev libuv1-dev make pkg-config rsync squashfs-tools tar tcl xz-utils ebtables ``` - -LXC を自分でビルドする場合は、テストスイートがテストする、関連する適切なセキュリティ関連のライブラリーがインストールされていることを確認してください。 -Ubuntu であれば次のようにインストールできます: - -```bash -sudo apt install libapparmor-dev libseccomp-dev libcap-dev -``` - diff --git a/doc/instances.md b/doc/instances.md index f540da1..033ada4 100644 --- a/doc/instances.md +++ b/doc/instances.md @@ -80,6 +80,7 @@ limits.memory.swap.priority | integer | 10 (maximum) | ye limits.network.priority | integer | 0 (minimum) | yes | - | 負荷がかかった状態で、インスタンスのネットワークリクエストに割り当てる優先度(0 〜 10 の整数) limits.processes | integer | - (max) | yes | container | インスタンス内で実行できるプロセスの最大数 linux.kernel\_modules | string | - | yes | container | インスタンスを起動する前にロードするカーネルモジュールのカンマ区切りのリスト +linux.sysctl.\* | string | - | no | container | sysctl 設定の変更に使用可能 migration.incremental.memory | boolean | false | yes | container | インスタンスのダウンタイムを短くするためにインスタンスのメモリを増分転送するかどうか migration.incremental.memory.goal | integer | 70 | yes | container | インスタンスを停止させる前に同期するメモリの割合 migration.incremental.memory.iterations | integer | 10 | yes | container | インスタンスを停止させる前に完了させるメモリ転送処理の最大数 @@ -249,6 +250,66 @@ scheduler priority score when a number of instances sharing a set of CPUs have the same percentage of CPU assigned to them. --> +### VM CPU トポロジー +LXD の仮想マシンはデフォルトでは vCPU を 1 つだけ割り当てて、それは +ホストの CPU のベンダーとタイプにマッチしたものとして表示されますが +シングルコアでスレッドはありません。 + + +`limits.cpu` を単一の整数に設定すると、複数の vCPU が割り当てられゲストにフルのコアとして公開します。 +これらの vCPU ホスト上の特定の物理コアにピン止めはされません。 + + +`limits.cpu` に CPU ID (`lxc info --resources` で表示されます) の範囲やカンマ区切りリストを指定すると、 vCPU はそれらの物理コアにピン止めされます。 +このシナリオでは LXD は CPU 設定が実際のハードウェアトポロジーと合っているか確認し、合っている場合はゲストのトポロジーに複製します。 + + +例えばピン止めの設定が 8 スレッドを含む場合、スレッドの各ペアは同じコアから提供され、 +コア番号が 2 つの CPU にまたがる場合でも、 LXD はゲストに 2 つの CPU を提供し、 +各 CPU は 2 つのコアを持ち、各コアは 2 つのスレッドを満ちます。 +NUMA レイアウトも同様に複製され、このシナリオではゲストは十中八九 +各 CPU ソケットにつき 1 つ、合計 2 つの NUMA ノードを持つことになるでしょう。 + + +複数の NUMA ノードの環境では、メモリも同様に NUMA ノードに分割され、 +それに応じてホストでピン止めされ、その後ゲストにも公開します。 + + +これら全てによりゲスト内で非常に高いパフォーマンスのオペレーションが可能です。 +これはゲストのスケジューラーが NUMA ノード間でメモリを共有したりプロセスを移動する際に +ソケット、コア、スレッドについて適切に判断し、 NUMA トポロジーも考慮できるからです。 + + # デバイス設定 LXD は、標準の POSIX システムが動作するのに必要な基本的なデバイスを常にインスタンスに提供します。これらはインスタンスやプロファイルの設定では見えず、上書きもできません。 +acceleration | string | none | no | no | ハードウェアオフローディングを有効にする。 `none` か `sriov` (下記の SR-IOV ハードウェアアクセラレーション参照) name | string | カーネルが割り当て | no | no | インスタンス内部でのインタフェース名 host\_name | string | ランダムに割り当て | no | no | ホスト内部でのインタフェース名 hwaddr | string | ランダムに割り当て | no | no | 新しいインターフェースの MAC アドレス @@ -586,6 +648,63 @@ security.acls.default.egress.action | string | reject security.acls.default.ingress.logged | boolean | false | no | no | どの ACL ルールにもマッチしない ingress トラフィックをログ出力するかどうか security.acls.default.egress.logged | boolean | false | no | no | どの ACL ルールにもマッチしない egress トラフィックをログ出力するかどうか +SR-IOV ハードウェアアクセラレーション: + + +`acceleration=sriov` を使用するためには互換性のある SR-IOV switchdev が使用できる物理 NIC が LXD ホスト内に存在する必要があります。 +LXD では物理 NIC (PF) が switchdev モードで設定されており、 OVN の統合 OVN ブリッジに接続すると 1 つ以上の仮想ファンクション (VF) がアクティブになることを想定しています。 + + +これを実現するための前提となるセットアップの行程は以下の通りです。 + + +PF と VF のセットアップ: + + +PF 上(以下の例では `0000:09:00.0` の PCI アドレスで `enp9s0f0np0` という名前) の VF をアクティベートしアンバインドします。 +次に `switchdev` モードと PF 上の `hw-tc-offload` を有効にします。 +最後に VF をリバインドします。 + + +``` +echo 4 > /sys/bus/pci/devices/0000:09:00.0/sriov_numvfs +for i in $(lspci -nnn | grep "Virtual Function" | cut -d' ' -f1); do echo 0000:$i > /sys/bus/pci/drivers/mlx5_core/unbind; done +devlink dev eswitch set pci/0000:09:00.0 mode switchdev +ethtool -K enp9s0f0np0 hw-tc-offload on +for i in $(lspci -nnn | grep "Virtual Function" | cut -d' ' -f1); do echo 0000:$i > /sys/bus/pci/drivers/mlx5_core/bind; done +``` + +OVS のセットアップ: + + +ハードウェアオフロードを有効にし、 PF NIC を統合ブリッジ (通常は `br-int` という名前) に追加します。 + + +``` +ovs-vsctl set open_vswitch . other_config:hw-offload=true +systemctl restart openvswitch-switch +ovs-vsctl add-port br-int enp9s0f0np0 +ip link set enp9s0f0np0 up +``` + #### nic: physical サポートされるインスタンスタイプ: コンテナー, VM @@ -1540,7 +1659,7 @@ On the command line, this is passed like this: --> ```bash -lxc launch ubuntu:18.04 my-instance -t t2.micro +lxc launch ubuntu:20.04 my-instance -t t2.micro ``` 使えるクラウドとインスタンスタイプのリストは次をご覧ください: diff --git a/doc/metadata.yaml b/doc/metadata.yaml index e9da372..ad84f23 100644 --- a/doc/metadata.yaml +++ b/doc/metadata.yaml @@ -34,6 +34,12 @@ navigation: - title: ネットワークフォワード # Network Forwards location: network-forwards.md + - title: ネットワークピア # Network Peers + location: network-peers.md + + - title: ネットワークゾーン # Network Zones + location: network-zones.md + - title: presseed YAML # Preseed files location: preseed.md @@ -52,9 +58,6 @@ navigation: - title: 仮想マシン # Virtual machines location: virtual-machines.md - - title: インスタンスメトリクスエクスポーター # Instance metrics exporter - location: metrics.md - - title: イメージ # Images children: - title: アーキテクチャ # Architectures @@ -94,6 +97,9 @@ navigation: - title: イベント API ドキュメント # Events API documentation location: events.md + - title: メトリクス API ドキュメント # Metrics API documentation + location: metrics.md + - title: 内部動作とデバッグ # Internals & debugging children: - title: コンテナー環境 # Container environment diff --git a/doc/network-acls.md b/doc/network-acls.md index 9c42c76..3a57d21 100644 --- a/doc/network-acls.md +++ b/doc/network-acls.md @@ -85,8 +85,8 @@ Property | Type | Required | Description action | string | yes | マッチしたトラフィックに適用するアクション(`allow`, `reject` または `drop`) state | string | yes | ルールの状態(`enabled`, `disabled` または `logged`) description | string | no | ルールの説明 -source | string | no | CIDR か IP の範囲、送信元の ACL の名前、あるいは(ingress ルールに対しての) @external/@internal のカンマ区切りリスト、または any の場合は空を指定 -destination | string | no | CIDR か IP の範囲、送信先の ACL の名前、あるいは(egress ルールに対しての) @external/@internal のカンマ区切りリスト、または any の場合は空を指定 +source | string | no | CIDR か IP の範囲、送信元の ACL の名前、あるいは(ingress ルールに対しての) ソースサブジェクト名セレクターのカンマ区切りリスト、または any の場合は空を指定 +destination | string | no | CIDR か IP の範囲、送信先の ACL の名前、あるいは(egress ルールに対しての) デスティネーションサブジェクト名セレクターのカンマ区切りリスト、または any の場合は空を指定 protocol | string | no | マッチ対象のプロトコル(`icmp4`, `icmp6`, `tcp`, `udp`)、または any の場合は空を指定 source\_port | string | no | protocol が `udp` か `tcp` の場合はポートかポートの範囲(開始-終了で両端含む)のカンマ区切りリスト、または any の場合は空を指定 destination\_port | string | no | protocol が `udp` か `tcp` の場合はポートかポートの範囲(開始-終了で両端含む)のカンマ区切りリスト、または any の場合は空を指定 @@ -119,23 +119,56 @@ The default reject action can be modified by using the network and NIC level `se and `security.acls.default.egress.action` settings. The NIC level settings will override the network level settings. --> -## ポートグループセレクター +# サブジェクト名セレクター -特定の ACL を割り当てられた Instance NIC は論理的なポートグループを形成し、他の ACL ルールから名前で参照することが出来ます。 +サブジェクト名セレクターは ingress ルールの `source` フィールドと egress ルールの `destination` フィールドで使用可能です。 -また `@internal` と `@external` という 2 つの特殊なセレクターがあり、これらはネットワークのそれぞれローカルと外部のトラフィックを表します。 +(直接あるいは NIC が接続するネットワークに割り当てられた ACL 経由で) 特定の ACL を割り当てられた Instance NIC +は論理的なポートグループを形成し、他の ACL ルールから `` 形式で ACL サブジェクト名として参照することが出来ます。 -ポートグループセレクターは ingress ルールの `source` フィールドと egress ルールの `destination` フィールドで使用可能です。 +例 `source=foo` + +ネットワークが [ネットワークピア](network-peers.md) をサポートする場合、ピア接続間のトラフィックを +`@/` という形式のネットワークサブジェクトセレクターで参照できます。 + + +例 `source=@ovn1/mypeer` + + +ネットワークサブジェクトセレクターを使用する際は、 ACL 適用先のネットワークは指定されたピア接続を持っていなければなりません。 +持っていない場合 ACL は適用されません。 + + +`@internal` と `@external` という特別なネットワークサブジェクトセレクターもあります。 +これらはそれぞれネットワークローカルのトラフィックと外部のトラフィックを表します。 + + +例 `source=@internal` + ## ブリッジの制限 @@ -148,10 +181,9 @@ used for intra-bridge firewalling (i.e for firewalling traffic between instances OVN ACL とは違い、 `bridge` ACL はブリッジと LXD ホストの間の境界*のみ*に適用されます。これは外部へと外部からのトラフィックにネットワークポリシーを適用するために使うことしかできず、ブリッジ間のファイアウォール(例:同じブリッジに繋がれたインスタンス間のトラフィックに対するファイアウォール)には使えません。 -さらに `bridge` ACL は(`@` で始まる)予約されたサブジェクト名を使うこともルールサブジェクト内の他の ACL 名を使うこともサポートしていません。 +さらに `bridge` ACL はサブジェクト名セレクターの使用をサポートしていません。 + +ネットワークピアは 2 つの OVN ネットワーク間でルーティングの関係を作成できます。 +これにより 2 つのネットワーク間での通信がアップリンクのネットワーク経由ではなく OVN サブシステム内で完結できます。 + + +ピアリングが双方向であることを確実にするため、ピアリング内の両方のネットワークがセットアップの行程を完了する必要があります。 + + +例。 + + +``` +lxc network peer create foo --project=local_network +lxc network peer create foo --project=target_project +``` + +ピアのセットアップの行程でプロジェクトかネットワーク名の指定が正しくない場合、対応するプロジェクトや +ネットワークが存在しないというエラーを上記のコマンドは表示しません。 +これは他のプロジェクトの(訳注:悪意の)ユーザーがプロジェクトやネットワークが存在するかを確認できないようにするためです。 + + +## プロパティー +ネットワークピアの設定は以下の通りです。 + + +プロパティー | 型 | 必須 | 説明 +:-- | :-- | :-- | :-- +name | string | yes | ローカルネットワーク上のネットワークピアの名前 +description | string | no | ネットワークピアの説明 +config | string set | no | 設定のキーバリューペアー (`user.*` のカスタムキーのみサポート) +ports | port list | no | ネットワークフォワードのポートリスト +target_project | string | yes | 対象のネットワークがどのプロジェクト内に存在するか (作成時に必須) +target_network | string | yes | どのネットワークとピアを作成するか (作成時に必須) +status | string | -- | 作成中か作成完了 (対象のネットワークと相互にピアリングした状態) かを示すステータス diff --git a/doc/network-zones.md b/doc/network-zones.md new file mode 100644 index 0000000..9b7bae2 --- /dev/null +++ b/doc/network-zones.md @@ -0,0 +1,90 @@ +# ネットワークゾーンの設定 +ネットワークゾーンは LXD のネットワークの DNS レコードを保持するのに使用します。 + + +各ネットワークは下記の最大3つに関連します。 + + + - 正引き DNS レコード + - IPv4 逆引き DNS レコード + - IPv6 逆引き DNS レコード + +これらはネットワーク設定の `dns.zone.forward`, `dns.zone.reverse.ipv4`, +`dns.zone.reverse.ipv6` で制御します。 +LXD は全てのインスタンス、ネットワークゲートウェイ、ダウンストリーム (下流) +のネットワークポートの全てに対して正引きと逆引きのレコードを自動で管理します。 + + +組み込みの DNS サーバーを有効にするには、サーバー設定内の `core.dns_address` +を設定する必要があります。 + + +組み込みの DNS サーバーは AXFR 経由でのゾーン転送のみをサポートしており、 +DNS レコードへの直接の問い合わせはできません。 +つまりこの機能は外部の DNS サーバー (bind9, nsd, ...) の使用を前提としています。 +外部の DNS サーバーが LXD からの全体のゾーンを転送し、有効期限を過ぎたら更新し、 +DNS 問い合わせに対する管理権限を持つ応答 (authoritative answers) を提供します。 + + +ゾーン転送の認証はゾーン毎に設定され、各ゾーンでピアごとに IP アドレスと TSIG キーを設定して、 +TSIG キーベースの認証を行います。 + + +ゾーンはプロジェクトに属し、プロジェクトの `networks` 機能に紐づけられます。 + + +ゾーン名は複数のプロジェクトをまたいでグローバルにユニークでなければなりません。 +そのため、別のプロジェクト内の既存のゾーンのせいでゾーンの作成がエラーになることがありえます。 + + +`restricted.networks.zones` プロジェクト設定キーによりプロジェクトを +特定のドメインとサブドメインに制限できます。 + + +## プロパティー +ネットワークゾーンのプロパティーは以下の通りです。 + + +プロパティー | 型 | 必須 | 説明 +:-- | :-- | :-- | :-- +peers.NAME.address | string | no | DNS サーバーの IP アドレス +peers.NAME.key | string | no | サーバー用の TSIG キー +dns.nameservers | string set | no | (NS レコード用の) DNS サーバーの FQDN のカンマ区切りリスト + +さらに、 `user.` キーの名前空間もユーザー提供の自由形式のキー・バリュー用にサポートされています。 + diff --git a/doc/networks.md b/doc/networks.md index 1e30827..f724083 100644 --- a/doc/networks.md +++ b/doc/networks.md @@ -125,6 +125,9 @@ bridge.mtu | integer | - dns.domain | string | - | lxd | DHCP のクライアントに広告し DNS の名前解決に使用するドメイン dns.mode | string | - | managed | DNS の登録モード ("none" は DNS レコード無し、 "managed" は LXD が静的レコードを生成、 "dynamic" はクライアントがレコードを生成) dns.search | string | - | - | 完全なドメインサーチのカンマ区切りリスト(デフォルトは `dns.domain` の値) +dns.zone.forward | string | - | managed | 正引き DNS レコード用の DNS ゾーン名 +dns.zone.reverse.ipv4 | string | - | managed | IPv4 逆引き DNS レコード用の DNS ゾーン名 +dns.zone.reverse.ipv6 | string | - | managed | IPv6 逆引き DNS レコード用の DNS ゾーン名 fan.overlay\_subnet | string | ファンモード | 240.0.0.0/8 | FAN の overlay として使用するサブネット (CIDR 形式) fan.type | string | ファンモード | vxlan | FAN のトンネル・タイプ ("vxlan" か "ipip") fan.underlay\_subnet | string | ファンモード | 自動(作成時のみ) | FAN の underlay として使用するサブネット (CIDR 形式)。デフォルトのゲートウェイサブネットを使うには "auto" を指定。 @@ -520,7 +523,7 @@ Create an OVN network and an instance using it: ``` lxc network set lxdbr0 ipv4.dhcp.ranges=... ipv4.ovn.ranges=... # OVN ゲートウェイに IP のレンジを割り当て lxc network create ovntest --type=ovn network=lxdbr0 -lxc init images:ubuntu/focal c1 +lxc init images:ubuntu/20.04 c1 lxc config device override c1 eth0 network=ovntest lxc start c1 lxc ls @@ -535,7 +538,7 @@ lxc ls ``` lxc network set lxdbr0 ipv4.dhcp.ranges=... ipv4.ovn.ranges=... # Allocate IP range for OVN gateways. lxc network create ovntest -\-type=ovn network=lxdbr0 -lxc init images:ubuntu/focal c1 +lxc init images:ubuntu/20.04 c1 lxc config device override c1 eth0 network=ovntest lxc start c1 lxc ls @@ -549,11 +552,18 @@ lxc ls ネットワークフォワード: -OVN のネットワークサポートは [network forwards](network-forwards.md#network-ovn) 参照。 +OVN のネットワークサポートは [ネットワークフォワード](network-forwards.md#network-ovn) 参照。 +ネットワークピア: + +OVN のネットワークピアサポートは [ネットワークピア](network-peers.md) 参照。 + + ネットワークの設定プロパティー: キー | 型 | 条件 | デフォルト | 説明 @@ -562,6 +572,9 @@ bridge.hwaddr | string | - bridge.mtu | integer | - | 1442 | ブリッジの MTU (デフォルトではホストからホストへの geneve トンネルを許可します) dns.domain | string | - | lxd | DHCP のクライアントに広告し DNS の名前解決に使用するドメイン dns.search | string | - | - | 完全なドメインサーチのカンマ区切りリスト(デフォルトは `dns.domain` の値) +dns.zone.forward | string | - | - | 正引き DNS レコード用の DNS ゾーン名 +dns.zone.reverse.ipv4 | string | - | - | IPv4 逆引き DNS レコード用の DNS ゾーン名 +dns.zone.reverse.ipv6 | string | - | - | IPv6 逆引き DNS レコード用の DNS ゾーン名 ipv4.address | string | 標準モード | 自動(作成時のみ) | ブリッジの IPv4 アドレス (CIDR 形式)。 IPv4 をオフにするには "none" 、新しいランダムな未使用のサブネットを生成するには "auto" を指定。 ipv4.dhcp | boolean | ipv4 アドレス | true | DHCP を使ってアドレスを割り当てるかどうか ipv4.nat | boolean | ipv4 アドレス | false | NAT するかどうか(ipv4.address が未設定の場合デフォルト値は true でランダムな ipv4.address が生成されます) diff --git a/doc/projects.md b/doc/projects.md index 535a4d9..841c95a 100644 --- a/doc/projects.md +++ b/doc/projects.md @@ -72,6 +72,7 @@ restricted.devices.unix-hotplug | string | - | block restricted.devices.usb | string | - | block | block と設定すると usb タイプのデバイスの使用を防ぐ restricted.networks.subnets | string | - | block | このプロジェクトで使用するために割り当てられるアップリンクネットワークのネットワークサブネット(`:` 形式)のカンマ区切りリスト restricted.networks.uplinks | string | - | block | このプロジェクト内のネットワークでアップリンクとして使用可能なネットワークのカンマ区切りリスト +restricted.networks.zones | string | - | block | このプロジェクト内の使用可能なネットワークゾーン(またはそれらの下のサブゾーン) のカンマ区切りリスト restricted.snapshots | string | - | block | インスタンスやボリュームのスナップショット作成を禁止するかどうか restricted.virtual-machines.lowlevel | string | - | block | block と設定すると raw.qemu, volatile などの低レベルの仮想マシンオプションを防ぐ。 diff --git a/doc/rest-api.yaml b/doc/rest-api.yaml index 518b305..81e0ede 100644 --- a/doc/rest-api.yaml +++ b/doc/rest-api.yaml @@ -156,6 +156,14 @@ definitions: example: x86_64 type: string x-go-name: Architecture + config: + additionalProperties: + type: string + description: Additional configuration information + example: + scheduler.instance: all + type: object + x-go-name: Config database: description: Whether the cluster member is a database server example: true @@ -281,6 +289,14 @@ definitions: description: ClusterMemberPut represents the the modifiable fields of a LXD cluster member properties: + config: + additionalProperties: + type: string + description: Additional configuration information + example: + scheduler.instance: all + type: object + x-go-name: Config description: description: Cluster member description example: AMD Epyc 32c/64t @@ -845,6 +861,11 @@ definitions: example: c1/snap0 type: string x-go-name: Name + project: + description: Source project name + example: project1 + type: string + x-go-name: Project protocol: description: Source server protocol example: simplestreams @@ -2392,6 +2413,110 @@ definitions: x-go-name: Type type: object x-go-package: github.com/lxc/lxd/shared/api + NetworkPeer: + properties: + config: + additionalProperties: + type: string + description: Peer configuration map (refer to doc/network-peers.md) + example: + user.mykey: foo + type: object + x-go-name: Config + description: + description: Description of the peer + example: Peering with network1 in project1 + type: string + x-go-name: Description + name: + description: Name of the peer + example: project1-network1 + readOnly: true + type: string + x-go-name: Name + status: + description: The state of the peering + example: Pending + readOnly: true + type: string + x-go-name: Status + target_network: + description: Name of the target network + example: network1 + readOnly: true + type: string + x-go-name: TargetNetwork + target_project: + description: Name of the target project + example: project1 + readOnly: true + type: string + x-go-name: TargetProject + used_by: + description: List of URLs of objects using this network peering + example: + - /1.0/network-acls/test + - /1.0/network-acls/foo + items: + type: string + readOnly: true + type: array + x-go-name: UsedBy + title: NetworkPeer used for displaying a LXD network peering. + type: object + x-go-package: github.com/lxc/lxd/shared/api + NetworkPeerPut: + description: NetworkPeerPut represents the modifiable fields of a LXD network + peering + properties: + config: + additionalProperties: + type: string + description: Peer configuration map (refer to doc/network-peers.md) + example: + user.mykey: foo + type: object + x-go-name: Config + description: + description: Description of the peer + example: Peering with network1 in project1 + type: string + x-go-name: Description + type: object + x-go-package: github.com/lxc/lxd/shared/api + NetworkPeersPost: + description: NetworkPeersPost represents the fields of a new LXD network peering + properties: + config: + additionalProperties: + type: string + description: Peer configuration map (refer to doc/network-peers.md) + example: + user.mykey: foo + type: object + x-go-name: Config + description: + description: Description of the peer + example: Peering with network1 in project1 + type: string + x-go-name: Description + name: + description: Name of the peer + example: project1-network1 + type: string + x-go-name: Name + target_network: + description: Name of the target network + example: network1 + type: string + x-go-name: TargetNetwork + target_project: + description: Name of the target project + example: project1 + type: string + x-go-name: TargetProject + type: object + x-go-package: github.com/lxc/lxd/shared/api NetworkPost: description: NetworkPost represents the fields required to rename a LXD network properties: @@ -2620,6 +2745,81 @@ definitions: x-go-name: VID type: object x-go-package: github.com/lxc/lxd/shared/api + NetworkZone: + properties: + config: + additionalProperties: + type: string + description: Zone configuration map (refer to doc/network-zones.md) + example: + user.mykey: foo + type: object + x-go-name: Config + description: + description: Description of the network zone + example: Internal domain + type: string + x-go-name: Description + name: + description: The name of the zone (DNS domain name) + example: example.net + type: string + x-go-name: Name + used_by: + description: List of URLs of objects using this network zone + example: + - /1.0/networks/foo + - /1.0/networks/bar + items: + type: string + readOnly: true + type: array + x-go-name: UsedBy + title: NetworkZone represents a network zone (DNS). + type: object + x-go-package: github.com/lxc/lxd/shared/api + NetworkZonePut: + description: NetworkZonePut represents the modifiable fields of a LXD network + zoned + properties: + config: + additionalProperties: + type: string + description: Zone configuration map (refer to doc/network-zones.md) + example: + user.mykey: foo + type: object + x-go-name: Config + description: + description: Description of the network zone + example: Internal domain + type: string + x-go-name: Description + type: object + x-go-package: github.com/lxc/lxd/shared/api + NetworkZonesPost: + description: NetworkZonesPost represents the fields of a new LXD network zone + properties: + config: + additionalProperties: + type: string + description: Zone configuration map (refer to doc/network-zones.md) + example: + user.mykey: foo + type: object + x-go-name: Config + description: + description: Description of the network zone + example: Internal domain + type: string + x-go-name: Description + name: + description: The name of the zone (DNS domain name) + example: example.net + type: string + x-go-name: Name + type: object + x-go-package: github.com/lxc/lxd/shared/api NetworksPost: description: NetworksPost represents the fields of a new LXD network properties: @@ -5496,7 +5696,7 @@ paths: summary: Get the trusted certificates tags: - certificates - /1.0/cluster/{name}: + /1.0/cluster: get: description: Gets the current cluster configuration. operationId: cluster_get @@ -8653,10 +8853,10 @@ paths: summary: Get the network ACLs tags: - network-acls - /1.0/networks: + /1.0/network-zones: get: - description: Returns a list of networks (URLs). - operationId: networks_get + description: Returns a list of network zones (URLs). + operationId: network_zones_get parameters: - description: Project name example: default @@ -8675,8 +8875,8 @@ paths: description: List of endpoints example: |- [ - "/1.0/networks/lxdbr0", - "/1.0/networks/lxdbr1" + "/1.0/network-zones/example.net", + "/1.0/network-zones/example.com" ] items: type: string @@ -8698,33 +8898,26 @@ paths: $ref: '#/responses/Forbidden' "500": $ref: '#/responses/InternalServerError' - summary: Get the networks + summary: Get the network zones tags: - - networks + - network-zones post: consumes: - application/json - description: |- - Creates a new network. - When clustered, most network types require individual POST for each cluster member prior to a global POST. - operationId: networks_post + description: Creates a new network zone. + operationId: network_zones_post parameters: - description: Project name example: default in: query name: project type: string - - description: Cluster member name - example: lxd01 - in: query - name: target - type: string - - description: Network + - description: zone in: body - name: network + name: zone required: true schema: - $ref: '#/definitions/NetworksPost' + $ref: '#/definitions/NetworkZonesPost' produces: - application/json responses: @@ -8736,13 +8929,13 @@ paths: $ref: '#/responses/Forbidden' "500": $ref: '#/responses/InternalServerError' - summary: Add a network + summary: Add a network zone tags: - - networks - /1.0/networks/{name}: + - network-zones + /1.0/network-zones/{name}: delete: - description: Removes the network. - operationId: network_delete + description: Removes the network zone. + operationId: network_zone_delete parameters: - description: Project name example: default @@ -8760,33 +8953,28 @@ paths: $ref: '#/responses/Forbidden' "500": $ref: '#/responses/InternalServerError' - summary: Delete the network + summary: Delete the network zone tags: - - networks + - network-zones get: - description: Gets a specific network. - operationId: network_get + description: Gets a specific network zone. + operationId: network_zone_get parameters: - description: Project name example: default in: query name: project type: string - - description: Cluster member name - example: lxd01 - in: query - name: target - type: string produces: - application/json responses: "200": - description: Network + description: zone schema: description: Sync response properties: metadata: - $ref: '#/definitions/Network' + $ref: '#/definitions/NetworkZone' status: description: Status description example: Success @@ -8804,31 +8992,26 @@ paths: $ref: '#/responses/Forbidden' "500": $ref: '#/responses/InternalServerError' - summary: Get the network + summary: Get the network zone tags: - - networks + - network-zones patch: consumes: - application/json - description: Updates a subset of the network configuration. - operationId: network_patch + description: Updates a subset of the network zone configuration. + operationId: network_zone_patch parameters: - description: Project name example: default in: query name: project type: string - - description: Cluster member name - example: lxd01 - in: query - name: target - type: string - - description: Network configuration + - description: zone configuration in: body - name: network + name: zone required: true schema: - $ref: '#/definitions/NetworkPut' + $ref: '#/definitions/NetworkZonePut' produces: - application/json responses: @@ -8842,62 +9025,26 @@ paths: $ref: '#/responses/PreconditionFailed' "500": $ref: '#/responses/InternalServerError' - summary: Partially update the network - tags: - - networks - post: - consumes: - - application/json - description: Renames an existing network. - operationId: network_post - parameters: - - description: Project name - example: default - in: query - name: project - type: string - - description: Network rename request - in: body - name: network - required: true - schema: - $ref: '#/definitions/NetworkPost' - produces: - - application/json - responses: - "200": - $ref: '#/responses/EmptySyncResponse' - "400": - $ref: '#/responses/BadRequest' - "403": - $ref: '#/responses/Forbidden' - "500": - $ref: '#/responses/InternalServerError' - summary: Rename the network + summary: Partially update the network zone tags: - - networks + - network-zones put: consumes: - application/json - description: Updates the entire network configuration. - operationId: network_put + description: Updates the entire network zone configuration. + operationId: network_zone_put parameters: - description: Project name example: default in: query name: project type: string - - description: Cluster member name - example: lxd01 - in: query - name: target - type: string - - description: Network configuration + - description: zone configuration in: body - name: network + name: zone required: true schema: - $ref: '#/definitions/NetworkPut' + $ref: '#/definitions/NetworkZonePut' produces: - application/json responses: @@ -8911,24 +9058,19 @@ paths: $ref: '#/responses/PreconditionFailed' "500": $ref: '#/responses/InternalServerError' - summary: Update the network + summary: Update the network zone tags: - - networks - /1.0/networks/{name}/leases: + - network-zones + /1.0/network-zones?recursion=1: get: - description: Returns a list of DHCP leases for the network. - operationId: networks_leases_get + description: Returns a list of network zones (structs). + operationId: network_zones_get_recursion1 parameters: - description: Project name example: default in: query name: project type: string - - description: Cluster member name - example: lxd01 - in: query - name: target - type: string produces: - application/json responses: @@ -8938,9 +9080,9 @@ paths: description: Sync response properties: metadata: - description: List of DHCP leases + description: List of network zones items: - $ref: '#/definitions/NetworkLease' + $ref: '#/definitions/NetworkZone' type: array status: description: Status description @@ -8959,24 +9101,19 @@ paths: $ref: '#/responses/Forbidden' "500": $ref: '#/responses/InternalServerError' - summary: Get the DHCP leases + summary: Get the network zones tags: - - networks - /1.0/networks/{name}/state: + - network-zones + /1.0/networks: get: - description: Returns the current network state information. - operationId: networks_state_get + description: Returns a list of networks (URLs). + operationId: networks_get parameters: - description: Project name example: default in: query name: project type: string - - description: Cluster member name - example: lxd01 - in: query - name: target - type: string produces: - application/json responses: @@ -8986,7 +9123,321 @@ paths: description: Sync response properties: metadata: - $ref: '#/definitions/NetworkState' + description: List of endpoints + example: |- + [ + "/1.0/networks/lxdbr0", + "/1.0/networks/lxdbr1" + ] + items: + type: string + type: array + status: + description: Status description + example: Success + type: string + status_code: + description: Status code + example: 200 + type: integer + type: + description: Response type + example: sync + type: string + type: object + "403": + $ref: '#/responses/Forbidden' + "500": + $ref: '#/responses/InternalServerError' + summary: Get the networks + tags: + - networks + post: + consumes: + - application/json + description: |- + Creates a new network. + When clustered, most network types require individual POST for each cluster member prior to a global POST. + operationId: networks_post + parameters: + - description: Project name + example: default + in: query + name: project + type: string + - description: Cluster member name + example: lxd01 + in: query + name: target + type: string + - description: Network + in: body + name: network + required: true + schema: + $ref: '#/definitions/NetworksPost' + produces: + - application/json + responses: + "200": + $ref: '#/responses/EmptySyncResponse' + "400": + $ref: '#/responses/BadRequest' + "403": + $ref: '#/responses/Forbidden' + "500": + $ref: '#/responses/InternalServerError' + summary: Add a network + tags: + - networks + /1.0/networks/{name}: + delete: + description: Removes the network. + operationId: network_delete + parameters: + - description: Project name + example: default + in: query + name: project + type: string + produces: + - application/json + responses: + "200": + $ref: '#/responses/EmptySyncResponse' + "400": + $ref: '#/responses/BadRequest' + "403": + $ref: '#/responses/Forbidden' + "500": + $ref: '#/responses/InternalServerError' + summary: Delete the network + tags: + - networks + get: + description: Gets a specific network. + operationId: network_get + parameters: + - description: Project name + example: default + in: query + name: project + type: string + - description: Cluster member name + example: lxd01 + in: query + name: target + type: string + produces: + - application/json + responses: + "200": + description: Network + schema: + description: Sync response + properties: + metadata: + $ref: '#/definitions/Network' + status: + description: Status description + example: Success + type: string + status_code: + description: Status code + example: 200 + type: integer + type: + description: Response type + example: sync + type: string + type: object + "403": + $ref: '#/responses/Forbidden' + "500": + $ref: '#/responses/InternalServerError' + summary: Get the network + tags: + - networks + patch: + consumes: + - application/json + description: Updates a subset of the network configuration. + operationId: network_patch + parameters: + - description: Project name + example: default + in: query + name: project + type: string + - description: Cluster member name + example: lxd01 + in: query + name: target + type: string + - description: Network configuration + in: body + name: network + required: true + schema: + $ref: '#/definitions/NetworkPut' + produces: + - application/json + responses: + "200": + $ref: '#/responses/EmptySyncResponse' + "400": + $ref: '#/responses/BadRequest' + "403": + $ref: '#/responses/Forbidden' + "412": + $ref: '#/responses/PreconditionFailed' + "500": + $ref: '#/responses/InternalServerError' + summary: Partially update the network + tags: + - networks + post: + consumes: + - application/json + description: Renames an existing network. + operationId: network_post + parameters: + - description: Project name + example: default + in: query + name: project + type: string + - description: Network rename request + in: body + name: network + required: true + schema: + $ref: '#/definitions/NetworkPost' + produces: + - application/json + responses: + "200": + $ref: '#/responses/EmptySyncResponse' + "400": + $ref: '#/responses/BadRequest' + "403": + $ref: '#/responses/Forbidden' + "500": + $ref: '#/responses/InternalServerError' + summary: Rename the network + tags: + - networks + put: + consumes: + - application/json + description: Updates the entire network configuration. + operationId: network_put + parameters: + - description: Project name + example: default + in: query + name: project + type: string + - description: Cluster member name + example: lxd01 + in: query + name: target + type: string + - description: Network configuration + in: body + name: network + required: true + schema: + $ref: '#/definitions/NetworkPut' + produces: + - application/json + responses: + "200": + $ref: '#/responses/EmptySyncResponse' + "400": + $ref: '#/responses/BadRequest' + "403": + $ref: '#/responses/Forbidden' + "412": + $ref: '#/responses/PreconditionFailed' + "500": + $ref: '#/responses/InternalServerError' + summary: Update the network + tags: + - networks + /1.0/networks/{name}/leases: + get: + description: Returns a list of DHCP leases for the network. + operationId: networks_leases_get + parameters: + - description: Project name + example: default + in: query + name: project + type: string + - description: Cluster member name + example: lxd01 + in: query + name: target + type: string + produces: + - application/json + responses: + "200": + description: API endpoints + schema: + description: Sync response + properties: + metadata: + description: List of DHCP leases + items: + $ref: '#/definitions/NetworkLease' + type: array + status: + description: Status description + example: Success + type: string + status_code: + description: Status code + example: 200 + type: integer + type: + description: Response type + example: sync + type: string + type: object + "403": + $ref: '#/responses/Forbidden' + "500": + $ref: '#/responses/InternalServerError' + summary: Get the DHCP leases + tags: + - networks + /1.0/networks/{name}/state: + get: + description: Returns the current network state information. + operationId: networks_state_get + parameters: + - description: Project name + example: default + in: query + name: project + type: string + - description: Cluster member name + example: lxd01 + in: query + name: target + type: string + produces: + - application/json + responses: + "200": + description: API endpoints + schema: + description: Sync response + properties: + metadata: + $ref: '#/definitions/NetworkState' status: description: Status description example: Success @@ -9258,6 +9709,259 @@ paths: summary: Get the network address forwards tags: - network-forwards + /1.0/networks/{networkName}/peers: + get: + description: Returns a list of network peers (URLs). + operationId: network_peers_get + parameters: + - description: Project name + example: default + in: query + name: project + type: string + produces: + - application/json + responses: + "200": + description: API endpoints + schema: + description: Sync response + properties: + metadata: + description: List of endpoints + example: |- + [ + "/1.0/networks/lxdbr0/peers/my-peer-1", + "/1.0/networks/lxdbr0/peers/my-peer-2" + ] + items: + type: string + type: array + status: + description: Status description + example: Success + type: string + status_code: + description: Status code + example: 200 + type: integer + type: + description: Response type + example: sync + type: string + type: object + "403": + $ref: '#/responses/Forbidden' + "500": + $ref: '#/responses/InternalServerError' + summary: Get the network peers + tags: + - network-peers + post: + consumes: + - application/json + description: Initiates/creates a new network peering. + operationId: network_peers_post + parameters: + - description: Project name + example: default + in: query + name: project + type: string + - description: Peer + in: body + name: peer + required: true + schema: + $ref: '#/definitions/NetworkPeersPost' + produces: + - application/json + responses: + "200": + $ref: '#/responses/EmptySyncResponse' + "202": + $ref: '#/responses/EmptySyncResponse' + "400": + $ref: '#/responses/BadRequest' + "403": + $ref: '#/responses/Forbidden' + "500": + $ref: '#/responses/InternalServerError' + summary: Add a network peer + tags: + - network-peers + /1.0/networks/{networkName}/peers/{peerName}: + delete: + description: Removes the network peering. + operationId: network_peer_delete + parameters: + - description: Project name + example: default + in: query + name: project + type: string + produces: + - application/json + responses: + "200": + $ref: '#/responses/EmptySyncResponse' + "400": + $ref: '#/responses/BadRequest' + "403": + $ref: '#/responses/Forbidden' + "500": + $ref: '#/responses/InternalServerError' + summary: Delete the network peer + tags: + - network-peers + get: + description: Gets a specific network peering. + operationId: network_peer_get + parameters: + - description: Project name + example: default + in: query + name: project + type: string + produces: + - application/json + responses: + "200": + description: Peer + schema: + description: Sync response + properties: + metadata: + $ref: '#/definitions/NetworkPeer' + status: + description: Status description + example: Success + type: string + status_code: + description: Status code + example: 200 + type: integer + type: + description: Response type + example: sync + type: string + type: object + "403": + $ref: '#/responses/Forbidden' + "500": + $ref: '#/responses/InternalServerError' + summary: Get the network peer + tags: + - network-peers + patch: + consumes: + - application/json + description: Updates a subset of the network peering configuration. + operationId: network_peer_patch + parameters: + - description: Project name + example: default + in: query + name: project + type: string + - description: Peer configuration + in: body + name: Peer + required: true + schema: + $ref: '#/definitions/NetworkPeerPut' + produces: + - application/json + responses: + "200": + $ref: '#/responses/EmptySyncResponse' + "400": + $ref: '#/responses/BadRequest' + "403": + $ref: '#/responses/Forbidden' + "412": + $ref: '#/responses/PreconditionFailed' + "500": + $ref: '#/responses/InternalServerError' + summary: Partially update the network peer + tags: + - network-peers + put: + consumes: + - application/json + description: Updates the entire network peering configuration. + operationId: network_peer_put + parameters: + - description: Project name + example: default + in: query + name: project + type: string + - description: Peer configuration + in: body + name: peer + required: true + schema: + $ref: '#/definitions/NetworkPeerPut' + produces: + - application/json + responses: + "200": + $ref: '#/responses/EmptySyncResponse' + "400": + $ref: '#/responses/BadRequest' + "403": + $ref: '#/responses/Forbidden' + "412": + $ref: '#/responses/PreconditionFailed' + "500": + $ref: '#/responses/InternalServerError' + summary: Update the network peer + tags: + - network-peers + /1.0/networks/{networkName}/peers?recursion=1: + get: + description: Returns a list of network peers (structs). + operationId: network_peer_get_recursion1 + parameters: + - description: Project name + example: default + in: query + name: project + type: string + produces: + - application/json + responses: + "200": + description: API endpoints + schema: + description: Sync response + properties: + metadata: + description: List of network peers + items: + $ref: '#/definitions/NetworkPeer' + type: array + status: + description: Status description + example: Success + type: string + status_code: + description: Status code + example: 200 + type: integer + type: + description: Response type + example: sync + type: string + type: object + "403": + $ref: '#/responses/Forbidden' + "500": + $ref: '#/responses/InternalServerError' + summary: Get the network peers + tags: + - network-peers /1.0/networks?recursion=1: get: description: Returns a list of networks (structs). diff --git a/doc/server.md b/doc/server.md index 7bbb502..b9f9857 100644 --- a/doc/server.md +++ b/doc/server.md @@ -36,6 +36,7 @@ core.bgp\_address | string | local | - core.bgp\_asn | string | global | - | ローカルサーバーに使用する BGP の AS番号 (Autonomous System Number) core.bgp\_routerid | string | local | | この BGP サーバーのユニークな ID (IPv4 アドレス形式) core.debug\_address | string | local | - | pprof デバッグサーバがバインドするアドレス (HTTP) +core.dns\_address | string | local | - | 権威 DNS サーバーをバインドするアドレス (DNS) core.https\_address | string | local | - | リモート API がバインドするアドレス (HTTPS) core.https\_allowed\_credentials | boolean | global | - | Access-Control-Allow-Credentials HTTP ヘッダの値を "true" にするかどうか core.https\_allowed\_headers | string | global | - | Access-Control-Allow-Headers HTTP ヘッダの値 From ef9f24d733afc0c60a4d5d6378216898d3853442 Mon Sep 17 00:00:00 2001 From: Hiroaki Nakamura Date: Sat, 6 Nov 2021 21:47:31 +0900 Subject: [PATCH 2/3] Improve translation of LXD 4.20 Signed-off-by: Hiroaki Nakamura --- doc/clustering.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/clustering.md b/doc/clustering.md index f2e6d86..5a88e53 100644 --- a/doc/clustering.md +++ b/doc/clustering.md @@ -242,7 +242,7 @@ The currently supported keys are: | キー | 型 | 条件 | デフォルト値 | 説明 | | :----------------- | :----- | :-------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| scheduler.instance | string | - | all | `all` の場合、最低数のインスタンスを持っていれば、メンバーがインスタンス作成に自動でターゲットされます。 `manual` の場合、インスタンスは `--target` が指定されたときのみメンバーにターゲットされます。 | +| scheduler.instance | string | - | all | `all` の場合、最低数のインスタンスを持っていれば、`all` と設定されたインスタンスの中から1つインスタンス作成時に自動的に選択されてターゲットされます。 `manual` の場合、インスタンスは `--target` が指定されたときのみメンバーにターゲットされます。 | | user.\* | string | - | - | 自由形式のユーザーのキー・バリュー・ストレージ (検索で使用可能) | ### 投票 (voting) メンバーとスタンバイメンバー From d0271e7a72b9b4aecdd213f44a008e67e0e353dd Mon Sep 17 00:00:00 2001 From: Hiroaki Nakamura Date: Sun, 7 Nov 2021 18:05:35 +0900 Subject: [PATCH 3/3] Improve translation of LXD 4.20 Signed-off-by: Hiroaki Nakamura --- doc/instances.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/instances.md b/doc/instances.md index 033ada4..abe9308 100644 --- a/doc/instances.md +++ b/doc/instances.md @@ -280,7 +280,7 @@ does, it will replicate that topology in the guest. 例えばピン止めの設定が 8 スレッドを含む場合、スレッドの各ペアは同じコアから提供され、 コア番号が 2 つの CPU にまたがる場合でも、 LXD はゲストに 2 つの CPU を提供し、 -各 CPU は 2 つのコアを持ち、各コアは 2 つのスレッドを満ちます。 +各 CPU は 2 つのコアを持ち、各コアは 2 つのスレッドを持ちます。 NUMA レイアウトも同様に複製され、このシナリオではゲストは十中八九 各 CPU ソケットにつき 1 つ、合計 2 つの NUMA ノードを持つことになるでしょう。 `acceleration=sriov` を使用するためには互換性のある SR-IOV switchdev が使用できる物理 NIC が LXD ホスト内に存在する必要があります。 -LXD では物理 NIC (PF) が switchdev モードで設定されており、 OVN の統合 OVN ブリッジに接続すると 1 つ以上の仮想ファンクション (VF) がアクティブになることを想定しています。 +LXD は、物理 NIC (PF) が switchdev モードに設定されて OVN の統合 OVN ブリッジに接続されており、1 つ以上の仮想ファンクション (VF) がアクティブであることを想定しています。