1.はじめに
Proxmox VEは、仮想マシンとコンテナを実行するためのプラットフォームです。Debian Linuxベースで、完全にオープンソースです。最大限の柔軟性を実現するために、カーネルベースの仮想マシン(KVM)とコンテナベースの仮想化(LXC)という2つの仮想化技術を実装しています。
主な設計目標の1つは、管理をできるだけ簡単にすることでした。Proxmox VEは単一ノードで使用することも、多数のノードからなるクラスタを構築することもできます。すべての管理タスクはWebベースの管理インターフェイスを使用して行うことができ、初心者ユーザでもProxmox VEのセットアップとインストールを数分で行うことができます。
1.1.中央管理
多くの人はシングルノードから始めますが、Proxmox VEは大規模なクラスタノードにスケールアウトできます。クラスタスタックは完全に統合されており、デフォルトのインストールで出荷されます。
- ユニークなマルチマスター・デザイン
-
統合されたWebベースの管理インターフェイスにより、すべてのKVMゲストとLinuxコンテナ、さらにはクラスタ全体の概要を明確に把握できます。GUIからVMやコンテナ、ストレージ、クラスタを簡単に管理できます。複雑で高価な管理サーバを別途インストールする必要はありません。
- Proxmox クラスタファイルシステム (pmxcfs)
-
Proxmox VEは、独自のProxmox Clusterファイルシステム(pmxcfs)を使用しています。pmxcfsは、設定ファイルを格納するためのデータベース駆動型のファイルシステムです。これにより、何千もの仮想マシンの設定を保存できます。corosyncを使用することで、これらのファイルはすべてのクラスタノードでリアルタイムに複製されます。ファイルシステムは、すべてのデータをディスク上の永続データベース内に格納しますが、データのコピーはRAMに存在し、最大30MBのストレージサイズを提供します。
Proxmox VEは、このユニークなクラスタファイルシステムを使用する唯一の仮想化プラットフォームです。
- ウェブベースの管理インターフェイス
-
Proxmox VEの使い方は簡単です。管理タスクは付属のWebベースの管理インターフェイスで実行できます。別の管理ツールをインストールしたり、巨大なデータベースを持つ管理ノードを追加したりする必要はありません。マルチマスターツールにより、クラスタのどのノードからでもクラスタ全体を管理できます。JavaScriptフレームワーク(ExtJS)をベースとしたWebベースの中央管理により、GUIからすべての機能を制御し、各ノードの履歴やシスログを確認することができます。これには、バックアップやリストアジョブの実行、ライブマイグレーションやHAトリガーアクティビティが含まれます。
- コマンドライン
-
UnixシェルやWindows Powershellの快適さに慣れている上級ユーザのために、Proxmox VEは仮想環境のすべてのコンポーネントを管理するコマンドラインインタフェースを提供します。このコマンドラインインタフェースは、インテリジェントなタブ補完とUNIX manページ形式の完全なドキュメントを備えています。
- REST API
-
Proxmox VEはRESTful APIを使用しています。主要なデータ形式としてJSONを選択し、API全体はJSONスキーマを使用して正式に定義されています。これにより、カスタムホスティング環境のようなサードパーティの管理ツールと迅速かつ容易に統合することができます。
- 役割ベースの管理
-
ロールベースのユーザ・権限管理を使用することで、すべてのオブジェクト(VM、ストレージ、ノードなど)に対するきめ細かなアクセスを定義できます。これにより、権限を定義し、オブジェクトへのアクセスを制御することができます。この概念はアクセス制御リストとしても知られています:各許可は、特定のパス上のサブジェクト(ユーザまたはグループ)とロール(権限のセット)を指定します。
- 認証領域
-
Proxmox VEは、Microsoft Active Directory、LDAP、Linux PAM標準認証、または組み込みのProxmox VE認証サーバなど、複数の認証ソースをサポートしています。
1.2.柔軟なストレージ
Proxmox VEのストレージモデルは非常に柔軟です。仮想マシンイメージは、1つまたは複数のローカルストレージ、またはNFSやSANのような共有ストレージに保存できます。制限はなく、好きなだけストレージ定義を設定できます。Debian Linux で利用可能なすべてのストレージ技術を使用できます。
共有ストレージにVMを格納する主な利点の1つは、クラスタ内のすべてのノードがVMディスクイメージに直接アクセスできるため、ダウンタイムなしに実行中のマシンをライブマイグレーションできることです。
現在、以下のネットワーク・ストレージ・タイプをサポートしています:
-
LVMグループ(iSCSIターゲットによるネットワークバックアップ)
-
iSCSIターゲット
-
NFSシェア
-
CIFS共有
-
Ceph RBD
-
iSCSI LUNの直接使用
-
GlusterFS
サポートされるローカル・ストレージ・タイプは以下の通りです:
-
LVMグループ(ブロック・デバイス、FCデバイス、DRBDなどのローカル・バッキング・デバイス)
-
ディレクトリ(既存のファイルシステム上のストレージ)
-
ゼットエフエス
1.3.統合バックアップとリストア
統合バックアップツール(vzdump)は、実行中のコンテナとKVMゲストの一貫したスナップショットを作成します。基本的には、VM/CT設定ファイルを含むVMまたはCTデータのアーカイブを作成します。
KVMライブバックアップは、NFS、CIFS、iSCSI LUN、Ceph RBD上のVMイメージを含むすべてのストレージタイプで動作します。新しいバックアップフォーマットは、VMバックアップを高速かつ効果的に保存するために最適化されています(疎なファイル、順序のずれたデータ、最小化されたI/O)。
1.4.高可用性クラスタ
マルチノードのProxmox VE HA Clusterは、可用性の高い仮想サーバの定義を可能にします。Proxmox VE HA Clusterは、実績のあるLinux HAテクノロジに基づいており、安定した信頼性の高いHAサービスを提供します。
1.5.柔軟なネットワーキング
Proxmox VEはブリッジネットワークモデルを採用しています。各ゲストからの仮想ネットワークケーブルがすべて同じスイッチに接続されているかのように、すべてのVMは1つのブリッジを共有できます。VMを外部に接続するために、ブリッジは物理ネットワークカードに接続され、TCP/IPコンフィギュレーションが割り当てられます。
さらに柔軟性を高めるために、VLAN (IEEE 802.1q)とネットワークボンディング/アグリゲーションが可能です。このようにして、Linuxネットワークスタックのフルパワーを活用して、Proxmox VEホスト用に複雑で柔軟な仮想ネットワークを構築することができます。
1.6.統合ファイアウォール
統合されたファイアウォールにより、どのVMやコンテナのインターフェイスでもネットワークパケットをフィルタリングできます。共通のファイアウォールルールセットは、「セキュリティグループ」にグループ化できます。
1.7.ハイパーコンバージドインフラ
Proxmox VEは、コンピュート、ストレージ、ネットワークリソースを緊密に統合し、可用性の高いクラスタ、バックアップ/リストア、ディザスタリカバリを管理する仮想化プラットフォームです。すべてのコンポーネントはソフトウェアで定義され、互いに互換性があります。
そのため、一元化されたWeb管理インターフェイスを介して、単一のシステムのように管理することが可能です。これらの機能により、Proxmox VEはオープンソースのハイパーコンバージドインフラストラクチャの導入と管理に理想的な選択肢となります。
1.7.1.Proxmox VE によるハイパーコンバージドインフラ (HCI) のメリット
ハイパーコンバージドインフラ(HCI)は、高いインフラ需要が低い管理予算に見合う展開、リモートオフィスやブランチオフィス環境などの分散セットアップ、仮想プライベートクラウドやパブリッククラウドに特に有効です。
HCIには次のような利点があります:
-
スケーラビリティ:コンピュート、ネットワーク、ストレージデバイスのシームレスな拡張(サーバーとストレージを互いに独立して迅速に拡張すること)。
-
低コスト:Proxmox VEはオープンソースであり、コンピュート、ストレージ、ネットワーク、バックアップ、管理センターなど必要なコンポーネントをすべて統合しています。高価なコンピュータ/ストレージインフラストラクチャを置き換えることができます。
-
データ保護と効率化:バックアップやディザスタリカバリなどのサービスが統合されています。
-
シンプルさ:簡単な設定と集中管理。
-
オープンソース:ベンダーロックインがありません。
1.7.2.ハイパーコンバージドインフラストラクチャストレージ
Proxmox VEは、ハイパーコンバージドストレージインフラの展開を緊密に統合してサ ポートします。例えば、ウェブインタフェースのみを使用して、以下の2つのストレージテクノロジを展開および管理できます:
-
Ceph: 自己修復と自己管理の両方を備えた、信頼性が高く拡張性の高い共有ストレージシステムです。Proxmox VEノードでCephサービスを管理する方法をご覧ください。
-
ZFS:ファイルシステムと論理ボリュームマネージャを組み合わせたもので、データの破損に対する広範な保護、さまざまなRAIDモード、高速で安価なスナップショットなどの機能を備えています。Proxmox VEノードでZFSのパワーを活用する方法をご覧ください。
上記以外にも、Proxmox VEは幅広い追加ストレージテクノロジの統合をサポートしています。これらについてはストレージマネージャの章を参照してください。
1.8.なぜオープンソースなのか
Proxmox VEはLinuxカーネルを使用し、Debian GNU/Linuxディストリビューションをベースにしています。Proxmox VEのソースコードはGNU Affero General Public License, version 3の下でリリースされています。つまり、いつでも自由にソースコードを閲覧したり、プロジェクトに貢献することができます。
Proxmoxでは、可能な限りオープンソースソフトウェアを使用することをお約束します。オープンソースソフトウェアを使用することで、すべての機能へのフルアクセスが保証され、高いセキュリティと信頼性が保証されます。私たちは、誰もがソフトウェアのソースコードにアクセスし、それを実行し、ビルドし、プロジェクトに変更を提出する権利を持つべきだと考えています。Proxmoxは、製品が常にプロフェッショナルな品質基準を満たしていることを保証します。
オープンソースソフトウェアはまた、コストを低く抑え、コアインフラを単一のベンダーから独立させるのに役立ちます。
1.9.Proxmox VE のメリット
-
オープンソースソフトウェア
-
ベンダーロックインなし
-
Linuxカーネル
-
迅速な設置と使いやすさ
-
ウェブベースの管理インターフェイス
-
REST API
-
巨大で活発なコミュニティ
-
低い管理コストとシンプルな導入
1.10.ヘルプを得る
1.10.1.Proxmox VE Wiki
主な情報源はProxmox VE Wikiです。リファレンスドキュメントとユーザー投稿コンテンツが統合されています。
1.10.2.コミュニティサポートフォーラム
Proxmox VE自体は完全なオープンソースであるため、Proxmox VEコミュニティフォーラムを利用したディスカッションや知識の共有を常にユーザーに推奨しています。このフォーラムはProxmoxのサポートチームによって管理されており、世界中から多くのユーザが参加しています。 このような大規模なフォーラムは、言うまでもなく、情報を得るのに最適な場所です。
1.10.3.メーリングリスト
Proxmox VEコミュニティと電子メールで迅速に連絡を取ることができます。
-
ユーザー向けメーリングリスト:Proxmox VE ユーザーリスト
Proxmox VEは完全にオープンソースであり、貢献を歓迎します!開発者の主なコミュニケーションチャネルは次のとおりです:
-
開発者向けメーリングリスト:Proxmox VE開発ディスカッション
1.10.4.コマーシャル・サポート
Proxmox Server Solutions GmbHは、Proxmox VEサブスクリプションサービスプランとしてエンタープライズサポートも提供しています。 サブスクリプションを利用するすべてのユーザは、Proxmox VEエンタープライズリポジトリにアクセスでき、ベーシック、スタンダード、またはプレミアムサブスクリプションでは、Proxmoxカスタマーポータルにもアクセスできます。カスタマーポータルでは、Proxmox VE開発者による応答時間を保証したヘルプとサポートを提供します。
ボリュームディスカウント、または詳細については、sales@proxmox.com までお問い合わせください。
1.10.5.バグトラッカー
Proxmoxはhttps://bugzilla.proxmox.com で公開バグトラッカーを運営しています。問題が発生したら、そこに報告してください。問題はバグだけでなく、新機能や機能強化の要望でも構いません。バグトラッカーは問題を追跡するのに役立ち、問題が解決されると通知を送信します。
1.11.プロジェクト履歴
プロジェクトは2007年に始まり、2008年に最初の安定版がリリースされました。当時、コンテナにはOpenVZを、仮想マシンにはKVMを使っていました。クラスタリング機能は限定的で、ユーザーインターフェイスはシンプル(サーバーが生成するウェブページ)でした。
しかし、私たちはすぐにCorosyncクラスタスタックを使用して新機能を開発しました。新しいProxmoxクラスタファイルシステム(pmxcfs)の導入は、クラスタの複雑さをユーザから完全に隠すことができるため、大きな前進でした。16ノードのクラスタを管理するのは、1つのノードを管理するのと同じくらい簡単です。
また、JSON-Schemaで記述された完全な宣言的仕様の新しいREST APIを導入しました。これにより、他の人々がProxmox VEをインフラストラクチャに統合し、追加サービスを簡単に提供できるようになりました。
また、新しいREST APIにより、オリジナルのユーザーインターフェイスをJavaScriptを使ったモダンなHTML5アプリケーションに置き換えることが可能になりました。また、古いJavaベースのVNCコンソールコードをnoVNCに置き換えました。そのため、VMを管理するために必要なのはウェブブラウザだけです。
様々なストレージタイプのサポートも大きな課題です。特に、Proxmox VEは2014年にLinux上でZFSをデフォルトで出荷した最初のディストリビューションです。もう1つのマイルストーンは、ハイパーバイザーノード上でCephストレージを実行・管理できるようになったことです。このようなセットアップは非常に費用対効果が高いです。
KVMの商用サポートを提供する最初の企業のひとつでした。KVMプロジェクト自体は継続的に進化し、今では広く使用されているハイパーバイザーです。リリースのたびに新機能が追加されています。私たちはKVMライブバックアップ機能を開発し、どのようなストレージタイプでもスナップショットバックアップを作成できるようにしました。
バージョン4.0で最も注目すべき変更は、OpenVZからLXCへの移行です。コンテナは深く統合され、仮想マシンと同じストレージとネットワーク機能を使用できるようになりました。
1.12.Proxmox VE ドキュメントの改善
Proxmox VEドキュメントへの貢献や改良はいつでも歓迎します。 貢献にはいくつかの方法があります。
このドキュメントに誤りや改善の余地がある場合は、Proxmoxのバグトラッカーにバグを報告し、修正を提案してください。
新しいコンテンツを提案したい場合は、以下のオプションのいずれかを選択してください:
-
ウィキ特定のセットアップ、ハウツーガイド、チュートリアルについては、wikiが貢献するのに適したオプションです。
-
リファレンス・ドキュメントすべてのユーザーに役立つ一般的な内容については、リファレンスドキュメントへの投稿を提案してください。これには、Proxmox VEの機能のインストール、設定、使用、トラブルシューティングの方法に関するすべての情報が含まれます。リファレンスドキュメントはasciidoc形式で書かれています。ドキュメントを編集するには、git://git.proxmox.com/git/pve-docs.gitにあるgitリポジトリをクローンし、README.adocドキュメントに従ってください。
|
|
Proxmox VEのコードベースに興味がある方は、Developer Documentationwikiの記事から始めることができます。 |
1.13.Proxmox VEの翻訳
Proxmox VEのユーザーインターフェースはデフォルトで英語です。新しい言語の追加、最新機能の翻訳、不完全な翻訳や一貫性のない翻訳の改善などのサポートを歓迎します。
翻訳ファイルの管理にはgettextを使っています。Poeditのようなツールは翻訳ファイルを編集するのに便利なユーザーインターフェイスを提供しますが、使い慣れたエディタであれば何を使ってもかまいません。翻訳にプログラミングの知識は必要ありません。
1.13.1.gitを使った翻訳
言語ファイルはgit リポジトリとして公開されています。git に詳しい方は、開発者向けドキュメントに従って貢献してください。
次のようにして、新しい翻訳を作成することができます(<LANG>を言語IDに置き換えてください):
# git clone git://git.proxmox.com/git/proxmox-i18n.git # cd proxmox-i18n # make init-<LANG>.po
または、お好みのエディタを使用して、既存の翻訳を編集することができます:
# poedit <LANG>.po
1.13.2.git を使わない翻訳
gitに精通していなくても、Proxmox VEの翻訳を支援することができます。改善したい言語を見つけ、この言語ファイルの「raw」リンクを右クリックし、「名前を付けてリンク先を保存...」を選択してください。ファイルに変更を加え、最終的な翻訳を署名済みのコントリビューターライセンス契約書とともにoffice(at)proxmox.comに直接送ってください。
1.13.3.翻訳のテスト
Proxmox VEで翻訳を使用するには、まず.poファイルを.jsファイルに翻訳する必要があります。これは同じリポジトリにある以下のスクリプトを実行することで可能です:
# ./po2js.pl -t pve xx.po >pve-lang-xx.js
出来上がったpve-lang-xx.jsはproxmoxサーバーの/usr/share/pve-i18nディレクトリにコピーしてテストすることができます。
あるいは、リポジトリのルートから以下のコマンドを実行して、deb パッケージをビルドすることもできます:
# make deb
|
|
どちらの方法でも動作させるには、以下のperlパッケージがシステムにインストールされている必要があります。Debian/Ubuntuの場合: |
# apt-get install perl liblocale-po-perl libjson-perl
1.13.4.翻訳の送信
完成した翻訳(.poファイル)は、署名済みのコントリビューターライセンス契約書とともにProxmoxチームのアドレスoffice(at)proxmox.comに送ることができます。 また、開発経験があれば、Proxmox VE開発メーリングリストにパッチとして送ることもできます。開発者向けドキュメントを参照してください。
2.Proxmox VEのインストール
Proxmox VEはDebianをベースにしています。そのため、Proxmoxが提供するインストールディスクイメージ(ISOファイル)には、完全なDebianシステムと必要なProxmox VEパッケージが含まれています。
|
|
Proxmox VE のリリースと Debian のリリースの関係についてはFAQ のサポート表を参照してください。 |
インストーラは、ローカルディスクのパーティション設定、基本的なシステム設定 (例: タイムゾーン、言語、ネットワーク) の適用、必要なパッケージのインストールなど、セットアップをガイドします。このプロセスは数分もかかりません。提供された ISO を使ってインストールするのが、新規および既存のユーザに推奨される方法です。
あるいは、Proxmox VE を既存の Debian システムの上にインストールすることもできます。Proxmox VEに関する詳細な知識が必要なため、このオプションは上級ユーザにのみお勧めします。
2.1.システム要件
Proxmox VEを本番環境で実行する場合は、高品質のサーバーハードウェアを使用することをお勧めします。障害が発生したホストの影響をさらに軽減するために、高可用性(HA)仮想マシンおよびコンテナを使用したクラスタでProxmox VEを実行できます。
Proxmox VEは、ローカルストレージ(DAS)、SAN、NAS、およびCeph RBDのような分散ストレージを使用できます。詳細はストレージの章を参照してください。
2.1.1.評価に関する最低要件
これらの最小要件は評価のみを目的としており、本番環境では使用しないでください。
-
CPU64ビット(インテル64またはAMD64)
-
KVM完全仮想化対応のIntel VT/AMD-V対応CPU/マザーボード
-
RAM: 1 GB RAM、およびゲストに必要な追加RAM
-
ハードドライブ
-
ネットワークカード(NIC)1枚
2.1.2.推奨システム要件
-
Intel 64またはIntel VT/AMD-V CPUフラグを持つAMD64。
-
メモリOSおよびProxmox VEサービス用に最低2GB、さらにゲスト用に指定されたメモリが必要です。CephとZFSについては、使用するストレージのTBごとに約1GBのメモリが必要です。
-
高速で冗長性のあるストレージは、SSDで最高の結果が得られます。
-
OSストレージ:バッテリ保護ライトキャッシュ(「BBU」)付きハードウェアRAIDを使用するか、ZFS(ZIL用オプションSSD)付き非RAIDを使用します。
-
VMストレージ:
-
ローカルストレージには、バッテリバックアップライトキャッシュ(BBU)付きのハードウェアRAIDを使用するか、ZFSとCephには非RAIDを使用します。ZFSもCephもハードウェアRAIDコントローラとは互換性がありません。
-
共有および分散ストレージが可能です。
-
良好なパフォーマンスを得るためには、Power-Loss-Protection(PLP)付きのSSDを推奨します。 一般消費者向けSSDの使用は推奨されません。
-
-
冗長(マルチ)Gbit NIC。ご希望のストレージ技術やクラスタ設定に応じてNICを追加できます。
-
PCI(e)パススルーのためには、CPUがVT-d/AMD-dフラグをサポートしている必要があります。
2.2.インストールメディアの準備
https://www.proxmox.com/en/downloads/proxmox-virtual-environment/isoからインストーラー ISO イメージをダウンロードしてください。
Proxmox VEのインストールメディアはハイブリッドISOイメージです。2つの方法で動作します:
-
CDやDVDに書き込めるISOイメージファイル。
-
USBフラッシュドライブ(USBスティック)にコピー可能な生セクタ(IMG)イメージファイル。
Proxmox VEのインストールにはUSBフラッシュドライブを使用することをお勧めします。
2.2.1.インストールメディアとしてUSBフラッシュドライブを準備
フラッシュドライブには、少なくとも1GBのストレージが必要です。
|
|
UNetbootinは使用しないでください。Proxmox VEのインストールイメージでは動作しません。 |
|
|
USBフラッシュドライブがマウントされておらず、重要なデータが入っていないことを確認してください。 |
2.2.2.GNU/Linux。
Unix 系 OS では、ddコマンドを使って ISO イメージを USB フラッシュドライブにコピーします。まず、USBフラッシュドライブの正しいデバイス名を見つけてください(下記参照)。次にddコマンドを実行してください。
# dd bs=1M conv=fdatasync if=./proxmox-ve_*.iso of=/dev/XYZ
|
|
dev/XYZを正しいデバイス名に置き換え、入力ファイル名(if)のパスを合わせるようにしてください。 |
|
|
間違ったディスクを上書きしないよう、十分注意してください! |
2.2.3.macOS。
ターミナルを開きます。
hdiutilのconvertオプションなどを使って、.isoファイルを.dmg形式に変換します:
# hdiutil convert proxmox-ve_*.iso -format UDRW -o proxmox-ve_*.dmg
|
|
macOSは出力ファイル名に自動的に.dmgを付ける傾向があります。 |
現在のデバイスのリストを取得するには、次のコマンドを実行します:
# diskutil list
USBフラッシュ・ドライブを挿入し、このコマンドをもう一度実行して、どのデバイス・ノードが割り当てられているかを確認します。(例:/dev/diskX)。
# diskutil list # diskutil unmountDisk /dev/diskX
|
|
を最後のコマンドのディスク番号に置き換えてください。 |
# sudo dd if=proxmox-ve_*.dmg bs=1M of=/dev/rdiskX
|
|
最後のコマンドでは、diskX の代わりにrdiskX を指定します。これにより書き込み速度が向上します。 |
2.2.4.Windows。
エッチャーの使用
Etcherは箱から出してすぐに使えます。https://etcher.io から Etcher をダウンロードしてください。ISO と USB フラッシュドライブの選択プロセスを案内します。
ルーファスの使用
Rufusはより軽量な代替品ですが、動作させるにはDDモードを使用する必要があります。https://rufus.ie/ から Rufus をダウンロードしてください。インストールするか、ポータブル版を使用してください。インストール先ドライブと Proxmox VE ISO ファイルを選択します。
|
|
開始したら、異なるバージョンのGRUBをダウンロードするよう求めるダイアログで「いいえ」をクリックします。次のダイアログでDDモードを選択します。 |
2.3.Proxmox VE インストーラの使用
インストーラーのISOイメージには以下が含まれています:
-
完全なオペレーティングシステム (Debian Linux, 64-bit)
-
ローカルディスクをext4、XFS、BTRFS(テクノロジープレビュー)、またはZFSでパーティション分割し、オペレーティングシステムをインストールするProxmox VEインストーラ。
-
KVMとLXCをサポートするProxmox VE Linuxカーネル
-
仮想マシン、コンテナ、ホストシステム、クラスタ、および必要なすべてのリソースを管理するための完全なツールセット
-
ウェブベースの管理インターフェイス
|
|
選択したドライブ上の既存のデータは、インストール中にすべて削除されます。インストーラは、他のオペレーティングシステムのブートメニューエントリを追加しません。 |
用意したインストールメディア(USBフラッシュドライブやCD-ROMなど)を挿入し、そこから起動してください。
|
|
サーバーのファームウェア設定で、インストールメディア(USBなど)からのブートが有効になっていることを確認してください。Proxmox VEバージョン8.1より前のインストーラを起動する場合は、セキュアブートを無効にする必要があります。 |
- Proxmox VE (グラフィカル)のインストール
-
通常のインストールを開始します。
|
|
キーボードのみでインストールウィザードを使用することができます。ボタンは、ALTキーと各ボタンの下線文字を組み合わせて押すことでクリックできます。例えば、ALT + NでNextボタンを押します。 |
- Proxmox VEのインストール(ターミナルUI)
-
ターミナルモードのインストールウィザードを起動します。グラフィカルインストーラと同じ全体的なインストールエクスペリエンスを提供しますが、非常に古いハードウェアや非常に新しいハードウェアとの互換性が一般的に優れています。
- Proxmox VEのインストール(ターミナルUI、シリアルコンソール)
-
ターミナルモードのインストールウィザードを起動し、さらに Linux カーネルがマシンの(最初の)シリアルポートを入出力に使用するように設定します。これは、マシンが完全にヘッドレスで、シリアルコンソールしか利用できない場合に使用できます。
|
|
ターミナル UIオプションは、ドライバの問題などでグラフィカルインストーラが 正しく動作しない場合に使用できます。 nomodesetカーネルパラメータの追加も参照してください。 |
- 高度なオプションProxmox VEのインストール (グラフィカル、デバッグモード)
-
デバッグモードでインストールを開始します。いくつかのインストールステップでコンソールが開きます。デバッグコンソールを終了するには、CTRL-D を押してください。このオプションを使用すると、基本的なツールがすべて利用可能なライブシステムを起動できま す。たとえば、デグレードしたZFSrpoolを修復したり、既存のProxmox VEセットアップのブートローダを修正したりする場合に使用できます。
- 高度なオプションProxmox VEのインストール(ターミナルUI、デバッグモード)
-
グラフィカルデバッグモードと同じですが、代わりにターミナルベースのインストーラを実行するようにシステムを準備します。
- 詳細オプションProxmox VE(シリアルコンソールデバッグモード)のインストール
-
ターミナル・ベースのデバッグ・モードと同じですが、Linuxカーネルがマシンの(最初の)シリアル・ポートを入出力に使うように設定します。
- 高度なオプションProxmox VEのインストール (自動化)
-
ISO が自動インストール用に適切に準備されていなくても、無人モードでインストーラを起動します。このオプションは、ハードウェアの詳細を収集したり、自動インストールのセットアップをデバッグするのに便利です。詳細は、無人インストールを参照してください。
- 詳細オプションレスキューブート
-
このオプションを使用すると、既存のインストールを起動できます。接続されているすべてのハードディスクを検索します。既存のインストールが見つかると、ISO から Linux カーネルを使ってそのディスクに直接ブートします。これはブートローダ (GRUB/systemd-boot) に問題があったり、BIOS/UEFI がディスクからブートブロックを読み取れない場合に便利です。
- 高度なオプションメモリのテスト (memtest86+)
-
memtest86+を実行します。メモリが機能しているか、エラーがないかをチェックするのに便利です。このオプションを実行するには、UEFI ファームウェアセットアップユーティリティで Secure Boot をオフにする必要があります。
通常はProxmox VEのインストール(グラフィカル)を選択してインストールを開始します。
|
|
デフォルトでは、サーバー全体が使用され、既存のデータはすべて削除されます。 インストールを続行する前に、サーバー上に重要なデータがないことを確認してください。 |
オプション]ボタンで、ターゲットファイルシステムを選択できます。デフォルトはext4 です。ファイルシステムとしてext4またはxfs を選択した場合、インストーラは LVM を使用し、LVM 領域を制限する追加オプションを提供します (下記参照)。
Proxmox VEはZFSにもインストールできます。ZFSは複数のソフトウェアRAIDレベルを提供しているため、ハードウェアRAIDコントローラを搭載していないシステム向けのオプションです。オプションダイアログでターゲットディスクを選択する必要があります。ZFS固有の設定はAdvanced Optionsで変更できます。
|
|
ハードウェアRAID上のZFSはサポートされておらず、データ損失の原因となります。 |
次のページでは、お住まいの場所、タイムゾーン、キーボードレイアウトなどの基本的な設定オプションを尋ねられます。位置情報は、アップデートの速度を上げるために、近くのダウンロードサーバーを選択するために使用されます。インストーラは通常、これらの設定を自動検出できるので、自動検出に失敗した場合や、あなたの国で一般的に使用されていないキーボードレイアウトを使用したい場合にのみ、稀に設定を変更する必要があります。
次に、スーパーユーザー(root)のパスワードとメールアドレスを指定する必要があります。パスワードは少なくとも5文字で構成されていなければなりません。より強力なパスワードを使用することを強くお勧めします。いくつかのガイドラインがあります:
-
パスワードの長さは最低12文字以上にしてください。
-
小文字、大文字のアルファベット、数字、記号。
-
文字の繰り返し、キーボードのパターン、一般的な辞書の単語、文字や数字の並び、ユーザー名、親戚やペットの名前、恋愛関係(現在または過去)、伝記的な情報(ID番号、先祖の名前や日付など)は避けてください。
電子メールアドレスは、システム管理者に通知を送信するために使用されます。 例えば、以下のようになります:
-
利用可能なパッケージアップデートに関する情報。
-
定期的なcronジョブのエラーメッセージ。
最後のステップはネットワーク設定です。UPされているネットワークインターフェイスは、ドロップダウンメニューの名前の前に塗りつぶされた円が表示されます。インストール中はIPv4アドレスかIPv6アドレスのどちらかを指定できますが、両方を指定することはできません。デュアルスタックノードを設定するには、インストール後にIPアドレスを追加します。
インストールをクリックすると、インストーラがディスクのフォーマットとターゲットディスクへのパッケージのコピーを開始します。このステップが終了するまで待ち、インストールメディアを取り出してシステムを再起動してください。
パッケージのコピーと設定が終了したら、サーバーを再起動します。デフォルトでは数秒後に自動的に行われます。
インストールに失敗した場合は、2 台目の TTY(CTRL + ALT + F2) で特定のエラーをチェックし、システムが最小要件を満たしていることを確認します。
それでもインストールがうまくいかない場合は、「ヘルプの入手方法」の章をご覧ください。
2.3.1.管理インターフェイスへのアクセス インストール後
-
ブラウザを、インストール時に指定されたIPアドレスとポート8006(例:https://youripaddress:8006)に合わせます。
-
root(realmPAM) のユーザー名と、インストール時に選択したパスワードを使用してログインします。
-
Enterprise リポジトリにアクセスするには、サブスクリプションキーをアップロードしてください。 そうでない場合は、セキュリティ修正、バグ修正、新機能のアップデートを取得するために、あまりテストされていない公開パッケージリポジトリのいずれかをセットアップする必要があります。
-
IPコンフィグレーションとホスト名を確認してください。
-
タイムゾーンを確認してください。
-
ファイアウォールの設定を確認してください。
2.3.2.高度なLVM設定オプション
インストーラーは、pve というボリュームグループ(VG)と、ext4またはxfs を使用している場合はroot、data、swap という追加の論理ボリューム(LV)を作成します。これらのボリュームのサイズを制御するには
- ハードサイズ
-
使用するハードディスクの合計サイズを定義します。こうすることで、ハードディスク上に空き領域を確保し、さらなるパーティション設定に使用することができます(例えば、同じハードディスク上にPVとVGを追加し、LVMストレージに使用することができます)。
- スワップサイズ
-
スワップボリュームのサイズを定義します。デフォルトはインストールされているメモリのサイズで、最小 4 GB、最大 8 GB です。結果の値はhdsize/8 より大きくすることはできません。
0に設定すると、スワップ・ボリュームは作成されません。 - マックスルート
-
オペレーション・システムを格納するルート・ボリュームの最大サイズを定義します。ルートボリュームの最大サイズはhdsize/4です。
- マックスブズ
-
データボリュームの最大サイズを定義します。データボリュームの実際のサイズは
datasize = hdsize - rootsize - swapsize - minfree
ここでdatasizeはmaxvz より大きくできません。
LVM thinの場合、データプールはデータサイズが4GBより大きい場合にのみ作成されます。 0に設定すると、データボリュームは作成されず、ストレージ構成はそれに応じて適応されます。 - ミンフリー
-
LVMボリュームグループpveに残すべき空き容量を定義します。128GB以上のストレージが使用可能な場合、デフォルトは16GBで、そうでない場合はhdsize/8が使用されます。
LVMでは、スナップショットの作成にVG内の空き領域が必要です(lvmthinスナップショットでは必要ありません)。
2.3.3.高度なZFS設定オプション
ZFS を使用する場合、インストーラは ZFS プールrpool を作成します。スワップ領域は作成されませんが、インストールディスク上にスワップ用のパーティション化されていない領域を確保することができます。インストール後に swap zvol を作成することもできますが、これは問題につながる可能性があります (ZFS swap notes を参照)。
- アッシュシフト
-
作成されるプールのashift値を定義します。ashiftは、少なくとも基礎となるディスクのセクタサイズ (ashiftの 2 乗がセクタサイズ) に設定される必要があります。
- 湿布
-
rpoolで圧縮を有効にするかどうかを定義します。
- チェックサム
-
rpoolにどのチェックサムアルゴリズムを使用するかを定義します。
- コピー
-
rpool のcopiesパラメータを定義します。その意味と、なぜこれがディスクレベルの冗長性を置き換えないのかについては、zfs(8) のman ページを確認してください。
- ARC最大サイズ
-
ARCが成長できる最大サイズを定義し、ZFSが使用するメモリ量を制限します。詳細については、ZFSのメモリ使用量を制限する方法のセクションも参照してください。
- ハードサイズ
-
使用するハードディスクの合計サイズを定義します。hdsizeはブート可能なディスク、つまり RAID0、RAID1、RAID10 の最初のディスクかミラー、RAID-Z[123]の全てのディスクに対してのみ有効です。
2.3.4.高度な BTRFS 設定オプション
BTRFS を使用する場合、スワップ領域は作成されませんが、スワップ用にインストー ルディスク上のパーティション化されていない領域を確保することができます。btrfs filesystem mkswapfileコマンドを使って、別パーティション、BTRFS サブボリューム、またはスワップファイルを作成できます。
- 湿布
-
BTRFS サブボリュームで圧縮を有効にするかどうかを定義します。on(zlibと同等)、zlib、lzo、zstdの異なる圧縮アルゴリズムがサポートされています。デフォルトはoffです。
- ハードサイズ
-
使用するハードディスクの合計サイズを定義します。これは、ハードディスク上の空き領域を保存して、さらにパーティション分割(例えば、スワップパーティションの作成)を行うのに便利です。
2.3.5.ZFSパフォーマンスのヒント
ZFSは大容量のメモリで最もよく動作します。ZFSを使用する場合は、十分なRAMを用意してください。TBのRAWディスク容量に対して、4GBと1GBのRAMを追加するのが良い計算です。
ZFSは、ZFS Intent Log (ZIL)と呼ばれる専用ドライブを書き込みキャッシュとして使用できます。 これには高速ドライブ(SSD)を使用します。インストール後に以下のコマンドで追加できます:
# zpool add <pool-name> log </dev/path_to_fast_ssd>.
2.3.6.nomodesetカーネル・パラメーターの追加
グラフィックドライバが原因で、非常に古いハードウェアや非常に新しいハードウェアで問題が発生することがあります。ブート中にインストールがハングする場合は、nomodesetパラメータを追加してみてください。これは Linux カーネルがグラフィックドライバをロードしないようにし、BIOS/UEFI が提供するフレームバッファを使い続けるようにします。
Proxmox VE ブートローダのメニューで、[Install Proxmox VE (Terminal UI)] に移動し、eキーを押してエントリを編集します。矢印キーを使用してlinux で始まる行に移動し、カーソルをその行の最後に移動して、パラメータnomodeset を既存の最後のパラメータからスペースで区切って追加します。
次にCtrl-XまたはF10を押して設定をブートします。
2.4.無人インストール
Proxmox VEを無人で自動インストールすることが可能です。これにより、ベアメタル上でのセットアッププロセスを完全に自動化できます。インストールが完了し、ホストが起動したら、Ansible のような自動化ツールを使用してインストールをさらに設定できます。
インストーラに必要なオプションは、アンサーファイルで提供する必要があります。このファイルでは、フィルタルールを使用して、使用するディスクとネットワークカードを決定できます。
自動インストールを使用するには、まずインストール ISO を準備する必要があります。 無人インストールの詳細と情報については、ウィキをご覧ください。
2.5.Debian に Proxmox VE をインストール
Proxmox VEはDebianパッケージのセットとして出荷され、標準的なDebianインストールの上にインストールすることができます。リポジトリを設定した後、以下のコマンドを実行する必要があります:
# apt-get update # apt-get install proxmox-ve
既存の Debian インストールの上にインストールするのは簡単そうに見えますが、基本シス テムが正しくインストールされており、ローカルストレージをどのように設定・ 使用したいかがわかっていることが前提です。また、ネットワークを手動で設定する必要もあります。
一般的に、特にLVMやZFSが使用されている場合、これは些細なことではありません。
詳しいステップバイステップのハウツーはウィキでご覧いただけます。
3.ホストシステム管理
以下のセクションでは、一般的な仮想化タスクに焦点を当て、ホストマシンの管理および運営に 関するProxmox VEの仕様について説明します。
Proxmox VEはDebian GNU/Linuxをベースにしており、Proxmox VE関連のパッケージを提供するためのリポジトリが追加されています。Proxmox VEは、Ubuntuカーネルをベースにした独自のLinuxカーネルを提供します。必要な仮想化機能とコンテナ機能がすべて有効になっており、ZFSといくつかの追加ハードウェアドライバが含まれています。
以下の節に含まれていないその他の話題については、Debian の文書を参照してください。Debian 管理者ハンドブック (Debian Administrator's Handbook)はオンラインで入手可能で、Debian オペレーティングシステムの包括的な入門書を提供しています ([Hertzog13] を参照してください)。
3.1.パッケージ・リポジトリ
Proxmox VE は他の Debian ベースのシステム同様、パッケージ管理ツールとしてAPT を使用します。
Proxmox VEはパッケージのアップデートを毎日自動的にチェックします。root@pamユーザーには、利用可能なアップデートが電子メールで通知されます。GUIからChangelogボタンを使用すると、選択したアップデートの詳細を見ることができます。
3.1.1.Proxmox VEのリポジトリ
リポジトリはソフトウェアパッケージの集合体であり、新しいソフトウェアをインストールするために使用できますが、新しいアップデートを取得するためにも重要です。
|
|
最新のセキュリティ更新、バグ修正、新機能を入手するには、有効な Debian と Proxmox のリポジトリが必要です。 |
APTリポジトリは/etc/apt/sources.listファイルと/etc/apt/sources.list.d/に置かれた.listファイルで定義されます。
リポジトリ管理
Proxmox VE 7以降、Webインターフェイスでリポジトリの状態を確認できます。 ノードサマリーパネルには、高レベルの状態概要が表示され、独立したリポジトリパネルには、詳細な状態と構成されたすべてのリポジトリのリストが表示されます。
基本的なリポジトリ管理、たとえばリポジトリの有効化・無効化もサポートされています。
ソース.リスト
sources.listファイルでは、各行がパッケージ・リポジトリを定義します。優先するソースが最初になければなりません。 空行は無視されます。行のどこかに#文字があると、その行の残りがコメントとしてマークされます。リポジトリから利用可能なパッケージは、apt-get update を実行して取得します。アップデートはapt-get を使って直接インストールすることも、GUI (Node → Updates) を使ってインストールすることもできます。
deb http://deb.debian.org/debian bookworm main contrib deb http://deb.debian.org/debian bookworm-updates main contrib # セキュリティアップデート deb http://security.debian.org/debian-security bookworm-security main contrib
Proxmox VEは3つの異なるパッケージリポジトリを提供します。
3.1.2.Proxmox VE Enterprise リポジトリ
これは推奨リポジトリで、すべての Proxmox VE サブスクリプションユーザーが利用できます。pve-enterpriseリポジトリはデフォルトで有効になっています:
deb https://enterprise.proxmox.com/debian/pve 本の虫 pve-enterprise
pve-enterpriseリポジトリにアクセスするには、有効なサブスクリプションキーが必要です。https://proxmox.com/en/proxmox-virtual-environment/pricing で詳細をご覧いただけます。
|
|
上記の行を#(行頭)でコメントアウトすることで、このリポジトリを無効にすることができます。これにより、ホストにサブスクリプションキーがない場合のエラーメッセージを防ぐことができます。その場合はpve-no-subscriptionリポジトリを設定してください。 |
3.1.3.Proxmox VE サブスクリプションなしリポジトリ
名前が示すように、このリポジトリにアクセスするためにサブスクリプションキーは必要ありません。テストや本番環境以外での使用に使用できます。本番サーバーでの使用は推奨されません。なぜなら、これらのパッケージは常に厳重にテスト・検証されているわけではないからです。
このリポジトリは/etc/apt/sources.list で設定することをお勧めします。
deb http://ftp.debian.org/debian bookworm main contrib deb http://ftp.debian.org/debian bookworm-updates main contrib # Proxmox VE pve-no-subscription repository provided by proxmox.com, # NOT recommended for production use deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription # security updates deb http://security.debian.org/debian-security bookworm-security main contrib
3.1.4.Proxmox VE テストリポジトリ
このリポジトリには最新のパッケージが含まれており、主に開発者が新機能をテストするために使用します。設定するには、/etc/apt/sources.list に以下の行を追加します:
deb http://download.proxmox.com/debian/pve bookworm pvetest
|
|
pvetestリポジトリは(その名の通り)新機能やバグ修正のテストにのみ使うべきです。 |
3.1.5.Ceph Squid Enterpriseリポジトリ
このリポジトリには、エンタープライズ向けProxmox VE Ceph 19.2 Squidパッケージがあります。本番環境に適しています。Proxmox VEでCephクライアントまたは完全なCephクラスタを実行する場合は、このリポジトリを使用してください。
deb https://enterprise.proxmox.com/debian/ceph-squid ブックワーム・エンタープライズ
3.1.6.Ceph Squidサブスクリプションなしリポジトリ
このCephリポジトリには、エンタープライズリポジトリに移動する前のCeph 19.2 Squidパッケージと、テストリポジトリに移動した後のCeph 19.2 Squidパッケージが格納されています。
|
|
本番マシンにはエンタープライズリポジトリを使用することをお勧めします。 |
deb http://download.proxmox.com/debian/ceph-squid ブックワーム ノーサブスクリプション
3.1.7.Ceph Squidテストリポジトリ
このCephリポジトリには、メインリポジトリに移動する前のCeph 19.2 Squidパッケージが格納されています。Proxmox VEでの新しいCephリリースのテストに使用されます。
deb http://download.proxmox.com/debian/ceph-squid ブックワームテスト
3.1.8.Ceph Reef Enterpriseリポジトリ
このリポジトリには、エンタープライズ向けProxmox VE Ceph 18.2 Reefパッケージがあります。本番環境に適しています。Proxmox VEでCephクライアントまたは完全なCephクラスタを実行する場合は、このリポジトリを使用します。
deb https://enterprise.proxmox.com/debian/ceph-reef ブックワーム・エンタープライズ
3.1.9.Ceph Reefサブスクリプションなしリポジトリ
このCephリポジトリには、エンタープライズリポジトリに移動する前のCeph 18.2 Reefパッケージと、テストリポジトリに移動した後のCeph 18.2 Reefパッケージが格納されています。
|
|
本番マシンにはエンタープライズリポジトリを使用することをお勧めします。 |
deb http://download.proxmox.com/debian/ceph-reef ブックワーム ノーサブスクリプション
3.1.10.Ceph Reefテストリポジトリ
このCephリポジトリには、メインリポジトリに移動する前のCeph 18.2 Reefパッケージが格納されています。Proxmox VEでの新しいCephリリースのテストに使用されます。
deb http://download.proxmox.com/debian/ceph-reef ブックワームテスト
3.1.11.Ceph Quincy Enterpriseリポジトリ
このリポジトリには、エンタープライズ向けProxmox VE Ceph Quincyパッケージがあります。本番環境に適しています。Proxmox VEでCephクライアントまたは完全なCephクラスタを実行する場合は、このリポジトリを使用します。
deb https://enterprise.proxmox.com/debian/ceph-quincy ブックワーム・エンタープライズ
3.1.12.Ceph Quincyサブスクリプションなしリポジトリ
このCephリポジトリには、エンタープライズリポジトリに移動する前のCeph Quincyパッケージと、テストリポジトリに移動した後のCeph Quincyパッケージが格納されます。
|
|
本番マシンにはエンタープライズリポジトリを使用することをお勧めします。 |
deb http://download.proxmox.com/debian/ceph-quincy ブックワーム ノーサブスクリプション
3.1.13.Ceph Quincyテストリポジトリ
このCephリポジトリには、メインリポジトリに移動する前のCeph Quincyパッケージが格納されています。Proxmox VEでの新しいCephリリースのテストに使用されます。
deb http://download.proxmox.com/debian/ceph-quincy ブックワームテスト
3.1.14.古いCephリポジトリ
Proxmox VE 8は、Ceph Pacific、Ceph Octopus、またはハイパーコンバージドセットアップ用の古いリリースをサポートしていません。これらのリリースでは、Proxmox VE 8にアップグレードする前に、まずCephを新しいリリースにアップグレードする必要があります。
詳細については、各アップグレードガイドを参照してください。
3.1.15.Debian ファームウェアリポジトリ
Debian Bookworm (Proxmox VE 8) から、(DFSG で定義された) non-free ファームウェアは新しく作成された Debian リポジトリのnon-free-firmware コンポーネントに移動されました。
Early OS Microcode Updates をセットアップする場合や、プリインストールパッケージpve-firmware に含まれていないランタイムファームウェアファイルが必要な場合は、このリポジトリを有効にしてください。
このコンポーネントからパッケージをインストールできるようにするには、/etc/apt/sources.list を編集し、各.debian.orgリポジトリの行の最後にnon-free-firmwareを追加して、apt update を実行してください。
3.1.16.SecureApt
リポジトリ内のReleaseファイルは GnuPG で署名されています。APTはこれらの署名を使って、すべてのパッケージが信頼できるソースからのものであることを確認しています。
Proxmox VEを公式ISOイメージからインストールする場合、検証用のキーはすでにインストールされています。
Debianの上にProxmox VEをインストールする場合は、以下のコマンドでキーをダウンロードしてインストールしてください:
# wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
その後、sha512sumCLIツールでチェックサムを検証します:
# sha512sum /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg 7da6fe34168adc6e479327ba517796d4702fa2f8b4f0a9833f5ea6e6b48f6507a6da403a274fe201595edc86a84463d50383d07f64bdde2e3658108db7d6dc87 /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
またはmd5sumCLIツール:
# md5sum /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg 41558dc019ef90bd0f6067644a51cf5b /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
3.2.システムソフトウェアアップデート
Proxmoxはすべてのリポジトリに対して定期的にアップデートを提供します。アップデートをインストールするには、WebベースのGUIまたは以下のCLIコマンドを使用します:
# apt-get update # apt-get dist-upgrade
|
|
APT パッケージ管理システムは非常に柔軟で、多くの機能を提供しています。詳しくはman apt-get や[Hertzog13]を参照してください。 |
|
|
定期的なアップデートは、最新のパッチとセキュリティ関連の修正を取得するために不可欠です。主要なシステムアップグレードはProxmox VEコミュニティフォーラムで発表されます。 |
3.3.ファームウェア・アップデート
本章のファームウェアアップデートは、ベアメタルサーバ上で Proxmox VE を実行する場合に適用してください。デバイス・パススルーを使用している場合など、ゲスト内でファームウェアの更新を構成することが適切かどうかは、セットアップに大きく依存するため、対象外です。
ソフトウェアの定期的なアップデートに加え、ファームウェアのアップデートも信頼性の高い安全な運用のために重要です。
ファームウェア・アップデートを入手し適用する場合は、利用可能なオプションを組み合わせて、可能な限り早期に、またはまったく入手することをお勧めします。
ファームウェアという用語は通常、言語的にはマイクロコード(CPU用)とファームウェア(その他のデバイス用)に分けられます。
3.3.1.永続的ファームウェア
このセクションは全てのデバイスに適しています。通常、BIOS/UEFI アップデートに含まれる更新されたマイクロコードはマザーボードに保存され、その他のファームウェアはそれぞれのデバイスに保存されます。この永続的な方法は、ブート時に更新されたマイクロコードをできるだけ早く定期的にロードできるようにするため、CPUにとって特に重要です。
|
|
BIOS/UEFIやストレージコントローラなどの一部のアップデートでは、デバイスの設定がリセットされる可能性があります。ベンダーの指示に注意深く従い、現在の設定をバックアップしてください。 |
どのアップデート方法が利用可能か、ベンダーにご確認ください。
-
サーバーの便利な更新方法には、デルのLifecycle ManagerやHPEのサービスパックがあります。
-
Linuxユーティリティが利用できる場合もあります。例えば、NVIDIA ConnectX用のmlxupやBroadcomネットワークカード用のbnxtnvm/niccliなどです。
-
ハードウェアベンダーとの協力があり、サポートされているハードウェアが使用されている場合、LVFSもオプションです。このための技術的条件は、システムが2014年以降に製造され、UEFI経由で起動することです。
Proxmox VE は、Proxmox 署名キーによるセキュアブートサポートを有効にするため、独自のバージョンのfwupdパッケージを同梱しています。このパッケージは、ハイパーバイザー上でのudisks2パッケージの使用に関する問題が確認されているため、 udisks2 パッケージへの依存推奨を意識的に取り除いています。つまり、/etc/fwupd/daemon.conf などで、EFI パーティションの正しいマウントポイントを明示的に設定する必要があります:
# EFIシステムパーティション(ESP)のパスに使用する場所を上書きします。 EspLocation=/boot/efi
|
|
更新の指示にホストの再起動が必要な場合は、安全に実行できることを確認してください。ノードのメンテナンス」も参照してください。 |
3.3.2.ランタイム・ファームウェア・ファイル
このメソッドは Proxmox VE オペレーティングシステムにファームウェアを保存し、パーシステッド ファームウェアが最新でないデバイスにファームウェアを渡します。ネットワークカードやグラフィックカードなどのデバイスでサポートされていますが、マザーボードやハードディスクなどのパーシステッドファームウェアに依存しているデバイスではサポートされていません。
Proxmox VEでは、pve-firmwareパッケージがデフォルトでインストールされています。そのため、通常のシステムアップデート(APT)で、一般的なハードウェアのファームウェアは自動的に最新の状態に保たれます。
追加のDebian ファームウェアリポジトリは存在しますが、デフォルトでは設定されていません。
追加のファームウェアパッケージをインストールしようとして競合した場合、APTはインストールを中断します。もしかしたら、そのファームウェアは別の方法で入手できるかもしれません。
3.3.3.CPU マイクロコードアップデート
マイクロコードのアップデートは、発見されたセキュリティ脆弱性やその他の深刻な CPU のバグを修正することを目的としています。CPU の性能は影響を受ける可能性がありますが、パッチを適用したマイクロコードは、通常、カーネル自身が緩和策を講じなければならないパッチを適用していないマイクロコードよりも性能が高くなります。CPU の種類によっては、故意に CPU を安全でない状態で動作させなければ、欠陥のある工場出荷状態の性能結果を達成できなくなる可能性があります。
現在のCPUの脆弱性とその緩和策の概要を知るには、lscpuを実行してください。Proxmox VEホストが最新であり、そのバージョンが終了しておらず、少なくとも最後のカーネル更新以降に再起動されている場合にのみ、現在の現実の既知の脆弱性が表示されます。
永続的なBIOS/UEFIアップデートによる推奨マイクロコードアップデート以外に、Early OS Microcode Updatesによる独立した方法もあります。これは便利で、マザーボードベンダーがBIOS/UEFIアップデートを提供しなくなった場合にも役立ちます。いずれの方法を使用する場合でも、マイクロコードアップデートを適用するには必ず再起動が必要です。
早期OSマイクロコードアップデートの設定
Linuxカーネルによってブート時に早期に適用されるマイクロコード・アップデートを設定するには、次のことが必要です:
-
利用可能な最新のパッケージを取得apt update(またはウェブインターフェースの Node → Updates を使用)
-
CPUベンダー固有のマイクロコードパッケージをインストールします:
-
インテルCPUの場合:apt install intel-microcode
-
AMD CPUの場合:apt install amd64-microcode
-
-
Proxmox VEホストの再起動
今後マイクロコードのアップデートを行う場合も、ロードのために再起動が必要になります。
マイクロコードバージョン
比較やデバッグの目的で、現在実行中のマイクロコード・リビジョンを取得します:
# grep microcode /proc/cpuinfo | uniq microcode : 0xf0
マイクロコードパッケージには、さまざまなCPU用のアップデートがあります。しかし、あなたのCPUに特化したアップデートはあまりないかもしれません。そのため、パッケージの日付を見ただけでは、その会社が実際にあなたの特定のCPU用のアップデートをリリースしたのはいつなのかはわかりません。
新しいマイクロコードパッケージをインストールしてProxmox VEホストを再起動した場合、この新しいマイクロコードがCPUに組み込まれたバージョンとマザーボードのファームウェアのバージョンの両方よりも新しい場合、システムログに "microcode updated early "というメッセージが表示されます。
# dmesg | grep microcode [ 0.000000] microcode: microcode updated early to revision 0xf0, date = 2021-11-12 [ 0.896580] microcode:Microcode Update Driver: v2.2.
トラブルシューティング
デバッグの目的で、システム起動時に定期的に適用されるEarly OS Microcode Updateの設定を、以下のように一時的に無効にすることができます:
-
ホストが安全に再起動できることを確認してください。
-
ホストを再起動してGRUBメニューを表示します。
-
を押します。
-
linuxで始まる行に行き、スペースで区切って追加dis_ucode_ldr
-
CTRL-Xを押して、Early OS Microcode Updateなしで起動します。
最近のマイクロコードの更新に関連した問題が疑われる場合、パッケージの削除(apt purge <intel-microcode|amd64-microcode>) ではなく、パッケージのダウングレードを考慮すべきです。そうしないと、最新のマイクロコードであれば問題なく実行できるにもかかわらず、古すぎる永続化されたマイクロコードがロードされてしまうかもしれません。
この例で示すように、Debian リポジトリに以前の microcode パッケージバージョンがあれば、ダウングレードは可能です:
# apt list -a intel-microcode Listing...完了 intel-microcode/stable-security,now 3.20230808.1~deb12u1 amd64 [installed] intel-microcode/stable 3.20230512.1 amd64
# apt install intel-microcode=3.202305* ... 'intel-microcode' にバージョン '3.20230512.1' (Debian:12.1/stable [amd64]) を選択 ... dpkg: warning: intel-microcode を 3.20230808.1~deb12u1 から 3.20230512.1 にダウングレード ... intel-microcode: microcode will be updated at next boot ...
ホストが安全に再起動できることを(もう一度)確認してください。CPU タイプ用のマイクロコード・パッケージに潜在的に含まれている古いマイクロコードを適用するには、今すぐ再起動してください。
|
|
ダウングレードしたパッケージをしばらくの間保持し、後日より新しい バージョンを試してみるのは理にかなっています。将来パッケージのバージョンが同じになったとしても、その間にシステムアップデートによって経験した問題が修正されているかもしれません。 # apt-mark hold intel-microcode intel-microcode を保留にします。 # apt-mark unhold intel-microcode # apt update # apt upgrade |
3.4.ネットワーク構成
Proxmox VEはLinuxネットワークスタックを使用しています。このため、Proxmox VEノードのネットワーク設定に柔軟性があります。設定は、GUIを使用して行うことも、ネットワーク設定全体を含む/etc/network/interfacesファイルを手動で編集して行うこともできます。interfaces(5)マニュアルページに、完全なフォーマットの説明があります。すべての Proxmox VE ツールは、ユーザが直接修正できるように努力していますが、GUI を使用する方がエラーから保護されるので、まだ好ましいです。
Linuxブリッジ・インターフェース(一般にvmbrXと呼ばれます)は、ゲストを基礎となる物理ネットワークに接続するために必要です。これは、ゲストと物理インターフェースが接続される仮想スイッチと考えることができます。このセクションでは、ボンドによる冗長化、VLAN、ルーティングやNATのセットアップなど、さまざまな使用ケースに対応するためにネットワークをどのようにセットアップできるか、いくつかの例を示します。
Software Defined Networkは、Proxmox VEクラスタにより複雑な仮想ネットワークを構築するためのオプションです。
|
|
従来の Debian ツールifupとifdownは、vmbrX の ifdownですべてのゲストのトラフィックを中断させるが、後で同じブリッジでifup を実行したときにそれらのゲストを再接続しないといった落とし穴があるので、よくわからない場合は使うのをお勧めしません。 |
3.4.1.ネットワーク変更の適用
Proxmox VEは/etc/network/interfacesに直接変更を書き込みません。代わりに、/etc/network/interfaces.newという一時ファイルに書き込みます。こうすることで、関連する多くの変更を一度に行うことができます。こうすることで、関連する多くの変更を一度に行うことができます。また、間違ったネットワーク設定によってノードにアクセスできなくなる可能性があるため、適用する前に変更が正しいことを確認することができます。
ifupdown2 によるライブ・リロード・ネットワーク
推奨のifupdown2パッケージ(Proxmox VE 7.0以降の新規インストールのデフォルト)を使用すると、再起動せずにネットワーク構成の変更を適用できます。GUI 経由でネットワーク構成を変更した場合、[Apply Configuration] ボタンをクリックできます。これにより、staginginterfaces.newファイルから/etc/network/interfacesに変更が移動され、ライブで適用されます。
etc/network/interfacesファイルに直接手動で変更を加えた場合は、ifreload -aを実行することで適用できます。
|
|
Debian 上に Proxmox VE をインストールした場合、または古い Proxmox VE から Proxmox VE 7.0 にアップグレードした場合は、ifupdown 2 がインストールされていることを確認してください。 |
3.4.2.命名規則
現在、デバイス名には以下の命名規則を使用しています:
-
イーサネットデバイス:en*、systemd ネットワークインターフェース名。この命名法はバージョン5.0以降、Proxmox VEの新規インストールに使用されます。
-
イーサネットデバイス:eth[N], 0 ≤ N(eth0,eth1, ...) この命名法は、5.0リリース以前にインストールされたProxmox VEホストに使用されます。5.0にアップグレードする場合は、この名前をそのまま使用します。
-
ブリッジ名:一般的にはvmbr[N]で、0≦N≦4094(vmbr0~vmbr4094)ですが、文字で始まり、最大10文字までの英数字の文字列を使用できます。
-
ボンド:bond[N], 0 ≤ N(bond0,bond1, ...)
-
VLAN:デバイス名にVLAN番号をピリオドで区切って追加するだけです(eno1.50、bond1.30)。
デバイス名がデバイス・タイプを意味するため、ネットワークの問題をデバッグしやすくなります。
Systemd ネットワークインターフェース名
Systemd はネットワークデバイス名のバージョン管理された命名スキームを定義しています。このスキームでは、イーサネットネットワークデバイスには 2 文字の接頭辞enを使用します。次の文字はデバイスドライバやデバイスの場所、その他の属性に依存します。いくつかのパターンが考えられます:
-
o<index>[n<phys_port_name>|d<dev_port>]- ボード上のデバイス。
-
s<slot>[f<function>][n<phys_port_name>|d<dev_port>]- ホットプラグIDでデバイスを指定します。
-
[P<domain>]p<bus>s<slot>[f<function>][n<phys_port_name>|d<dev_port>]- バスIDでデバイスを指定します。
-
x<MAC>- MACアドレスによるデバイス
最も一般的なパターンの例をいくつか挙げましょう:
-
eno1- 最初のオンボードNICです。
-
enp3s0f1- PCIバス3、スロット0上のNICのファンクション1です。
可能なデバイス名のパターンの完全なリストについては、systemd.net-naming-scheme(7) man ページを参照してください。
systemd の新しいバージョンは、ネットワークデバイスの命名スキームの新しいバージョンを定義し、それをデフォルトで使用します。そのため、Proxmox VE のメジャーアップグレードなどで systemd を新しいバージョンに更新すると、ネットワークデバイスの名前が変更され、ネットワーク設定の調整が必要になることがあります。新しいバージョンの命名スキームによる名前の変更を避けるには、特定の命名スキームバージョンを手動で固定します(下記参照)。
ただし、命名スキームを固定したバージョンでも、カーネルやドライバの更新によってネットワークデバイス名が変更される可能性があります。特定のネットワーク・デバイスの名前の変更を完全に避けるには、リンク・ファイルを使用して手動で名前を上書きします(下記参照)。
ネットワーク・インターフェース名の詳細については、「予測可能なネットワーク・インターフェース名」を参照してください。
特定のネーミングスキームのバージョンをピン留め
カーネルコマンドラインに net.naming-scheme=<version>パラメータを追加することで、ネットワークデバイスの命名スキームの特定のバージョンを固定することができます。命名スキームのバージョンの一覧はsystemd.net-naming-scheme(7) man ページを参照してください。
たとえば、Proxmox VE 8.0を新規インストールしたときの最新の命名スキーム・バージョンであるv252を固定するには、次のカーネル・コマンドライン・パラメータを追加します:
net.naming-scheme=v252
カーネルコマンドラインの編集については、このセクションも参照してください。変更を有効にするには再起動する必要があります。
ネットワークデバイス名の上書き
カスタムsystemd.link ファイルを使って、特定のネットワークデバイスに手動で名前を割り当てることができます。これは最新のネットワークデバイス命名スキームに従って割り当てられる名前を上書きします。こうすることで、カーネルのアップデートやドライバのアップデート、命名スキームの新しいバージョンによる名前の変更を避けることができます。
カスタムリンクファイルは/etc/systemd/network/に置き、<n>-<id>.link という名前にします。リンクファイルには2つのセクションがあります:[Match]はファイルが適用されるインターフェースを決定し、[Link]はこれらのインターフェースがどのように設定されるべきかを決定します。
特定のネットワーク・デバイスに名前を割り当てるには、[Match]セクションでそのデバイスを一意的かつ恒久的に識別する方法が必要です。一つの可能性は、MACAddressオプションを使用してデバイスのMACアドレスを一致させることです。
Match]セクションには、同じMACアドレスを持つブリッジ/ボンド/VLANインターフェイスではなく、期待される物理インターフェイスだけにマッチするように、Typeオプションも含める必要があります。ほとんどのセットアップでは、Typeはイーサネットデバイスだけにマッチするようにetherに設定されるべきですが、セットアップによっては他の選択が必要になるかもしれません。詳細はsystemd.link(5) man ページを参照してください。
次に、[リンク]セクションの[名前]オプションを使用して名前を割り当てることができます。
リンク・ファイルはinitramfsにコピーされるため、リンク・ファイルを追加、変更、削除した後はinitramfsをリフレッシュすることをお勧めします:
# update-initramfs -u -k all
例えば、enwan0という名前を MAC アドレスaa:bb:cc:dd:ee:ff のイーサネットデバイスに割り当てるには、以下の内容の/etc/systemd/network/10-enwan0.linkファイルを作成します:
[マッチ] MACアドレス=aa:bb:cc:dd:ee:ff タイプ=エーテル [リンク] 名前=enwan0
新しい名前を使用するように/etc/network/interfacesを調整し、前述のようにinitramfsをリフレッシュすることを忘れないでください。変更を有効にするにはノードを再起動する必要があります。
|
|
Proxmox VEがインターフェイスを物理的なネットワークデバイスとして認識し、GUIで設定できるように、enまたはethで始まる名前を割り当てることをお勧めします。また、この名前が将来的に他のインターフェイス名と衝突しないようにする必要があります。上の例ではenwan0 のように、systemd がネットワークインターフェースに使用する名前パターン(上記参照) にマッチしない名前を割り当てることもできます。 |
リンクファイルの詳細については、systemd.link(5) man ページを参照してください。
3.4.3.ネットワーク設定の選択
現在のネットワーク構成とリソースに応じて、ブリッジ、ルーティング、マスカレードのいずれかのネットワーク設定を選択できます。
3.4.4.ブリッジを使ったデフォルト設定
ブリッジは、ソフトウェアで実装された物理ネットワークスイッチのようなものです。 すべての仮想ゲストは単一のブリッジを共有できますが、複数のブリッジを作成してネットワークドメインを分けることもできます。各ホストは最大 4094 個のブリッジを持つことができます。
インストール・プログラムはvmbr0 という名前のブリッジを1つ作成し、最初のイーサネット・ カードに接続します。etc/network/interfacesの対応する設定は以下のようになります:
auto lo iface lo inet loopback iface eno1 inet manual auto vmbr0 iface vmbr0 inet static address 192.168.10.2/24 gateway 192.168.10.1 bridge-ports eno1 bridge-stp off bridge-fd 0
仮想マシンは、あたかも物理ネットワークに直接接続されているかのように動作します。ネットワークは、すべての仮想マシンをネットワークに接続しているネットワーク・ケーブルが1本しかないにもかかわらず、各仮想マシンを独自のMACを持っていると見なします。
3.4.5.ルーティングされたコンフィギュレーション
ほとんどのホスティングプロバイダーは上記の設定をサポートしていません。セキュリティ上の理由から、1つのインターフェイスで複数のMACアドレスを検出するとすぐにネットワークを無効にします。
|
|
プロバイダによっては、管理インターフェイスから追加の MAC を登録できるものもあります。これによって問題は回避されますが、VMごとにMACを登録する必要があるため、設定が面倒な場合があります。 |
すべてのトラフィックを1つのインターフェイス経由で「ルーティング」することで、この問題を回避することができます。これにより、すべてのネットワークパケットが同じMACアドレスを使用するようになります。
一般的なシナリオは、パブリックIP(この例では198.51.100.5と仮定)と、VM用の追加IPブロック(203.0.113.16/28)がある場合です。このような場合、以下のセットアップをお勧めします:
auto lo iface lo inet loopback auto eno0 iface eno0 inet static address 198.51.100.5/29 gateway 198.51.100.1 post-up echo 1 > /proc/sys/net/ipv4/ip_forward post-up echo 1 > /proc/sys/net/ipv4/conf/eno0/proxy_arp auto vmbr0 iface vmbr0 inet static address 203.0.113.17/28 bridge-ports none bridge-stp off bridge-fd 0
3.4.6.iptablesによるマスカレード (NAT)
マスカレードは、プライベートIPアドレスしか持たないゲストが、送信トラフィックにホストIPアドレスを使用してネットワークにアクセスすることを可能にします。各送信パケットはiptablesによってホストから発信されているように書き換えられ、レスポンスもそれに応じて書き換えられ、元の送信者にルーティングされます。
auto lo iface lo inet loopback auto eno1 #実IPアドレス iface eno1 inet static address 198.51.100.5/24 gateway 198.51.100.1 auto vmbr0 #プライベートサブネットワーク iface vmbr0 inet static address 10.10.10.1/24 bridge-ports none bridge-stp off bridge-fd 0 post-up echo 1 > /proc/sys/net/ipv4/ip_forward post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
|
|
ファイアウォールが有効になっているいくつかのマスカレード・セットアップでは、conntrackゾーンが発信接続に必要な場合があります。そうでなければ、ファイアウォールは(MASQUERADEではなく)VMブリッジのPOSTROUTINGを優先するため、発信接続をブロックする可能性があります。 |
etc/network/interfacesに以下の行を追加すると、この問題を解決できます:
post-up iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1 post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1
これについては、以下のリンクをご参照ください:
3.4.7.Linuxボンド
ボンディング(NICチーミングまたはリンクアグリゲーションとも呼ばれる)は、複数のNICを1つのネットワークデバイスにバインドする技術です。 ネットワークのフォールトトレラント化、パフォーマンスの向上、またはその両方など、さまざまな目的を達成することができます。
ファイバーチャネルのような高速ハードウェアと関連するスイッチングハードウェアは、かなり高価になります。リンクアグリゲーションを行うことで、2つのNICを1つの論理インターフェイスとして表示することができ、結果として2倍の速度が得られます。これはLinuxカーネルのネイティブ機能で、ほとんどのスイッチでサポートされています。ノードに複数のイーサネットポートがある場合、異なるスイッチにネットワークケーブルを接続することで、障害箇所を分散させることができます。
集約リンクは、ライブマイグレーションの遅延を改善し、Proxmox VE Clusterノード間のデータのレプリケーション速度を向上させることができます。
ボンディングには7つのモードがあります:
-
ラウンドロビン(balance-rr):利用可能な最初のネットワークインターフェイス(NIC)スレーブから最後のスレーブまで、順次ネットワークパケットを送信します。このモードは負荷分散とフォールトトレランスを提供します。
-
アクティブバックアップ(active-backup):ボンド内の1つのNICスレーブのみがアクティブになります。アクティブスレーブに障害が発生した場合のみ、別のスレーブがアクティブになります。単一の論理ボンディングインターフェイスのMACアドレスは、ネットワークスイッチの歪みを避けるために、1つのNIC(ポート)のみで外部に表示されます。このモードはフォールトトレランスを提供します。
-
XOR (balance-xor):送信元MACアドレスと送信先MACアドレスのXOR)モジュロNICスレーブ数]に基づいてネットワークパケットを送信します。これは、各宛先MACアドレスに対して同じNICスレーブを選択します。このモードは負荷分散とフォールトトレランスを提供します。
-
ブロードキャスト(放送):すべてのスレーブ・ネットワーク・インタフェースでネットワーク・パケットを送信します。このモードはフォールトトレランスを提供します。
-
IEEE 802.3ad ダイナミックリンクアグリゲーション(802.3ad)(LACP):同じ速度とデュプレックス設定を共有するアグリゲーショングループを作成します。802.3ad仕様に従って、アクティブアグリゲーターグループ内のすべてのスレーブネットワークインターフェースを使用します。
-
アダプティブ・トランスミッション・ロードバランシング(balance-tlb):特別なネットワークスイッチのサポートを必要としない Linux のボンディングドライバモード。発信ネットワークパケットトラフィックは、各ネットワークインターフェイススレーブの現在の負荷(速度に対して計算される)に従って分配されます。着信トラフィックは、現在指定されている1つのスレーブ・ネットワーク・インターフェースで受信されます。この受信スレーブが故障した場合、別のスレーブが故障した受信スレーブのMACアドレスを引き継ぎます。
-
適応型ロードバランシング(balance-alb):balance-tlbにIPV4トラフィックの受信負荷分散(rlb)を加えたもので、特別なネットワークスイッチのサポートは必要ありません。受信負荷分散はARPネゴシエーションによって達成されます。ボンディングドライバは、ローカルシステムから送信されるARPリプライをインターセプトし、異なるネットワークピアがネットワークパケットトラフィックに異なるMACアドレスを使用するように、単一の論理ボンディングインターフェース内のNICスレーブの1つの固有のハードウェアアドレスでソースハードウェアアドレスを上書きします。
お使いのスイッチがLACP(IEEE 802.3ad)プロトコルをサポートしている場合は、対応するボンディングモード(802.3ad)を使用することをお勧めします。そうでない場合は、通常アクティブバックアップモードを使用してください。
クラスタネットワーク(Corosync)については、複数のネットワークで構成することをお勧めします。Corosyncはネットワークの冗長化のためのボンドを必要としません。
以下のボンド構成は、分散/共有ストレージネットワークとして使用できます。利点は、より高速になり、ネットワークがフォールトトレラントになることです。
auto lo iface lo inet loopback iface eno1 inet manual iface eno2 inet manual iface eno3 inet manual auto bond0 iface bond0 inet static bond-slaves eno1 eno2 address 192.168.1.2/24 bond-miimon 100 bond-mode 802.3ad bond-xmit-hash-policy layer2+3 auto vmbr0 iface vmbr0 inet static address 10.10.10.2/24 gateway 10.10.10.1 bridge-ports eno3 bridge-stp off bridge-fd 0
auto lo iface lo inet loopback iface eno1 inet manual iface eno2 inet manual auto bond0 iface bond0 inet manual bond-slaves eno1 eno2 bond-miimon 100 bond-mode 802.3ad bond-xmit-hash-policy layer2+3 auto vmbr0 iface vmbr0 inet static address 10.10.10.2/24 gateway 10.10.10.1 bridge-ports bond0 bridge-stp off bridge-fd 0
3.4.8.VLAN 802.1Q
仮想LAN(VLAN)はブロードキャスト・ドメインで、レイヤ2のネットワーク内で分割・分離されます。 そのため、物理ネットワーク内に複数のネットワーク(4096)を持つことができ、それぞれが他のネットワークから独立しています。
各VLANネットワークは、しばしばタグと呼ばれる番号で識別されます。 ネットワークパッケージは、どの仮想ネットワークに属するかを識別するためにタグ付けされます。
ゲストネットワーク用VLAN
Proxmox VEはこの設定をすぐにサポートします。VMの作成時にVLANタグを指定できます。VLAN タグはゲストネットワーク設定の一部です。ネットワーキング・レイヤは、ブリッジ構成に応じて、VLANを実装するためのさまざまなモードをサポートします:
-
Linux ブリッジで VLAN を認識:この場合、各ゲストの仮想ネットワークカードには VLAN タグが割り当てられ、Linux ブリッジによって透過的にサポートされます。 トランクモードも可能ですが、その場合はゲストでの設定が必要になります。
-
Linux ブリッジ上の "伝統的な" VLAN:VLAN を認識する方法とは対照的に、この方法は透過的ではなく、各 VLAN に関連するブリッジと VLAN デバイスを作成します。 つまり、例えば VLAN 5 にゲストを作成すると、2 つのインターフェース eno1.5 と vmbr0v5 が作成され、再起動が発生するまで残ります。
-
Open vSwitch VLAN:このモードでは、OVS VLAN機能を使用します。
-
ゲスト設定 VLAN:VLAN はゲスト内部で割り当てられます。この場合、設定は完全にゲスト内部で行われ、外部から影響を受けることはありません。利点は、1 つの仮想 NIC で複数の VLAN を使用できることです。
ホスト上のVLAN
隔離されたネットワークとのホスト通信を許可するため。任意のネットワークデバイス(NIC、ボンド、ブリッジ)にVLANタグを適用することが可能です。一般的に、それ自身と物理 NIC の間の抽象化レイヤーが最も少ないインターフェースに VLAN を設定する必要があります。
たとえば、ホスト管理アドレスを別のVLANに配置したいデフォルトの構成では、次のようになります。
auto lo iface lo inet loopback iface eno1 inet manual iface eno1.5 inet manual auto vmbr0v5 iface vmbr0v5 inet static address 10.10.10.2/24 gateway 10.10.10.1 bridge-ports eno1.5 bridge-stp off bridge-fd 0 auto vmbr0 iface vmbr0 inet manual bridge-ports eno1 bridge-stp off bridge-fd 0
auto lo iface lo inet loopback iface eno1 inet manual auto vmbr0.5 iface vmbr0.5 inet static address 10.10.10.2/24 gateway 10.10.10.1 auto vmbr0 iface vmbr0 inet manual bridge-ports eno1 bridge-stp off bridge-fd 0 bridge-vlan-aware yes bridge-vids 2-4094
次の例は同じセットアップですが、このネットワークをフェイルセーフにするためにボンドが使われています。
auto lo iface lo inet loopback iface eno1 inet manual iface eno2 inet manual auto bond0 iface bond0 inet manual bond-slaves eno1 eno2 bond-miimon 100 bond-mode 802.3ad bond-xmit-hash-policy layer2+3 iface bond0.5 inet manual auto vmbr0v5 iface vmbr0v5 inet static address 10.10.10.2/24 gateway 10.10.10.1 bridge-ports bond0.5 bridge-stp off bridge-fd 0 auto vmbr0 iface vmbr0 inet manual bridge-ports bond0 bridge-stp off bridge-fd 0
3.4.9.ノードでIPv6を無効にする
Proxmox VEは、IPv6の導入の有無にかかわらず、すべての環境で正しく動作します。すべての設定はデフォルトのままにしておくことをお勧めします。
それでもノードのIPv6サポートを無効にする必要がある場合は、適切なsysctl.conf (5)スニペットファイルを作成し、適切なsysctlsを設定します。例えば、/etc/sysctl.d/disable-ipv6.confに内容を追加します:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
この方法は、カーネルのコマンドラインでIPv6モジュールのロードを無効にするよりも好ましい。
3.4.10.ブリッジでの MAC 学習の無効化
デフォルトでは、仮想ゲストとそのネットワークをスムーズに使用できるように、ブリッジでMAC学習が有効になっています。
しかし、環境によってはこれが望ましくないこともあります。Proxmox VE 7.3以降では、ブリッジの'bridge-disable-mac-learning 1`設定を`/etc/network/interfaces'などで設定することで、ブリッジのMAC学習を無効にできます:
# ... auto vmbr0 iface vmbr0 inet static address 10.10.10.2/24 gateway 10.10.10.1 bridge-ports ens18 bridge-stp off bridge-fd 0 bridge-disable-mac-learning 1
有効化されると、Proxmox VEはVMとコンテナから設定されたMACアドレスをブリッジ転送データベースに手動で追加し、ゲストが実際のMACアドレスを使用している場合のみネットワークを使用できるようにします。
3.5.時刻同期
Proxmox VEクラスタスタック自体は、すべてのノードの時刻が正確に同期していることに大きく依存しています。Cephのような他のコンポーネントも、すべてのノードのローカル時刻が同期していないと正しく動作しません。
ノード間の時刻同期は、"Network Time Protocol"(NTP)を使用して実現できます。Proxmox VE 7では、デフォルトのNTPデーモンとしてchronyが使用され、Proxmox VE 6ではsystemd-timesyncdが使用されます。どちらも、一連のパブリックサーバーを使用するように事前に設定されています。
|
|
システムをProxmox VE 7にアップグレードする場合は、chrony、ntp、openntpdのいずれかを手動でインストールすることをお勧めします。 |
3.5.1.カスタムNTPサーバーの使用
場合によっては、デフォルト以外のNTPサーバを使用したいことがあります。たとえば、Proxmox VEノードが制限されたファイアウォールルールのためにパブリックインターネットにアクセスできない場合、ローカルNTPサーバをセットアップして、NTPデーモンにそれを使用するように指示する必要があります。
クロニーを使用するシステムの場合:
etc/chrony/chrony.confで chronyが使用するサーバーを指定します:
サーバ ntp1.example.com iburst サーバ ntp2.example.com iburst サーバ ntp3.example.com iburst
クロニーを再起動してください:
# systemctl restart chronyd
ジャーナルをチェックして、新しく設定したNTPサーバーが使用されていることを確認します:
# journalctl --since -1h -u chrony
... Aug 26 13:00:09 node1 systemd[1]:8/26 13:00:15 node1 chronyd[4873]:8/26 13:00:15 node1 chronyd[4873]: ソース 10.0.0.1 (ntp1.example.com) を選択しました:システムクロックTAIオフセットを37秒に設定 ...
systemd-timesyncd を使用しているシステムの場合:
etc/systemd/timesyncd.conf でsystemd-timesyncd が使用するサーバを指定します:
[時刻] NTP=ntp1.example.com ntp2.example.com ntp3.example.com ntp4.example.com
その後、同期サービスを再起動し(systemctl restart systemd-timesyncd)、ジャーナルをチェックする(journalctl --since -1h -u systemd-timesyncd) ことで、新しく設定した NTP サーバーが使用されていることを確認します:
... Oct 07 14:58:36 node1 systemd[1]:ネットワーク時刻同期を停止しています... Oct 07 14:58:36 node1 systemd[1]:ネットワーク時刻同期を開始しました... Oct 07 14:58:36 node1 systemd[1]:Oct 07 14:58:36 node1 systemd-timesyncd[13514]:ネットワーク時刻同期を開始しました:Oct 07 14:58:36 node1 systemd-timesyncd[13514]: interval/delta/delay/jitter/drift 64s/-0.002s/0.020s/0.000s/-31ppm ...
3.6.外部メトリック・サーバー
現在サポートされているのは
-
グラファイト (https://graphiteapp.orgを参照)
-
InfluxDB (https://www.influxdata.com/time-series-platform/influxdb/ を参照)
外部メトリックサーバ定義は/etc/pve/status.cfgに保存され、ウェブインタフェースで編集できます。
3.6.1.Graphite サーバー構成
デフォルトでは、Proxmox VEはUDPでデータを送信するため、グラファイトサーバーはこれを受け入れるように設定する必要があります。標準の1500MTUを使用しない環境では、ここで最大伝送単位(MTU)を設定することができます。
TCPを使用するようにプラグインを設定することもできます。重要なpvestatd統計収集デーモンをブロックしないために、ネットワークの問題に対処するためのタイムアウトが必要です。
3.6.2.Influxdb プラグイン設定
以下は influxdb (influxdb サーバー) の設定例です:
[udp]]有効 = true バインドアドレス = "0.0.0.0:8089" データベース = "proxmox" バッチサイズ = 1000 バッチタイムアウト = "1s"
この設定では、サーバーはポート8089ですべてのIPアドレスをリッスンし、proxmoxデータベースにデータを書き込みます。
InfluxDB 1.8.x には、この v2 API と互換性のある API エンドポイントが含まれています。
デフォルトでは、Proxmox VEはorganizationproxmoxとbucket/db proxmoxを使用します(organizationと bucketはそれぞれ設定で設定できます)。
InfluxDBのv2 APIは認証がないと使えないので、正しいバケットに書き込めるトークンを生成して設定する必要があります。
1.8.xのv2互換APIでは、トークンとしてuser:passwordを使用することができます(必要な場合)。
また、timeout設定でHTTPタイムアウト(デフォルトは1秒)を、max-body-size設定で最大バッチサイズ(デフォルトは25000000バイト)を設定できます(これは同名のInfluxDBの設定に対応します)。
3.7.ディスクヘルス監視
堅牢で冗長性のあるストレージを推奨しますが、ローカルディスクの健全性を監視することは非常に有用です。
Proxmox VE 4.3から、smartmontools
[smartmontools homepagehttps://www.smartmontools.org]
パッケージがインストールされ、必須となりました。これは、ローカルハードディスクのS.M.A.R.T.システムを監視および制御するためのツールセットです。
ディスクのステータスは、以下のコマンドで取得できます:
# smartctl -a /dev/sdX
dev/sdXはローカルディスクのパスです。
と出力されたら
SMARTのサポートは無効
コマンドで有効にできます:
# smartctl -s on /dev/sdX
smartctlの使い方については、man smartctlを参照してください。
デフォルトでは、smartmontoolsデーモンsmartdがアクティブで有効になっており、/dev/sdXおよび/dev/hdX下のディスクを30分ごとにスキャンしてエラーや警告を表示し、問題を検出するとrootに電子メールを送信します。
smartdの設定方法の詳細については、man smartdおよびman smartd.confを参照してください。
ハードディスクをハードウェア raid コントローラーで使用している場合、ほとんどの場合 raid アレイ内のディスクとアレイ自体を監視するツールがあります。これに関する詳細については、ご使用の raid コントローラーのベンダーにお問い合わせください。
3.8.論理ボリュームマネージャ (LVM)
ほとんどの場合、Proxmox VEはローカルディスクに直接インストールされます。Proxmox VEのインストールCDには、ローカルディスク管理のためのいくつかのオプションが用意されており、現在のデフォルトのセットアップではLVMが使用されています。インストーラでは、このようなセットアップに使用するディスクを 1 つ選択でき、そのディスクをボリューム グループ(VG)pve の物理ボリュームとして使用します。以下の出力は、8GB の小型ディスクを使用したテストインストールによるものです:
# pvs PV VG Fmt Attr PSize PFree /dev/sda3 pve lvm2 a-- 7.87g 876.00m # vgs VG #PV #LV #SN Attr VSize VFree pve 1 3 0 wz--n- 7.87g 876.00m
インストーラはこの VG 内に 3 つの論理 ボリューム(LV)を割り当てます:
# lvs LV VG Attr LSize Pool Origin Data% Meta% data pve twi-a-tz-- 4.38g 0.00 0.63 root pve -wi-ao---- 1.75g swap pve -wi-ao---- 896.00m
- ルート
-
フォーマット形式はext4で、オペレーティングシステムが入っています。
- スワップ
-
スワップ・パーティション
- データ
-
このボリュームはLVM-thinを使用し、VMイメージの保存に使用されます。LVM-thinは、スナップショットとクローンを効率的にサポートするため、このタスクに適しています。
Proxmox VEのバージョン4.1までの場合、インストーラは「data」という標準論理ボリュームを作成し、/var/lib/vzにマウントします。
バージョン4.2から、論理ボリューム「data」はLVM-thinプールで、ブロックベースのゲストイメージを格納するために使用され、/var/lib/vzは単にルートファイルシステム上のディレクトリです。
3.8.1.ハードウェア
このようなセットアップには、ハードウェアRAIDコントローラ(BBU付き)の使用を強くお勧めします。これにより、パフォーマンスが向上し、冗長性が確保され、ディスク交換が容易になります(ホットプラグ対応)。
LVM自体は特別なハードウェアを必要とせず、メモリ要件も非常に低くなっています。
3.8.2.ブートローダー
デフォルトで2つのブートローダをインストールします。最初のパーティションには標準的な GRUB ブートローダが含まれています。2番目のパーティションはEFIシステムパーティション(ESP)で、EFIシステムでのブートと、ユーザースペースからの永続的なファームウェアアップデートの適用を可能にします。
3.8.3.ボリュームグループの作成
空のディスク/dev/sdbがあり、そこに "vmdata "という名前のボリュームグループを作成するとします。
|
|
以下のコマンドは、/dev/sdb上の既存のデータをすべて破壊することに注意してください。 |
まずパーティションを作成します。
# sgdisk -N 1 /dev/sdb
確認なしで物理 ボリューム(PV)を作成し、メタデータサイズを250Kにします。
# pvcreate --metadatasize 250k -y -ff /dev/sdb1
dev/sdb1に "vmdata "というボリュームグループを作成します。
# vgcreate vmdata /dev/sdb1
3.8.4.var/lib/vz用の追加LVの作成
これは新しい薄いLVを作成することで簡単にできます。
# lvcreate -n <名前> -V <サイズ[M,G,T]> <VG>/<LVThin_pool>.
実例です:
# lvcreate -n vz -V 10G pve/data
ここで、LV上にファイルシステムを作成する必要があります。
# mkfs.ext4 /dev/pve/vz
ついにこれを搭載しなければなりません。
|
|
var/lib/vzが空であることを確認してください。デフォルトのインストールではそうではありません。 |
常にアクセスできるようにするには、/etc/fstabに以下の行を追加します。
# echo '/dev/pve/vz /var/lib/vz ext4 defaults 0 2' >> /etc/fstab
3.9.Linux上のZFS
ZFSは、Sun Microsystemsによって設計されたファイルシステムと論理ボリュームマネージャを組み合わせたものです。Proxmox VE 3.4から、ZFSファイルシステムのネイティブLinuxカーネルポートがオプションのファイルシステムとして導入され、ルートファイルシステムの追加選択も可能です。ZFSモジュールを手動でコンパイルする必要はありません。
ZFSを使用することで、低予算のハードウェアで最大限のエンタープライズ機能を実現するだけでなく、SSDキャッシングやSSDのみのセットアップを活用することで、高性能なシステムを実現することも可能です。ZFSは、CPUとメモリ負荷の軽減と容易な管理を組み合わせることで、コスト高なハードウェアレイドカードを置き換えることができます。
-
Proxmox VEのGUIとCLIで簡単な設定と管理。
-
信頼できる
-
データ破損からの保護
-
ファイルシステムレベルでのデータ圧縮
-
スナップ写真
-
コピーオンライトクローン
-
様々なレイドレベルRAID0、RAID1、RAID10、RAIDZ-1、RAIDZ-2、RAIDZ-3、dRAID、dRAID2、dRAID3
-
キャッシュにSSDを使用可能
-
セルフヒーリング
-
継続的な完全性チェック
-
大容量収納に対応した設計
-
ネットワーク経由の非同期レプリケーション
-
オープンソース
-
暗号化
-
...
3.9.1.ハードウェア
ZFSはメモリに大きく依存するので、少なくとも8GBは必要です。実際には、ハードウェア/予算に見合うだけの量を使用してください。データの破損を防ぐため、高品質のECC RAMの使用をお勧めします。
専用のキャッシュおよび/またはログディスクを使用する場合は、エンタープライズクラスのSSDを使用する必要があります。これにより、全体的なパフォーマンスが大幅に向上します。
|
|
独自のキャッシュ管理を持つハードウェアRAIDコントローラの上でZFSを使用しないでください。ZFSはディスクと直接通信する必要があります。HBAアダプタか、「IT」モードでフラッシュされたLSIコントローラのようなものがより適切です。 |
VM(入れ子仮想化)内にProxmox VEをインストールして実験している場合、VMのディスクにvirtioを使用しないでください。代わりに IDE または SCSI を使用してください (virtioSCSI コントローラタイプでも動作します)。
3.9.2.ルートファイルシステムとしてのインストール
Proxmox VEインストーラを使用してインストールする場合、ルートファイルシステムにZFSを選択できます。インストール時にRAIDタイプを選択する必要があります:
|
RAID0 |
ストライピング」とも呼ばれます。このようなボリュームの容量は、すべてのディスクの容量の合計です。しかし、RAID0 は冗長性を追加しないので、1 台のドライブが故障するとボリュームは使用できなくなります。 |
|
RAID1 |
ミラーリング」とも呼ばれます。データはすべてのディスクに同じように書き込まれます。このモードでは、同じサイズのディスクが少なくとも 2 台必要です。その結果、容量は 1 台のディスクの容量になります。 |
|
RAID10 |
RAID0 と RAID1 の組み合わせ。少なくとも 4 台のディスクが必要です。 |
|
RAIDZ-1 |
RAID-5 のバリエーション、シングルパリティ。少なくとも 3 台のディスクが必要です。 |
|
RAIDZ-2 |
RAID-5 のバリエーション、ダブルパリティ。少なくとも 4 台のディスクが必要です。 |
|
RAIDZ-3 |
RAID-5 のバリエーション、トリプルパリティ。少なくとも 5 台のディスクが必要です。 |
インストーラーは自動的にディスクをパーティション分割し、rpool という ZFS プールを作成し、ZFS サブボリュームrpool/ROOT/pve-1 にルートファイルシステムをインストールします。
VM イメージを格納するために、rpool/dataという別のサブボリュームが作成されます。これをProxmox VEツールで使用するために、インストーラは/etc/pve/storage.cfgに以下の設定エントリを作成します:
zfspool: local-zfs pool rpool/data sparse content images,rootdir
インストール後、zpoolコマンドを使用してZFSプールのステータスを表示できます:
# zpool status pool: rpool state:ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 mirror-0 ONLINE 0 0 sda2 ONLINE 0 0 sdb2 ONLINE 0 0 mirror-1 ONLINE 0 0 0 sdc ONLINE 0 0 0 sdd ONLINE 0 0 0 エラー:既知のデータエラーなし
zfsコマンドは、ZFS ファイルシステムの設定と管理に使用します。次のコマンドは、インストール後のすべてのファイルシステムを一覧表示します:
# rpool/ROOT 702M 7.68T 96K /rpool/ROOT rpool/ROOT/pve-1 702M 7.68T 702M / rpool/data 96K 7.68T 96K /rpool/data rpool/swap 4.25G 7.69T 64K - 。
3.9.3.ZFS RAIDレベルの考察
ZFSプールのレイアウトを選択する際に考慮すべき要素がいくつかあります。ZFSプールの基本的な構成要素は仮想デバイス(vdev)です。プール内のすべてのvdevは等しく使用され、データはそれらの間でストライプされます(RAID0)。vdev の詳細については、zpoolconcepts(7)man ページを確認してください。
パフォーマンス
各vdevタイプは、それぞれ異なるパフォーマンス動作をします。注目すべき 2 つのパラメータは、IOPS (Input/Output Operations per Second) と、データを書き込んだり読み込んだりできる帯域幅です。
ミラーvdev (RAID1) は、データを書き込む場合、両方のパラメータに関して、ほぼシングルディスクのように動作します。データを読み込む場合、性能はミラーディスクの数に比例します。
一般的な状況は、4 つのディスクを持つことです。それを 2 つのミラー vdev (RAID10) としてセットアップすると、プールは IOPS と帯域幅に関して 2 つの単一ディスクとして書き込み特性を持ちます。読み取り操作では、4 つの単一ディスクのようになります。
どの冗長レベルのRAIDZでも、IOPSに関してはシングルディスクのように動作し、帯域幅は多くなります。どの程度の帯域幅になるかは、RAIDZ vdevのサイズと冗長レベルに依存します。
dRAIDプールは同等のRAIDZプールのパフォーマンスと同等であるべきです。
実行中のVMでは、ほとんどの状況でIOPSがより重要な指標となります。
サイズ、スペース使用量、冗長性
ミラーvdev で構成されるプールは最高のパフォーマンス特性を持ちますが、使用可能なスペースは使用可能なディスクの 50% になります。3 ウェイミラーなど、ミラー vdev が 2 台以上のディスクで構成されている場合は、それ以下になります。プールが機能し続けるためには、ミラーごとに少なくとも 1 つの健全なディスクが必要です。
N 台のディスクからなるRAIDZタイプの vdev の使用可能領域はおおよそ N-P で、P は RAIDZ レベルです。RAIDZ レベルは、データを失うことなく故障できる任意のディスクの数を示します。特別なケースは、RAIDZ2 の 4 ディスクプールです。このような状況では、使用可能領域が同じになるため、通常、2 つのミラー vdev を使用した方がパフォーマンスが向上します。
RAIDZレベルを使用する際のもう1つの重要な要素は、VMディスクに使用されるZVOLデータセットの動作です。各データ・ブロックに対して、プールは、プールのashift値で定義された最小ブロック・サイズ以上のパリティ・データを必要とします。ashift が 12 の場合、プールのブロックサイズは 4k です。 ZVOLのデフォルトのブロックサイズは8kです。したがって、RAIDZ2では、8kのブロックが書き込まれるごとに4kのパリティ・ブロックが2つ追加され、8k + 4k + 4k = 16kとなります。 もちろん、これは単純化したアプローチであり、メタデータや圧縮などはこの例では考慮されていないため、実際の状況は若干異なります。
この動作は、ZVOLの以下のプロパティをチェックすると確認できます:
-
ヴォルサイズ
-
リザベーション(プールがシンプロビジョニングされていない場合)
-
使用されます(プールがシン・プロビジョニングされ、スナップショットが存在しない場合)。
# zfs get volsize,refreservation,used <pool>/vm-<vmid>-disk-X
volsizeは、VM に表示されるディスクのサイズであり、refreshervationは、パリティ・データに必要な予期されるスペースを含むプールの予約スペースを示します。プールがシン・プロビジョニングされている場合、refreshervationは 0 に設定されます。動作を観察する別の方法は、VM 内の使用済みディスク領域と使用済みプロパティを比較することです。スナップショットによって値が歪むことに注意してください。
スペースの増加に対抗するために、いくつかの選択肢があります:
-
データ/パリティ比を改善するためにvolblocksizeを大きくします。
-
RAIDZの代わりにミラーvdevを使用
-
ashift=9を使用(ブロックサイズは512バイト)
volblocksizeプロパティは、ZVOLの作成時にのみ設定できます。デフォルト値はストレージ設定で変更できます。これを行う場合、ゲストはそれに応じて調整する必要があり、ユースケースによっては、書き込み増幅の問題が ZFS レイヤーからゲストに移動するだけです。
プールの作成時にashift=9 を使用すると、下のディスクによってはパフォーマンスが低下することがあり、後で変更することはできません。
ミラーVdev (RAID1、RAID10)はVMワークロードに有利な動作をします。RAIDZのパフォーマンス特性が許容できるような特殊なニーズや特性を持つ環境でない限り、これらを使用してください。
3.9.4.ZFS dRAID
ZFS dRAID (declustered RAID)では、ホットスペアドライブがRAIDに参加します。 スペア容量は予約され、1台のドライブが故障したときの再構築に使用されます。 これにより、構成によっては、ドライブ故障時の再構築がRAIDZよりも高速になります。詳細については、OpenZFSの公式ドキュメントを参照してください。
[OpenZFS dRAIDhttps://openzfs.github.io/openzfs-docs/Basic%20Concepts/dRAID%20Howto.html] を参照してください。
|
|
dRAID は 10-15 台以上のディスクを想定しています。RAIDZ セットアップの方が、ほとんどのユースケースにおいて、より少量のディスクに適しています。 |
|
|
GUI は最小値より 1 台多いディスクを必要とします(つまり dRAID1 は 3 台必要)。スペアディスクも追加されることを期待します。 |
-
dRAID1またはdRAID: 少なくとも2台のディスクが必要。
-
dRAID2: 少なくとも3台のディスクが必要。
-
dRAID3: 少なくとも4台のディスクが必要で、データが失われる前に3台が故障する可能性があります。
その他の情報はマニュアルのページをご覧ください:
# man zpoolconcepts
3.9.5.ブートローダー
Proxmox VE はproxmox-boot-tool を使用してブートローダの設定を管理します。 詳細はProxmox VE ホスト・ブートローダの章を参照してください。
3.9.6.ZFS管理
このセクションでは、一般的なタスクの使用例を紹介します。ZFS自体は本当に強力で、多くのオプションを提供しています。ZFSを管理する主なコマンドはzfsと zpoolです。どちらのコマンドにも素晴らしいマニュアルページが付属しています:
# man zpool # man zfs
新しいzpoolの作成
新しいプールを作成するには、少なくとも1つのディスクが必要です。ashiftは、基礎となるディスクと同じセクタサイズ (ashift の 2 乗) 以上でなければなりません。
# zpool create -f -o ashift=12 <pool> <device>.
|
|
プール名は以下の規則に従わなければなりません:
|
圧縮を有効にするには(「ZFSの圧縮」セクションを参照):
# zfs set compression=lz4 <pool>.
RAID-10で新しいプールを作成します。
最低4ディスク
# zpool create -f -o ashift=12 <プール> ミラー <デバイス1> <デバイス2> ミラー <デバイス3> <デバイス4
RAIDZ-2で新しいプールを作成します。
最低4ディスク
# zpool create -f -o ashift=12 <プール> raidz2 <デバイス1> <デバイス2> <デバイス3> <デバイス4
特にRAID-Zモードを使用したい場合は、プールをセットアップする前に、IOPSと帯域幅の期待値の概算を知るために、ZFS RAIDレベルの考慮事項のセクションをお読みください。
キャッシュ(L2ARC)で新しいプールを作成
第2レベルキャッシュとして専用デバイスまたはパーティションを使用することで、パフォーマンスを向上させることができます。このようなキャッシュ・デバイスは、ほとんどが静的なデータのランダム・リード・ワークロードに特に役立ちます。キャッシュ・デバイスは、実際のストレージとインメモリARCの間の追加キャッシュ層として機能するため、メモリ制約のためにARCを削減しなければならない場合にも役立ちます。
# zpool create -f -o ashift=12 <pool> <device> cache <cache-device>.
ここでは、単一の<device>と単一の<cache-device>のみが使用されていますが、RAIDを使用した新しいプールの作成で示されているように、より多くのデバイスを使用することも可能です。
キャッシュ・デバイスにはミラーやレイド・モディが存在せず、それらはすべて単純に累積されることに注意してください。
キャッシュ・デバイスが読み取り時にエラーを発生させた場合、ZFSは透過的にそのリクエストを基礎となるストレージ層に迂回させます。
ログ(ZIL)で新しいプールを作成
ZFS Intent Log (ZIL) 専用ドライブまたはパーティションを使用することも可能です。ZIL は主に安全な同期トランザクションを提供するために使用され、データベースなどのパフォーマンスが重要なパスや、fsync操作を頻繁に発行するその他のプログラムでよく使用されます。
プールはデフォルトのZILロケーションとして使用され、ZIL IO負荷を別のデバイスに振り向けることで、トランザクションの待ち時間を短縮すると同時にメイン・プールを解放し、全体的なパフォーマンスを向上させることができます。
ディスクを直接、またはパーティションを通してログ・デバイスとして使用する場合は、次のことをお勧めします:
-
停電保護機能付きの高速SSDを使用すると、コミット・レイテンシが非常に小さくなります。
-
パーティション(またはデバイス全体)には少なくとも数GBを使用しますが、インストールされているメモリの半分以上を使用しても、実際の利点は得られません。
# zpool create -f -o ashift=12 <pool> <device> log <log-device>.
上記の例では、単一の<device>と単一の<log-device>が使用されていますが、RAIDを使用して新しいプールを作成するセクションで説明されているように、これを他のRAIDバリエーションと組み合わせることもできます。
また、ログデバイスを複数のデバイスにミラーリングすることもできます。これは主に、1つのログデバイスに障害が発生した場合に、パフォーマンスが直ちに低下しないようにするために便利です。
すべてのログデバイスが故障した場合、ログデバイスが交換されるまで、ZFSメインプール自体が再び使用されます。
既存のプールにキャッシュとログを追加
キャッシュとログがないプールがあっても、いつでもその両方、または片方だけを追加することができます。
たとえば、プールの全体的なパフォーマンスを向上させるために、電源損失保護機能を備えた優れたエンタープライズSSDを入手したとします。
ログデバイスの最大サイズは、インストールされている物理メモリの約半分である必要があるため、ZILはSSDの比較的小さな部分しか占有しない可能性が高く、残りの領域はキャッシュとして使用できます。
まず、partedまたはgdiskを使ってSSDにGPTパーティションを2つ作成します。
プールに入れる準備ができました:
# zpool add -f <pool> log <device-part1> cache <device-part2>.
<pool >、<device-part1 >、<device-part2>をプール名とパーティションへの2つの/dev/disk/by-id/パスに置き換えるだけです。
ZILとキャッシュを別々に追加することもできます。
# zpool add <pool> log <log-device>.
故障したデバイスの変更
# zpool replace -f <pool> <old-device> <new-device>.
Proxmox VEがどのようにインストールされたかによって、systemd-bootまたはproxmox-boot-tool
[Proxmox VE 6.4以降でインストールされたシステム、Proxmox VE 5.4以降でインストールされたEFIシステム]
またはプレーンなGRUBがブートローダとして使用されています(ホストブートローダを参照)。を実行して確認できます:
# proxmox-boot-tool status
パーティションテーブルのコピー、GUID の再発行、ZFS パーティションの交換という最初のステップは同じです。新しいディスクからシステムを起動可能にするには、使用するブートローダによって異なる手順が必要です。
# sgdisk <健康なブータブルデバイス> -R <新しいデバイス> # sgdisk -G <新しいデバイス> # zpool replace -f <pool> <古いzfsパーティション> <新しいzfsパーティション
|
|
zpool status -vコマンドを使用して、新しいディスクの resilvering プロセスがどの程度進んでいるかを監視します。 |
# proxmox-boot-tool format <新しいディスクのESP> # proxmox-boot-tool init <新しいディスクのESP> [grub]
|
|
ESPはEFIシステムパーティションの略で、バージョン5.4以降のProxmox VEインストーラを使用する場合、ブータブルディスクのパーティション#2として設定されます。詳細については、同期されたESPとして使用するための新しいパーティションの設定を参照してください。 |
|
|
proxmox-boot-tool のステータスが現在のディスクが GRUB を使っていることを示している場合、特にセキュアブートが有効になっている場合は、proxmox-boot-tool initにモードとしてgrub を渡すようにしてください! |
# grub-install <新しいディスク
|
|
プレーン GRUB は Proxmox VE 6.3 以前でインストールされ、proxmox-boot-tool を使用するように手動で移行されていないシステムでのみ使用されます。 |
3.9.7.電子メール通知の設定
ZFSには、ZFSカーネルモジュールによって生成されたイベントを監視するイベントデーモンZEDが付属しています。新しいZFSパッケージでは、このデーモンは別のzfs-zedパッケージとして出荷されており、Proxmox VEではデフォルトでインストールされているはずです。
デーモンの設定は、/etc/zfs/zed.d/zed.rcファイルからお好みのエディタで行えます。電子メール通知に必要な設定はZED_EMAIL_ADDRで、デフォルトではrootに設定されています。
ZED_EMAIL_ADDR="root"
Proxmox VEはroot宛のメールをrootユーザに設定されたメールアドレスに転送しますのでご注意ください。
3.9.8.ZFS メモリ使用量の制限
ZFSは、デフォルトでホストメモリの50 %を Adaptive ReplacementCache(ARC)に使用します。Proxmox VE 8.1からの新規インストールでは、ARCの使用制限はインストールされた物理メモリの10%に設定され、最大16GiBにクランプされます。この値は/etc/modprobe.d/zfs.confに書き込まれます。
ARCに十分なメモリを割り当てることは、IOパフォーマンスにとって非常に重要なので、注意して減らしてください。一般的な経験則として、少なくとも2GiB Base + 1GiB/TiB-Storageを割り当てます。たとえば、利用可能なストレージ容量が8TiBのプールがある場合、ARCには10GiBのメモリを使用する必要があります。
また、ZFSは最小値64MBを強制します。
zfs_arc_maxモジュール・パラメータに直接書き込むことで、現在のブートのARC使用制限を変更できます(再起動すると、この変更は再びリセットされます):
echo "$[10 * 1024*1024*1024]" >/sys/module/zfs/parameters/zfs_arc_max
ARC制限を恒久的に変更するには、/etc/modprobe.d/zfs.confに以下の行を追加します(すでにある場合は変更します):
オプション zfs zfs_arc_max=8589934592
この設定例では、使用量を8GiB(8 *230)に制限しています。
|
|
希望するzfs_arc_max値がzfs_arc_min(デフォルトはシステム・メモリの1/32)以下である場合、zfs_arc_minも最大でzfs_arc_max - 1に設定しない限り、zfs_arc_maxは無視されます。 |
echo "$[8 * 1024*1024*1024 - 1]" >/sys/module/zfs/parameters/zfs_arc_min echo "$[8 * 1024*1024*1024]" >/sys/module/zfs/parameters/zfs_arc_max
この設定例では(一時的に)、総メモリ量が256GiBを超えるシステムでの使用量を8GiB(8 *230)に制限しています。
|
|
ルートファイルシステムがZFSの場合、この値が変更されるたびにinitramfsを更新する必要があります: # update-initramfs -u -k all これらの変更を有効にするには、再起動する必要があります。 |
3.9.9.ZFSのSWAP
zvol上に作成されたスワップスペースは、サーバーをブロックしたり、外部ストレージへのバックアップを開始するときによく見られる高いIO負荷を発生させるなど、いくつかの問題を発生させる可能性があります。
メモリ不足に陥らないよう、十分なメモリを使用することを強くお勧めします。スワップを追加したい場合は、物理ディスク上にパーティションを作成し、スワップデバイ スとして使用するのが望ましいでしょう。 インストーラの詳細オプションで、この目的のために空き領域を残すことができます。さらに、"swappiness" 値を下げることもできます。サーバに適した値は 10 です:
# sysctl -w vm.swappiness=10
スワップを永続的にするには、/etc/sysctl.confをお好みのエディターで開き、以下の行を追加します:
vm.swappiness = 10
| 価値 | 戦略 |
|---|---|
vm.swappiness = 0 |
カーネルがスワップを行うのは、メモリ不足の状態を回避するためだけです。 |
vm.swappiness = 1 |
スワッピングを完全に無効にすることなく、最小限のスワッピング。 |
vm.swappiness = 10 |
この値は、システムに十分なメモリがある場合に、パフォーマンスを向上させるために推奨されることがあります。 |
vm.swappiness = 60 |
デフォルト値。 |
vm.swappiness = 100 |
カーネルは積極的にスワップを行います。 |
3.9.10.暗号化されたZFSデータセット
|
|
Proxmox VEのネイティブZFS暗号化は実験的なものです。既知の制限と問題には、暗号化されたデータセットでのレプリケーション [https://bugzilla.proxmox.com/show_bug.cgi?id=2350] 、スナップショットやZVOL使用時のチェックサムエラーがあります。 [https://github.com/openzfs/zfs/issues/11688] |
ZFS on Linux バージョン 0.8.0 では、データセットのネイティブ暗号化がサポートされました。以前の ZFS on Linux バージョンからアップグレードすると、プールごとに暗号化機能を有効にできます:
# zpool get feature@encryption tank NAME PROPERTY VALUE SOURCE tank feature@encryption disabled local # zpool set feature@encryption=enabled # zpool get feature@encryption tank NAME PROPERTY VALUE SOURCE tank feature@encryption enabled local
|
|
暗号化されたデータセットを持つプールから GRUB を使ってブートすることは現在サポートされていません。暗号化をサポートしていない古いバージョンの ZFS では、保存されたデータを復号化することはできません。 |
|
|
起動後に手動でストレージデータセットのロックを解除するか、起動時のロック解除に必要なキー素材をzfs load-keyに渡すカスタムユニットを作成することをお勧めします。 |
|
|
本番データの暗号化を有効にする前に、バックアップ手順を確立し、テストしてください。関連するキーマテリアル/パスフレーズ/キーファイルを紛失した場合、暗号化されたデータへのアクセスは不可能になります。 |
暗号化はデータセット/zvols の作成時に設定する必要があり、デフォルトで子データセットに継承されます。例えば、暗号化データセットtank/encrypted_dataを作成し、Proxmox VEのストレージとして設定するには、以下のコマンドを実行します:
# zfs create -o encryption=on -o keyformat=passphrase tank/encrypted_data パスフレーズの入力: パスフレーズの再入力: # pvesm add zfspool encrypted_zfs -pool tank/encrypted_data
このストレージ上に作成されたすべてのゲストボリューム/ディスクは、親データセットの共有鍵マテリアルで暗号化されます。
ストレージを実際に使用するには、関連するキーマテリアルをロードし、データセットをマウントする必要があります。これは
# zfs mount -l tank/encrypted_data 'tank/encrypted_data'のパスフレーズを入力してください:
また、作成時または既存のデータセットでzfs change-keyを使用して、keylocationと keyformatプロパティを設定することで、パスフレーズのプロンプトの代わりに(ランダムな)キーファイルを使用することも可能です:
# dd if=/dev/urandom of=/path/to/keyfile bs=32 count=1 # zfs change-key -o keyformat=raw -o keylocation=file:///path/to/keyfile tank/encrypted_data
|
|
キーファイルを使用する場合は、不正アクセスや偶発的な紛失からキーファイルを保護するために特別な注意が必要です。キーファイルがなければ、平文データにアクセスすることはできません! |
暗号化データセットの下に作成されたゲストボリュームは、それに応じてencryptionrootプロパティが設定されます。鍵マテリアルは、encryptionrootごとに1回だけロードする必要があり、その下にあるすべての暗号化データセットで使用できるようになります。
詳細と高度な使用法については、encryptionroot、encryption、keylocation、keyformat、keystatusプロパティ、zfs load-key、zfs unload-key、zfs change-keyコマンド、およびman zfsの 暗号化セクションを参照してください。
3.9.11.ZFSにおける圧縮
データセットで圧縮を有効にすると、ZFSは新しいブロックをすべて圧縮してから書き込み、読み込み時に解凍しようとします。既に存在するデータは遡って圧縮されません。
で圧縮を有効にできます:
# zfs set compression=<algorithm> <dataset>.
lz4アルゴリズムを使用することをお勧めします。lzjbやgzip-N(Nは1(最速) から9(最高の圧縮率) までの整数) のような他のアルゴリズムも利用可能です。アルゴリズムと圧縮可能なデータによっては、圧縮を有効にすることでI/O性能が向上することもあります。
でいつでも圧縮を無効にできます:
# zfs set compression=off <データセット
繰り返しますが、この変更の影響を受けるのは新しいブロックだけです。
3.9.12.ZFS 特殊デバイス
バージョン0.8.0以降、ZFSは特殊デバイスをサポートしています。プール内の特別なデバイスは、メタデータ、重複排除テーブル、およびオプションで小さなファイルブロックを格納するために使用されます。
特別なデバイスは、メタデータの変更が多い低速回転のハードディスクで構成されるプールの速度を向上させることができます。例えば、大量のファイルを作成、更新、または削除するようなワークロードでは、特別なデバイスがあると便利です。ZFSデータセットは、特別なデバイスに小さなファイル全体を保存するように設定することもでき、パフォーマンスをさらに向上させることができます。特殊デバイスには高速SSDを使用してください。
|
|
特殊デバイスはプール全体の障害点となるため、特殊デバイスの冗長性はプールの冗長性と一致させる必要があります。 |
|
|
プールに特別なデバイスを追加すると、元に戻すことはできません! |
# zpool create -f -o ashift=12 <pool> mirror <device1> <device2> special mirror <device3> <device4
# zpool add <pool> special mirror <device1> <device2>.
ZFSデータセットでは、special_small_blocks=<size>プロパティを公開しています。sizeには、小さなファイル・ブロックを特殊デバイスに保存しないようにする0、または512Bから 1Mの範囲の2のべき乗を指定します。このプロパティを設定すると、sizeよりも小さなファイル・ブロックが特別なデバイスに割り当てられます。
|
|
special_small_blocksの値がデータセットのレコードサイズ(デフォルト128K)以上である場合、すべてのデータが特別なデバイスに書き込まれるので注意が必要です! |
プールでspecial_small_blocksプロパティを設定すると、すべての子ZFSデータセットでそのプロパティのデフォルト値が変更されます(たとえば、プール内のすべてのコンテナは小さなファイルブロックを選択します)。
# zfs set special_small_blocks=4K <pool>.
# zfs set special_small_blocks=4K <pool>/<filesystem>.
# zfs set special_small_blocks=0 <pool>/<filesystem>.
3.9.13.ZFSプールの機能
ZFSのオンディスクフォーマットへの変更は、メジャーバージョン変更の間でのみ行われ、featuresを通して指定されます。すべての機能と一般的なメカニズムは、zpool-features(5)man ページで十分に文書化されています。
新しい機能を有効にすると、古いバージョンの ZFS ではプールがインポートできなくなる可能性があるため、これは、管理者がプール上でzpool upgrade を実行して、積極的に行う必要があります (zpool-upgrade(8)man ページを参照)。
新機能を使う必要がない限り、これらを有効にしても何のメリットもありません。
実際、新しい機能を有効にすることにはデメリットもあります:
-
GRUBでZFSの互換性のない実装のため、GRUBを使用してブートしているZFS上のrootを持つシステムは、rpoolで新しい機能がアクティブになるとブートできなくなります。
-
古い ZFS モジュールが同梱されている古いカーネルで起動すると、システムはアップグレードされたプールをインポートできません。
-
起動しないシステムを修復するために古いProxmox VE ISOを起動しても同様に動作しません。
|
|
システムがまだ GRUB で起動している場合は、rpool をアップグレードしないでください。これには Proxmox VE 5.4 より前にインストールされたシステムや、レガシー BIOS ブートで起動するシステムも含まれます (ブートローダの判別方法を参照)。 |
# zpool upgrade <pool>
3.10.BTRFS
|
|
BTRFS の統合は現在 Proxmox VE のテクノロジープレビューです。 |
BTRFSは、Linuxカーネルがネイティブにサポートする最新のコピーオンライトファイルシステムで、スナップショット、ビルトインRAID、データとメタデータのチェックサムによるセルフヒーリングなどの機能を実装しています。Proxmox VE 7.0から、BTRFSはルートファイルシステムのオプション選択として導入されました。
-
メインシステムのセットアップは、従来のext4ベースのセットアップとほぼ同じです。
-
スナップ写真
-
ファイルシステムレベルでのデータ圧縮
-
コピーオンライトクローン
-
RAID0、RAID1、RAID10
-
データ破損からの保護
-
セルフヒーリング
-
Linuxカーネルがネイティブにサポート
-
RAIDレベル5/6は実験的で危険です。
3.10.1.ルートファイルシステムとしてのインストール
Proxmox VEインストーラを使用してインストールする場合、ルートファイルシステムにBTRFSを選択できます。インストール時にRAIDタイプを選択する必要があります:
|
RAID0 |
ストライピング」とも呼ばれます。このようなボリュームの容量は、すべてのディスクの容量の合計です。しかし、RAID0 は冗長性を追加しないので、1 台のドライブが故障するとボリュームは使用できなくなります。 |
|
RAID1 |
ミラーリング」とも呼ばれます。データはすべてのディスクに同じように書き込まれます。このモードでは、同じサイズのディスクが少なくとも 2 台必要です。その結果、容量は 1 台のディスクの容量になります。 |
|
RAID10 |
RAID0 と RAID1 の組み合わせ。少なくとも 4 台のディスクが必要です。 |
インストーラは自動的にディスクをパーティション分割し、/var/lib/pve/local-btrfs に追加のサブボリュームを作成します。 これを Proxmox VE ツールで使用するために、インストーラは/etc/pve/storage.cfg に以下の構成エントリを作成します:
dir: local path /var/lib/vz content iso,vztmpl,backup disable btrfs: local-btrfs path /var/lib/pve/local-btrfs content iso,vztmpl,backup,images,rootdir
これは、デフォルトのローカル・ストレージを明示的に無効にして、追加サブボリューム上のBTRFS固有のストレージ・エントリーを優先します。
btrfsコマンドは、BTRFSファイルシステムの設定と管理に使用します。インストール後、次のコマンドで追加のサブボリュームをすべて一覧表示します:
# btrfs サブボリュームリスト / ID 256 gen 6 トップレベル 5 パス var/lib/pve/local-btrfs
3.10.2.BTRFS 管理
このセクションでは、一般的なタスクの使用例を紹介します。
BTRFS ファイルシステムの作成
BTRFSファイルシステムを作成するには、mkfs.btrfsを使用します。dパラメーターと-mパラメーターは、それぞれメタデータとデータのプロファイルを設定するために使用します。オプションの-Lパラメータを使用すると、ラベルを設定できます。
一般的に、以下のモードがサポートされています:シングル、raid0、raid1、raid10。
単一ディスク/dev/sdb上に、My-Storageラベルを付けてBTRFSファイルシステムを作成します:
# mkfs.btrfs -m single -d single -L My-Storage /dev/sdb
または、2つのパーティション/dev/sdb1と/dev/sdc1にRAID1を作成します:
# mkfs.btrfs -m raid1 -d raid1 -L My-Storage /dev/sdb1 /dev/sdc1
BTRFS ファイルシステムのマウント
新しいファイルシステムは、例えば手動でマウントすることができます:
# mkdir /my-storage # mount /dev/sdb /my-storage
BTRFS は、他のマウントポイントと同様に/etc/fstabに追加して、起動時に自動的にマウントすることもできます。ブロック・デバイス・パスの使用は避け、mkfs.btrfsコマンドが出力するUUID値を使用することをお勧めします。
例えば
# UUID=e2c0c3ff-2114-4f54-b767-3a203e49f6f3 /my-storage btrfs defaults 0 0
|
|
UUIDが利用できなくなった場合は、blkidツールを使ってブロックデバイスのすべてのプロパティをリストアップできます。 |
その後、最初のマウントを実行することができます:
マウント /my-storage
次回のリブート後は、ブート時にシステムによって自動的に実行されます。
Proxmox VEへの BTRFS ファイルシステムの追加
既存のBTRFSファイルシステムをProxmox VEに追加するには、WebインターフェイスやCLIなどを使用します:
pvesm add btrfs my-storage --path /my-storage
サブボリュームの作成
サブボリュームを作成すると、BTRFSファイルシステム内のパスにリンクされ、通常のディレクトリとして表示されます。
# btrfs サブボリューム作成 /some/path
その後、/some/pathは通常のディレクトリのように動作します。
サブボリュームの削除
rmdir で削除されるディレクトリとは逆に、サブボリュームはbtrfsコマンドで削除するために空である必要はありません。
# btrfs サブボリューム削除 /some/path
サブボリュームのスナップショットの作成
BTRFSはスナップショットと通常のサブボリュームを実際には区別しないため、スナップショットの作成はサブボリュームの任意のコピーの作成と見なすこともできます。 慣例により、Proxmox VEはゲストディスクまたはサブボリュームのスナップショットを作成するときに読み取り専用フラグを使用しますが、このフラグは後で変更することもできます。
# btrfs subvolume snapshot -r /some/path /a/new/path
これにより、/some/path上のサブボリュームの読み取り専用の「クローン」が/a/new/path に作成されます。今後/some/pathを変更すると、変更前のデータがコピーされます。
読み取り専用(-r)オプションを省略すると、両方のサブボリュームが書き込み可能になります。
圧縮の有効化
デフォルトでは、BTRFSはデータを圧縮しません。圧縮を有効にするには、compressmount オプションを追加します。すでに書き込まれたデータは後から圧縮されないことに注意してください。
デフォルトでは、rootfsは/etc/fstabに以下のようにリストされます:
UUID=<ルートファイルシステムのUUID> / btrfsのデフォルト 0 1
compress=zstd、compress=lzo、またはcompress=zlibを上記のデフォルトに追加するだけです:
UUID=<ルートファイルシステムのUUID> / btrfs defaults,compress=zstd 0 1
この変更は再起動後に有効になります。
3.11.Proxmox ノード管理
Proxmox VEノード管理ツール(pvenode)を使用すると、ノード固有の設定やリソースを制御できます。
現在pvenodeでは、ノードの説明を設定したり、ノードのゲストに対して様々な一括操作を実行したり、ノードのタスク履歴を表示したり、ノードの SSL 証明書を管理したりすることができます。
3.11.1.ウェイクオンLAN
Wake-on-LAN (WoL) は、マジックパケットを送信することで、ネットワーク内でスリープしているコンピュータの電源を入れることができます。少なくとも1つのNICがこの機能をサポートし、コンピュータのファームウェア(BIOS/UEFI)設定でそれぞれのオプションを有効にする必要があります。オプションの名前はEnable Wake-on-LanからPower On By PCIE Device まで様々です:
ettool <interface> | grep Wake-on
pvenodeを使用すると、WoL経由でクラスタのスリープ・メンバーをスリープ解除できます:
pvenode wakeonlan <ノード>。
これは、wakeonlanプロパティから取得した<node>の MAC アドレスを含む WoL magic パケットを UDP ポート 9 にブロードキャストします。ノード固有のwakeonlanプロパティは、以下のコマンドで設定できます:
pvenode config set -wakeonlan XX:XX:XX:XX:XX:XX
WoLパケットを送信するインターフェースは、デフォルト・ルートから決定されます。以下のコマンドでbind-interfaceを設定することで上書きできます:
pvenode config set -wakeonlan XX:XX:XX:XX:XX:XX,bind-interface=<iface-name>を設定します。
WoLパケットを送信する際に使用されるブロードキャストアドレス(デフォルトは255.255.255.255)は、以下のコマンドを使用してブロードキャストアドレスを明示的に設定することでさらに変更できます:
pvenode config set -wakeonlan XX:XX:XX:XX:XX,broadcast-address=<broadcast-address>.
3.11.2.タスク履歴
バックアップジョブの失敗など、サーバーの問題をトラブルシューティングする場合、以前に実行したタスクのログがあると役立つことがよくあります。Proxmox VEでは、pvenode taskコマンドでノードのタスク履歴にアクセスできます。
listサブコマンドを使用すると、ノードの終了したタスクのフィルタリングされたリストを取得できます。例えば、エラーで終了したVM100に関連するタスクのリストを取得するには、次のようにコマンドを実行します:
pvenode タスクリスト --エラー --vmid 100
タスクのログは、そのUPIDを使って印刷できます:
pvenode task log UPID:pve1:00010D94:001CA6EA:6124E1B9:vzdump:100:root@pam:
3.11.3.一括ゲスト電源管理
多数のVM/コンテナがある場合、ゲストの起動と停止はpvenodeの startallと stopallサブコマンドで一括操作できます。 デフォルトでは、pvenode startallはブート時に自動的に起動するように設定されたVM/コンテナのみを起動します(仮想マシンの自動起動とシャットダウン参照)。両コマンドには--vmsオプションもあり、停止/起動されるゲストを指定されたVMIDに制限します。
例えば、VM100、101、102を起動するには、オンブートセットの有無に関係なく、次のようにします:
pvenode startall --vms 100,101,102 --force
これらのゲスト(および実行中の他のゲスト)を停止するには、コマンドを使用します:
プベノードストップオール
|
|
stopallコマンドはまずクリーンシャットダウンを試み、すべてのゲストが正常にシャットダウンされるか、オーバーライド可能なタイムアウト(デフォルトでは3分)が切れるまで待機します。これが発生し、force-stopパラメーターが明示的に0(false)に設定されないと、まだ実行中のすべての仮想ゲストがハード停止されます。 |
3.11.4.ファーストゲストブートディレイ
VM/コンテナがNFSサーバなどの起動の遅い外部リソースに依存している場合、Proxmox VEが起動してから、自動起動に設定されている最初のVM/コンテナが起動するまでの遅延をノードごとに設定することもできます(仮想マシンの自動起動とシャットダウンを参照)。
以下のように設定することで実現できます(ここで10は秒単位の遅延を表します):
pvenode config set --startall-onboot-delay 10
3.11.5.一括ゲスト移行
アップグレードの状況で、すべてのゲストをあるノードから別のノードに移行する必要がある場合、pvenodeには一括移行用のmigrateallサブコマンドも用意されています。デフォルトでは、このコマンドはシステム上のすべてのゲストをターゲットノードに移行します。しかし、ゲストのセットだけを移行するように設定することもできます。
例えば、ローカル・ディスクのライブ・マイグレーションを有効にして、VM100、101、102をノードpve2に移行するには、次のように実行します:
pvenode migrateall pve2 --vms 100,101,102 --ローカルディスクあり
3.12.証明書管理
3.12.1.クラスタ内通信用証明書
各Proxmox VEクラスタはデフォルトで独自の(自己署名の)認証局(CA)を作成し、前述のCAによって署名される各ノードの証明書を生成します。これらの証明書はクラスタのpveproxyサービスおよびSPICEが使用されている場合のシェル/コンソール機能との暗号化通信に使用されます。
CA証明書と鍵はProxmox Cluster File System (pmxcfs)に保存されます。
3.12.2.API および Web GUI 用の証明書
REST APIとWeb GUIは、各ノードで実行されるpveproxyサービスによって提供されます。
pveproxy が使用する証明書には、以下のオプションがあります:
-
既定では、/etc/pve/nodes/NODENAME/pve-ssl.pemにあるノード固有の証明書が使用されます。この証明書はクラスタ CA によって署名されているため、ブラウザおよびオペレーティング システムからは自動的に信頼されません。
-
外部から提供された証明書(商用CAによって署名されたものなど)を使用します。
-
ACME(Let'sEncrypt)を使用して、自動更新付きの信頼できる証明書を取得してください。
オプシ ョ ン 2 と 3 では/etc/pve/local/pveproxy-ssl.pem(お よ び/etc/pve/local/pveproxy-ssl.key はパ ス ワー ド な し で) を用います。
|
|
etc/pve/localは/etc/pve/nodes/NODENAME へのノード固有のシンボリックリンクであることに注意してください。 |
証明書は Proxmox VE Node 管理コマンドで管理します(pvenode(1)man ページを参照)。
|
|
etc/pve/local/pve-ssl.pemおよび/etc/pve/local/pve-ssl.keyにある自動生成ノード証明書ファイル、または/etc/pve/pve-root-ca.pemおよび/etc/pve/priv/pve-root-ca.key にあるクラスタ CA ファイルを置き換えたり、手動で変更したりしないでください。 |
3.12.4.Let's Encrypt (ACME) による信頼できる証明書
Proxmox VEには、自動 証明書管理 環境 ACMEプロトコルの実装が含まれており、Proxmox VEの管理者は、Let's EncryptのようなACMEプロバイダを使用して、最新のオペレーティングシステムやWebブラウザで受け入れられ、信頼されるTLS証明書を簡単にセットアップすることができます。
現在、実装されている ACME エンドポイントは、Let's Encrypt (LE) の本番環境とそのステージング環境の 2 つです。私たちのACMEクライアントは、組み込みのWebサーバーを使用したhttp-01チャレンジの検証と、acme.shが行うすべてのDNS APIエンドポイントをサポートするDNSプラグインを使用したdns-01チャレンジの検証をサポートしています。
ACME アカウント
クラスタごとに、使用するエンドポイントに ACME アカウントを登録する必要があります。そのアカウントに使用される電子メールアドレスは、ACMEエンドポイントからの更新期限切れまたは同様の通知の連絡先として機能します。
ACME アカウントの登録と停止は、Web インターフェースDatacenter -> ACMEまたはpvenodeコマンドラインツールを使用して行うことができます。
pvenode acme アカウント登録 アカウント名 mail@example.com
|
|
レート制限のため、実験やACMEを初めて使用する場合はLEステージングを使用する必要があります。 |
ACME プラグイン
ACMEプラグインのタスクは、あなた、ひいてはあなたの運用下にあるProxmox VEクラスタがドメインの真の所有者であることを自動的に検証することです。これは、自動証明書管理の基礎となるビルディングブロックです。
たとえば、http-01では、ウェブサーバーがドメインを管理していることを証明するために、特定の内容のファイルを提供します。技術的な制限や、レコードのアドレスが公共のインターネットから到達できない場合など、これが不可能なこともあります。dns-01チャレンジは、このような場合に使用できます。 このチャレンジは、ドメインのゾーンに特定のDNSレコードを作成することで実行されます。
Proxmox VEは、これらのチャレンジタイプの両方をサポートしており、WebインターフェイスのDatacenter -> ACMEでプラグインを設定するか、pvenode acme plugin addコマンドを使用してプラグインを設定できます。
ACMEプラグインの設定は/etc/pve/priv/acme/plugins.cfgに保存されます。 プラグインはクラスタ内のすべてのノードで使用できます。
ノードドメイン
各ドメインはノード固有です。新しいドメインエントリを追加したり、既存のドメインエントリを管理したりするには、ノード -> 証明書、またはpvenode configコマンドを使用します。
ノードの希望するドメインを設定し、希望する ACME アカウントが選択されていることを確認した後、Web インターフェースで新しい証明書を注文できます。成功すると、インターフェイスは10秒後にリロードされます。
更新は自動的に行われます。
3.12.5.ACME HTTP チャレンジプラグイン
ポート80で生成された組み込みのウェブサーバを経由してhttp-01チャレンジを検証するために、常に暗黙的に設定されたスタンドアロンプラグインがあります。
|
|
スタンドアロンという名前は、サードパーティのサービスを使わずに、このプラグインだけで検証を行うことができるという意味です。そのため、このプラグインはクラスタノードでも動作します。 |
Let's Encrypts ACMEでの証明書管理に使用するには、いくつかの前提条件があります。
-
アカウントを登録するには、Let's EncryptのToSに同意する必要があります。
-
ノードのポート80はインターネットから到達可能である必要があります。
-
ポート80には他のリスナーがいてはいけません。
-
要求された(サブ)ドメインはノードのパブリックIPに解決する必要があります。
3.12.6.ACME DNS API チャレンジプラグイン
http-01メソッドによる検証のための外部アクセスが不可能または望ましいシステム上では、dns-01検証メソッドを使用することが可能です。 この検証メソッドは、APIを介してTXTレコードのプロビジョニングを可能にするDNSサーバーを必要とします。
検証用ACME DNS APIの設定
Proxmox VEは、acme.sh
[acme.shhttps://github.com/acmesh-official/acme.sh]
プロジェクトのために開発されたDNSプラグインを再利用します。特定のAPIの設定の詳細については、そのドキュメントを参照してください。
DNS APIを使用して新しいプラグインを設定する最も簡単な方法は、Webインターフェース(Datacenter -> ACME)を使用することです。
|
|
プロバイダのAPI認証情報の取得に関する詳細情報については、acme.shHow to use DNS APIwikiを参照してください。 |
多くのDNSプロバイダとAPIエンドポイントがあるため、Proxmox VEはいくつかのプロバイダの認証情報用のフォームを自動的に生成します。その他のプロバイダについては、大きなテキストエリアが表示されますので、そこにすべての認証情報のKEY= VALUEペアをコピーしてください。
CNAMEエイリアスによるDNS検証
プライマリ/リアルDNSがAPI経由のプロビジョニングをサポートしていない場合、特別なエイリアスモードを使用して、別のドメイン/DNSサーバで検証を処理できます。手動で_acme-challenge.domain 2.exampleを指す_acme-challenge.domain1.exampleの永続的なCNAMEレコードを設定し、Proxmox VEノード構成ファイルの対応するacmedomainXキーのエイリアスのプロパティをdomain2.exampleに設定して、domain2.exampleのDNSサーバーがdomain1.exampleのすべてのチャレンジを検証できるようにします。
3.12.7.ACME 証明書の自動更新
ノードが ACME 提供の証明書で正しく設定されている場合(pvenode 経由または GUI 経由)、証明書はpve-daily-update.service によって自動的に更新されます。現在、証明書の有効期限が既に切れている場合、または今後30日以内に期限が切れる場合に更新が試みられます。
|
|
短命の証明書を発行するカスタム・ディレクトリを使用している場合は、再起動後に証明書の更新が行われないように、pve-daily-update.timerユニットのランダム遅延を無効にすることをお勧めします。 |
3.12.8.pvenode を使用した ACME の例
例Let's Encrypt 証明書を使用するためのpvenode呼び出しのサンプル
root@proxmox:~# pvenode acme account register default mail@example.invalid Directory endpoints: 0) Let's Encrypt V2 (https://acme-v02.api.letsencrypt.org/directory) 1) Let's Encrypt V2 Staging (https://acme-staging-v02.api.letsencrypt.org/directory) 2) Custom Enter selection:1 利用規約: https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf 上記の規約に同意しますか?[y|N]y ... タスク OK root@proxmox:~# pvenode config set --acme domains=example.invalid root@proxmox:~# pvenode acme cert order ACMEアカウントの詳細をロード ACME注文を行う ... ステータスは「有効」です! すべてのドメインが有効です! ... 証明書をダウンロード pveproxy証明書と鍵を設定 pveproxyを再起動 タスク OK
例ドメインを検証するための OVH API の設定
|
|
アカウント登録の手順はどのプラグインを使用しても同じですので、ここでは繰り返しません。 |
|
|
OVH_AKおよびOVH_ASは、OVH APIドキュメントに従ってOVHから取得する必要があります。 |
まず、あなたとProxmox VEがAPIにアクセスできるように、すべての情報を取得する必要があります。
root@proxmox:~# cat /path/to/api-token
OVH_AK=XXXXXXXXXXXXXXXX
OVH_AS=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
root@proxmox:~# source /path/to/api-token root@proxmox:~# curl -XPOST -H "X-Ovh-Application: $OVH_AK" -H "Content-type: application/json" \ https://eu.api.ovh.com/1.0/auth/credential -d '{ "accessRules":[ {"method":"GET", "path":"/auth/time"}, {"method":"GET", "path":"/domain"}, {"method": "GET", "path": "/auth/time"}:"GET", "path":"/domain/zone/*"}, {"method":"GET", "path":"/domain/zone/*/record"}, {"method":"POST", "path":"/domain/zone/*/record"}, {"method":"POST", "path":"/domain/zone/*/refresh"}, {"method":"PUT", "path":"/domain/zone/*/record/"}, {"method":"DELETE", "path":"/domain/zone/*/record/*"}
]
}'
{"consumerKey":"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ","state":"pendingValidation","validationUrl":"https://eu.api.ovh.com/auth/?credentialToken=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"}
(open validation URL and follow instructions to link Application Key with account/Consumer Key)
root@proxmox:~# echo "OVH_CK=ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" >> /path/to/api-token
これでACMEプラグインを設定することができます:
root@proxmox:~# pvenode acme plugin add dns example_plugin --api ovh --data /path/to/api_token root@proxmox:~# pvenode acme plugin config example_plugin ┌────────┬──────────────────────────────────────────┐ │ key │ value │ ╞════════╪══════════════════════════════════════════╡ │api │ ovh │ ├────────┼──────────────────────────────────────────┤ │data │ OVH_AK=XXXXXXXXXXXXXXXX │ │ │ OVH_AS=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY │ │ │ OVH_CK=ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ │ ├────────┼──────────────────────────────────────────┤ │ digest │ 867fcf556363ca1bea866863093fcab83edf47a1 │ ├────────┼──────────────────────────────────────────┤ │ plugin │ example_plugin │ ├────────┼──────────────────────────────────────────┤ │ type │ dns │ └────────┴──────────────────────────────────────────┘
最後に、証明書を取得したいドメインを設定し、そのドメインの証明書を注文します:
root@proxmox:~# pvenode config set -acmedomain0 example.proxmox.com,plugin=example_plugin root@proxmox:~# pvenode acme cert order Loading ACME account details Placing ACME order URL: https://acme-staging-v02.api.letsencrypt.org/acme/order/11111111/22222222 Getting authorization details from 'https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/33333333' The validation for example.proxmox.com is pending! [Wed Apr 22 09:25:30 CEST 2020] Using OVH endpoint: ovh-eu [Wed Apr 22 09:25:30 CEST 2020] Checking authentication [Wed Apr 22 09:25:30 CEST 2020] Consumer key is ok. [Wed Apr 22 09:25:31 CEST 2020] Adding record [Wed Apr 22 09:25:32 CEST 2020] Added, sleep 10 seconds. Add TXT record:[Wed Apr 22 09:25:48 CEST 2020] OVHエンドポイントの使用: ovh-eu [Wed Apr 22 09:25:48 CEST 2020] 認証の確認 [Wed Apr 22 09:25:48 CEST 2020] コンシューマーキーはOKです。 TXTレコードを削除します:_acme-challenge.example.proxmox.comすべてのドメインが認証されました! CSRの作成 注文ステータスの確認 注文の準備ができました、注文を確定します 有効です! 証明書のダウンロード pveproxy証明書とキーの設定 pveproxyタスクの再起動 OK
例ステージングから通常の ACME ディレクトリへの切り替え
アカウントのACMEディレクトリを変更することはサポートされていませんが、Proxmox VEは複数のアカウントをサポートしているため、本番(信頼済み)ACMEディレクトリをエンドポイントとして新しいアカウントを作成することができます。 また、ステージングアカウントを非アクティブにして再作成することもできます。
root@proxmox:~# pvenode acme account deactivate default アカウントファイルの名前を '/etc/pve/priv/acme/default' から '/etc/pve/priv/acme/_deactivated_default_4' に変更 タスク OK root@proxmox:~# pvenode acme account register default example@proxmox.com ディレクトリエンドポイント: 0) Let's Encrypt V2 (https://acme-v02.api.letsencrypt.org/directory) 1) Let's Encrypt V2 Staging (https://acme-staging-v02.api.letsencrypt.org/directory) 2) Custom Enter 選択:0 利用規約: https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf 上記の規約に同意しますか?[y|N]y ... タスクOK
3.13.ホスト・ブートローダ
Proxmox VEは現在、インストーラで選択されたディスクセットアップに応じて、2つのブートローダのいずれかを使用します。
ZFS をルートファイルシステムとしてインストールした EFI システムでは、Secure Boot が有効になっていない限り、systemd-boot が使用されます。それ以外の展開では、標準の GRUB ブートローダを使用します (これは通常、Debian 上にインストールされたシステムにも当てはまります)。
3.13.1.インストーラーが使用するパーティション方式
Proxmox VEのインストーラは、インストール用に選択されたすべてのディスクに3つのパーティションを作成します。
作成されたパーティションは
-
1 MBのBIOSブートパーティション(gdiskタイプEF02)
-
512 MB EFI システムパーティション (ESP、gdisk タイプ EF00)
-
設定されたhdsizeパラメータまたは選択されたストレージタイプに使用される残りのスペースにまたがる第3のパーティション
ルートファイルシステムとしてZFSを使用するシステムは、512MBのEFIシステムパーティションに保存されたカーネルとinitrdイメージで起動します。レガシー BIOS システム、およびセキュアブートが有効な EFI システムでは GRUB が使用され、セキュアブートのない EFI システムではsystemd-bootが使用されます。どちらもインストールされ、ESPを指すように設定されます。
BIOSモードのGRUB(--target i386-pc)は、GRUBで起動した全てのシステム上の選択されたディスクのBIOSブートパーティションにインストールされます
[これらは、ext4や xfs上のrootによる全てのインストールと、非EFIシステム上のZFS上のrootによるインストールです]
.
3.13.2.proxmox-boot-toolで ESP の内容を同期
proxmox-boot-toolは EFI システムパーティションの内容を適切に設定し、同期させるためのユーティリティです。特定のカーネルバージョンを全ての ESP にコピーし、vfatフォーマットの ESP からブートするようにそれぞれのブートローダを設定します。ルートファイルシステムとしての ZFS の文脈では、これは GRUB の ZFS 実装にも存在するサブセットや、個別の小さなブートプールを作成する代わりに、ルートプールですべてのオプション機能を使用できることを意味します
[Booting ZFS on root with GRUBhttps://github.com/zfsonlinux/zfs/wiki/Debian-Stretch-Root-on-ZFS]
.
冗長性のあるセットアップでは、インストーラによってすべてのディスクがESPでパーティション設定されます。これにより、最初のブートデバイスが故障したり、BIOS が特定のディスクからしかブートできない場合でも、システムが確実に起動します。
通常の操作では、ESP はマウントされたままにはなりません。これにより、システムがクラッシュした場合にvfatフォーマットされた ESP のファイルシステムが破壊されるのを防ぎ、プライマリブートデバイスが故障した場合に/etc/fstab を手動で変更する必要がなくなります。
proxmox-boot-toolは以下のタスクを処理します:
-
新しいパーティションのフォーマットと設定
-
新しいカーネル・イメージと initrd イメージをリストされたすべての ESP にコピーし、設定します。
-
カーネル・アップグレードやその他のメンテナンス作業時の設定の同期
-
同期されているカーネルバージョンのリスト管理
-
特定のカーネルバージョンをブートするようにブートローダを設定(ピン留め)
を実行すると、現在設定されているESPとその状態を表示できます:
# proxmox-boot-tool status
パーティションを同期された ESP としてフォーマットして初期化するには、例えば rpool で故障した vdev を交換した後や、同期メカニズム以前の既存のシステムを変換する場合、proxmox-kernel-helperのproxmox-boot-toolを使うことができます。
|
|
formatコマンドは<パーティション>をフォーマットします! |
例えば、空のパーティション/dev/sda2をESPとしてフォーマットするには、以下を実行します:
# proxmox-boot-tool format /dev/sda2
dev/sda2にある既存のマウントされていないESPをProxmox VEのカーネル更新同期メカニズムに含めるように設定するには、以下を使用します:
# proxmox-boot-tool init /dev/sda2
または
# proxmox-boot-tool init /dev/sda2 grub
を使うと、例えばセキュアブートをサポートするために、systemd-boot ではなく GRUB で初期化するように強制できます。
その後、/etc/kernel/proxmox-boot-uuidsに新しく追加されたパーティションのUUIDの行が追加されるはずです。initコマンドは、設定されているすべてのESPのリフレッシュも自動的に行います。
すべてのブータブルカーネルをコピーして設定し、/etc/kernel/proxmox-boot-uuidsにリストされているすべてのESPを同期させておくには、次のコマンドを実行するだけです:
# proxmox-boot-tool refresh
(rootでext4またはxfsで update-grubシステムを実行するのと同じです)。
これは、カーネルコマンドラインに変更を加えたり、すべてのカーネルとinitrdsを同期させたい場合に必要です。
|
|
update-initramfsも aptも(必要であれば)自動的にリフレッシュを起動します。 |
以下のカーネルバージョンがデフォルトで設定されています:
-
現在実行中のカーネル
-
パッケージ更新時に新しくインストールされるバージョン
-
インストール済みの最新カーネル
-
該当する場合は、最後から2番目のカーネルシリーズの最新バージョン(5.0、5.3など
-
手動で選択したカーネル
特定のカーネルと initrd イメージをブート可能なカーネルのリストに追加したい場合はproxmox-boot-tool kernel add を使ってください。
たとえば、以下を実行して、ABIバージョン5.0.15-1-pveのカーネルを、すべてのESPにインストールして同期しておくカーネルのリストに追加します:
# proxmox-boot-tool kernel add 5.0.15-1-pve
proxmox-boot-tool kernel listは現在起動用に選択されている全てのカーネルバージョンを一覧表示します:
# proxmox-boot-tool kernel list 手動で選択されたカーネル: 5.0.15-1-pve 自動で選択されたカーネル: 5.0.12-1-pve 4.15.18-18-pve
proxmox-boot-tool kernel removeを実行して、手動で選択したカーネルのリストからカーネルを削除してください:
# proxmox-boot-tool kernel remove 5.0.15-1-pve
|
|
手動でカーネルを追加または削除した後、すべてのEFIシステムパーティション(ESP)を更新するためにproxmox-boot-tool refreshを実行する必要があります。 |
3.13.3.使用されるブートローダーの決定
GRUBの青いボックスか、白地に黒のシンプルなsystemd-bootが表示されます。
# efibootmgr -v
EFI変数がサポートされていないというメッセージを返した場合、GRUBはBIOS/Legacyモードで使用されます。
出力に以下のような行がある場合、GRUBはUEFIモードで使用されています。
Boot0005* proxmox [...] File(¦proxmox¦grubx64.efi)
出力に以下のような行が含まれる場合、systemd-bootが使用されます。
Boot0006* Linux Boot Manager [...] File(¦¦¦¦¦bootx64.efi)
走ることによって:
# proxmox-boot-tool status
proxmox-boot-toolが設定されているかどうかを調べることができます。
3.13.4.GRUB
GRUBは長年Linuxシステムをブートするためのデファクトスタンダードであり、
[GRUB Manualhttps://www.gnu.org/software/grub/manual/grub/grub.html]
。
3.13.5.Systemd-boot
systemd-bootは軽量な EFI ブートローダです。カーネルと initrd イメージをインストールされている EFI サービスパーティション (ESP) から直接読み込みます。 ESP から直接カーネルを読み込む主な利点は、ストレージにアクセスするためのドライバを再実装する必要がないことです。Proxmox VEではproxmox-boot-toolを使用してESP上の設定を同期させています。
コンフィギュレーション
systemd-bootは、EFIシステムパーティション(ESP)のルートディレクトリにあるloader/loader.confファイルで設定します。詳細はloader.conf(5)man ページを参照してください。
各ブートローダ・エントリは、loader/entries/ディレクトリにあるそれ自身のファイルに置かれます。
entry.confの例は以下のようになります(/はESPのルートを指します):
タイトル Proxmox バージョン 5.0.15-1-pve オプション root=ZFS=rpool/ROOT/pve-1 boot=zfs linux /EFI/proxmox/5.0.15-1-pve/vmlinuz-5.0.15-1-pve initrd /EFI/proxmox/5.0.15-1-pve/initrd.img-5.0.15-1-pve
3.13.6.カーネル・コマンドラインの編集
カーネルコマンドラインは、使用するブートローダに応じて以下の箇所で変更できます:
カーネルコマンドラインは/etc/default/grubファイルの変数GRUB_CMDLINE_LINUX_DEFAULTに置く必要があります。update-grubを実行すると、その内容が/boot/grub/grub.cfgのすべてのlinuxエントリに追加されます。
変更を適用するには、proxmox-boot-tool refresh を実行して、loader/entries/proxmox-*.conf のすべての設定ファイルのオプション行として設定します。
カーネルパラメータの完全なリストは、https://www.kernel.org/doc/html/v<YOUR-KERNEL-VERSION>/admin-guide/kernel-parameters.html にあります。<YOUR-KERNEL-VERSION> をメジャーバージョンとマイナーバージョンに置き換えてください。例えば、バージョン 6.5 ベースのカーネルの場合、URL は次のようになります: https://www.kernel.org/doc/html/v6.5/admin-guide/kernel-parameters.html
カーネルのバージョンは、ウェブインターフェイス(Node → Summary)をチェックするか、次のコマンドを実行することで確認できます。
# uname -r
出力の最初の2つの数字を使用してください。
3.13.7.次のBootのKernel-Versionをオーバーライド
現在デフォルトでないカーネルを選択するには、以下のいずれかの方法があります:
-
ブートプロセスの最初に表示されるブートローダーメニューを使用します。
-
proxmox-boot-tool を使ってシステムをカーネルバージョンに固定します。
これは、新しいカーネルバージョンとハードウェア間の非互換性を回避するのに役立つはずです。
|
|
このようなピンはできるだけ早く取り外し、最新のカーネルのセキュリティパッチがすべてシステムに適用されるようにしてください。 |
例えばバージョン5.15.30-1-pveを恒久的に選択して起動するには、次のように実行します:
# proxmox-boot-tool kernel pin 5.15.30-1-pve
|
|
もしあなたのシステムがproxmox-boot-tool を同期に使っていなければ、最後にproxmox-boot-tool のリフレッシュコールをスキップすることもできます。 |
また、カーネルバージョンを次のシステムブート時にのみブートするように設定することもできます。 これは例えば、最初にバージョンを固定する原因となった問題が、更新されたカーネルによって解決されたかどうかをテストするのに便利です:
# proxmox-boot-tool kernel pin 5.15.30-1-pve --next-boot
固定されているバージョン設定を削除するには、unpinサブコマンドを使用します:
# proxmox-boot-tool kernel unpin
unpinには --next-bootオプションもありますが、これは--next-bootで設定したpinされたバージョンをクリアするために使用します。これはブート時に自動的に行われるため、手動で実行してもほとんど意味がありません。
ピン留めされたバージョンを設定またはクリアした後は、refreshサブコマンドを実行してESPのコンテンツと設定を同期させる必要もあります。
|
|
proxmox-boot-toolが管理されているシステムで、対話的にツールを呼び出すと、自動的にプロンプトが表示されます。 |
# proxmox-boot-tool refresh
3.13.8.セキュアブート
Proxmox VE 8.1 以降、署名付きパッケージとproxmox-boot-tool の統合により、セキュアブートがすぐにサポートされます。
セキュアブートの動作には以下のパッケージが必要です。proxmox-secure-boot-support' メタパッケージを使えば一度にインストールできます。
-
shim-signed(Microsoftによって署名されたshimブートローダ)
-
shim-helpers-amd64-signed(フォールバックブートローダと MOKManager、Proxmox により署名済み)
-
grub-efi-amd64-signed(GRUB EFI ブートローダ、Proxmox により署名済み)
-
proxmox-kernel-6.X.Y-Z-pve-signed(Proxmox により署名されたカーネルイメージ)
他のブートローダは現在セキュアブートコード署名の対象になっていないため、GRUBのみがブートローダとしてサポートされています。
Proxmox VEを新規インストールすると、自動的に上記のパッケージがすべて含まれます。
セキュアブートの仕組みやセットアップのカスタマイズ方法の詳細については、wikiをご覧ください。
既存のインストールをセキュアブートに切り替える
|
|
これは、正しく行われないと、場合によっては起動不能なインストールにつながる可能性があります。ホストを再インストールすると、セキュアブートが利用可能であれば、余分な操作なしに自動的にセットアップが行われます。Proxmox VEホストのバックアップが正常に動作し、テスト済みであることを確認してください! |
Proxmox VE をゼロから再インストールしなくても、必要に応じて既存の UEFI インストールをセキュアブートに切り替えることができます。
まず、システムがすべて最新であることを確認してください。次にproxmox-secure-boot-support をインストールします。GRUB はデフォルトの shim 経由で起動するために必要な EFI ブートエントリーを自動的に作成します。
systemd-bootがブートローダとして使用されている場合(どのブートローダが使用されているかを判断するを参照)、いくつかの追加設定が必要です。これはProxmox VEがZFS-on-rootでインストールされた場合のみです。
後者を確認するには
# findmnt /
ホストが本当にルートファイルシステムとしてZFSを使用している場合、FSTYPE列にはzfsが含まれるはずです:
TARGET SOURCE FSTYPE OPTIONS / rpool/ROOT/pve-1 zfs rw,relatime,xattr,noacl,casesensitive
次に、適切なESP(EFIシステムパーティション)を見つけなければなりません。これはlsblkコマンドを使って次のように実行できます:
# lsblk -o +FSTYPE
出力は次のようになるはずです:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS FSTYPE sda 8:0 0 32G 0 disk ├─sda1 8:1 0 1007K 0 part ├─sda2 8:2 0 512M 0 part vfat └─sda3 8:3 0 31.5G 0 part zfs_member sdb 8:16 0 32G 0 disk ├─sdb1 8:17 0 1007K 0 part ├─sdb2 8:18 0 512M 0 part vfat └─sdb3 8:19 0 31.5G 0 part zfs_member
この場合、パーティションsda2とsdb2がターゲットです。パーティションのサイズは512Mで、FSTYPEは vfatです。
これらのパーティションは、proxmox-boot-tool を使って GRUB で起動するように適切に設定する必要があります。このコマンド(例としてsda2 を使用)は個々の ESP に対して個別に実行する必要があります:
# proxmox-boot-tool init /dev/sda2 grub
その後、以下のコマンドを実行して、セットアップの正常性をチェックできます:
# efibootmgr -v
このリストには、次のようなエントリーが含まれているはずです:
[...] Boot0009* proxmox HD(2,GPT,...,0x800,0x100000)/File(¦proxmox¦shimx64.efi[...])
|
|
古いsystemd-bootブートローダは維持されますが、GRUB が優先されます。こうすることで、セキュアブートモードで GRUB を使って起動しても何らかの理由でうまくいかない場合でも、セキュアブートをオフにしたsystemd-boot を使ってシステムを起動することができます。 |
これでホストを再起動し、UEFI ファームウェアセットアップユーティリティでセキュアブートを有効にすることができます。
再起動すると、proxmoxという新しいエントリが UEFI ファームウェアブートメニューで選択できるようになっていて、署名済みの EFI shim を使って起動するようになっているはずです。
何らかの理由で UEFI ブートメニューにproxmoxエントリが見つからない場合、(ファームウェアでサポートされていれば) カスタムブートエントリとしてファイル ¦proxmox¦shimx64.efiを追加することで、手動で追加してみることができます。
|
|
いくつかの UEFI ファームウェアは再起動時にproxmoxブートオプションを落とすことが知られています。 これはproxmoxブートエントリがディスク上の GRUB インストールを指していて、ディスク自体がブートオプションになっていない場合に起こります。可能であれば、UEFI ファームウェアセットアップユーティリティでディスクをブートオプションに追加してproxmox-boot-tool をもう一度実行してみてください。 |
|
|
カスタムキーを登録するには、付属のSecure Boot wiki ページを参照してください。 |
セキュアブートでの DKMS/サードパーティーモジュールの使用
セキュアブートが有効になっているシステムでは、カーネルは信頼できる鍵で署名されていないモジュールのロードを拒否します。カーネルパッケージとともに出荷されるデフォルトのモジュールセットは、カーネルイメージに埋め込まれたエフェメラルキーで署名されており、特定のバージョンのカーネルイメージで信頼されています。
DKMS または手動でビルドしたモジュールなど、他のモジュールをロードするには、セキュアブートスタックに信頼された鍵で署名する必要があります。これを実現する最も簡単な方法は、mokutil を使用してそれらをマシンオーナーキー(MOK) として登録することです。
dkmsツールは、/var/lib/dkms/mok.keyと /var/lib/dkms/mok.pubにキーペアと証明書を自動的に生成し、ビルドとインストールを行うカーネルモジュールの署名に使用します。
証明書の内容は
# openssl x509 -in /var/lib/dkms/mok.pub -noout -text
を作成し、以下のコマンドを使用してシステムに登録します:
# mokutil --import /var/lib/dkms/mok.pub input password: input password again:
mokutilコマンドは(一時的な)パスワードを2回要求しますので、このパスワードはプロセスの次のステップでもう1回入力する必要があります!システムを再起動すると、自動的にMOKManagerEFIバイナリが起動し、mokutilを使用して登録を開始するときに選択したパスワードを使用して、キー/証明書を検証し、登録を確認することができます。その後、カーネルは(登録されたMOKで署名された)DKMSでビルドされたモジュールのロードを許可するはずです。必要であれば、MOKはカスタムEFIバイナリやカーネルイメージに署名するためにも使用できます。
DKMSで管理されていないカスタム/サードパーティモジュールにも同じ手順を使用できますが、その場合は鍵/証明書の生成と署名の手順を手動で行う必要があります。
3.14.カーネル・サメページ・マージング (KSM)
Kernel Samepage Merging (KSM)はLinuxカーネルが提供するオプションのメモリ重複排除機能で、Proxmox VEではデフォルトで有効になっています。KSMは、物理メモリページの範囲をスキャンして同一のコンテンツを探し、それらにマップされている仮想ページを特定することで機能します。同一のページが見つかった場合、対応する仮想ページはすべて同じ物理ページを指すように再マップされ、古いページは解放されます。仮想ページは "コピーオンライト "としてマークされ、それへの書き込みはメモリの新しい領域に書き込まれ、共有された物理ページはそのまま残されます。
3.14.1.KSMの意味
KSMは、仮想化環境におけるメモリ使用量を最適化することができます。これは、同様のオペレーティング・システムやワークロードを実行する複数のVMが、多くの共通メモリ・ページを共有する可能性があるためです。
しかし、KSMはメモリ使用量を削減できる一方で、VMをサイドチャネル攻撃にさらす可能性があるため、セキュリティ上のリスクも伴います。研究では、KSMの特定の特性を悪用することで、同じホスト上の2つ目のVMを介して、実行中のVMに関する情報を推測することが可能であることが示されています。
したがって、ホスティングサービスを提供するためにProxmox VEを使用している場合は、ユーザーに追加のセキュリティを提供するために、KSMを無効にすることを検討する必要があります。 さらに、KSMを無効にすることが法律で義務付けられている場合がありますので、お住まいの国の規制を確認してください。
4.グラフィカル・ユーザー・インターフェース
Proxmox VEはシンプルです。別の管理ツールをインストールする必要はなく、すべてウェブブラウザ(最新のFirefoxまたはGoogle Chromeが望ましい)から行うことができます。ゲストコンソールへのアクセスには、組み込みのHTML5コンソールが使用されます。別の方法として、SPICE を使用することもできます。
Proxmoxクラスタファイルシステム(pmxcfs)を使用しているため、任意のノードに接続してクラスタ全体を管理することができます。各ノードはクラスタ全体を管理できます。専用のマネージャノードは必要ありません。
ウェブベースの管理インターフェイスは、最新のブラウザで使用できます。Proxmox VEがモバイルデバイスからの接続を検出すると、よりシンプルなタッチベースのユーザーインターフェースにリダイレクトされます。
ウェブインターフェイスには、https://youripaddress:8006(デフォルトログインはrootで、パスワードはインストールプロセス中に指定されます)を介してアクセスできます。
4.1.特徴
-
Proxmox VEクラスタのシームレスな統合と管理
-
リソースの動的更新のためのAJAX技術
-
SSL暗号化(https)によるすべての仮想マシンとコンテナへのセキュアなアクセス
-
数百から数千のVMを処理できる高速な検索主導型インターフェース
-
セキュアな HTML5 コンソールまたは SPICE
-
すべてのオブジェクト(VM、ストレージ、ノードなど)に対するロールベースの権限管理
-
複数の認証ソースのサポート(ローカル、MS ADS、LDAPなど
-
二要素認証(OATH、Yubikey)
-
ExtJS 7.x JavaScriptフレームワークをベースにしています。
4.2.ログイン
サーバに接続すると、まずログインウィンドウが表示されます。 Proxmox VEは様々な認証バックエンド(Realm)をサポートしており、ここで言語を選択することができます。GUIは20以上の言語に翻訳されています。
|
|
下部のチェックボックスを選択すると、クライアント側でユーザー名を保存できます。これにより、次回ログイン時に入力の手間が省けます。 |
4.3.GUIの概要
|
ヘッダー |
上部。ステータス情報が表示され、最も重要なアクションのボタンがあります。 |
|
リソースツリー |
左側。特定のオブジェクトを選択できるナビゲーションツリー。 |
|
コンテンツパネル |
中央の領域。選択されたオブジェクトは、ここに設定オプションとステータスを表示します。 |
|
ログパネル |
下部にあります。最近のタスクのログエントリが表示されます。これらのログエントリをダブルクリックして詳細を表示したり、実行中のタスクを中止したりできます。 |
|
|
リソースツリーとログパネルのサイズを縮小・拡大したり、ログパネルを完全に非表示にすることができます。これは、小さなディスプレイで作業していて、他のコンテンツを表示するためのスペースが欲しい場合に便利です。 |
4.3.1.ヘッダー
左上にはProxmoxのロゴがあります。その隣には現在稼働中のProxmox VEのバージョンが表示されます。近くの検索バーでは、特定のオブジェクト(VM、コンテナ、ノードなど)を検索できます。これはリソースツリーでオブジェクトを選択するよりも速い場合があります。
ヘッダーの右側には4つのボタンがあります:
|
ドキュメンテーション |
リファレンスドキュメントを表示する新しいブラウザウィンドウを開きます。 |
|
VMの作成 |
仮想マシンの作成ウィザードを開きます。 |
|
CT作成 |
コンテナ作成ウィザードを開きます。 |
|
ユーザーメニュー |
現在ログインしているユーザーのIDが表示され、クリックするとユーザー固有のオプションメニューが開きます。 ユーザーメニューには、ローカルUI設定を提供する「マイ設定」ダイアログがあります。その下には、TFA(二要素認証)とパスワードセルフサービスのショートカットがあります。また、言語と カラーテーマを変更するオプションもあります。最後に、メニューの一番下にログアウトオプションがあります。 |
4.3.2.マイセッティング
マイ設定]ウィンドウでは、ローカルに保存された設定を設定できます。これにはダッシュボード・ストレージが含まれ、データセンター・サマリーで表示される合計量にカウントする特定のストレージを有効または無効にできます。どのストレージにもチェックが入っていない場合は、すべてのストレージの合計になります。
ダッシュボード設定の下には、保存されたユーザー名とそれをクリアするボタン、GUI内のすべてのレイアウトをデフォルトにリセットするボタンがあります。
右側にはxterm.js Settings があります。これらには以下のオプションがあります:
|
フォントファミリー |
xterm.jsで使用するフォント(例:Arial)。 |
|
フォントサイズ |
使用するフォントサイズ。 |
|
文字間隔 |
テキストの文字間隔を増減します。 |
|
ラインの高さ |
線の絶対高さを指定します。 |
4.3.3.リソースツリー
これがメインのナビゲーションツリーです。ツリーの上部では、いくつかの定義済みビューを選択することができます。デフォルトのビューはサーバビューで、以下のオブジェクトタイプが表示されます:
|
データセンター |
クラスタ全体の設定を含みます(すべてのノードに関連します)。 |
|
ノード |
ゲストが実行されるクラスタ内のホストを表します。 |
|
ゲスト |
VM、コンテナ、テンプレート。 |
|
ストレージ |
データ保管。 |
|
プール |
プールを使用してゲストをグループ化し、管理を簡素化することが可能です。 |
以下のビュータイプが利用可能です:
|
サーバービュー |
あらゆる種類のオブジェクトをノード別に表示します。 |
|
フォルダ表示 |
あらゆる種類のオブジェクトを、オブジェクトの種類ごとに分類して表示します。 |
|
プールビュー |
プールごとにグループ化されたVMとコンテナを表示します。 |
|
タグ ビュー |
タグでグループ化されたVMとコンテナを表示します。 |
4.3.4.ログパネル
ログパネルの主な目的は、クラスタで現在何が行われているかを表示することです。新しいVMを作成するようなアクションはバックグラウンドで実行され、このようなバックグラウンドジョブをタスクと呼びます。
このようなタスクからの出力はすべて別のログファイルに保存されます。タスクログエントリーをダブルクリックするだけで、そのログを見ることができます。そこで実行中のタスクを中止することもできます。
ここではすべてのクラスタノードから最新のタスクが表示されることに注意してください。そのため、誰かが他のクラスタノードで作業しているのをリアルタイムで確認することができます。
|
|
リストを短くするために、古いタスクと終了したタスクをログパネルから削除します。しかし、ノードパネル内のタスク履歴でこれらのタスクを見つけることができます。 |
短時間で実行されるアクションの中には、すべてのクラスタメンバにログを送信するだけのものもあります。これらのメッセージはクラスタログパネルで見ることができます。
4.4.コンテンツパネル
リソースツリーから項目を選択すると、対応するオブジェクトの設定とステータス情報がコンテンツパネルに表示されます。以下のセクションでは、この機能の概要を説明します。より詳細な情報については、リファレンス・ドキュメントの対応する章を参照してください。
4.4.1.データセンター
-
検索:ノード、VM、コンテナ、ストレージデバイス、プールをクラスタ全体で検索します。
-
Summary:クラスタの健全性とリソースの使用状況の概要を示します。
-
クラスタ:クラスタの作成または参加に必要な機能と情報を提供します。
-
オプション:クラスタ全体のデフォルト設定を表示および管理します。
-
ストレージ:クラスタストレージを管理するためのインターフェイスを提供します。
-
バックアップ:バックアップジョブをスケジュールします。これはクラスタ全体で動作するので、スケジューリング時にVM/コンテナがクラスタ上のどこにあるかは関係ありません。
-
レプリケーション:レプリケーションジョブの表示と管理。
-
権限:ユーザー、グループ、APIトークンの権限、LDAP、MS-AD、2要素認証を管理します。
-
HA:Proxmox VE High Availability を管理します。
-
ACME:サーバーノードにACME(Let's Encrypt)証明書を設定します。
-
ファイアウォール:Proxmoxファイアウォールのクラスタ全体の設定とテンプレートの作成。
-
メトリックサーバ:Proxmox VEの外部メトリックサーバを定義します。
-
通知:Proxmox VEの通知動作とターゲットを設定します。
-
サポート:サポート契約に関する情報を表示します。
4.4.2.ノード
トップヘッダには、Reboot、Shutdown、Shell、Bulk Actions、Helpなどの便利なボタンがあります。Shellには、noVNC、SPICE、xterm.jsのオプションがあります。Bulk Actionsには、Bulk Start、Bulk Shutdown、Bulk Migrateのオプションがあります。
-
検索:ノードのVM、コンテナ、ストレージデバイス、プールを検索します。
-
Summary:ノードのリソース使用状況の概要を表示します。
-
注釈: Markdown構文でカスタムコメントを記述します。
-
シェル:ノードのシェル・インターフェースへのアクセス。
-
システム:ネットワーク、DNS、時刻の設定、シスログへのアクセス。
-
アップデート:システムをアップグレードし、利用可能な新しいパッケージを表示します。
-
ファイアウォール:特定のノードのProxmoxファイアウォールを管理します。
-
ディスク:接続されているディスクの概要を把握し、その使用方法を管理します。
-
Ceph:は、ホストにCephサーバをインストールしている場合にのみ使用します。この場合、ここでCephクラスタを管理し、ステータスを確認できます。
-
レプリケーション:レプリケーションジョブの表示と管理。
-
タスク履歴:過去のタスクのリストを見ることができます。
-
サブスクリプション:サブスクリプションキーをアップロードし、サポートケースで使用するためのシステムレポートを生成します。
4.4.3.ゲスト
ゲストには2種類あり、どちらもテンプレートに変換することができます。 1つはカーネルベースの仮想マシン(KVM)で、もう1つはLinuxコンテナ(LXC)です。 これらのナビゲーションはほとんど同じで、一部のオプションだけが異なります。
さまざまなゲスト管理インターフェイスにアクセスするには、左側のメニューからVMまたはコンテナを選択します。
ヘッダには、電源管理、マイグレーション、コンソールへのアクセスとタイプ、クローニング、HA、ヘルプなどのコマンドを含んでいます。 これらのボタンの中にはドロップダウンメニューを含んでいるものもあります。例えば、Shutdownには他の電源オプションも含まれていますし、ConsoleにはSPICE、noVNC、xterm.js といった異なるコンソールタイプが含まれています。
右側のパネルには、左側のメニューから選択された項目のインターフェイスが含まれています。
使用可能なインターフェースは以下の通り。
-
Summary:VMのアクティビティの簡単な概要と、Markdown構文コメント用のNotesフィールドを提供します。
-
コンソール:VM/コンテナの対話型コンソールにアクセスできます。
-
(KVM)Hardware:KVM VMで使用可能なハードウェアを定義します。
-
(LXC)Resources:LXCで使用可能なシステムリソースを定義します。
-
(LXC)Network:コンテナのネットワーク設定を行います。
-
(LXC)DNS:コンテナのDNS設定を構成します。
-
オプション:ゲストのオプションを管理します。
-
タスク履歴:選択したゲストに関連する過去のすべてのタスクを表示します。
-
(KVM)モニタ:KVMプロセスへの対話型通信インタフェース。
-
バックアップ:システムバックアップの作成と復元。
-
レプリケーション:選択したゲストのレプリケーションジョブを表示および管理します。
-
スナップショット:VMスナップショットの作成とリストア。
-
ファイアウォール:VMレベルでファイアウォールを設定します。
-
権限:選択したゲストの権限を管理します。
4.5.タグ
組織的な目的のために、ゲストにタグを設定することができます。 現在のところ、これらはユーザーに情報価値を提供するだけです。 タグは、ウェブインターフェイスの2つの場所に表示されます:リソースツリーと、ゲストが選択されたときのステータス行です。
タグは、鉛筆のアイコンをクリックして、ゲストのステータスラインで追加、編集、削除できます。ボタンを押すと複数のタグを追加でき、-ボタンを押すと削除できます。変更を保存またはキャンセルするには、それぞれ✓ボタンとxボタンを使用します。
タグはCLIでも設定でき、複数のタグはセミコロンで区切られます。 例えば、以下のようになります:
# qm set ID --tags myfirsttag;mysecondtag
4.5.1.スタイル設定
デフォルトでは、タグの色は決定論的な方法でテキストから取得されます。 色、リソースツリーでの形状、大文字と小文字の区別、およびタグのソート方法は、カスタマイズできます。こ れは、 Web イ ン タ フ ェース のDatacenter → Options → Tag Style Override で実行で き ます。または、CLI を使用して行うこともできます。たとえば
# pvesh set /cluster/options --tag-style color-map=example:000000:FFFFFF
タグ例の背景色を黒 (#000000) に、文字色を白 (#FFFFFF) に設定します。
4.5.2.パーミッション
デフォルトでは、ゲスト(/vms/ID) のVM.Config.Options権限を持つユーザーは、任意のタグを設定できます (権限管理を参照)。この動作を制限したい場合は、Datacenter → Options → User Tag Access で適切な権限を設定できます:
-
free: ユーザーはタグの設定を制限されません (デフォルト)
-
リスト: ユーザーは事前に定義されたタグのリストに基づいてタグを設定できます。
-
既存: リストのようなものですが、既存のタグを使用することもできます。
-
none: ユーザーはタグの使用を制限されます。
CLIでも同じことができます。
登録タグのリストは、[Datacenter] → [Options] → [Registered Tags] で編集できます。登録されたタグのリストは、Datacenter → Options → Registered Tagsまたは CLI で編集できます。
正確なオプションとCLIでの呼び出し方法の詳細については、「データセンターの構成」を参照してください。
5.クラスタマネージャ
Proxmox VEクラスタマネージャpvecmは、物理サーバのグループを作成するためのツールです。このようなグループをクラスタと呼びます。信頼性の高いグループ通信にはCorosync Cluster Engineを使用します。クラスタ内のノード数に明確な制限はありません。 実際には、ホストとネットワークのパフォーマンスによって、実際に可能なノード数が制限されることがあります。現在(2021年)、50ノードを超えるクラスタ(ハイエンドのエンタープライズハードウェアを使用)が稼働しているという報告があります。
pvecmは、新しいクラスタの作成、クラスタへのノードの参加、クラスタからの離脱、ステータス情報の取得、およびその他の様々なクラスタ関連タスクの実行に使用できます。Proxmox Cluster File System("pmxcfs") は、クラスタ設定をすべてのクラスタノードに透過的に配布するために使用されます。
ノードをクラスタにグループ化すると、次のような利点があります:
-
ウェブベースの集中管理
-
マルチマスタークラスター:各ノードがすべての管理タスクを実行可能
-
データベース駆動型ファイルシステムpmxcfsを設定ファイルの保存に使用し、corosyncを使用して全ノードでリアルタイムにレプリケートされます。
-
物理ホスト間での仮想マシンとコンテナの容易な移行
-
迅速な展開
-
ファイアウォールやHAなどのクラスタ全体のサービス
5.1.要件
-
corosyncが動作するためには、すべてのノードがUDPポート5405-5412を介して相互に接続できる必要があります。
-
日付と時刻は同期していなければなりません。
-
ノード間でTCPポート22のSSHトンネルが必要です。
-
高可用性に興味がある場合は、信頼できるクォーラムのために少なくとも3つのノードが必要です。すべてのノードが同じバージョンである必要があります。
-
特に共有ストレージを使用する場合は、クラスタ・トラフィック用に専用のNICを使用することをお勧めします。
-
ノードを追加するには、クラスタ・ノードのルート・パスワードが必要です。
-
仮想マシンのオンラインマイグレーションは、ノードに同じベンダーのCPUが搭載されている場合にのみサポートされます。それ以外の場合は動作する可能性がありますが、保証はされません。
|
|
Proxmox VE 3.x以前とProxmox VE 4.Xのクラスタノードを混在させることはできません。 |
|
|
Proxmox VE 4.4とProxmox VE 5.0のノードを混在させることは可能ですが、本番構成としてはサポートされていません。 |
|
|
Proxmox VE 6.xのクラスタを以前のバージョンで実行することはできません。Proxmox VE 6.xとそれ以前のバージョンのクラスタプロトコル(corosync)が根本的に変更されました。Proxmox VE 5.4用のcorosync 3パッケージは、Proxmox VE 6.0へのアップグレード手順のみを対象としています。 |
5.2.ノードの準備
まず、すべてのノードにProxmox VEをインストールします。各ノードが最終的なホスト名とIP設定でインストールされていることを確認してください。クラスタ作成後にホスト名とIPを変更することはできません。
etc/hostsですべてのノード名とそのIPを参照するのが一般的ですが(あるいは他の手段で名前を解決できるようにする)、これはクラスタを動作させるために必要なことではありません。というのも、あるノードから別のノードにSSHで接続する場合、覚えやすいノード名を使うことができるからです(リンクアドレスの種類も参照してください)。クラスタ構成では常にIPアドレスでノードを参照することをお勧めします。
5.3.クラスタの作成
クラスタの作成は、コンソール上で行うか(sshでログイン)、Proxmox VEのWebインタフェース(Datacenter → Cluster)を使用してAPIから行うことができます。
|
|
クラスタには一意の名前を付けます。クラスタ名はノード名と同じ規則に従います。 |
5.3.1.ウェブGUIで作成
Datacenter → Cluster]で、[Create Cluster]をクリックします。クラスタ名を入力し、ドロップダウン・リストからメインのクラスタ・ネットワーク(リンク0)として使用するネットワーク接続を選択します。デフォルトは、ノードのホスト名で解決されたIPです。
Proxmox VE 6.2では、クラスタに最大8つのフォールバックリンクを追加できます。冗長リンクを追加するには、Addボタンをクリックし、それぞれのフィールドからリンク番号とIPアドレスを選択します。Proxmox VE 6.2以前では、フォールバックとして2つ目のリンクを追加するには、Advancedチェックボックスを選択し、追加のネットワークインターフェース(リンク1、Corosyncの冗長性も参照)を選択します。
|
|
クラスタ通信用に選択したネットワークが、ネットワークストレージやライブマイグレーションなど、トラフィックの多い目的で使用されていないことを確認してください。 クラスタネットワーク自体は少量のデータを生成しますが、レイテンシに非常に敏感です。クラスタネットワーク要件の詳細を確認してください。 |
5.3.2.コマンドラインによる作成
最初のProxmox VEノードにssh経由でログインし、以下のコマンドを実行します:
hp1# pvecm create CLUSTERNAME
新しいクラスタの状態を確認するには、次のコマンドを使用します:
hp1# pvecm ステータス
5.3.3.同一ネットワーク内の複数のクラスタ
同じ物理ネットワークまたは論理ネットワークに複数のクラスタを作成することができます。この場合、クラスタ通信スタックでの衝突を避けるため、各クラスタに一意の名前を付ける必要があります。さらに、クラスタを明確に区別できるようにすることで、人間の混乱を避けることができます。
corosyncクラスタの帯域幅要件は比較的低いものの、パッケージのレイテンシと1秒あたりのパッケージ(PPS)レートが制限要因となります。同じネットワーク内の異なるクラスタは、これらのリソースをめぐって互いに競合する可能性があるため、大規模なクラスタには別の物理ネットワークインフラを使用することが理にかなっている場合があります。
5.4.クラスタへのノードの追加
|
|
クラスタに参加すると、/etc/pveにある既存の設定はすべて上書きされます。特に、ゲストIDが衝突する可能性があるため、参加ノードはゲストを保持できず、ノードはクラスタのストレージ構成を継承します。既存のゲストを持つノードに参加するには、回避策として各ゲストのバックアップを作成し(vzdumpを使用)、参加後に異なるIDでリストアします。ノードのストレージレイアウトが異なる場合は、ノードのストレージを再追加し、ストレージが実際に利用可能なノードに反映されるように各ストレージのノード制限を適応させる必要があります。 |
5.4.1.GUIによるクラスタへのノードの参加
既存のクラスタ・ノードでWebインタフェースにログインします。Datacenter → Clusterで、上部のJoin Informationボタンをクリックします。次に、[情報をコピー]ボタンをクリックします。または、[情報]フィールドの文字列を手動でコピーします。
次に、追加するノードのWebインタフェースにログインします。Datacenter → Clusterで、Join Clusterをクリックします。情報]フィールドに、先ほどコピーした[参加情報]テキストを入力します。 クラスタへの参加に必要なほとんどの設定が自動的に入力されます。セキュリティ上の理由から、クラスタのパスワードは手動で入力する必要があります。
|
|
必要なデータをすべて手動で入力するには、Assisted Joinチェックボックスを無効にします。 |
Joinボタンをクリックすると、クラスタ参加プロセスが直ちに開始されます。ノードがクラスタに参加すると、現在のノード証明書はクラスタ認証局(CA)から署名されたものに置き換えられます。 つまり、現在のセッションは数秒後に機能しなくなります。この場合、Webインタフェースを強制的にリロードし、クラスタ認証情報を使用して再度ログインする必要があります。
これで、Datacenter → Clusterにノードが表示されるはずです。
5.4.2.コマンドラインによるクラスタへのノードの参加
既存のクラスタに参加させたいノードにsshでログインします。
# pvecm add IP-ADDRESS-CLUSTER
IP-ADDRESS-CLUSTERには、既存のクラスタ・ノードのIPまたはホスト名を使用します。 IPアドレスを使用することをお勧めします(「リンク・アドレスの種類」を参照)。
クラスタの状態を確認するには
# pvecm ステータス
# pvecm status Cluster information ~~~~~~~~~~~~~~~~ Name: prod-central Config Version: 3 Transport: knet Secure auth: on Quorum information ~~~~~~~~~~~~~~~~~ Date: Date: Tue Sep 14 11:06:47 2021 Quorum provider: corosync_votequorum Nodes: 4 Node ID: 0x00000001 Ring ID: 1.1a8 Quorate: Yes Votequorum information ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 期待される投票数: 4 予想最高得票数4 総得票数 4 定数 3 フラグ Quorate メンバー情報 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ノード ID 投票数 名前 0x00000001 1 192.168.15.91 0x00000002 1 192.168.15.92 (local) 0x00000003 1 192.168.15.93 0x00000004 1 192.168.15.94
全ノードのリストだけが必要な場合は、次のようにします:
# pvecm ノード
# pvecm ノード メンバー情報 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ノードID 投票数 名前 1 1 hp1 2 1 hp2 (ローカル) 3 1 hp3 4 1 hp4
5.4.3.分離されたクラスタ・ネットワークを持つノードの追加
クラスタ・ネットワークが分離されているクラスタにノードを追加する場合は、link0パラメータを使用してそのネットワーク上のノードのアドレスを設定する必要があります:
# pvecm add IP-ADDRESS-CLUSTER --link0 LOCAL-IP-ADDRESS-LINK0クロノスネットのトランスポート・レイヤーに内蔵されている冗長性を使用したい場合は、link1パラメータも使用してください。
GUIを使用して、Cluster Joinダイアログの対応するLink Xフィールドから正しいインターフェイスを選択できます。
5.5.クラスタノードの削除
|
|
手続きを進める前に注意深くお読みください。 |
ノードからすべての仮想マシンを移動します。ローカル データまたはバックアップのコピーが作成されていることを確認します。さらに、削除するノードへのスケジュールされたレプリケーション ジョブをすべて削除してください。
|
|
ノードを削除する前にそのノードへのレプリケーションジョブを削除しないと、レプリケーションジョブが削除できなくなります。特に、レプリケートされたVMがマイグレーションされるとレプリケーションの方向が自動的に切り替わるため、削除するノードからレプリケートされたVMをマイグレーションすることで、そのノードへのレプリケーションジョブが自動的に設定されることに注意してください。 |
次の例では、クラスタからノードhp4を削除します。
別のクラスタ・ノード(hp4ではない)にログインし、pvecm nodesコマンドを実行して削除するノードIDを特定します:
hp1# pvecm nodes
Membership information
~~~~~~~~~~~~~~~~~~~~~~
Nodeid Votes Name
1 1 hp1 (local)
2 1 hp2
3 1 hp3
4 1 hp4
この時点でhp4の電源を切り、現在の設定のまま(ネットワーク内で)再び電源が入らないようにする必要があります。
|
|
上述したように、ノードを取り外す前に電源を切り、現在の構成で(既存のクラスタネットワーク内で)再び電源が入らないことを確認することが重要です。 そのままノードの電源を入れると、クラスタが壊れてしまい、機能する状態に復元するのが困難になる可能性があります。 |
ノードhp4の電源を切ったら、安全にクラスタから削除できます。
hp1# pvecm delnode hp4 ノード4をキル
|
|
この時点で、Could not kill node (error = CS_ERR_NOT_EXIST)というエラー・メッセージが表示される可能性があります。これはノードの削除に失敗したのではなく、オフラインのノードを kill しようとした corosync に失敗したことを意味します。したがって、これは安全に無視できます。 |
pvecm nodesまたはpvecm statusを使ってノードのリストをもう一度確認してください。以下のようになるはずです:
hp1# pvecm status ... Votequorum information ~~~~~~~~~~~~~~~~~~~~~~ Expected votes: 3 予想最高得票数3 投票総数: 2 3 定数: 2 フラグ: Quorate メンバー情報 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ノード ID 投票数 名前 0x00000001 1 192.168.15.90 (local) 0x00000002 1 192.168.15.91 0x00000003 1 192.168.15.92
何らかの理由で、このサーバーを再び同じクラスタに参加させたい場合は、そうしなければなりません:
-
Proxmox VEを新規インストールしてください、
-
そして、前のセクションで説明したように、それを結合します。
削除されたノードの設定ファイルはまだ/etc/pve/nodes/hp4 に存在します。まだ必要な設定を回復してから、ディレクトリを削除してください。
|
|
ノードの削除後も、その SSH フィンガープリントは他のノードのknown_hostsに残っています。同じ IP またはホスト名を持つノードに再参加した後に SSH エラーが発生した場合は、再参加したノードでpvecm updatecerts を1 回実行してフィンガープリントをクラスタ全体で更新します。 |
5.5.1.を再インストールせずにノードを分離します。
|
|
これは推奨される方法ではありません。不安な場合は、前の方法を使用してください。 |
ノードを最初から再インストールせずに、クラスタからノードを分離することもできます。ただし、クラスタからノードを削除した後も、そのノードは共有ストレージにアクセスできます。これは、クラスタからノードの削除を開始する前に解決しておく必要があります。Proxmox VEクラスタは他のクラスタとまったく同じストレージを共有することはできません。さらに、VMIDの競合につながる可能性もあります。
分離したいノードだけがアクセスできる新しいストレージを作成することをお勧めします。例えば、NFS上の新しいエクスポートや新しいCephプールなどです。まったく同じストレージが複数のクラスタからアクセスされないようにすることが重要です。このストレージを設定したら、すべてのデータとVMをノードからそのストレージに移動します。これで、クラスタからノードを分離する準備が整いました。
|
|
すべての共有リソースがきれいに分離されていることを確認してください!そうしないと、コンフリクトや問題が発生します。 |
まず、ノードのcorosyncとpve-clusterサービスを停止します:
systemctl stop pve-cluster systemctl stop corosync
クラスタファイルシステムをローカルモードで再度起動します:
pmxcfs -l
corosync設定ファイルを削除します:
rm /etc/pve/corosync.conf rm -r/etc/corosync/*
これで、ファイルシステムを通常のサービスとして再開できます:
killall pmxcfs systemctl start pve-cluster
これでノードはクラスタから切り離されました。クラスタの残りのノードから削除するには
pvecm delnode oldnode
残りのノードのクォーラムが失われたためにコマンドが失敗した場合、回避策として予想得票数を1に設定することができます:
pvecm 予想1そしてpvecm delnodeコマンドを繰り返します。
次に、分離したノードに戻り、そのノードに残っているクラスタファイルをすべて削除します。これにより、ノードを問題なく別のクラスタに追加できるようになります。
rm/var/lib/corosync/*他のノードの設定ファイルがまだクラスタ ファイル システムに残っているため、それらもクリーンアップします。ノード名が正しいことを確認したら、/etc/pve/nodes/NODENAMEからディレクトリ全体を再帰的に削除します。
|
|
ノードのSSH鍵はauthorized_keyファイルに残ります。これは、ノードがまだ公開鍵認証で互いに接続できることを意味します。これを修正するには、/etc/pve/priv/authorized_keysファイルからそれぞれの鍵を削除します。 |
5.6.定足数
Proxmox VEは、クォーラムベースの技術を使用して、すべてのクラスタノード間で一貫性のある状態を提供します。
クォーラム(定足数)とは、分散システムにおいて分散トランザクションが操作を実行するために最低限必要な投票数のことです。
- ウィキペディアより
ネットワーク・パーティショニングの場合、状態の変更には過半数のノードがオンラインであることが必要です。クォーラムを失うと、クラスタは読み取り専用モードに切り替わります。
|
|
Proxmox VEはデフォルトで各ノードに1票を割り当てます。 |
5.7.クラスター・ネットワーク
クラスタネットワークはクラスタの中核です。これを介して送信されるすべてのメッセージは、それぞれの順序ですべてのノードに確実に配信されなければなりません。Proxmox VEでは、この部分は高性能、低オーバーヘッド、高可用性の開発ツールキットの実装であるcorosyncによって行われます。これは分散型設定ファイルシステム(pmxcfs)に対応しています。
5.7.1.ネットワーク要件
Proxmox VEクラスタスタックを安定して動作させるには、全ノード間のレイテンシが5ミリ秒(LANパフォーマンス)以下の信頼性の高いネットワークが必要です。ノード数が少ないセットアップでは、より高いレイテンシのネットワークでも動作する可能性がありますが、これは保証されておらず、ノード数が3つ以上、レイテンシが約10ミリ秒を超えると、むしろ可能性が低くなります。
corosyncはあまり帯域幅を使用しませんが、レイテンシのジッターの影響を受けやすいので、ネットワークは他のメンバーによって多用されるべきではありません。 特に、corosyncとストレージに共有ネットワークを使わないでください(冗長構成で優先順位の低いフォールバックの可能性を除いて)。
クラスタをセットアップする前に、ネットワークがその目的に適しているかどうかを確認することは良い習慣です。クラスタ・ネットワーク上でノードが互いに接続できることを確認するには、pingツールでノード間の接続性をテストします。
Proxmox VEファイアウォールが有効な場合、corosyncのACCEPTルールが自動的に生成されます。
|
|
Corosyncは、バージョン3.0 (Proxmox VE 6.0で導入)以前はMulticastを使用していました。 最新のバージョンでは、クラスタ通信にKronosnetを使用していますが、現時点では通常のUDPユニキャストのみをサポートしています。 |
|
|
corosync.confでトランスポートをudpまたはudpuに設定することで、マルチキャストまたはレガシーユニキャストを有効にすることはできますが、暗号化および冗長性サポートがすべて無効になることに注意してください。 したがって、これは推奨されません。 |
5.7.2.個別のクラスタ・ネットワーク
パラメータなしでクラスタを作成する場合、corosyncクラスタのネットワークは通常、WebインタフェースおよびVMのネットワークと共有されます。セットアップによっては、ストレージトラフィックも同じネットワーク上で送信されるかもしれません。corosyncはタイムクリティカルでリアルタイムなアプリケーションなので、これを変更することをお勧めします。
新しいネットワークの設定
まず、新しいネットワークインターフェイスをセットアップする必要があります。これは物理的に別のネットワーク上にある必要があります。ネットワークがクラスタ・ネットワークの要件を満たしていることを確認してください。
クラスタ作成時の分離
これは、新しいクラスタの作成に使用されるpvecm createコマンドのlinkXパラメータで可能です。
10.10.10.1/25の静的アドレスで追加のNICをセットアップし、すべてのクラスタ通信をこのインターフェイスで送受信したい場合は、次のように実行します:
pvecm createtest --link0 10.10.10.1
すべてが正しく機能しているかどうかを確認するには、以下を実行してください:
systemctl status corosync
その後、上記の手順に従って、クラスタ・ネットワークを分離したノードを追加します。
クラスタ作成後の分離
既にクラスタを作成していて、クラスタ全体を再構築することなく、その通信を別のネットワークに切り替えたい場合にこの方法が使えます。 この変更により、ノードがcorosyncを再起動して新しいネットワーク上で次々に立ち上がる必要があるため、クラスタのクォーラムが短時間失われる可能性があります。
まず、corosync.confファイルの編集方法を確認してください。 次に、そのファイルを開くと、以下のようなファイルがあるはずです:
logging { debug: off to_syslog: yes } nodelist { node { name: due nodeid: 2 quorum_votes:1 ring0_addr: due } node { name: tre nodeid: 3 quorum_votes:1 ring0_addr: tre } node { name: uno nodeid: 1 quorum_votes:1 ring0_addr: uno } } quorum { provider: corosync_votequorum } totem { cluster_name: testcluster config_version: 3 ip_version: ipv4-6 secauth: on version: 2 interface { linknumber: 0 } } }.
|
|
ringX_addrは実際には corosyncリンクアドレスを指定します。ring "という名前は、古いバージョンの corosync の名残で、後方互換性のために残されています。 |
最初に行うことは、もしまだ表示されていなければ、ノード・エントリーに名前プロパティを追加することです。これらはノード名と一致していなければなりません。
次に、すべてのノードのring0_addrプロパティからすべてのアドレスを新しいアドレスに置き換えます。ここでは、プレーンIPアドレスまたはホスト名を使用できます。ホスト名を使用する場合は、すべてのノードから解決可能であることを確認してください(リンクアドレスの種類も参照してください)。
この例では、クラスタ通信を10.10.10.0/25ネットワークに切り替えたいので、各ノードのring0_addrをそれぞれ変更します。
|
|
全く同じ手順で、他のringX_addr値も変更できます。ただし、一度に1つのリンクアドレスだけを変更することをお勧めします。 |
config_versionプロパティを増やすと、新しいコンフィギュレーション・ファイルは次のようになります:
logging { debug: off to_syslog: yes } nodelist { node { name: due nodeid: 2 quorum_votes:1 ring0_addr: 10.10.10.2 } node { name: tre nodeid: 3 quorum_votes:1 ring0_addr: 10.10.10.3 } node { name: uno nodeid: 1 quorum_votes:1 ring0_addr: 10.10.10.1 } } quorum { provider: corosync_votequorum } totem { cluster_name: testcluster config_version:4
ip_version: ipv4-6
secauth: on
version: 2
interface {
linknumber: 0
}
}
そして、変更した情報がすべて正しいことを最終確認した後、保存し、もう一度、corosync.confファイルの編集セクションに従って、有効にします。
変更はライブで適用されるので、corosyncの再起動は厳密には必要ありません。他の設定も変更した場合や、corosync が文句を言っているのに気づいた場合は、オプションで再起動をトリガーできます。
単一ノードで実行します:
systemctl restart corosync
では、問題がないか確認してください:
systemctl status corosync
corosyncが再び動作し始めたら、他の全てのノードでもcorosyncを再起動してください。 その後、新しいネットワーク上でクラスタ・メンバーシップに1つずつ参加します。
5.7.3.Corosync アドレス
corosyncリンクアドレス(後方互換性のため、corosync.confでは ringX_addrと表記)は、2つの方法で指定できます:
-
IPv4/v6アドレスは直接使用できます。これらは静的で、通常は不用意に変更されることがないため、推奨されます。
-
ホスト名は getaddrinfoを使用して解決されます。つまり、デフォルトでは、IPv6アドレスが利用可能であれば最初に使用されます(man gai.confも参照してください)。特に既存のクラスタをIPv6にアップグレードする場合は、この点に注意してください。
|
|
ホスト名の解決先アドレスは、corosyncやそれが動作しているノードに触れることなく変更することができるため、注意して使用する必要があります。 |
ホスト名を優先する場合は、corosync専用の別個の静的ホスト名を推奨します。また、クラスタ内のすべてのノードがすべてのホスト名を正しく解決できることを確認してください。
Proxmox VE 5.1以降、サポートされている間は、ホスト名は入力時に解決されます。解決されたIPのみが設定に保存されます。
以前のバージョンでクラスタに参加したノードは、corosync.confで未解決のホスト名をまだ使用している可能性があります。上記のように、IPまたは別のホスト名で置き換えるのが良いかもしれません。
5.8.Corosync 冗長性
Corosyncは、統合されたKronosnetレイヤーを介した冗長ネットワークをデフォルトでサポートしています(レガシーなudp/udpuトランスポートではサポートされていません)。これは、pvecmの -linkXパラメータ、GUIのリンク1(クラスタ作成中または新規ノード追加中)、またはcorosync.confで複数のringX_addrを指定することで、複数のリンクアドレスを指定して有効にすることができます。
|
|
有用なフェイルオーバーを提供するためには、すべてのリンクが独自の物理ネットワーク接続上にある必要があります。 |
リンクは優先度の設定に従って使用されます。この優先順位は、corosync.conf の対応する interface セクションでknet_link_priorityを設定するか、pvecm でクラスタを作成するときにpriorityパラメータを使うことで設定できます:
# pvecm create CLUSTERNAME --link0 10.10.10.1,priority=15 --link1 10.20.20.1,priority=20
この場合、優先順位が高いlink1が先に使われることになります。
優先順位が手動で設定されていない場合(または2つのリンクの優先順位が同じ場合)、リンクは番号順に使用され、番号の小さい方が優先順位が高くなります。
すべてのリンクが動作していても、最も優先度の高いリンクだけがコロシンク・トラフィックを見ることになります。リンクの優先度を混在させることはできません。つまり、優先度の異なるリンクは互いに通信することができません。
優先順位の低いリンクは、優先順位の高いリンクがすべて故障しない限りトラフィックが発生しないため、他のタスク(VM、ストレージなど)に使用するネットワークを優先順位の低いリンクに指定することは有効な戦略になります。最悪の場合、待ち時間が長かったり混雑していたりする接続の方が、全く接続しないよりはましかもしれません。
5.8.1.既存のクラスタへの冗長リンクの追加
実行中のコンフィギュレーションに新しいリンクを追加するには、まずcorosync.confファイルの編集方法を確認してください。
次に、nodelistセクションのすべてのノードに新しいringX_addr を追加します。Xはどのノードに追加しても同じで、各ノードで一意であることを確認してください。
最後に、Xを上記で選択したリンク番号に置き換えて、下図のような新しいインターフェイスを トーテムセクションに追加します。
1番のリンクを追加したと仮定すると、新しい設定ファイルは次のようになります:
logging { debug: off to_syslog: yes } nodelist { node { name: due nodeid: 2 quorum_votes:1 ring0_addr: 10.10.10.2 ring1_addr: 10.20.20.2 } node { name: tre nodeid: 3 quorum_votes:1 ring0_addr: 10.10.10.3 ring1_addr: 10.20.20.3 } node { name: uno nodeid: 1 quorum_votes:1 ring0_addr: 10.10.10.1 ring1_addr: 10.20.20.1 } } quorum { provider: corosync_votequorum } totem { cluster_name: testcluster config_version:4 ip_version: ipv4-6 secauth: on version: 2 interface { linknumber: 0 } interface { linknumber: 1 } }.
最後の手順でcorosync.confファイルを編集すると、すぐに新しいリンクが有効になります。再起動は必要ありません。corosyncが新しいリンクを読み込んだかどうかは、次のようにして確認できます:
journalctl -b -u corosync
1つのノードで古いリンクを一時的に切断し、切断中もステータスがオンラインであることを確認して、新しいリンクをテストするのがよいでしょう:
pvecmステータス
健全なクラスタ状態が表示された場合は、新しいリンクが使用されていることを意味します。
5.9.Proxmox VEクラスタにおけるSSHの役割
Proxmox VEは様々な機能にSSHトンネルを利用しています。
-
コンソール/シェルセッションのプロキシ(ノードとゲスト)
ノードAに接続している状態でノードBのシェルを使用する場合、ノードAのターミナルプロキシに接続し、そのターミナルプロキシは非インタラクティブSSHトンネルを介してノードBのログインシェルに接続します。
-
セキュアモードでのVMおよびCTのメモリとローカルストレージのマイグレーション。
移行中、移行情報を交換し、メモリとディスクの内容を転送するために、1つ以上のSSHトンネルが移行元と移行先のノード間で確立されます。
-
ストレージのレプリケーション
5.9.1.SSHセットアップ
Proxmox VEシステムでは、SSH設定/セットアップに以下の変更が行われます:
-
rootユーザーのSSHクライアントがChaCha20よりも AESを優先するように設定されている場合。
-
rootユーザのauthorized_keysファイルは/etc/pve/priv/authorized_keysにリンクされます。
-
sshdはパスワードを使ってrootとしてログインできるように設定されています。
|
|
古いシステムでは、/etc /pve/priv/known_hosts を指すシンボリックリンクとして/etc/ssh/ssh_known_hostsが設定されている場合があります。このシステムはpve-cluster <<INSERT VERSION>> で明示的なホスト鍵の固定に置き換えられ、シンボリックリンクはpvecm updatecerts --unmerge-known-hosts を実行することで解除できます。 |
5.9.2..bashrcと兄弟ファイルの自動実行による落とし穴
カスタム.bashrc や、設定されたシェルによってログイン時に実行される同様のファイル がある場合、ssh はセッションが正常に確立されると、自動的にそれを実行します。これは予期せぬ動作を引き起こす可能性があります。 なぜなら、これらのコマンドは上記のどの操作に対しても root 権限で実行される可能性があるからです。これは問題となる副作用を引き起こす可能性があります!
このようなややこしいことを避けるためには、/root/.bashrcに、セッションが対話型であることを確認するチェックを追加し、その上で.bashrcコマンドを実行することをお勧めします。
このスニペットを.bashrcファイルの先頭に追加してください:
# 副作用を避けるために対話的に実行していない場合は早期終了! case $- in *i*) ;; *) return;; esac
5.10.Corosync 外部投票サポート
このセクションでは、Proxmox VEクラスタに外部ボータを配置する方法について説明します。 このように構成すると、クラスタ通信の安全特性に違反することなく、より多くのノード障害に耐えることができます。
これが機能するためには、2つのサービスが必要です:
-
各Proxmox VEノードで実行されるQDeviceデーモン
-
独立したサーバー上で動作する外部投票デーモン
その結果、小規模なセットアップ(例えば2+1ノード)でも高い可用性を実現できます。
5.10.1.QDevice技術概要
Corosync Quorum Device (QDevice)は、各クラスタノード上で動作するデーモンです。外部で実行されるサードパーティのアービトレーターの決定に基づいて、クラスタのクォーラムサブシステムに設定された投票数を提供します。 このデバイスの主な用途は、標準のクォーラムルールが許容するよりも多くのノード障害をクラスタが維持できるようにすることです。外部デバイスはすべてのノードを見ることができるため、これは安全に行うことができます。 これは、サードパーティの投票を受け取った後、そのノードのセットがクォーラムを(再び)持つことができる場合にのみ行われます。
現在、QDevice Netのみがサードパーティ・アービトレーターとしてサポートされています。これは、ネットワーク経由でパーティションメンバーに到達できる場合、クラスタのパーティションに投票を提供するデーモンです。複数のクラスタをサポートするように設計されており、設定やステートはほとんど不要です。新しいクラスタは動的に処理され、QDeviceを実行しているホスト上に設定ファイルは必要ありません。
外部ホストの唯一の要件は、クラスタへのネットワークアクセスが必要であることと、corosync-qnetdパッケージが利用可能であることです。私たちはDebianベースのホスト用のパッケージを提供していますが、他のLinuxディストリビューションでもそれぞれのパッケージマネージャから利用可能なパッケージがあるはずです。
|
|
corosync自体とは異なり、QDeviceはTCP/IP経由でクラスタに接続します。 デーモンはクラスタのLAN外でも実行でき、corosyncの低レイテンシ要件に制限されません。 |
5.10.2.対応セットアップ
偶数ノード数のクラスタではQDeviceをサポートし、2ノードクラスタではより高い可用性を提供する場合に推奨しています。 奇数ノード数のクラスタでは、現在のところQDeviceの使用を推奨していません。その理由は、クラスタタイプごとにQDeviceが提供する投票数に差があるためです。偶数のクラスタには追加の票が1票入りますが、これは可用性を高めるだけで、QDevice自体に障害が発生した場合は、QDeviceをまったく使用しない場合と同じ状態になるからです。
一方、クラスタサイズが奇数の場合、QDeviceは(N-1)票を提供します。この代替動作は理にかなっています。もしQDeviceに1票しか追加の票がなかったら、クラスタが分裂してしまう可能性があります。このアルゴリズムでは、1つのノード(当然QDevice自体も)を除くすべてのノードが失敗することができます。しかし、これには2つの欠点があります:
-
QNetデーモン自体に障害が発生した場合、他のノードに障害が発生するか、クラスタが直ちにクォーラムを失います。たとえば、15台のノードを持つクラスタでは、クラスタがクォーラムを失う前に7台が故障する可能性があります。この場合、QDeviceはほぼ単一障害点として機能します。
-
1つのノードとQDeviceを除くすべてのノードに障害が発生する可能性があるという事実は、最初は有望に聞こえますが、その結果、HAサービスが大量に復旧し、残りの1つのノードに過負荷がかかる可能性があります。さらに、((N-1)/2)ノード以下しかオンラインでない場合、Cephサーバはサービスの提供を停止します。
欠点とその意味を理解すれば、奇数クラスタのセットアップでこの技術を使うかどうかを自分で決めることができます。
5.10.3.QDevice-Netセットアップ
corosync-qdeviceへの投票を提供するデーモンは、非特権ユーザーとして実行することをお勧めします。Proxmox VEとDebianにはそのように設定されたパッケージが用意されています。 Proxmox VEにQDeviceを安全かつセキュアに統合するには、デーモンとクラスタ間のトラフィックを暗号化する必要があります。
まず、外部サーバーにcorosync-qnetdパッケージをインストールします。
外部# apt install corosync-qnetd
とcorosync-qdeviceパッケージを全クラスタノードにインストールします。
pve# apt install corosync-qdevice
これを実行した後、クラスタ内のすべてのノードがオンラインであることを確認します。
Proxmox VEノードの1つで以下のコマンドを実行して、QDeviceをセットアップできます:
pve# pvecm qdevice setup <QDEVICE-IP> 。
クラスタのSSHキーが自動的にQDeviceにコピーされます。
|
|
この段階で「Host key verification failed.」などのエラーが表示された場合は、pvecm updatecertsを実行すると問題が解決する可能性があります。 |
すべてのステップが正常に完了すると、「完了」と表示されます。でQDeviceがセットアップされたことを確認できます:
pve# pvecm status ... 投票数情報 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 予想投票数です: 3 予想最高得票数3 投票総数: 2 3 定数: 2 フラグ: Quorate Qdevice Membership information ~~~~~~~~~~~~~~~~~ Nodeid Votes Qdevice Name 0x00000001 1 A,V,NMW 192.168.22.180 (local) 0x00000002 1 A,V,NMW 192.168.22.181 0x00000000 1 Qdevice
QDevice Status Flags
上記のように、QDeviceのステータス出力には通常3つの列が含まれます:
-
A/NA: Alive または Not Alive。外部corosync-qnetdデーモンとの通信が機能しているかどうかを示します。
-
V/NV: QDeviceがノードに投票する場合。ノード間のcorosync接続がダウンしているが、両方のノードが外部のcorosync-qnetdデーモンとまだ通信できるようなスプリットブレインの状況では、1つのノードだけが投票権を得ます。
-
MW/NMW: マスターが勝つ(MV)かどうか(NMW)。デフォルトはNMW、
[votequorum_qdevice_master_winsマニュアルページ https://manpages.debian.org/bookworm/libvotequorum-dev/votequorum_qdevice_master_wins.3.en.html]
を参照してください。 -
NR:QDeviceが登録されていません。
|
|
QDeviceがNot Alive(上記の出力でNA)と表示されている場合は、外部サーバーのポート5403(qnetdサーバーのデフォルトポート)がTCP/IP経由で到達可能であることを確認してください! |
5.11.Corosyncコンフィギュレーション
etc/pve/corosync.confファイルはProxmox VEクラスタで中心的な役割を果たします。corosync.confの詳細については、corosync.confのマニュアルページを参照してください:
man corosync.confノード・メンバーシップについては、Proxmox VEが提供するpvecmツールを常に使用する必要があります。 その他の変更については、設定ファイルを手動で編集する必要があるかもしれません。 以下に、これを行うためのベスト・プラクティスのヒントをいくつか示します。
5.11.1.corosync.confを編集します。
corosync.confファイルの編集は必ずしも簡単ではありません。各クラスタ・ノードに2つあり、1つは/etc/pve/corosync.confに、もう1つは/etc/corosync/corosync.confにあります。クラスタ・ファイル・システムにあるものを編集すると、ローカルのものに変更が伝搬しますが、その逆はできません。
ファイルが変更されるとすぐに、設定は自動的に更新されます。 つまり、実行中のcorosyncに統合できる変更は、即座に反映されます。従って、編集中にファイルを保存する際に意図しない変更を引き起こさないように、常にコピーを作成し、代わりにそれを編集する必要があります。
cp /etc/pve/corosync.conf /etc/pve/corosync.conf.new
次に、すべてのProxmox VEノードにプリインストールされているnanoやvim.tinyなどのお気に入りのエディタで設定ファイルを開きます。
|
|
コンフィギュレーションを変更した後は、必ずconfig_version番号をインクリメントしてください。 |
必要な変更を行った後、現在の作業用設定ファイルのコピーをもう1つ作成します。これは、新しい設定の適用に失敗したり、その他の問題が発生した場合のバックアップとして機能します。
cp /etc/pve/corosync.conf /etc/pve/corosync.conf.bak
そして、古い設定ファイルを新しいものに置き換えます:
mv /etc/pve/corosync.conf.new /etc/pve/corosync.conf
変更が自動的に適用されるかどうかは、以下のコマンドで確認できます:
systemctl status corosync journalctl -b -u corosync
変更が自動的に適用されない場合は、corosyncサービスを再起動する必要があります:
systemctl restart corosync
エラーについては、以下のトラブルシューティングのセクションを確認してください。
5.11.2.トラブルシューティング
問題:quorum.expected_votes は に設定する必要があります。
corosyncが失敗し始め、システムログに以下のメッセージが表示された場合:
corosync[1647]: [QUORUM] 定数プロバイダ: corosync_votequorum の初期化に失敗しました: [QUORUM] クォーラムプロバイダ: corosync_votequorum の初期化に失敗しました。 corosync[1647]: [SERV ] サービスエンジン 'corosync_quorum' のロードに失敗しました: [SERV ] サービスエンジン 'corosync_quorum' が 'configuration error: nodelist or quorum.expected_votes must be configured!' の理由でロードに失敗しました。
これは、コンフィギュレーションでcorosyncringX_addrに設定したホスト名が解決できなかったことを意味します。
クォーレートされていないときにコンフィギュレーションを書き込む
クォーラムのないノードで/etc/pve/corosync.conf を変更する必要があり、自分が何をしているかを理解している場合は、これを使用します:
pvecm 予想1これで予想される投票数が1に設定され、クラスタがクォーレートになります。その後、設定を修正したり、最後に動作したバックアップに戻したりすることができます。
corosyncが起動できなくなった場合は、これだけでは不十分です。この場合、/etc/corosync/corosync.confにあるcorosync設定のローカルコピーを編集し、corosyncが再び起動できるようにするのが最善です。スプリットブレインの状況を避けるために、すべてのノードでこのコンフィギュレーションが同じ内容であることを確認してください。
5.12.クラスターコールドスタート
すべてのノードがオフラインの場合、クラスタがクォーレートでないことは明らかです。これは停電後によくあるケースです。
|
|
無停電電源装置("UPS"、"バッテリー・バックアップ "とも呼ばれます)を使ってこのような状態にならないようにするのは、特にHAを望む場合には常に良い考えです。 |
ノードの起動時にpve-guestsサービスが開始され、クォーラムを待ちます。定足数が満たされると、onbootフラグが設定されているすべてのゲストが起動します。
ノードの電源を入れたとき、または停電後に電源が回復したとき、一部のノードが他のノードよりも速く起動する可能性があります。クォーラムに達するまでゲストの起動が遅れることを覚えておいてください。
5.13.ゲストVMID自動選択
新しいゲストを作成する際、ウェブインターフェースは自動的にバックエンドに空いているVMIDを尋ねます。デフォルトの検索範囲は100から1000000(スキーマによって強制される最大許容 VMID より低い) です。
例えば、一時的なVMと手動でVMIDを選択するVMを簡単に分けたい場合などです。 また、安定した長さのVMIDを提供したい場合もあり、その場合は下限を例えば100000に設定することで、より余裕を持たせることができます。
このユースケースに対応するために、datacenter .cfg設定ファイルを使用して、下限、上限、または両方の境界を設定することができます。
|
|
この範囲はnext-id API呼び出しにのみ使用されるので、厳しい制限ではありません。 |
5.14.ゲストマイグレーション
仮想ゲストを他のノードに移行することは、クラスタにおいて便利な機能です。このようなマイグレーションの動作を制御する設定があります。これは設定ファイルdatacenter.cfgを介して、またはAPIまたはコマンドラインパラメータを介して特定のマイグレーションに対して行うことができます。
ゲストがオンラインかオフラインか、またはローカルリソース(ローカルディスクなど)を持っているかどうかの違いがあります。
仮想マシンのマイグレーションの詳細については、QEMU/KVMマイグレーションの章を参照してください。
コンテナ移行の詳細については、コンテナ移行の章を参照してください。
5.14.1.マイグレーション・タイプ
移行タイプは、移行データを暗号化された(安全な) チャネルで送信するか、暗号化されていない(安全でない) チャネルで送信するかを定義します。 移行タイプを安全でないに設定すると、仮想ゲストの RAM コンテンツも暗号化されずに転送されることになり、ゲスト内部の重要なデータ (パスワードや暗号化キーなど) の情報漏えいにつながる可能性があります。
従って、ネットワークを完全に制御できず、誰にも盗聴されていないことを保証できない場合は、安全なチャネルを使用することを強くお勧めします。
|
|
ストレージの移行はこの設定に従いません。現在、ストレージコンテンツは常に安全なチャネルで送信されます。 |
暗号化には多くの計算パワーが必要なため、この設定はパフォーマンスを向上させるためにしばしば安全でない設定に変更されます。最近のシステムはハードウェアでAES暗号化を実装しているため、その影響は小さくなっています。パフォーマンスへの影響は、10Gbps以上の転送が可能な高速ネットワークで特に顕著です。
5.14.2.マイグレーション・ネットワーク
デフォルトでは、Proxmox VEはクラスタ通信が行われるネットワークを使用して移行トラフィックを送信します。これは、機密性の高いクラスタトラフィックが中断される可能性があることと、このネットワークがノードで利用可能な最良の帯域幅を持たない可能性があるため、いずれも最適ではありません。
移行ネットワークパラメータを設定すると、すべての移行トラフィックに専用ネットワークを使用できます。メモリに加えて、これはオフライン移行のストレージトラフィックにも影響します。
移行ネットワークはCIDR表記を使用したネットワークとして設定されます。これには、各ノードに個別のIPアドレスを設定する必要がないという利点があります。Proxmox VEは、CIDR形式で指定されたネットワークから移行先ノードの実アドレスを判断できます。これを有効にするには、各ノードがそれぞれのネットワークで正確に1つのIPを持つようにネットワークを指定する必要があります。
例
ここでは、3つのノードがあり、3つのネットワークがあると仮定します。1つはインターネットとのパブリック通信用、もう1つはクラスタ通信用、そしてもう1つはマイグレーション用の専用ネットワークとして使いたい非常に高速なものです。
このようなセットアップのネットワーク構成は以下のようになります:
iface eno1 inet manual # public network auto vmbr0 iface vmbr0 inet static address 192.X.Y.57/24 gateway 192.X.Y.1 bridge-ports eno1 bridge-stp off bridge-fd 0 # cluster network auto eno2 iface eno2 inet static address 10.1.1.1/24 # fast network auto eno3 iface eno3 inet static address 10.1.2.1/24
ここでは、移行ネットワークとしてネットワーク10.1.2.0/24を使用します。1回の移行では、コマンドラインツールのmigration_networkパラメータを使ってこれを行うことができます:
# qm migrate 106 tre --online --migration_network 10.1.2.0/24
クラスタ内のすべての移行用のデフォルト ネットワークとしてこれを設定するには、/etc/pve/datacenter.cfgファイルの移行プロパティを設定します:
# use dedicated migration network migration: secure,network=10.1.2.0/24
|
|
移行タイプは、/etc/pve/datacenter.cfg で移行ネットワークを設定する際に必ず設定する必要があります。 |
6.Proxmox クラスタファイルシステム (pmxcfs)
Proxmox Clusterファイルシステム("pmxcfs")は、設定ファイルを保存するためのデータベース駆動型のファイルシステムで、corosyncを使用してすべてのクラスタノードにリアルタイムでレプリケートされます。Proxmox VEに関連するすべての設定ファイルを保存するために使用します。
ファイルシステムはすべてのデータをディスク上の永続データベース内に格納しますが、データのコピーはRAMに存在します。このため、最大サイズには制限があり、現在は128メガバイトです。これでも数千台の仮想マシンの設定を保存するには十分です。
このシステムには次のような利点があります:
-
すべての設定をリアルタイムで全ノードにシームレスにレプリケーション
-
VM IDの重複を避けるための強力な一貫性チェックを提供します。
-
ノードがクォーラムを失った場合の読み取り専用
-
全ノードへのcorosyncクラスタ構成の自動更新
-
分散ロック機構付き
6.1.POSIX互換性
ファイルシステムはFUSEをベースにしているので、動作はPOSIXライクです。しかし、いくつかの機能は単に実装されていません:
-
通常のファイルやディレクトリは生成できますが、シンボリックリンクは生成できません。
-
空でないディレクトリの名前は変更できません(この方がVMIDが一意であることを保証しやすくなるからです)。
-
ファイルのパーミッションは変更できません。
-
O_EXCLの作成は(古いNFSのように)アトミックではありませんでした。
-
O_TRUNCの作成はアトミックではありません(FUSEの制限)。
6.2.ファイルアクセス権
すべてのファイルとディレクトリはユーザーrootによって所有され、グループwww-dataを持っています。書き込みパーミッションを持っているのはrootだけですが、グループwww-dataはほとんどのファイルを読むことができます。以下のパス以下のファイルは、rootによってのみアクセス可能です:
/etc/pve/priv//etc/pve/nodes/${NAME}/priv/。
6.3.テクノロジー
クラスタ通信にはCorosync Cluster Engineを、データベースファイルにはSQliteを使用しています。ファイルシステムはFUSEを使用してユーザ空間に実装されています。
6.4.ファイルシステムのレイアウト
ファイルシステムは
/etc/pve
6.4.1.ファイル
authkey.pub |
チケットシステムで使用される公開鍵 |
ceph.conf |
Ceph構成ファイル(注意: /etc/ceph/ceph.confはこれへのシンボリックリンクです) |
corosync.conf |
Corosyncクラスタ設定ファイル(Proxmox VE 4.x以前はcluster.conf) |
datacenter.cfg |
Proxmox VEのデータセンター全体の設定(キーボードレイアウト、プロキシ、...) |
domains.cfg |
Proxmox VE認証ドメイン |
ファイアウォール/クラスタ.fw |
すべてのノードに適用されるファイアウォール設定 |
ファイアウォール/<NAME>.fw |
各ノードのファイアウォール設定 |
ファイアウォール/<VMID>.fw |
VMとコンテナのファイアウォール設定 |
ha/crm_commands |
CRM が現在実行している HA オペレーションを表示します。 |
ha/manager_status |
クラスタ上のHAサービスに関するJSON形式の情報 |
ha/resources.cfg |
高可用性によって管理されるリソースとその現在の状態 |
nodes/<NAME>/config |
ノード固有の設定 |
nodes/<NAME>/lxc/<VMID>.conf |
LXCコンテナのVM構成データ |
nodes/<NAME>/openvz/です。 |
Proxmox VE 4.0以前では、コンテナ設定データに使用されていました。 |
nodes/<NAME>/pve-ssl.key |
pve-ssl.pemのSSL秘密鍵 |
nodes/<NAME>/pve-ssl.pem |
ウェブサーバ用のパブリックSSL証明書(クラスタCAによって署名されたもの) |
nodes/<NAME>/pveproxy-ssl.key |
pveproxy-ssl.pemの SSL 秘密鍵 (オプション) |
nodes/<NAME>/pveproxy-ssl.pem |
ウェブサーバの公開SSL証明書(チェーン)(pve-ssl.pemのオーバーライドはオプション) |
nodes/<NAME>/qemu-server/<VMID>.conf |
KVMのVM設定データ |
priv/authkey.key |
チケットシステムで使用される秘密鍵 |
priv/authorized_keys |
認証用クラスタメンバーのSSHキー |
priv/ceph* |
Ceph認証キーと関連機能 |
priv/known_hosts |
検証用クラスタ・メンバーのSSH鍵 |
priv/lock/* |
クラスタ全体の安全な運用を保証するために、さまざまなサービスで使用されるファイルをロックします。 |
priv/pve-root-ca.key。 |
クラスタCAの秘密鍵 |
priv/shadow.cfg |
PVE Realmユーザー用シャドウパスワードファイル |
priv/storage/<ストレージID>.pw |
ストレージのパスワードがプレーンテキストで格納されています。 |
priv/tfa.cfg |
Base64 エンコードされた二要素認証設定 |
priv/token.cfg |
すべてのAPIトークンの秘密 |
pve-root-ca.pem |
クラスタ CA のパブリック証明書 |
pve-www.key |
CSRF トークンの生成に使用される秘密鍵 |
sdn/* |
ソフトウェア・デファインド・ネットワーキング(SDN)のための共有設定ファイル |
ステータス.cfg |
Proxmox VEの外部メトリクス・サーバー構成 |
storage.cfg |
Proxmox VEのストレージ構成 |
ユーザー設定 |
Proxmox VEのアクセス制御設定(ユーザー/グループ/...) |
仮想ゲスト/cpu-models.conf |
カスタムCPUモデル保存用 |
vzdump.cron |
クラスタ全体のvzdumpバックアップジョブスケジュール |
6.4.2.シンボリックリンク
クラスタ・ファイル・システム内の特定のディレクトリは、ノード独自の設定ファイルを指すためにシンボリックリンクを使用します。したがって、以下の表で指すファイルはクラスタの各ノードで異なるファイルを指します。
ローカル |
ノード/<LOCAL_HOST_NAME |
エルエックス |
nodes/<LOCAL_HOST_NAME>/lxc/ |
オープンベッツ |
nodes/<LOCAL_HOST_NAME>/openvz/(非推奨、近日削除) |
qemu-server |
nodes/<LOCAL_HOST_NAME>/qemu-server/ です。 |
6.5.リカバリー
ハードウェアの問題など、Proxmox VEホストに大きな問題がある場合、pmxcfsデータベースファイル/var/lib/pve-cluster/config.dbをコピーして、新しいProxmox VEホストに移動すると便利です。新しいホスト (何も実行していない状態) では、pve-clusterサービスを停止してconfig.dbファイルを置き換える必要があります (必要なパーミッションは0600)。この後、/etc/hostnameと /etc/hostsを失ったProxmox VEホストに合わせ、再起動して確認します(VM/CTデータも忘れずに)。
6.5.1.クラスタ構成の削除
推奨される方法は、クラスタからノードを削除した後にノードを再インストールすることです。これにより、すべての秘密クラスタ/sshキーと共有設定データが確実に破棄されます。
場合によっては、再インストールせずにノードをローカルモードに戻したいこともあります。
6.5.2.失敗したノードからのゲストの回復/移動
nodes/<NAME>/qemu-server/(VM)およびnodes/<NAME>/lxc/(コンテナ)内のゲスト設定ファイルについて、Proxmox VEはそれぞれのゲストの所有者として含まれるノード<NAME>を認識します。このコンセプトにより、ゲスト設定の同時変更を防止するために、高価なクラスタ全体のロックの代わりにローカルロックを使用できます。
その結果、ゲストの所有ノードに障害が発生した場合(たとえば、停電、フェンシングイベントなど)、(オフラインの)所有ノードのローカルロックが取得できないため、(すべてのディスクが共有ストレージにある場合でも)通常のマイグレーションはできません。Proxmox VEの高可用性スタックには、フェンスで保護されたノードからのゲストの正しい自動回復を保証するために必要な(クラスタ全体の)ロックとウォッチドッグ機能が含まれているため、これはHA管理されたゲストの問題ではありません。
HA管理されていないゲストが共有ディスクのみを持つ場合 (そして、障害ノードでのみ利用可能な他のローカルリソースがない場合)、/etc/pve/内の障害ノードのディレクトリからオンラインノードのディレクトリにゲスト設定ファイルを移動するだけで、手動での復旧が可能です (これにより、ゲストの論理的な所有者または場所が変更されます)。
たとえば、ID100のVMをオフラインのノード1から別のノードnode2にリカバリするには、クラスタの任意のメンバーノードでrootとして次のコマンドを実行します:
mv /etc/pve/nodes/node1/qemu-server/100.conf /etc/pve/nodes/node2/qemu-server/
|
|
このようにゲストを手動でリカバリする前に、障害が発生したソースノードが本当に電源オフ/フェンスされていることを絶対に確認してください。そうしないと、Proxmox VE のロックの原則がmvコマンドによって破られ、予期しない結果を招く可能性があります。 |
|
|
ローカルディスク(またはオフラインノードでのみ利用可能なその他のローカルリソース)を持つゲストは、この方法では復旧できません。障害が発生したノードがクラスタに再参加するのを待つか、バックアップからそのようなゲストをリストアしてください。 |
7.Proxmox VE ストレージ
Proxmox VEのストレージモデルは非常に柔軟です。仮想マシンイメージは、1つまたは複数のローカルストレージ、またはNFSやiSCSI(NAS、SAN)などの共有ストレージに保存できます。制限はなく、好きなだけストレージプールを構成できます。Debian Linux で利用可能なすべてのストレージ技術を使用できます。
VMを共有ストレージに格納する主な利点の1つは、クラスタ内のすべてのノードがVMディスクイメージに直接アクセスできるため、ダウンタイムなしに稼働中のマシンをライブマイグレーションできることです。VMイメージ・データをコピーする必要がないため、ライブ・マイグレーションは非常に高速です。
ストレージライブラリ(libpve-storage-perl パッケージ)は、柔軟なプラグインシステムを 使用し、全てのストレージタイプに共通のインターフェースを提供します。これは、将来さらなるストレージタイプを追加するために簡単に採用できます。
7.1.ストレージの種類
ストレージには基本的に2つのタイプがあります:
- ファイルレベルのストレージ
-
ファイル・レベル・ベースのストレージ技術では、完全な機能を備えた(POSIX)ファイル・システムにアクセスできます。 一般的に、ブロックレベルのストレージ(下記参照)よりも柔軟性が高く、あらゆるタイプのコンテンツを保存できます。ZFSはおそらく最も先進的なシステムで、スナップショットとクローンを完全にサポートしています。
- ブロックレベルのストレージ
-
大きなRAW画像を保存できます。通常、このようなストレージに他のファイル(ISO、バックアップなど)を保存することはできません。RADOSとGlusterFSは分散システムで、ストレージデータを異なるノードに複製します。
| 説明 | プラグインタイプ | レベル | 共有 | スナップ写真 | 安定 |
|---|---|---|---|---|---|
ZFS(ローカル) |
ゼットスプール |
両1 |
いいえ |
はい |
はい |
ディレクトリ |
監督 |
ファイル |
いいえ |
ノーツー |
はい |
ビーティーアールエフエス |
ビットトランフ |
ファイル |
いいえ |
はい |
テクノロジープレビュー |
ネットワークファイルシステム |
エヌエフエス |
ファイル |
はい |
ノーツー |
はい |
CIFS |
cifs |
ファイル |
はい |
ノーツー |
はい |
Proxmoxバックアップ |
pbs |
どちらも |
はい |
該当なし |
はい |
GlusterFS |
グロスタフ |
ファイル |
はい |
ノーツー |
はい |
セフエフエス |
ケフフ |
ファイル |
はい |
はい |
はい |
エルブイエム |
エルブイエム |
ブロック |
ノースリー |
いいえ |
はい |
LVMシン |
ラヴムティン |
ブロック |
いいえ |
はい |
はい |
iSCSI/カーネル |
イッシ |
ブロック |
はい |
いいえ |
はい |
iSCSI/libiscsi |
アイソシダイレクト |
ブロック |
はい |
いいえ |
はい |
Ceph/RBD |
アールブイ |
ブロック |
はい |
はい |
はい |
iSCSI上のZFS |
zfs |
ブロック |
はい |
はい |
はい |
1:VMのディスクイメージは、ブロックデバイス機能を提供するZFSボリューム(zvol)データセットに格納されます。
2: ファイルベースのストレージでは、qcow2フォーマットでスナップショットが可能です。
3: iSCSIまたはFCベースのストレージの上でLVMを使用することが可能です。 そうすることで、LVMストレージを共有することができます。
7.1.1.シンプロビジョニング
多くのストレージと QEMU イメージフォーマットqcow2 はシンプロビジョニングをサポートしています。 シンプロビジョニングを有効にすると、ゲストシステムが実際に使用するブロックのみがストレージに書き込まれます。
例えば、32GBのハードディスクでVMを作成し、ゲストシステムOSをインストールした後、VMのルートファイルシステムに3GBのデータが含まれているとします。 この場合、ゲストVMが32GBのハードディスクを見ていたとしても、ストレージには3GBしか書き込まれません。このように、シンプロビジョニングでは、現在利用可能なストレージブロックよりも大きなディスクイメージを作成することができます。VMのために大きなディスクイメージを作成し、必要性が生じたときに、VMのファイルシステムのサイズを変更することなく、ストレージにディスクを追加することができます。
スナップショット」機能を持つすべてのストレージタイプは、シンプロビジョニングもサポートしています。
|
|
ストレージがいっぱいになると、そのストレージ上のボリュームを使用しているすべてのゲストが IO エラーを受け取ります。これはファイルシステムの不整合を引き起こし、データを破損する可能性があります。そのため、ストレージリソースの過剰なプロビジョニングを避けるか、空き領域を注意深く観察して、このような状態を回避することをお勧めします。 |
7.2.ストレージ構成
Proxmox VEに関連するストレージ設定はすべて/etc/pve/storage.cfgの1つのテキストファイルに保存されます。このファイルは/etc/pve/ 内にあるため、すべてのクラスタノードに自動的に配布されます。そのため、すべてのノードで同じストレージ構成が共有されます。
共有ストレージの構成は、すべてのノードから同じ「共有」ストレージにアクセスできるため、共有ストレージでは完全に理にかなっています。しかし、ローカルストレージタイプにも有効です。この場合、そのようなローカルストレージはすべてのノードで利用できますが、物理的に異なり、まったく異なるコンテンツを持つことができます。
7.2.1.ストレージプール
各ストレージプールは<type>を持ち、<STORAGE_ID>で一意に識別されます。プール構成は次のようになります:
<type>: <STORAGE_ID> <property> <value> <property> ...
<type>: <STORAGE_ID>行がプール定義を開始し、その後にプロパティのリストが続きます。ほとんどのプロパティは値を必要とします。いくつかのプロパティは、妥当なデフォルトを持ち、その場合、値を省略することができます。
具体的には、インストール後のデフォルトのストレージ構成を見てください。local という名前の特別なローカルストレージプールが 1 つ含まれており、これは/var/lib/vzディレクトリを参照し、常に使用可能です。Proxmox VEのインストーラは、インストール時に選択したストレージタイプに応じて、追加のストレージエントリを作成します。
dir: ローカルパス /var/lib/vz content iso,vztmpl,backup # LVM ベースのデフォルトイメージストア lvmthin: local-lvm thinpool data vgname pve content rootdir,images # ZFS ベースのデフォルトイメージストア zfspool: local-zfs pool rpool/data sparse content images,rootdir
|
|
全く同じ基礎となるストレージを指す複数のストレージ構成があることは問題です。このようなエイリアスされたストレージ構成では、2つの異なるボリュームID(volid) がまったく同じディスクイメージを指すことになります。Proxmox VEは、イメージのボリュームIDが一意であることを期待します。エイリアスされたストレージ構成に異なるコンテンツタイプを選択することは問題ありませんが、推奨されません。 |
7.2.2.共通ストレージ・プロパティ
いくつかのストレージ特性は、異なるストレージタイプ間で共通です。
- ノード
-
このストレージが使用可能/アクセス可能なクラスタ・ノード名のリスト。このプロパティを使用して、ストレージへのアクセスを限られたノードに制限できます。
- 内容
-
例えば、仮想ディスクイメージ、CDROM ISOイメージ、コンテナテンプレート、コンテナルートディレクトリなどです。すべてのストレージタイプがすべてのコンテンツタイプをサポートするわけではありません。このプロパティを設定して、このストレージが何に使用されるかを選択できます。
- イメージ
-
QEMU/KVM VMイメージ。
- ルートディレクトリ
-
コンテナデータの保存を許可します。
- vztmpl
-
コンテナテンプレート。
- バックアップ
-
バックアップファイル(vzdump)。
- アイソ
-
ISOイメージ
- スニペット
-
スニペットファイル(ゲストフックスクリプトなど
- シェアード
-
すべてのノード(またはnodesオプションにリストされているすべて)で同じ内容を持つ単一のストレージであることを示します。ローカルストレージの内容が自動的に他のノードからアクセスできるようになるわけではなく、すでに共有されているストレージをそのようにマークするだけです!
- 無効にする
-
このフラグを使うと、ストレージを完全に無効にすることができます。
- マックスファイル
-
非推奨。代わりにprune-backupsを使用してください。VMごとのバックアップ・ファイルの最大数。無制限の場合は0を使用してください。
- バックアップの削除
-
バックアップの保持オプション。詳細については、「バックアップの保持」を参照してください。
- フォーマット
-
デフォルトの画像フォーマット(raw|qcow2|vmdk)
- プレアロケーション
-
ファイルベース ストレージ上のrawおよびqcow2画像に対するプリアロケーションモード(off|metadata|falloc|full)。デフォルトはメタデータで、raw画像ではoffと同じように扱われます。大きなqcow2イメージと組み合わせてネットワークストレージを使用する場合、off を使用するとタイムアウトを回避できます。
|
|
異なるProxmox VEクラスタで同じストレージプールを使用することはお勧めできません。ストレージ操作によってはストレージへの排他的なアクセスが必要なため、適切なロックが必要です。これはクラスタ内では実装されていますが、異なるクラスタ間では機能しません。 |
7.3.ボリューム
ストレージ・データのアドレス指定には特別な記法を使用します。ストレージ・プールからデータを割り当てると、このようなボリューム識別子が返されます。ボリュームは、<STORAGE_ID>の後に、コロンで区切られたストレージタイプに依存するボリューム名で識別されます。有効な<VOLUME_ID>は次のようになります:
local:230/サンプル画像.raw
local:iso/debian-501-amd64-netinst.iso
local:vztmpl/debian-5.0-joomla_1.5.9-1_i386.tar.gz
iscsi-storage:0.0.2.scsi-14f504e46494c4500494b5042546d2d646744372d31616d61
<VOLUME_ID>のファイルシステム・パスを取得するには、次のようにします:
pvesmパス <VOLUME_ID
7.4.コマンドライン・インターフェイスの使用
ストレージ・プールやボリューム識別子の概念に慣れておくことをお勧めしますが、実際の運用では、コマンドラインでそのような低レベルの操作を行う必要はありません。通常、ボリュームの割り当てと削除はVMとコンテナの管理ツールによって行われます。
とはいえ、pvesm(「Proxmox VE Storage Manager」)と呼ばれるコマンドラインツールがあり、一般的なストレージ管理タスクを実行できます。
7.4.1.例
ストレージプールの追加
pvesm add <TYPE> <STORAGE_ID> <OPTIONS> pvesm add dir <STORAGE_ID> --path <PATH> pvesm add nfs <STORAGE_ID> --path <PATH--server <SERVER> --export <EXPORT> pvesm add lvm <STORAGE_ID> --vgname <VGNAME> pvesm add iscsi <STORAGE_ID> --portal <HOST[:PORT]> --ターゲット <TARGET
ストレージプールの無効化
pvesm set <STORAGE_ID> --disable 1
ストレージプールの有効化
pvesm set <STORAGE_ID> --disable 0
ストレージオプションの変更/設定
pvesm set <STORAGE_ID> <OPTIONS> pvesm set <STORAGE_ID> --shared 1 pvesm set local --format qcow2 pvesm set <STORAGE_ID> --content iso
ストレージプールを削除します。これはいかなるデータも削除しませんし、何かを切断したりアンマウントしたりもしません。ストレージ構成を削除するだけです。
pvesm remove <STORAGE_ID> です。
ボリュームの割り当て
pvesm alloc <STORAGE_ID> <VMID> <name> <size> [--format <raw|qcow2>].
ローカル・ストレージに4Gボリュームを割り当てます。<name>に空の文字列を渡すと、名前が自動生成されます。
pvesm alloc local <VMID> '' 4G
全巻無料
pvesm フリー <VOLUME_ID
|
|
これは本当にすべてのボリュームデータを破壊します。 |
保管状況一覧
pvesmステータス
収納内容一覧
pvesm list <STORAGE_ID> [--vmid <VMID>] です。
VMIDで割り当てられたボリュームの一覧
pvesm list <STORAGE_ID> --vmid <VMID
リストisoイメージ
pvesm list <STORAGE_ID> --content iso
コンテナテンプレートの一覧
pvesm list <STORAGE_ID> --content vztmpl
ボリュームのファイルシステムのパスを表示
pvesmパス <VOLUME_ID
ボリュームlocal:103/vm-103-disk-0.qcow2をファイルターゲットにエクスポートします。 これは主にpvesmインポートで内部的に使用されます。 ストリーム形式qcow2+sizeはqcow2形式とは異なるため、エクスポートしたファイルをVMにアタッチすることはできません。 これは他の形式でも同様です。
pvesm export local:103/vm-103-disk-0.qcow2 qcow2+size target --with-snapshots 1
7.5.ディレクトリバックエンド
ストレージプールのタイプ:dir
Proxmox VEは、ローカルディレクトリまたはローカルにマウントされた共有をストレージとして使用できます。ディレクトリはファイルレベルのストレージであるため、仮想ディスクイメージ、コンテナ、テンプレート、ISOイメージ、バックアップファイルなど、あらゆる種類のコンテンツを保存できます。
|
|
標準的なlinuxの/etc/fstabを使って追加ストレージをマウントし、そのマウントポイントにディレクトリストレージを定義することができます。こうすることで、Linuxでサポートされているあらゆるファイルシステムを使用することができます。 |
このバックエンドは、基礎となるディレクトリがPOSIX互換であることを前提としていますが、それ以外のことは想定していません。これは、ストレージ・レベルでスナップショットを作成できないことを意味します。しかし、qcow2ファイル・フォーマットを使用しているVMイメージについては、このフォーマットが内部的にスナップショットをサポートしているため、回避策があります。
|
|
ストレージ・タイプによってはO_DIRECT をサポートしていないものがあり、 そのようなストレージではキャッシュ・モードnone を使用できません。代わりにキャッシュモード・ライトバックを使用してください。 |
異なるコンテンツタイプを異なるサブディレクトリに格納するために、定義済みのディレクトリレイアウトを使用します。このレイアウトは、すべてのファイルレベルストレージバックエンドで使用されます。
| コンテンツタイプ | サブディレクトリ |
|---|---|
VMイメージ |
images/<VMID>/ |
ISOイメージ |
テンプレート/iso/ |
コンテナテンプレート |
テンプレート/キャッシュ |
バックアップファイル |
ダンプ |
スニペット |
スニペット |
7.5.1.コンフィギュレーション
このバックエンドは、一般的なストレージ・プロパティをすべてサポートしており、さらに 2 つのプロパティを追加しています。pathプロパティはディレクトリを指定するために使用します。これはファイルシステムの絶対パスである必要があります。
オプションのcontent-dirsプロパティで、デフォルトのレイアウトを変更できます。このプロパティは、コンマで区切られた識別子のリストで構成されます:
vtype=パス
vtypeはストレージに許可されているコンテンツ・タイプの1つで、pathはストレージのマウントポイントからの相対パスです。
dir: バックアップパス /mnt/backup content backup prune-backups keep-last=7 max-protected-backups 3 content-dirs backup=custom/backup/dir
上記の構成では、backup というストレージ・プールを定義しています。このプールは、VMごとに最大7つの通常バックアップ(keep-last=7)と3つの保護バックアップを保存するために使用できます。バックアップ・ファイルの実際のパスは、/mnt/backup/custom/backup/dir/... です。
7.5.2.ファイルの命名規則
このバックエンドは、VMイメージに対して明確に定義された命名スキームを使用します:
vm-<VMID>-<NAME>.<フォーマット
- <VMID
-
これはオーナーVMを指定します。
- <名前
-
これは空白のない任意の名前(ascii)です。バックエンドはデフォルトでdisk-[N]を使用します。[N]は名前を一意にするために整数で置き換えられます。
- <フォーマット
-
画像フォーマット(raw|qcow2|vmdk)を指定します。
VM テンプレートを作成すると、すべての VM イメージの名前が変更され、読み取り専用になり、クローンのベースイメージとして使用できるようになります:
ベース<VMID>-<NAME>.<FORMAT
|
|
このようなベース画像は、クローン画像を生成するために使用されます。そのため、これらのファイルは読み取り専用で、決して変更されないことが重要です。バックエンドはアクセスモードを0444に変更し、ストレージが対応していればimmutableフラグ(chattr +i)を設定します。 |
7.5.3.ストレージ機能
上述したように、ほとんどのファイルシステムはスナップショットをサポートしていません。この問題を回避するために、このバックエンドはqcow2内部のスナップショット機能を使うことができます。
クローンも同様です。バックエンドはqcow2のベースイメージ機能を使ってクローンを作成します。
| コンテンツの種類 | 画像フォーマット | 共有 | スナップ写真 | クローン |
|---|---|---|---|---|
images rootdir vztmpl iso backup snippets |
生のqcow2 vmdkサブボリューム |
いいえ |
qcow2 |
qcow2 |
7.5.4.例
以下のコマンドを使用して、ローカル・ストレージに4GBのイメージを割り当ててください:
# pvesm alloc local 100 vm-100-disk10.raw 4G Formatting '/var/lib/vz/images/100/vm-100-disk10.raw', fmt=raw size=4294967296 successfully created 'local:100/vm-100-disk10.raw'
|
|
画像名は上記の命名規則に従わなければなりません。 |
実際のファイルシステムのパスは
# pvesm パス local:100/vm-100-disk10.raw /var/lib/vz/images/100/vm-100-disk10.raw
で画像を削除できます:
# pvesm free local:100/vm-100-disk10.raw
7.6.NFSバックエンド
ストレージプールのタイプ:nfs
NFSバックエンドはディレクトリバックエンドをベースにしているため、ほとんどのプロパティを共有しています。ディレクトリのレイアウトやファイルの命名規則も同じです。主な利点は、NFSサーバーのプロパティを直接設定できるので、バックエンドが自動的に共有をマウントできることです。etc/fstab を変更する必要はありません。バックエンドはサーバがオンラインかどうかをテストすることもでき、エクスポートされた共有をサーバに問い合わせる方法も提供します。
7.6.1.コンフィギュレーション
バックエンドは、常に設定される共有フラグを除く、すべての一般的なストレージ・プロパティをサポートしています。さらに、以下のプロパティがNFSサーバの設定に使用されます:
- サーバー
-
サーバーIPまたはDNS名。DNSルックアップの遅延を避けるため、通常はDNS名ではなくIPアドレスを使用することが望ましいです。非常に信頼性の高いDNSサーバーがあるか、ローカルの/etc/hostsファイルにサーバーをリストしている場合を除きます。
- 輸出
-
NFS エクスポート・パス (pvesm nfsscan によってリストされます)。
NFSマウントオプションも設定できます:
- パス
-
ローカルマウントポイント (デフォルトは/mnt/pve/<STORAGE_ID>/)。
- コンテンツディレクトリ
-
デフォルトのディレクトリレイアウトを上書きします。オプション。
- オプション
-
NFS マウントオプション (man nfs を参照)。
nfs: iso-templates パス /mnt/pve/iso-templates サーバー 10.0.0.10 エクスポート /space/iso-templates オプション vers=3,ソフトコンテンツ iso,vztmpl
|
|
NFSリクエストがタイムアウトした後、NFSリクエストはデフォルトで無期限に再試行されます。これは、クライアント側で予期しないハングアップを引き起こす可能性があります。読み取り専用コンテンツの場合は、再試行回数を3回に制限するNFSソフトオプションを検討する価値があります。 |
7.7.CIFSバックエンド
ストレージプールの種類:cifs
CIFSバックエンドはディレクトリバックエンドを拡張し、CIFSマウントの手動設定は不要です。このようなストレージは、Proxmox VE APIまたはWeb UIを介して直接追加することができ、サーバのハートビートチェックやエクスポートされた共有の快適な選択など、すべてのバックエンドの利点を利用することができます。
7.7.1.コンフィギュレーション
バックエンドは、常に設定される共有フラグを除く、すべての一般的なストレージプロパティをサポートしています。さらに、以下の CIFS 特別プロパティが使用可能です:
- サーバー
-
サーバーIPまたはDNS名。必須
|
|
DNSルックアップの遅延を避けるため、通常はDNS名ではなくIPアドレスを使用するのが望ましいです-よほど信頼できるDNSサーバーがあるか、ローカルの/etc/hostsファイルにサーバーをリストしている場合を除きます。 |
- シェア
-
使用するCIFS共有(pvesm scan cifs <address>またはWeb UIで利用可能なものを取得)。必要です。
- ユーザー名
-
CIFS ストレージのユーザー名。オプションで、デフォルトは「guest」です。
- パスワード
-
ユーザーパスワード。rootのみが読み取り可能なファイル(/etc/pve/priv/storage/<STORAGE-ID>.pw) に保存されます。
- ドメイン
-
このストレージのユーザードメイン(ワークグループ)を設定します。オプションです。
- スミバージョン
-
SMBプロトコルのバージョン。オプション、デフォルトは3。SMB1はセキュリティ上の問題からサポートされていません。
- パス
-
ローカルのマウントポイント。オプションで、デフォルトは/mnt/pve/<STORAGE_ID>/です。
- コンテンツディレクトリ
-
デフォルトのディレクトリレイアウトを上書きします。オプション。
- オプション
-
追加のCIFSマウントオプション(man mount.cifsを参照)。一部のオプションは自動的に設定されるため、ここで設定する必要はありません。Proxmox VEは常にソフトオプションを設定します。設定に応じて、これらのオプションは自動的に設定されます:ユーザー名、資格情報、ゲスト、ドメイン、vers。
- サブディレクトリ
-
マウントする共有のサブディレクトリ。オプションで、デフォルトは共有のルートディレクトリです。
cifs: backup path /mnt/pve/backup server 10.0.0.11 share VMData content backup options noserverino,echo_interval=30 username anna smbversion 3 subdir /data
7.7.2.ストレージ機能
CIFSはストレージレベルでのスナップショットをサポートしていません。しかし、スナップショットやクローン機能を使用したい場合は、qcow2バッキングファイルを使用することができます。
| コンテンツの種類 | 画像フォーマット | 共有 | スナップ写真 | クローン |
|---|---|---|---|---|
images rootdir vztmpl iso backup snippets |
生のqcow2 vmdk |
はい |
qcow2 |
qcow2 |
7.7.3.例
でエクスポートされたCIFS共有のリストを取得できます:
# pvesm scan cifs <server> [--username <username>] [--password].
そして、この共有をProxmox VEクラスタ全体のストレージとして追加します:
# pvesm add cifs <storagename> --server <server> --share <share> [--username <username>] [--password].
7.8.Proxmox Backup Server
ストレージ・プール・タイプ:pbs
このバックエンドを使用すると、Proxmox Backup Serverを他のストレージと同様にProxmox VEに直接統合できます。 Proxmox Backupストレージは、Proxmox VE API、CLI、またはWebインターフェイスから直接追加できます。
7.8.1.コンフィギュレーション
バックエンドは、常に設定される共有フラグを除く、すべての一般的なストレージプロパティを サポートしています。さらに、Proxmox Backup Serverには以下の特別なプロパティがあります:
- サーバー
-
サーバーIPまたはDNS名。必須
- ポート
-
デフォルトのポート(8007)ではなく、このポートを使用します。オプション。
- ユーザー名
-
Proxmox Backup Serverストレージのユーザー名。必須です。
|
|
ユーザー名にレルムを追加することを忘れないでください。例えば、root@pamやarchiver@pbsのように。 |
- パスワード
-
ユーザ・パスワード。この値は、/etc/pve/priv/storage/<STORAGE-ID>.pw以下のファイルに保存されます。必須。
- データストア
-
使用するProxmox Backup ServerデータストアのID。必須。
- フィンガープリント
-
Proxmox Backup Server API TLS 証明書のフィンガープリントです。Servers Dashboardまたはproxmox-backup-manager cert infoコマンドで取得できます。自己署名証明書またはホストがサーバーのCAを信頼していないその他の証明書に必要です。
- 暗号キー
-
クライアント側からバックアップデータを暗号化するためのキー。現在、非パスワード保護(キー派生関数(kdf)なし)のみがサポートされています。etc/pve/priv/storage/<STORAGE-ID>.encに保存され、アクセスは root ユーザに制限されます。 proxmox-backup-client key create --kdf none <path>を使用して新しいものを自動生成するにはマジック値autogenを使用してください。 オプションです。
- マスターパブキー
-
バックアップ・タスクの一部としてバックアップ暗号化キーを暗号化するために使用される公開RSAキー。バックアップ暗号化キーの暗号化されたコピーは各バックアップに追加され、リカバリ用にProxmox Backup Serverインスタンスに保存されます。 オプションで、encryption-keyが必要です。
pbs: backup datastore main server enya.proxmox.com content backup fingerprint 09:54:ef:...snip...:88:af:47:fe:4c:3b:cf:8b:26:88:0b:4e:3c:b2 prune-backups keep-all=1 username archiver@pbs encryption-key a9:ee:c8:02:13:...snip...:2d:53:2c:98 master-pubkey 1
7.8.2.ストレージ機能
Proxmox Backup Serverはブロックレベルまたはファイルレベルのバックアップのみをサポートします。Proxmox VEは仮想マシンにブロックレベル、コンテナにファイルレベルを使用します。
| コンテンツの種類 | 画像フォーマット | 共有 | スナップ写真 | クローン |
|---|---|---|---|---|
バックアップ |
該当なし |
はい |
該当なし |
該当なし |
7.8.3.暗号化
オプションとして、GCM モードで AES-256 によるクライアント側の暗号化を設定することができます。 暗号化は、Web インターフェース、またはencryption-keyオプション(上記参照)を使用して CLI で設定できます。キーは、root ユーザのみがアクセスできる/etc/pve/priv/storage/<STORAGE-ID>.enc ファイルに保存されます。
|
|
キーがないと、バックアップにアクセスできなくなります。したがって、キーは順序よく、バックアップするコンテンツとは別の場所に保管する必要があります。たとえば、システム全体をバックアップし、そのシステムのキーを使用することがあります。何らかの理由でシステムにアクセスできなくなり、復元する必要が生じた場合、暗号化キーは壊れたシステムとともに失われてしまうため、復元は不可能です。 |
迅速な災害復旧のために、鍵は安全な場所に保管し、簡単にアクセスできるようにしておくことをお勧めします。そのため、すぐに復旧できるパスワード・マネージャー内に保管するのが最適です。このバックアップとして、キーをUSBフラッシュドライブに保存し、安全な場所に保管してください。こうすることで、どのシステムからも切り離された状態になりますが、それでも緊急時には簡単に復旧できます。最後に、最悪のシナリオに備えて、キーの紙コピーを安全な場所に保管しておくことも検討してください。paperkeyサブコマンドを使えば、QRコード化された鍵のバージョンを作成することができます。次のコマンドは、paperkeyコマンドの出力をテキストファイルに送信し、簡単に印刷できるようにします。
# proxmox-backup-client key paperkey /etc/pve/priv/storage/<STORAGE-ID>.enc --output-format text > qrkey.txt
暗号化バックアップを行うすべてのクライアントが単一のパブリック・マスター・キーを使用するように設定すると、それ以降のすべての暗号化バックアップには、使用されたAES暗号化キーのRSA暗号化コピーが含まれます。対応するプライベート・マスター・キーは、クライアント・システムが利用できなくなった場合でも、AESキーの復元とバックアップの復号化を可能にします。
|
|
マスター・キー・ペアには、通常の暗号化キーと同じ保管ルールが適用されます。秘密鍵のコピーがなければ、復元は不可能です!paperkeyコマンドは、安全な物理的場所に保管するために、秘密鍵のマスター・キーのコピーを作成します。 |
暗号化はクライアント側で管理されるため、暗号化されていないバックアップと暗号化されたバックアップが異なるキーで暗号化されていても、サーバ上の同じデータストアを使用することができます。ただし、異なるキーで暗号化されたバックアップ間の重複排除はできないため、データストアは別々に作成した方がよい場合が多いです。
|
|
例えば、信頼できるネットワークでローカルにサーバを実行している場合など、暗号化によるメリットがない場合は暗号化を使用しないでください。暗号化されていないバックアップからの復旧の方が常に簡単です。 |
7.9.GlusterFSバックエンド
ストレージプールのタイプ:glusterfs
GlusterFSはスケーラブルなネットワークファイルシステムです。モジュラーデザインを採用し、コモディティハードウェア上で動作し、低コストで可用性の高いエンタープライズストレージを提供します。このシステムは数ペタバイトまで拡張可能で、数千のクライアントを扱うことができます。
|
|
ノード/ブリックのクラッシュ後、GlusterFSはデータの一貫性を確認するために完全なrsyncを行います。これは大きなファイルでは非常に時間がかかるため、このバックエンドは大きなVMイメージの保存には適していません。 |
7.9.1.コンフィギュレーション
バックエンドはすべての一般的なストレージプロパティをサポートし、以下のGlusterFS固有のオプションを追加します:
- サーバー
-
GlusterFS volfileサーバのIPまたはDNS名。
- サーバ2
-
バックアップファイルサーバーのIPまたはDNS名。
- ボリューム
-
GlusterFSボリューム。
- 輸送
-
GlusterFSトランスポート:tcp、unixまたはrdma
glusterfs:Gluster server 10.2.3.4 server2 10.2.3.5 volume glustervol content images,iso
7.10.ローカルZFSプールバックエンド
ストレージプールのタイプ:zfspool
このバックエンドを使うと、ローカルのZFSプール(またはプール内のZFSファイルシステム)にアクセスできます。
7.10.1.コンフィギュレーション
バックエンドは、一般的なストレージ・プロパティであるcontent、nodes、disableと、以下のZFS固有のプロパティをサポートしています:
- プール
-
ZFSプール/ファイルシステムを選択します。すべての割り当てはそのプール内で行われます。
- ブロックサイズ
-
ZFSブロックサイズ・パラメータを設定します。
- まばら
-
ZFSシン・プロビジョニングを使用します。スパースボリュームとは、予約がボリュームサイズに等しくないボリュームのことです。
- マウントポイント
-
ZFSプール/ファイルシステムのマウントポイント。デフォルトは/<pool> です。
zfspool: vmdata pool tank/vmdata content rootdir,images sparse
7.10.2.ファイルの命名規則
バックエンドでは、VMイメージに以下のような命名スキームを使用します:
vm-<VMID>-<NAME> // 通常の VM イメージ base-<VMID>-<NAME> // テンプレート VM イメージ (読み取り専用) subvol-<VMID>-<NAME> // サブボリューム (コンテナ用 ZFS ファイルシステム)
- <VMID
-
これはオーナーVMを指定します。
- <名前
-
これは空白のない任意の名前(ascii)です。バックエンドはデフォルトでdisk[N]を使用します。[N]は名前を一意にするために整数で置き換えられます。
7.11.LVMバックエンド
ストレージ・プールのタイプ:lvm
LVMは、ハードディスクとパーティションの上にある軽いソフトウェアレイヤーです。利用可能なディスクスペースをより小さな論理ボリュームに分割するために使用できます。LVMはLinuxで広く使用されており、ハードドライブの管理を容易にします。
もう1つの使用例は、大きなiSCSI LUNの上にLVMを置くことです。そうすれば、iSCSI LUN上のスペースを簡単に管理することができます。iSCSI仕様ではスペース割り当て用の管理インターフェイスが定義されていないため、他の方法では不可能です。
7.11.1.コンフィギュレーション
LVMバックエンドは、一般的なストレージ・プロパティであるcontent、nodes、disableと、以下のLVM固有のプロパティをサポートしています:
- ブグネーム
-
LVMボリューム・グループ名。これは既存のボリュームグループを指す必要があります。
- ベース
-
ベースボリューム。このボリュームは、ストレージにアクセスする前に自動的にアクティブ化されます。これは、LVMボリュームグループがリモートのiSCSIサーバに存在する場合に便利です。
- セーフリムーブ
-
Web UIでは "Wipe Removed Volumes "と呼ばれます。LVの削除時にデータをゼロにする ボリュームを削除する際に、すべてのデータが消去され、後から作成された他のLV(たまたま同じ物理エクステントが割り当てられている)からアクセスできないようにします。これはコストのかかる操作ですが、特定の環境ではセキュリティ対策として必要な場合があります。
- saferemove_throughput
-
ワイプスループット(cstream -tパラメータ値)。
lvm: myspace vgname myspace content rootdir,images
7.11.3.ストレージ機能
LVMは典型的なブロックストレージですが、このバックエンドはスナップショットとクローンをサポートしていません。残念ながら、通常のLVMスナップショットは、スナップショット時間中にボリュームグループ全体のすべての書き込みを妨害するため、かなり非効率的です。
大きな利点は、iSCSI LUNなどの共有ストレージの上で使用できることです。バックエンド自体が適切なクラスタ全体のロックを実装しています。
|
|
新しいLVM-thinバックエンドはスナップショットとクローンを可能にしますが、共有ストレージをサポートしません。 |
| コンテンツの種類 | 画像フォーマット | 共有 | スナップ写真 | クローン |
|---|---|---|---|---|
画像 rootdir |
生 |
可能 |
いいえ |
いいえ |
7.12.LVM シン バックエンド
ストレージ・プールのタイプ:lvmthin
LVMは通常、ボリュームの作成時にブロックを割り当てます。LVMのシンプールは、代わりに、書き込み時にブロックを割り当てます。ボリュームは物理的に利用可能なスペースよりもはるかに大きくなる可能性があるため、この動作はシン・プロビジョニングと呼ばれます。
通常のLVMコマンドラインツールを使用して、LVMシンプールを管理および作成できます(詳細については、man lvmthinを参照してください)。pveというLVMボリュームグループが既にあると仮定すると、以下のコマンドは、dataという新しいLVMシンプール(サイズ100G)を作成します:
lvcreate -L 100G -n data pve lvconvert --type thin-pool pve/data
7.12.1.コンフィギュレーション
LVMシンバックエンドは、一般的なストレージプロパティであるcontent、nodes、disableと、以下のLVM固有のプロパティをサポートします:
- ブグネーム
-
LVMボリューム・グループ名。これは既存のボリュームグループを指す必要があります。
- シンプール
-
LVMシンプールの名前。
lvmthin: local-lvm thinpool data vgname pve content rootdir,images
7.13.Open-iSCSI イニシエータ
ストレージプールの種類:iscsi
iSCSIは、ストレージサーバーへの接続に広く採用されている技術です。ほとんどすべてのストレージベンダーが iSCSI をサポートしています。また、Debian ベースのOpenMediaVault など、オープンソースの iSCSI ターゲットソリューションもあります。
このバックエンドを使用するには、Open-iSCSI(open-iscsi) パッケージをインストールする必要があります。これは Debian の標準パッケージですが、リソースを節約するためにデフォルトではインストールされません。
# apt-get install open-iscsi
低レベルのiscsi管理タスクはiscsiadmツールを使って行うことができます。
7.13.1.コンフィギュレーション
バックエンドは、一般的なストレージ・プロパティであるcontent、nodes、disable、および以下のiSCSI固有のプロパティをサポートしています:
- ポータル
-
iSCSIポータル(IPまたはDNS名とオプションのポート)。
- ターゲット
-
iSCSI ターゲット。
iscsi: mynas portal 10.10.10.1 target iqn.2006-01.openfiler.com:tsn.dcb5aaaddd content none
|
|
iSCSIの上でLVMを使用したい場合は、content noneを設定するのが理にかなっています。そうすることで、iSCSI LUNを直接使用してVMを作成することができなくなります。 |
7.13.2.ファイルの命名規則
iSCSIプロトコルは、データを割り当てたり削除したりするインターフェースを定義していません。代わりに、それはターゲット側で行われる必要があり、ベンダー固有です。ターゲットは単に番号付きLUNとしてエクスポートします。そのため、Proxmox VEのiSCSIボリューム名は、Linuxカーネルから見たLUNに関する情報をエンコードしているだけです。
7.14.ユーザーモードiSCSIバックエンド
ストレージプールの種類:iscidirect
このバックエンドは基本的に Open-iSCSI バックエンドと同じ機能を提供しますが、 実装にはユーザレベルのライブラリを使用します。このバックエンドを使用するにはlibiscsi-binパッケージをインストールする必要があります。
カーネル・ドライバが関与していないので、これはパフォーマンスの最適化と見なすことができることに留意すべきです。しかしこれには、そのようなiSCSI LUNの上でLVMを使用できないという欠点があります。そのため、ストレージサーバー側ですべての領域の割り当てを管理する必要があります。
7.15.Ceph RADOSブロックデバイス (RBD)
ストレージ・プールのタイプ:rbd
Cephは、優れたパフォーマンス、信頼性、スケーラビリティを提供するように設計された分散オブジェクトストアおよびファイルシステムです。RADOSブロックデバイスは豊富な機能を備えたブロックレベルストレージを実装しており、次のような利点があります:
-
シンプロビジョニング
-
サイズ変更可能なボリューム
-
分散および冗長(複数のOSDにストライピング)
-
完全なスナップショットとクローン機能
-
自己治癒
-
単一障害点なし
-
エクサバイトレベルまで拡張可能
-
カーネルおよびユーザー空間の実装が可能
|
|
小規模な導入では、Proxmox VEノードでCephサービスを直接実行することも可能です。最近のハードウェアはCPUパワーとRAMに余裕があるため、ストレージサービスとVMを同じノードで実行できます。 |
7.15.1.コンフィギュレーション
このバックエンドは、一般的なストレージプロパティであるnode、disable、contentと、以下のrbd固有のプロパティをサポートしています:
- モノホスト
-
モニタデーモンのIPのリスト。オプション。CephがProxmox VEクラスタで実行されていない場合にのみ必要です。
- プール
-
Cephプール名。
- ユーザー名
-
RBDユーザID。オプションで、CephがProxmox VEクラスタで実行されていない場合にのみ必要です。 ユーザIDのみを使用することに注意してください。client. "タイプの接頭辞は省略する必要があります。
- クルブド
-
krbdカーネルモジュールを通してradosブロックデバイスへのアクセスを強制します。オプション。
|
|
コンテナは、オプション値とは無関係にkrbdを使用します。 |
rbd: ceph-external monhost 10.1.1.20 10.1.1.21 10.1.1.22 pool ceph-external content images username admin
|
|
rbdユーティリティを使って低レベルの管理作業を行うことができます。 |
7.15.2.認証
|
|
Proxmox VEクラスタにCephがローカルにインストールされている場合、ストレージの追加時に以下が自動的に実行されます。 |
デフォルトで有効になっているcephx認証を使用する場合、外部のCephクラスタからキーリングを提供する必要があります。
CLIでストレージを構成するには、まず、キーリングを含むファイルを利用できるようにする必要があります。1つの方法は、外部CephクラスタからProxmox VEノードの1つにファイルを直接コピーすることです。次の例では、実行するノードの/rootディレクトリにコピーします:
# scp <外部 cephserver>:/etc/ceph/ceph.client.admin.keyring /root/rbd.keyring
次に、pvesmCLIツールを使用して外部RBDストレージを設定します。--keyringパラメータを使用し、コピーしたキーリング・ファイルへのパスを指定します。 たとえば、以下のようになります:
# pvesm add rbd <名前> --monhost "10.1.1.20 10.1.1.21 10.1.1.22" --content images --keyring /root/rbd.keyring
GUIで外部RBDストレージを設定する場合、キーリングをコピーして適切なフィールドに貼り付けることができます。
キーホルダーは
# /etc/pve/priv/ceph/<STORAGE_ID>.keyring
|
|
外部クラスタに接続する場合は、必要な機能のみを持つキーリングを作成することをお勧めします。Cephユーザ管理の詳細については、Cephドキュメントを参照してください。 [Cephユーザ管理]。 |
7.15.3.Cephクライアントの構成(オプション)
外部Cephストレージに接続しても、外部クラスタ上のconfig DBでクライアント固有のオプションを設定できるとは限りません。Cephキーリングの横にceph.confを追加して、ストレージのCephクライアント設定を変更できます。
ceph.confはストレージと同じ名前にする必要があります。
# /etc/pve/priv/ceph/<STORAGE_ID>.conf
可能な設定については、RBD設定リファレンス
[RBD configuration referencehttps://docs.ceph.com/en/quincy/rbd/rbd-config-ref/]
を参照してください。
|
|
これらの設定を軽率に変更しないでください。Proxmox VEは<STORAGE_ID>.confをストレージ設定にマージします。 |
7.16.Ceph Filesystem (CephFS)
ストレージプールのタイプ:cephfs
CephFSはPOSIX準拠のファイルシステムを実装し、Cephストレージクラスタを使用してデータを格納します。CephFSはCephをベースに構築されているため、Cephの特性のほとんどを共有します。これには、冗長性、スケーラビリティ、自己回復、高可用性が含まれます。
|
|
Proxmox VEはCephのセットアップを管理できるため、CephFSストレージの構成が容易になります。最新のハードウェアは多くの処理能力とRAMを備えているため、ストレージサービスとVMを同じノードで実行してもパフォーマンスに大きな影響はありません。 |
CephFSストレージプラグインを使用するには、Debian純正のCephクライアントを置き換えて、Cephリポジトリを追加する必要があります。 追加したら、apt updateを実行し、続いてapt dist-upgradeを実行して、最新のパッケージを取得します。
|
|
他のCephリポジトリが設定されていないことを確認してください。 設定されていない場合、インストールに失敗するか、ノード上にパッケージのバージョンが混在して予期しない動作が発生します。 |
7.16.1.コンフィギュレーション
このバックエンドは、一般的なストレージプロパティのnodes、disable、contentのほか、以下のcephfs固有のプロパティもサポートしています:
- エフエスネーム
-
Ceph FSの名前。
- モノホスト
-
モニタデーモンアドレスのリスト。オプション。CephがProxmox VEクラスタで実行されていない場合にのみ必要です。
- パス
-
ローカルのマウントポイント。オプションで、デフォルトは/mnt/pve/<STORAGE_ID>/です。
- ユーザー名
-
CephユーザID。オプション。CephがProxmox VEクラスタで実行されていない場合にのみ必要で、デフォルトはadminです。
- サブディレクトリ
-
マウントするCephFSサブディレクトリ。オプション、デフォルトは/です。
- ヒューズ
-
カーネルクライアントの代わりにFUSEを介してCephFSにアクセスします。オプション、デフォルトは0。
cephfs: cephfs-external monhost 10.1.1.20 10.1.1.21 10.1.1.22 path /mnt/pve/cephfs-external content backup username admin fs-name cephfs
|
|
cephxが無効になっていない場合は、クライアントの秘密鍵ファイルを設定することを忘れないでください。 |
7.16.2.認証
|
|
Proxmox VEクラスタにCephがローカルにインストールされている場合、ストレージの追加時に以下が自動的に実行されます。 |
デフォルトで有効になっているcephx認証を使用する場合、外部Cephクラスタからシークレットを提供する必要があります。
CLIでストレージを設定するには、まず、シークレットを含むファイルを利用できるようにする必要があります。1つの方法は、外部CephクラスタからProxmox VEノードの1つにファイルを直接コピーすることです。次の例では、実行するノードの/rootディレクトリにコピーします:
# scp <外部 cephserver>:/etc/ceph/cephfs.secret /root/cephfs.secret
次に、pvesmCLIツールを使用して外部RBDストレージを設定します。--keyringパラメータを使用し、コピーしたシークレットファイルへのパスを指定します。 たとえば、以下のようになります:
# pvesm add cephfs <name> --monhost "10.1.1.20 10.1.1.21 10.1.1.22" --content backup --keyring /root/cephfs.secret
GUIで外部RBDストレージを設定する場合、該当するフィールドにシークレットをコピー&ペーストできます。
rbdバックエンドは[client.userid]セクションも含んでいるのとは対照的に、シークレットはキーそのものだけです。
秘密は
# /etc/pve/priv/ceph/<STORAGE_ID>.secret
useridはクラスタにアクセスするように設定されているクライアントIDです。Cephユーザ管理の詳細については、Cephのドキュメントを参照してください。
[cephusermgmt]
# ceph auth get-key client.userid > cephfs.secret
7.17.BTRFSバックエンド
ストレージプールの種類:btrfs
表面的には、このストレージタイプはディレクトリストレージタイプと非常に似ているので、一般的な概要についてはディレクトリバックエンドのセクションを参照してください。
主な違いは、このストレージタイプでは、スナップショットを取得し、スナップショットを保持したままオフラインストレージの移行をサポートするために、ローフォーマットディスクがサブボリュームに配置されることです。
|
|
BTRFSは、ファイルを開く際にO_DIRECTフラグを尊重します。つまり、VMはキャッシュ・モードnoneを使用すべきではなく、そうでなければチェックサム・エラーが発生します。 |
7.17.1.コンフィギュレーション
このバックエンドは、ディレクトリ・ストレージと同様に設定します。それ自身がマウントポイントでもないディレクトリを BTRFS ストレージとして追加する場合は、is_mountpointオプションで実際のマウントポイントを指定することを強くお勧めします。
たとえば、BTRFS ファイルシステムが/mnt/data2にマウントされ、そのpve-storage/サブディレクトリ(スナップショットである可能性があり、これを推奨)をdata2 というストレージプールとして追加する場合、次のエントリを使用できます:
btrfs: data2 パス /mnt/data2/pve-storage コンテンツ rootdir,images is_mountpoint /mnt/data2
7.18.ZFS over ISCSI バックエンド
ストレージプールのタイプ:zfs
このバックエンドは、ストレージとして ZFS プールを持ち、iSCSI ターゲットを実装したリモートマシンにssh 経由でアクセスします。各ゲストディスクに対してZVOLを作成し、iSCSI LUNとしてエクスポートします。このLUNはProxmox VEによってゲストディスクに使用されます。
以下のiSCSIターゲット実装がサポートされています:
-
LIO(リナックス)
-
IET (Linux)
-
ISTGT (FreeBSD)
-
コムスター(ソラリス)
|
|
このプラグインを使用して、通常のストレージアプライアンス/SAN上にZFSプールを作成することはできません。 |
7.18.1.コンフィギュレーション
ZFS over iSCSI プラグインを使用するには、リモートマシン (ターゲット) が Proxmox VE ノードからのssh接続を受け付けるように設定する必要があります。Proxmox VEはターゲットに接続してZVOLを作成し、iSCSI経由でエクスポートします。 認証は/etc/pve/priv/zfs/<target_ip>_id_rsaに保存されたsshキー(パスワード保護なし)を介して行われます。
以下の手順でsshキーを作成し、IP 192.0.2.1のストレージマシンに配布します:
mkdir /etc/pve/priv/zfs ssh-keygen -f /etc/pve/priv/zfs/192.0.2.1_id_rsa ssh-copy-id -i /etc/pve/priv/zfs/192.0.2.1_id_rsa.pub root@192.0.2.1 ssh -i /etc/pve/priv/zfs/192.0.2.1_id_rsa root@192.0.2.1
バックエンドは、一般的なストレージ・プロパティであるcontent、nodes、disable、および以下のZFS over ISCSI固有のプロパティをサポートします:
- プール
-
iSCSIターゲット上のZFSプール/ファイルシステム。すべての割り当てはそのプール内で行われます。
- ポータル
-
iSCSIポータル(IPまたはDNS名とオプションのポート)。
- ターゲット
-
iSCSI ターゲット。
- アイソサイプロバイダ
-
リモートマシンで使用されるiSCSIターゲット実装
- コムスター
-
コムスター・ビューのターゲット・グループ。
- comstar_hg
-
comstarビューのホストグループ。
- lio_tpg
-
Linux LIOターゲット用ターゲットポータルグループ
- ナウライトキャッシュ
-
ターゲットの書き込みキャッシュを無効にします。
- ブロックサイズ
-
ZFSブロックサイズ・パラメータを設定します。
- まばら
-
ZFSシン・プロビジョニングを使用します。スパースボリュームとは、予約がボリュームサイズに等しくないボリュームのことです。
zfs: lio blocksize 4k iscsiprovider LIO pool tank portal 192.0.2.111 target iqn.2003-01.org.linux-iscsi.lio.x8664:sn.xxxxxxxxxx content images lio_tpg tpg1 sparse 1 zfs: solaris blocksize 4k target iqn.2010-08.org.illumos:02:xxxxxxxx-xxxxxx-xxxxxx-xxxxxxxxxx:tank1 pool tank iscsiprovider comstar portal 192.0.2.112 content images zfs: freebsd blocksize 4k target iqn.2007-09.jp.ne.peach.istgt:tank1 pool tank iscsiprovider istgt portal 192.0.2.113 content images zfs: iet blocksize 4k target iqn.2001-04.com.example:tank1 pool tank iscsiprovider iet portal 192.0.2.114 content images
8.ハイパーコンバージドCephクラスタの展開
8.1.はじめに
Proxmox VEは、コンピュートシステムとストレージシステムを統合します。つまり、クラスタ内の同じ物理ノードをコンピューティング(VMやコンテナの処理)とレプリケートされたストレージの両方に使用できます。コンピュートリソースとストレージリソースの従来のサイロを単一のハイパーコンバージドアプライアンスにまとめることができ、個別のストレージネットワーク(SAN)やネットワークアタッチドストレージ(NAS)を介した接続がなくなります。オープンソースのSoftware-Defined StorageプラットフォームであるCephの統合により、Proxmox VEはハイパーバイザーノード上でCephストレージを直接実行・管理する機能を備えています。
Cephは、優れたパフォーマンス、信頼性、スケーラビリティを提供するように設計された分散オブジェクトストアおよびファイルシステムです。
-
CLIとGUIによる簡単なセットアップと管理
-
シン・プロビジョニング
-
スナップショットのサポート
-
セルフヒーリング
-
エクサバイト・レベルまで拡張可能
-
ブロック、ファイルシステム、オブジェクトストレージを提供
-
パフォーマンスと冗長性の特性が異なるプールの設定
-
データは複製されるため、フォールトトレラントです。
-
コモディティハードウェアで動作
-
ハードウェアRAIDコントローラは不要
-
オープンソース
小規模から中規模の導入の場合、RADOS Block Devices (RBD)またはCephFSを使用するCephサーバをProxmox VEクラスタノードに直接インストールできます(Ceph RADOS Block Devices (RBD)を参照)。 最近のハードウェアはCPUパワーとRAMが大きいため、ストレージサービスと仮想ゲストを同じノードで実行できます。
管理を簡素化するために、Proxmox VEは、組み込みのWebインタフェース、またはpvecephコマンドラインツールを使用して、Proxmox VEノードにCephサービスをインストールおよび管理するためのネイティブ統合を提供します。
8.2.用語
-
Cephモニタ(ceph-mon、またはMON)
-
Ceph Manager(ceph-mgr、またはMGS)
-
Cephメタデータサービス(ceph-mds、またはMDS)
-
Ceph Object Storage Daemon (ceph-osd、またはOSD)
|
|
Ceph [Ceph introhttps://docs.ceph.com/en/quincy/start/] 、そのアーキテクチャ [Ceph architecturehttps://docs.ceph.com/en/quincy/architecture/] および語彙 [Ceph glossaryhttps://docs.ceph.com/en/quincy/glossary] に精通することを強くお勧めします。 |
8.3.健全なCephクラスタの推奨事項
ハイパーコンバージドProxmox + Ceph Clusterを構築するには、セットアップに少なくとも3台の(できれば)同一のサーバを使用する必要があります。
Cephのウェブサイトの推奨事項も確認してください。
|
|
以下の推奨事項は、ハードウェアを選択する際のおおまかな指針とお考えください。セットアップをテストし、ヘルスとパフォーマンスを継続的に監視する必要があります。 |
Cephサービスは2つのカテゴリに分類できます:
-
CPUを集中的に使用し、高いCPU基本周波数とマルチコアの恩恵を受けています。このカテゴリのメンバーは以下の通り:
-
オブジェクト・ストレージ・デーモン(OSD)サービス
-
CephFSで使用されるメタデータサービス(MDS)
-
-
複数のCPUコアを必要としない、適度なCPU使用率。これらは
-
モニター(MON)サービス
-
マネージャー(MGR)サービス
-
単純な経験則として、安定した耐久性のあるCephパフォーマンスに必要な最小限のリソースを提供するために、各Cephサービスに少なくとも1つのCPUコア(またはスレッド)を割り当てる必要があります。
たとえば、1つのノードでCephモニタ、Cephマネージャ、および6つのCeph OSDサービスを実行する予定であれば、基本的で安定したパフォーマンスを目標とする場合、8つのCPUコアをCeph専用に確保する必要があります。
OSD の CPU 使用率は、主にディスクの性能に依存することに注意してください。ディスクの IOPS(IO OperationsperSecond) が高ければ高いほど、OSD サービスで使用できる CPU は増えます。 NVMe のような最新のエンタープライズ SSD ディスクでは、100,000 を超える高い IOPS 負荷をサブミリ秒のレイテンシで永続的に維持できるため、各 OSD は複数の CPU スレッドを使用できます。
特にハイパーコンバージドセットアップでは、メモリ消費を注意深く計画し、監視する必要があります。仮想マシンとコンテナのメモリ使用量の予測に加えて、Cephが優れた安定したパフォーマンスを提供するために十分なメモリを利用できることも考慮する必要があります。
経験則として、およそ1TiBのデータに対して、1GiBのメモリがOSDによって使用されます。通常の状態では使用量は少ないかもしれませんが、リカバリー、再バランス、バックフィルなどの重要な操作の際には、最も多く使用されます。 つまり、通常の操作ですでに使用可能なメモリを最大にするのは避けるべきで、むしろ障害に対処するための余裕を残しておく必要があります。
OSDサービス自体にはさらにメモリが必要です。デーモンのCeph BlueStoreバックエンドには、デフォルトで3~5GiBのメモリが必要です(調整可能)。
Cephトラフィック専用に、少なくとも10Gbps以上のネットワーク帯域幅を使用することを推奨します。10Gbps以上のスイッチがない場合、3~5ノードのクラスタにはメッシュ型ネットワークセットアップ
[Full Mesh Network for Cephhttps://pve.proxmox.com/wiki/Full_Mesh_Network_for_Ceph_Server]
もオプションとして使用できます。
|
|
特にリカバリ中のトラフィック量は、同じネットワーク上の他のサービスに干渉し、特にレイテンシに敏感なProxmox VEのcorosyncクラスタスタックが影響を受け、クラスタクォーラムが失われる可能性があります。 Cephトラフィックを専用の物理的に分離されたネットワークに移動すると、corosyncだけでなく、仮想ゲストによって提供されるネットワークサービスでも、このような干渉が回避されます。 |
必要な帯域幅を見積もるには、ディスクの性能を考慮する必要があります。1台のHDDが1Gbのリンクを飽和させることはないかもしれませんが、ノードあたり複数のHDD OSDが10Gbpsを飽和させることもあります。 最新のNVMeアタッチドSSDが使用されている場合、1台で10Gbps以上の帯域幅を飽和させることができます。このような高性能セットアップには、少なくとも25Gpbsを推奨します。また、基盤となるディスクの潜在性能をフルに活用するには、40Gbpsまたは100Gbps以上が必要な場合もあります。
不安な場合は、高性能なセットアップのために3つの(物理的な)独立したネットワークを使用することをお勧めします:
-
Ceph(内部)クラスタトラフィック用の超高帯域幅(25Gbps以上)ネットワーク1つ。
-
cephサーバとcephクライアントのストレージトラフィック間のCeph(パブリック)トラフィック用の高帯域幅(10Gpbs以上)ネットワーク1つ。ニーズによっては、仮想ゲストラフィックとVMライブマイグレーショントラフィックのホストにも使用できます。
-
遅延の影響を受けやすいcorosyncクラスタ通信のために、1つの中帯域幅(1 Gbps)専用。
Cephクラスタのサイズを計画する際は、リカバリ時間を考慮することが重要です。特に小規模なクラスタでは、リカバリに時間がかかる場合があります。リカバリ時間を短縮し、リカバリ中に後続の障害イベントが発生する可能性を最小限に抑えるため、小規模なセットアップではHDDの代わりにSSDを使用することをお勧めします。
一般的に、SSD は回転ディスクよりも多くの IOPS を提供します。この点を考慮すると、コストが高くなることに加えて、クラスベースのプール分離を実装することが理にかなっている場合があります。OSDを高速化するもう1つの方法は、より高速なディスクをジャーナルまたはDB/Write-Ahead-Logデバイスとして使用することです。 より高速なディスクを複数のOSDに使用する場合、OSDとWAL/DB(またはジャーナル)ディスクの適切なバランスを選択する必要があります。
ディスクの種類は別として、Cephはノードごとに均等なサイズで均等な量のディスクを使用するのが最適です。たとえば、1 TBディスク1台と250 GBディスク3台の混在セットアップよりも、各ノード内に500 GBディスク4台の方が優れています。
OSD数とシングルOSD容量のバランスも取る必要があります。容量を増やすと、ストレージ密度を高めることができますが、OSDが1つ故障すると、Cephは一度に多くのデータを回復しなければならなくなります。
Cephはデータオブジェクトの冗長性とディスクへの複数の並列書き込み(OSD)を独自に処理するため、通常、RAIDコントローラを使用してもパフォーマンスや可用性は向上しません。それどころか、Cephはディスク全体を単独で処理するように設計されています。RAIDコントローラはCephのワークロード用に設計されておらず、書き込みやキャッシュのアルゴリズムがCephのものと干渉する可能性があるため、状況が複雑になり、場合によってはパフォーマンスが低下することもあります。
|
|
RAIDコントローラは避けてください。代わりにホストバスアダプタ(HBA)を使用してください。 |
8.4.Cephの初期インストールと構成
8.4.1.ウェブベースのウィザードの使用
Proxmox VEには、Ceph用の使いやすいインストールウィザードが用意されています。クラスタノードの1つをクリックし、メニューツリーのCephセクションに移動します。Cephがまだインストールされていない場合は、インストールを促すプロンプトが表示されます。
ウィザードは複数のセクションに分かれており、Cephを使用するには、各セクションを正常に終了する必要があります。
まず、インストールするCephのバージョンを選択する必要があります。他のノードのものを選ぶか、Cephをインストールする最初のノードであれば最新のものを選びます。
インストールを開始すると、ウィザードがProxmox VEのCephリポジトリから必要なパッケージをすべてダウンロードしてインストールします。
この設定はProxmox VEのクラスタ構成ファイルシステム(pmxcfs)を通じて残りのすべてのクラスタメンバに自動的に配布されるため、このステップはクラスタごとに1回だけ必要です。
コンフィギュレーション・ステップには以下の設定が含まれます:
-
パブリックネットワーク:このネットワークは、パブリックストレージ通信(Ceph RBDバックアップディスクやCephFSマウントを使用する仮想マシンなど)、およびさまざまなCephサービス間の通信に使用されます。この設定は必須です。
CephのトラフィックをProxmox VEクラスタ通信(corosync)、および仮想ゲストの前面(パブリック)ネットワークから分離することを強くお勧めします。そうしないと、Cephの広帯域幅IOトラフィックが他の低レイテンシ依存サービスに干渉する可能性があります。 -
クラスタ・ネットワーク: OSDレプリケーションとハートビートトラフィックも分離するように指定します。この設定はオプションです。
物理的に分離されたネットワークを使用すると、Cephパブリックと仮想ゲストのネットワークが緩和され、Cephのパフォーマンスも大幅に向上するため、推奨されます。
Cephクラスタネットワークを構成し、後で別の物理的に分離されたネットワークに移動できます。
-
レプリカの数:オブジェクトが複製される頻度を定義します。
-
最小レプリカ数:I/Oを完了としてマークするために必要なレプリカの最小数を定義します。
さらに、最初のモニターノードを選択する必要があります。このステップは必須です。
これで完了です。最後のステップとして成功ページが表示され、さらに進む方法が表示されます。これで、システムはCephの使用を開始する準備ができました。 開始するには、追加のモニタ、OSD、および少なくとも1つのプールを作成する必要があります。
この章の残りの部分では、Proxmox VEベースのCephセットアップを最大限に活用する方法を説明します。これには、前述のヒントのほか、新しいCephクラスタに追加すると便利なCephFSなどが含まれます。
8.4.2.CephパッケージのCLIインストール
Webインタフェースで利用可能な推奨のProxmox VE Cephインストールウィザードの代わりに、各ノードで次のCLIコマンドを使用できます:
pvecephインストール
これにより、/etc/apt/sources.list.d/ceph.listにaptパッケージリポジトリが設定され、必要なソフトウェアがインストールされます。
8.4.3.CLIによるCephの初期設定
Proxmox VE Cephインストールウィザードを使用するか(推奨)、1つのノードで以下のコマンドを実行します:
pveceph init --network10.10.10.0/24
これにより、/etc/pve/ceph.confにCeph専用のネットワークを持つ初期構成が作成されます。このファイルは、pmxcfsを使用して、すべてのProxmox VEノードに自動的に配布されます。このコマンドはまた、/etc/ceph/ceph.confにシンボリックリンクを作成し、このファイルを指すようにします。 このため、構成ファイルを指定しなくても、Cephコマンドを単純に実行できます。
8.5.Cephモニタ
Ceph Monitor (MON)
[Ceph Monitorhttps://docs.ceph.com/en/quincy/rados/configuration/mon-config-ref/]
クラスタマップのマスターコピーを維持します。高可用性を実現するには、少なくとも3つのモニタが必要です。インストールウィザードを使用した場合、1つのモニタがすでにインストールされています。クラスタが小規模から中規模であれば、3つ以上のモニタは必要ありません。これ以上必要になるのは、本当に大規模なクラスタだけです。
8.6.Ceph Manager
Managerデーモンはモニタと並行して実行されます。クラスタを監視するためのインタフェースを提供します。Ceph luminousのリリース以降、少なくとも1つのceph-mgr
[Ceph Managerhttps://docs.ceph.com/en/quincy/mgr/]
デーモンが必要です。
8.7.Ceph OSD
8.7.1.OSDの作成
OSD は Proxmox VE の Web インターフェイスまたはpveceph を使用して CLI で作成できます。例えば
pveceph osd create /dev/sd[X].
|
|
少なくとも3台のノードと、ノード間で均等に分散された少なくとも12台のOSDを備えたCephクラスタを推奨します。 |
ディスクが以前(例えばZFSやOSDとして)使用されていた場合は、まずその使用痕跡をすべて消す必要があります。パーティションテーブル、ブートセクタ、その他のOSDの残りを削除するには、以下のコマンドを使用します:
ceph-volume lvm zap /dev/sd[X]--destroy
|
|
上記のコマンドはディスク上のすべてのデータを破壊します! |
Ceph Krakenリリースから、Bluestore
[Ceph Bluestorehttps://ceph.com/community/new-luminous-bluestore/]
という新しいCeph OSDストレージタイプが導入されました。 Ceph Luminous以降、OSD作成時のデフォルトはこれです。
pveceph osd create /dev/sd[X].
OSDに別のDB/WALデバイスを使いたい場合は、-db_devと -wal_devオプションで指定できます。別々に指定しない場合、WALはDBと一緒に配置されます。
pveceph osd create /dev/sd[X]-db_dev /dev/sd[Y]-wal_dev /dev/sd[Z].
それぞれ-db_sizeと-wal_sizeパラメータで直接サイズを指定できます。それらが与えられない場合は、以下の値(順番に)が使われます:
-
Ceph設定からのbluestore_block_{db,wal}_size...
-
... データベース、セクションosd
-
... データベース、セクショングローバル
-
...ファイル、セクションosd
-
... ファイル、セクショングローバル
-
-
OSDサイズの10%(DB)/1%(WAL)
|
|
DBはBlueStoreの内部メタデータを保存し、WALはBlueStoreの内部ジャーナルまたはライトアヘッド・ログです。パフォーマンスを向上させるために、高速なSSDまたはNVRAMを使用することをお勧めします。 |
Ceph Luminous以前は、Ceph OSDのデフォルトのストレージタイプとしてファイルストアが使用されていました。 Ceph Nautilus以降、Proxmox VEではpvecephを使用したOSDの作成がサポートされなくなりました。ファイルストアOSDを作成する場合は、ceph-volumeを直接使用してください。
ceph-volume lvm create --filestore --data /dev/sd[X]--journal /dev/sd[Y]
8.7.2.OSDの破棄
GUIでOSDを削除するには、まずツリービューでProxmox VEノードを選択し、Ceph → OSDパネルに進みます。次に、破棄するOSDを選択し、OUTボタンをクリックします。OSDのステータスがinから outに変わったら、STOPボタンをクリックします。最後に、ステータスがupから downに変わったら、Moreドロップダウン・メニューからDestroyを選択します。
CLIでOSDを削除するには、次のコマンドを実行します。
ceph osd out<ID> systemctlstop ceph-osd@<ID>.service
|
|
最初のコマンドは、データ配布にOSDを含めないようにCephに指示します。2番目のコマンドは、OSDサービスを停止します。この時点まで、データは失われません。 |
次のコマンドはOSDを破棄します。さらにパーティションテーブルを破棄するには、-cleanupオプションを指定します。
pveceph osd destroy<ID>です。|
|
上記のコマンドはディスク上のすべてのデータを破壊します! |
8.8.Cephプール
8.8.1.プールの作成と編集
Proxmox VEホストのコマンドラインまたはWebインタフェースから、Ceph → Poolsでプールを作成および編集できます。
オプションが指定されていない場合、デフォルトで128個のPG、3個のレプリカ、2個のレプリカのmin_sizeを設定します。
|
|
min_sizeを1に設定しないでください。min_sizeが1のレプリケート・プールでは、レプリカが1つしかないときにオブジェクトに対するI/Oが許可されるため、データ損失、不完全なPG、または未発見のオブジェクトが発生する可能性があります。 |
PG-Autoscalerを有効にするか、セットアップに基づいてPG数を計算することをお勧めします。計算式とPG計算機
[PG計算機https://web.archive.org/web/20210301111112/http://ceph.com/pgcalc/]
はオンラインで参照できます。Ceph Nautilus以降では、セットアップ後にPG数
[配置グループhttps://docs.ceph.com/en/quincy/rados/operations/placement-groups/]
を変更できます。
PG autoscaler
[Automated Scalinghttps://docs.ceph.com/en/quincy/rados/operations/placement-groups/#automated-scaling]
は、バックグラウンドでプールの PG カウントを自動的にスケールできます。ターゲット サイズまたはターゲット比率の詳細パラメータを設定すると、PG オートスケーラがより良い決定を下すのに役立ちます。
pveceph pool create< プール名>--add_storages
|
|
プールにストレージを自動的に定義したい場合は、Webインタフェースで「Add as Storage」チェックボックスをチェックしたままにするか、プール作成時にコマンドラインオプション--add_storagesを使用します。 |
プールオプション
- 名称
-
プールの名前。これは一意でなければならず、後から変更することはできません。
- サイズ
-
オブジェクトあたりのレプリカ数。Cephは常にオブジェクトのコピーをこの数にしようとします。デフォルト:3。
- PGオートスケールモード
-
自動 PG スケーリングモード
[autoscaler]
プールの。warn に設定すると、プールの PG 数が最適でない場合に警告メッセージを生成します。デフォルト:warn。 - ストレージとして追加
-
新しいプールを使用して、VM またはコンテナ・ストレージを構成します。 デフォルト:true(作成時にのみ表示されます)。
- 最小サイズ
-
オブジェクトあたりの最小レプリカ数。PGのレプリカ数がこの数未満の場合、Cephはプール上のI/Oを拒否します。デフォルト:2。
- クラッシュルール
-
クラスタ内のオブジェクト配置のマッピングに使用するルール。これらのルールは、クラスタ内でのデータの配置方法を定義します。デバイスベースのルールについては、Ceph CRUSH & デバイスクラスを参照してください。
- # PG数
-
[placement_groups]
プールが最初に持つべき配置グループの数。デフォルト:128。 - 目標比率
-
プールで予想されるデータの比率。PG オートスケーラは、他の比率セットに対する比率を使用します。両方が設定されている場合は、ターゲットサイズよりも優先されます。
- 対象サイズ
-
プールに予想されるデータ量。PGオートスケーラーは、このサイズを使用して最適なPG数を推定します。
- 最低# PG数
-
配置グループの最小数。この設定は、そのプールの PG カウントの下限を微調整するために使用されます。PG オートスケーラーは、この閾値未満の PG をマージしません。
Cephプールの処理の詳細については、Cephプール操作
[Cephプール操作https://docs.ceph.com/en/quincy/rados/operations/pools/]
マニュアルを参照してください。
8.8.2.消去符号化プール
消去符号化(EC)は「順方向エラー訂正」符号の一形態で、ある程度のデータ損失から回復することができます。消去符号化されたプールは、複製されたプールと比較してより多くの使用可能領域を提供できますが、その分パフォーマンスが低下します。
一方、消去コード化プールでは、データはk個のデータチャンクに分割され、さらにm個のコーディング(チェック)チャンクが追加されます。これらのコーディング・チャンクは、データ・チャンクが欠落した場合にデータを再作成するために使用されます。
符号化チャンクの数mは、データを失うことなくOSDを失うことができる数を定義します。保存されるオブジェクトの総量はk + mです。
ECプールの作成
消去符号化(EC)プールはpvecephCLIツールで作成できます。 ECプールを計画するには、レプリケートされたプールとは動作が異なるという事実を考慮する必要があります。
ECプールのデフォルトのmin_sizeは mパラメータによって異なります。m = 1の場合、ECプールのmin_sizeは kになります。m > 1の場合、min_sizeは k + 1になります。Cephのドキュメントでは、保守的なmin_sizeとして k + 2
[Ceph Erasure Coded Pool Recoveryhttps://docs.ceph.com/en/quincy/rados/operations/erasure-code/#erasure-coded-pool-recovery]
を推奨しています。
利用可能なOSDがmin_size未満である場合、プールへのIOは、再び十分なOSDが利用可能になるまでブロックされます。
|
|
消去コード化されたプールを計画するときは、min_sizeに注意してください。そうしないと、IOがブロックされてしまいます。 |
たとえば、k = 2、m = 1のECプールは、size = 3、min_size = 2となり、1つのOSDが故障しても運用を継続します。プールがk = 2、m = 2で構成されている場合、サイズ = 4、min_size = 3となり、1つのOSDが失われた場合でも運用を継続します。
新しいECプールを作成するには、以下のコマンドを実行します:
pveceph pool create<pool-name>--erasure-codingk=2,m=1
オプションのパラメータはfailure-domainと device-classです。プールで使用されるECプロファイル設定を変更する必要がある場合は、新しいプロファイルで新しいプールを作成する必要があります。
これにより、新しいECプールと、RBDオマップとその他のメタデータを格納するために必要な複製プールが作成されます。最終的に、<プール名>-データと<プール名>-メタデータ・プールが作成されます。デフォルトの動作では、一致するストレージ構成も作成されます。この動作が不要な場合、--add_storages 0パラメータを指定することで無効にすることができます。 ストレージ構成を手動で構成する場合、data-poolパラメータを設定する必要があることに注意してください。その場合のみ、ECプールがデータ・オブジェクトの格納に使用されます。例えば
|
|
オプションのパラメータ-size、-min_size、および-crush_ruleは、複製されたメタデータ・プールには使用されますが、消去コード化されたデータ・プールには使用されません。 データ・プールでmin_sizeを変更する必要がある場合は、後で変更できます。sizeおよびcrush_ruleパラメータは、消去コード化されたプールでは変更できません。 |
ECプロファイルをさらにカスタマイズする必要がある場合は、Cephツールで直接作成できます
[Ceph Erasure Code Profilehttps://docs.ceph.com/en/quincy/rados/operations/erasure-code/#erasure-code-profiles]
、profileパラメータで使用するプロファイルを指定します。
例えば
pveceph pool create<pool-name>--erasure-codingprofile=<profile-name >。
8.8.3.プールを破壊する
GUIでプールを破棄するには、ツリービューでノードを選択し、Ceph → Poolsパネルに移動します。破棄するプールを選択し、破棄ボタンをクリックします。プールの破棄を確認するには、プール名を入力する必要があります。
以下のコマンドを実行してプールを破棄します。関連するストレージも削除するには、-remove_storagesを指定します。
pveceph プール破壊<名前|
|
プールの削除はバックグラウンドで実行されるため、時間がかかることがあります。 このプロセスの間、クラスタのデータ使用量が減少していることがわかります。 |
8.8.4.PG オートスケーラー
PGオートスケーラを使用すると、クラスタが各プールに格納されている(予想される)データ量を考慮し、適切なpg_num値を自動的に選択できます。 Ceph Nautilusから使用できます。
調整が有効になる前に、PGオートスケーラー・モジュールをアクティブにする必要がある場合があります。
ceph mgr moduleenablepg_autoscalerオートスケーラーはプールごとに構成され、以下のモードがあります:
|
言い聞かす |
pg_numの推奨値が現在の値と大きく異なる場合、健全性の警告が発行されます。 |
|
オン |
pg_numは自動的に調整され、手動で操作する必要はありません。 |
|
オフ |
自動的なpg_numの調整は行われず、PG数が最適でない場合に警告は発行されません。 |
スケーリング係数は、target_size、target_size_ratio、pg_num_minオプションで将来のデータ保存を容易にするように調整することができます。
|
|
デフォルトでは、オートスケーラは、プールのPGカウントが3倍ずれている場合にチューニングを検討します。これは、データ配置のかなりのシフトにつながり、クラスタに高負荷をもたらす可能性があります。 |
PGオートスケーラの詳細については、Cephのブログ -Nautilusの新機能を参照してください:PGマージとオートチューニング。
8.9.Ceph CRUSH & デバイスクラス
[https://ceph.com/assets/pdfs/weil-crush-sc06.pdf]
(ControlledReplication Under Scalable Hashing)アルゴリズムはCephの基盤です。
CRUSHはどこにデータを保存し、どこから取得するかを計算します。これには、中央のインデックス作成サービスが必要ないという利点があります。CRUSHはプールのOSD、バケット(デバイスの位置)、ルールセット(データの複製)のマップを使用して動作します。
|
|
詳細については、CephドキュメントのCRUSH map [CRUSH maphttps://docs.ceph.com/en/quincy/rados/operations/crush-map/] のセクションを参照してください。 |
このマップは、異なるレプリケーション階層を反映するように変更できます。オブジェクトのレプリカは、望ましい分散を維持したまま分離することができます(障害ドメインなど)。
一般的な構成は、異なるCephプールに異なるクラスのディスクを使用することです。 このため、Cephはルミナスでデバイスクラスを導入し、ルールセットを簡単に生成できるようにしました。
デバイスクラスは、ceph osdツリー出力で確認できます。これらのクラスは独自のルートバケットを表し、以下のコマンドで確認できます。
ceph osd crush tree --show-shadow
上記コマンドの出力例:
ID CLASS WEIGHT TYPE NAME-16nvme2.18307root default~nvme-13nvme0.72769host sumi1~nvme 12nvme0.72769osd.12-14nvme0.72769host sumi2~nvme 13nvme0.72769osd.13-15nvme0.72769host sumi3~nvme 14nvme0.72769osd.14 -17.70544root default-32.56848host sumi112nvme0.72769osd.12-5 2.56848host sumi213nvme0.72769osd.13-7 2.56848host sumi314nvme0.72769osd.14
特定のデバイスクラス上のオブジェクトのみを配布するようにプールに指示するには、まず、デバイスクラス用のルールセットを作成する必要があります:
ceph osd crush rule create-replicated< ルール名><ルート ><障害 ドメイン><クラス
<ルール名 |
プールと接続するためのルール名 (GUI および CLI) |
<ルート |
どのクラッシュルートに属するか(デフォルトのCephルート「default」) |
<失敗ドメイン |
どの障害ドメインでオブジェクトを配布するか (通常はホスト) |
<クラス |
使用するOSDバックアップ・ストアのタイプ(nvme、sd、hddなど) |
ルールがCRUSHマップにあれば、そのルールセットを使用するようにプールに指示することができます。
ceph osdプールセット < プール名>crush_rule<rule-name >。
|
|
プールにすでにオブジェクトが含まれている場合は、それに応じてこれらを移動する必要があります。 セットアップによっては、クラスタに大きなパフォーマンスの影響が生じる可能性があります。別の方法として、新しいプールを作成し、ディスクを個別に移動することができます。 |
8.10.Cephクライアント
前のセクションのセットアップに続いて、Proxmox VEを設定して、このようなプールを使用してVMおよびコンテナイメージを保存できます。GUIを使用して新しいRBDストレージを追加するだけです(Ceph RADOS Block Devices (RBD)の項を参照)。
また、外部Cephクラスタ用の定義済みの場所にキーリングをコピーする必要があります。CephがProxmoxノード自体にインストールされている場合、これは自動的に実行されます。
|
|
ファイル名は<storage_id> + `.keyring で、<storage_id>は/etc/pve/storage.cfg のrbd: の後に記述します。以下の例では、my-ceph-storageが<storage_id> です: |
mkdir /etc/pve/priv/ceph cp /etc/ceph/ceph.client.admin.keyring /etc/pve/priv/ceph/my-ceph-storage.keyring
8.11.CephFS
Cephはファイルシステムも提供し、RADOSブロックデバイスと同じオブジェクトストレージ上で動作します。メタデータ サーバ(MDS)を使用して、RADOSでバックアップされたオブジェクトをファイルとディレクトリにマッピングするため、CephはPOSIX準拠の複製ファイルシステムを提供できます。これにより、クラスタ化された可用性の高い共有ファイルシステムを簡単に構成できます。Cephのメタデータサーバは、ファイルがCephクラスタ全体に均等に分散されることを保証します。その結果、負荷が高い場合でも、NFSなどの従来の共有ファイルシステムアプローチで問題となる、単一のホストを圧倒することはありません。
8.11.1.メタデータ・サーバー (MDS)
CephFSを機能させるには、少なくとも1つのメタデータサーバを構成して実行する必要があります。データシートは、Proxmox VE Web GUIのNode -> CephFSパネルまたはコマンドラインから作成できます:
プベケフ・マッズ・クリエイト
クラスタには複数のメタデータサーバーを作成できますが、デフォルト設定では一度にアクティブにできるのは1つのみです。データシートまたはそのノードが応答しなくなった(またはクラッシュした)場合、別のスタンバイデータシートがアクティブに昇格します。 作成時にhotstandbyパラメータオプションを使用するか、すでに作成済みの場合は設定/追加することで、アクティブとスタンバイのデータシート間のハンドオーバーを高速化できます:
mdsスタンバイ再生 = true
を/etc/pve/ceph.confの各データシートセクションに追加します。この設定を有効にすると、指定されたデータシートはウォーム状態を維持し、アクティブなデータシートにポーリングします。
|
|
このアクティブなポーリングは、システムおよびアクティブなデータシートにさらなるパフォーマンスの影響を与えます。 |
Luminous (12.2.x)以降、複数のアクティブなメタデータサーバーを同時に実行することができますが、これは通常、大量のクライアントが並行して実行されている場合にのみ有用です。そうでない場合、データシートがシステムのボトルネックになることはほとんどありません。この設定を行う場合は、Cephのドキュメントを参照してください。
[Configuring multiple active MDS daemonhttps://docs.ceph.com/en/quincy/cephfs/multimds/]
8.11.2.CephFSの作成
Proxmox VEのCephFSの統合により、Webインタフェース、CLI、または外部APIインタフェースを使用して簡単にCephFSを作成できます。これを動作させるには、いくつかの前提条件が必要です:
-
Cephパッケージのインストール- 以前に実行済みの場合は、最新のシステムで再実行して、CephFS関連パッケージがすべてインストールされるようにします。
これが完了したら、Web GUIのNode -> CephFSパネルまたはコマンドラインツールのpvecephなどを使用して、CephFSを作成できます:
pveceph fs create --pg_num 128 --add-storage
これにより、cephfsという名前のCephFSが作成され、128の配置グループを持つcephfs_dataという名前のデータ用プールと、データプールの配置グループの4分の1(32)を持つcephfs_metadataという名前のメタデータ用プールが使用されます。
セットアップに適した配置グループ番号(pg_num)の詳細については、Proxmox VE managed Ceph poolの章を参照するか、Cephのドキュメントを参照してください。
[placement_groups]
. さらに、--add-storageパラメータを使用すると、CephFSが正常に作成された後、Proxmox VEストレージ構成に追加されます。
8.11.3.CephFSを破棄します。
|
|
CephFSを破棄すると、そのデータはすべて使用できなくなります。これは元に戻せません! |
CephFSを完全かつ優雅に削除するには、次の手順が必要です:
-
すべての非Proxmox VEクライアントを切断します(たとえば、ゲストのCephFSをアンマウントします)。
-
関連するすべてのCephFS Proxmox VEストレージエントリを無効にします(自動的にマウントされないようにします)。
-
破棄するCephFS上のゲスト(ISOなど)から、使用済みのリソースをすべて削除します。
-
を使用して、すべてのクラスタノードのCephFSストレージを手動でアンマウントします。
umount /mnt/pve/<STORAGE-NAME>。
ここで、<STORAGE-NAME>はProxmox VE内のCephFSストレージの名前です。
-
メタデータサーバ(MDS)を停止するか破棄して、そのCephFSでメタデータサーバ(MDS)が実行されていないことを確認します。これは、Webインタフェースまたはコマンドラインインタフェースで実行できます。後者の場合は、次のコマンドを実行します:
pveceph stop --service mds.NAME
を止めるか
pveceph mds destroy NAME
破壊するために。
アクティブなデータシートが停止または削除されると、スタンバイサーバーは自動的にアクティブに昇格することに注意してください。
-
これで、CephFSを次のように破壊できます。
pveceph fs destroy NAME --remove-storages --remove-pools
これにより、基盤となるCephプールが自動的に破棄され、pve設定からストレージが削除されます。
これらの手順の後、CephFSを完全に削除し、他のCephFSインスタンスがある場合は、停止したメタデータサーバを再度起動してスタンバイとして動作させることができます。
8.12.Cephメンテナンス
8.12.1.OSDの交換
Cephで最も一般的なメンテナンスタスクの1つは、OSDのディスクを交換することです。ディスクがすでに故障状態になっている場合は、Destroy OSDの手順を実行します。Cephは、可能であれば残りのOSDにそれらのコピーを再作成します。このリバランシングは、OSD障害が検出されるか、OSDがアクティブに停止されるとすぐに開始されます。
|
|
プールのデフォルトのsize/min_size (3/2)では、「size + 1」ノードが利用可能な場合にのみ復旧が開始されます。この理由は、CephオブジェクトバランサCRUSHのデフォルトがフルノードを`障害ドメイン'としているためです。 |
GUIから機能しているディスクを交換するには、Destroy OSDの手順を実行します。唯一の追加は、OSDを停止して破壊する前に、クラスタがHEALTH_OKを表示するまで待つことです。
コマンドラインでは、以下のコマンドを使用します:
ceph osd out osd.<id>
OSDを安全に削除できるかどうかは、以下のコマンドで確認できます。
ceph osdのsafe-to-destroy osd.<id>。
上記のチェックでOSDを取り外しても安全であることがわかったら、次のコマンドを実行してください:
systemctl stop ceph-osd@<id>.service pveceph osd destroy <id>
古いディスクを新しいディスクと交換し、OSDの作成で説明したのと同じ手順を使用します。
8.12.2.トリム/廃棄
VMやコンテナでfstrim(discard)を定期的に実行するのは良い習慣です。 これにより、ファイルシステムが使用しなくなったデータ・ブロックが解放されます。これにより、データ使用量とリソース負荷が軽減されます。最近のオペレーティング・システムでは、このようなdiscardコマンドを定期的にディスクに発行しています。仮想マシンがディスク廃棄オプションを有効にしていることを確認するだけです。
8.12.3.スクラブ&ディープスクラブ
Cephは配置グループをスクラブすることで、データの整合性を確保します。CephはPG内のすべてのオブジェクトの健全性をチェックします。スクラブには、毎日の安価なメタデータチェックと毎週のディープデータチェックの2つの形式があります。毎週のディープスクラブはオブジェクトを読み取り、チェックサムを使用してデータの整合性を確保します。実行中のスクラブがビジネス(パフォーマンス)ニーズに干渉する場合、スクラブ
[Ceph scrubbing https://docs.ceph.com/en/quincy/rados/configuration/osd-config-ref/#scrubbing]
が実行される時間を調整できます。
8.12.4.Proxmox VE + Ceph HCIクラスタのシャットダウン
Proxmox VE + Cephクラスタ全体をシャットダウンするには、まずすべてのCephクライアントを停止します。これらは主にVMとコンテナになります。Ceph FSまたはインストールされているRADOS GWにアクセスする可能性がある追加のクライアントがある場合は、これらも停止します。 Proxmox VEツールを使用してパワーダウンすると、可用性の高いゲストは状態を停止に切り替えます。
すべてのクライアント、VM、およびコンテナがオフになるか、Cephクラスタにアクセスしなくなったら、Cephクラスタが健全な状態であることを確認します。Web UIまたはCLIのいずれかを使用します:
ceph -s
すべての自己回復アクションを無効にし、CephクラスタのクライアントIOを一時停止するには、Ceph → OSDパネルまたはCLIで次のOSDフラグを有効にします:
ceph osd set noout ceph osd set norecover ceph osd set norebalance ceph osd set nobackfill ceph osd set nodown ceph osd set pause
モニター(MON)のないノードのパワーダウンを開始します。これらのノードのパワーダウンが完了したら、モニターのあるノードのパワーダウンを続けます。
クラスタの電源を入れるときは、モニタ(MON)があるノードを最初に起動します。すべてのノードが稼働したら、すべてのCephサービスが稼働していることを確認してから、OSDフラグを再度設定解除します:
ceph osd unset pause ceph osd unset nodown ceph osd unset nobackfill ceph osd unset norebalance ceph osd unset norecover ceph osd unset noout
これでゲストを起動できます。高可用性ゲストは、電源が入ると状態が開始状態に変わります。
8.13.Cephの監視とトラブルシューティング
Cephツールを使用するか、Proxmox VEAPIを介してステータスにアクセスするかして、Cephデプロイの健全性を最初から継続的に監視することが重要です。
以下のCephコマンドを使用して、クラスタが健全かどうか(HEALTH_OK)、警告があるかどうか(HEALTH_WARN)、またはエラーかどうか(HEALTH_ERR)を確認できます。クラスタが不健全な状態の場合、以下のステータスコマンドを使用すると、現在のイベントの概要と取るべきアクションもわかります。
# 単発出力 pve# ceph -s # ステータス変更を継続的に出力 (CTRL+C で停止) pve# ceph -w
より詳細に表示するには、すべてのCephサービスに/var/log/ceph/下のログファイルがあります。詳細が必要な場合は、ログレベルを調整できます。
[Ceph log and debugginghttps://docs.ceph.com/en/quincy/rados/troubleshooting/log-and-debug/]
。
Ceph troubleshooting
[Ceph troubleshootinghttps://docs.ceph.com/en/quincy/rados/troubleshooting/]
Cephクラスタの詳細については、公式Webサイトを参照してください。
9.ストレージレプリケーション
pvesrコマンドラインツールは Proxmox VE ストレージレプリケーションフレームワークを管理します。ストレージレプリケーションは、ローカルストレージを使用するゲストに冗長性をもたらし、移行時間を短縮します。
ゲストボリュームを別のノードにレプリケートし、共有ストレージを使用せずにすべてのデータを利用できるようにします。レプリケーションでは、スナップショットを使用してネットワーク経由で送信されるトラフィックを最小限に抑えます。そのため、最初の完全同期の後、新しいデータは増分的にしか送信されません。ノードに障害が発生した場合でも、ゲストデータはレプリケートされたノードで利用可能です。
レプリケーションは設定可能な間隔で自動的に行われます。 レプリケーション間隔は最小で1分、最大で週に1回です。これらの間隔を指定するために使われるフォーマットはsystemdカレンダーイベントのサブセットです:
ゲストを複数のターゲットノードにレプリケートすることは可能ですが、同じターゲットノードに2回レプリケートすることはできません。
各レプリケーションの帯域幅は、ストレージやサーバーに過負荷をかけないように制限することができます。
ゲストがすでにレプリケートされているノードに移行する場合は、最後のレプリケーション以降の変更(いわゆるデルタ)のみを転送する必要があります。これにより、必要な時間が大幅に短縮されます。ゲストをレプリケーションターゲットノードに移行すると、レプリケーションの方向が自動的に切り替わります。
例えばVM100は現在nodeA上にあり、nodeBにレプリケートされています。VM100をnodeBにマイグレートすると、自動的にnodeBから nodeAにレプリケートバックされます。
ゲストがレプリケートされていないノードに移行する場合は、ディスクデータ全体を送信する必要があります。移行後、レプリケーションジョブはこのゲストを設定されたノードにレプリケートし続けます。
|
|
高可用性はストレージ・レプリケーションとの組み合わせで許可されますが、最後に同期された時刻とノードが故障した時刻の間に何らかのデータ損失が発生する可能性があります。 |
9.2.スケジュールフォーマット
レプリケーションでは、スケジュールの設定にカレンダーイベントを使用します。
9.3.エラー処理
この状態では、設定されたレプリケーション間隔は一時的に中断されます。失敗したレプリケーションは、30分間隔で繰り返し再試行されます。 これが成功すると、元のスケジュールが再びアクティブになります。
9.3.1.考えられる問題
最も一般的な問題は、以下のリストのとおりです。セットアップによっては別の原因があるかもしれません。
-
ネットワークが機能していません。
-
レプリケーション先のストレージに空き容量がありません。
-
ターゲット・ノードで利用可能な同じストレージIDのストレージ
|
|
レプリケーション・ログを使用すれば、いつでも問題の原因を突き止めることができます。 |
9.3.3.例
ノードAで2つのゲスト(VM 100とCT 200)を実行し、ノードBにレプリケートしているとします。そこで、ゲストを手動でノードBに移行する必要があります。
-
sshでノードBに接続するか、ウェブUIでシェルを開きます。
-
クラスタがクォーレートかどうかをチェックします。
# pvecm ステータス
-
クォーラムがない場合は、まずこれを修正し、ノードを再び操作できるようにすることを強くお勧めします。現時点ではこれが不可能な場合のみ、以下のコマンドを使用して現在のノードにクォーラムを強制することができます:
# pvecm 期待値 1
|
|
期待される票が設定されている場合にクラスタに影響を与えるような変更(ノード、ストレージ、仮想ゲストの追加/削除など)は絶対に避けてください。 重要なゲストを再び稼働させるか、クォーラムの問題そのものを解決する場合にのみ使用してください。 |
-
両方のゲスト設定ファイルを元のノードAからノードBに移動します:
# mv /etc/pve/nodes/A/qemu-server/100.conf /etc/pve/nodes/B/qemu-server/100.conf # mv /etc/pve/nodes/A/lxc/200.conf /etc/pve/nodes/B/lxc/200.conf
-
これでまたゲストをお迎えすることができます:
# qm start 100 # pct start 200
VMIDとノード名はそれぞれの値に置き換えてください。
9.4.ジョブの管理
レプリケーション・パネルは、Web GUIのすべてのレベル(データセンター、ノード、仮想ゲスト)で見つけることができます。どのジョブが表示されるかは、すべてのジョブ、ノード固有のジョブ、ゲスト固有のジョブで異なります。
新しいジョブを追加する際、まだ選択されていない場合はゲストとターゲットノードを指定する必要があります。レプリケーションスケジュールは、デフォルトのすべて15分が不要な場合に設定できます。レプリケーションジョブにレート制限を課すことができます。レート制限は、ストレージの負荷を許容範囲に保つのに役立ちます。
レプリケーション・ジョブは、クラスタ全体で一意のIDによって識別されます。このIDは、ジョブ番号に加えてVMIDで構成されます。 このIDは、CLIツールを使用する場合にのみ手動で指定する必要があります。
9.5.コマンドライン・インターフェースの例
ID 100のゲストに対して、帯域幅を10 Mbps(メガバイト/秒)に制限して5分ごとに実行するレプリケーションジョブを作成します。
# pvesr create-local-job 100-0 pve1 --schedule "*/5" --rate 10
ID100-0 のアクティブなジョブを無効にします。
# pvesr disable 100-0
IDが100-0の非アクティブ化されたジョブを有効にします。
# pvesr enable 100-0
ID100-0のジョブのスケジュール間隔を1時間に1回に変更します。
# pvesr update 100-0 --schedule '*/00'
10.QEMU/KVM 仮想マシン
QEMU (Quick Emulator の略) は、物理コンピュータをエミュレートするオープンソースのハイパーバイザーです。QEMU が実行されているホスト システムから見ると、QEMU はユーザー プログラムであり、パーティション、ファイル、ネットワーク カードなどの多数のローカル リソースにアクセスできます。
エミュレートされたコンピュータで実行されているゲストオペレーティングシステムは、これらのデバイスにアクセスし、実際のハードウェア上で実行されているかのように動作します。たとえば、ISO イメージを QEMU にパラメータとして渡すと、エミュレートされたコンピュータで実行されている OS には、CD ドライブに挿入された本物の CD-ROM が表示されます。
QEMUはARMからSparcまで多種多様なハードウェアをエミュレートできますが、Proxmox VEは32ビットおよび64ビットのPCクローンのエミュレーションにのみ対応しています。PCクローンのエミュレーションは、エミュレートするアーキテクチャがホストアーキテクチャと同じ場合にQEMUを大幅に高速化するプロセッサ拡張機能を利用できるため、最も高速なエミュレーションの1つでもあります。
|
|
KVM(Kernel-based Virtual Machine) という用語に遭遇することがありますが、これは QEMU が Linux KVM モジュールを介して仮想化プロセッサの拡張機能をサポートしながら実行されていることを意味します。Proxmox VEのQEMUは常にKVMモジュールをロードしようとするため、Proxmox VEのコンテキストではQEMUとKVMは同じ意味で使用できます。 |
Proxmox VE 内の QEMU は、ブロックデバイスと PCI デバイスにアクセスするために必要なルートプロセスとして実行されます。
10.1.エミュレートされたデバイスと準仮想化デバイス
QEMU によってエミュレートされる PC ハードウェアには、マザーボード、ネットワークコントローラ、SCSI、IDE、SATA コントローラ、シリアルポート (完全なリストはkvm(1)man ページを参照してください) が含まれます。これらのデバイスはすべて、既存のハードウェアデバイスとまったく同等のソフトウェアデバイスであり、ゲストで実行されている OS に適切なドライバがあれば、実際のハードウェア上で実行されているかのようにデバイスを使用できます。これにより、QEMU は変更されていないオペレーティングシステムを実行できます。
しかし、ハードウェアで実行する予定だったものをソフトウェアで実行すると、ホスト CPU に多くの余分な作業が発生するため、これにはパフォーマンス上のコストが伴います。これを軽減するために、QEMU はゲスト OS に準仮想化デバイスを提示することができます。この場合、ゲスト OS は QEMU 内で実行されていることを認識し、ハイパーバイザーと協調します。
QEMU は virtio 仮想化標準に依存しているため、準仮想化された汎用ディスクコントローラ、準仮想化されたネットワークカード、準仮想化されたシリアルポート、準仮想化された SCSI コントローラなど、準仮想化された virtio デバイスを表示できます。
|
|
可能な限り、virtio デバイスを使用することを強く推奨します。 virtio の汎用ディスクコントローラとエミュレートされた IDE コントローラを比較すると、bonnie++(8) で測定されたシーケンシャル書き込みスループットは 2 倍になります。virtio ネットワークインターフェイスを使用すると、iperf(1) で計測されるように、エミュレートされた Intel E1000 ネットワークカードのスループットの最大 3 倍を提供できます。 [KVM wikihttps://www.linux-kvm.org/page/Using_VirtIO_NIC のこのベンチマークを参照]。 |
10.2.仮想マシン設定
一般的にProxmox VEは、仮想マシン(VM)に対して適切なデフォルトを選択しようとします。パフォーマンスを低下させたり、データを危険にさらす可能性があるため、変更する設定の意味を理解してください。
10.2.1.一般設定
-
ノード: VM が実行される物理サーバー
-
VM ID:VMを識別するためのProxmox VEインストール内で一意の番号です。
-
Name: VM を説明するために使用できる自由形式のテキスト文字列です。
-
リソースプール:VMの論理グループ
10.2.3.システム設定
VMの作成時に、新しいVMの基本的なシステムコンポーネントの一部を変更することができます。使用するディスプレイ・タイプを指定できます。
さらに、SCSI コントローラを変更することもできます。 QEMU ゲストエージェントをインストールする予定の場合、または選択した ISO イメージがすでに出荷され、自動的にインストールされる場合、QEMU エージェントボックスにチェックを入れると、Proxmox VE にその機能を使用してより多くの情報を表示し、いくつかのアクション(シャットダウンやスナップショットなど)をよりインテリジェントに実行できることを知らせることができます。
Proxmox VEでは、SeaBIOSとOVMFという異なるファームウェアとマシンタイプでVMをブートすることができます。ほとんどの場合、PCIe パススルーを使用する場合のみ、デフォルトの SeaBIOS から OVMF に切り替えます。
マシンタイプ
VMのマシン・タイプは、VMの仮想マザーボードのハードウェア・レイアウトを定義します。デフォルトのIntel 440FXか、仮想PCIeバスも提供するQ35チップセットのいずれかを選択できます。 さらに、vIOMMUの実装を選択できます。
マシンバージョン
各マシンタイプは QEMU 内でバージョン管理されており、ある QEMU バイナリは多くのマシンバージョンをサポートしています。新しいバージョンは、新機能のサポート、修正、一般的な改良をもたらすかもしれません。ただし、仮想ハードウェアのプロパティも変更されます。ゲストの観点からの突然の変更を回避し、VM状態の互換性を確保するために、RAMを使用したライブマイグレーションとスナップショットは、新しいQEMUインスタンスで同じマシンバージョンを使用し続けます。
Windows ゲストの場合、Windows は仮想ハードウェアの変更(コールドブート間であっても)に敏感なので、マシンバージョンは作成時に固定されます。例えば、ネットワークデバイスの列挙は異なるマシンバージョンで異なるかもしれません。Linuxのような他のOSは、通常このような変更にうまく対応できます。この場合、デフォルトで最新のマシンバージョンが使用されます。 つまり、再スタート後、QEMU バイナリがサポートする最新のマシンバージョンが使用されます(例えば、QEMU 8.1 がサポートする最新のマシンバージョンは、各マシンタイプでバージョン 8.1 です)。
新しいマシン・バージョンへのアップデート
QEMU では、非常に古いマシンのバージョンが非推奨になる場合があります。例えば、i440fxマシンタイプのバージョン1.4から1.7がそうです。これらのマシンバージョンのサポートは、ある時点で終了することが予想されます。非推奨の警告が表示された場合は、マシンのバージョンを新しいものに変更する必要があります。 最初に必ずバックアップを取り、ゲストがハードウェアを認識する方法の変更に備えるようにしてください。シナリオによっては、特定のドライバの再インストールが必要になるかもしれません。残念ながら、スナップショットのマシンバージョンを変更する方法はないので、スナップショットからデータを救い出すにはスナップショットをロードする必要があります。
10.2.4.ハードディスク
バス/コントローラ
QEMUは、多数のストレージコントローラをエミュレートできます:
|
|
VirtIO SCSIまたはVirtIO Blockコントローラを使用することを強くお勧めします。 |
-
IDEコントローラは、1984年のPC/ATディスクコントローラに遡る設計です。このコントローラが最近の設計に取って代わられたとしても、思いつく限りのすべてのOSがこのコントローラをサポートしているため、2003年以前にリリースされたOSを実行したい場合に最適です。このコントローラには最大4台のデバイスを接続できます。
-
SATA(Serial ATA) コントローラは、2003年に開発されたもので、より近代的な設計となっており、より高いスループットとより多くのデバイスを接続することができます。このコントローラには最大6台のデバイスを接続できます。
-
1985年に設計されたSCSIコントローラは、サーバグレードのハードウェアで一般的で、最大14台のストレージデバイスを接続できます。Proxmox VEはデフォルトでLSI 53C895Aコントローラをエミュレートします。
パフォーマンスを重視する場合は、VirtIO SCSIシングルタイプのSCSIコントローラを使用し、接続ディスクのIOスレッド設定を有効にすることをお勧めします。これは、Proxmox VE 7.3 以降で新しく作成される Linux VM のデフォルトです。各ディスクは独自のVirtIO SCSIコントローラーを持ち、QEMU は専用スレッドでディスクの IO を処理します。Linuxディストリビューションは2012年から、FreeBSDは2014年からこのコントローラをサポートしています。Windows OSの場合は、インストール時にドライバを含む追加のISOを提供する必要があります。
-
VirtIOまたは virtio-blk と呼ばれることが多いVirtIO Blockコントローラーは、古いタイプの準仮想化コントローラーです。機能面では、VirtIO SCSI コントローラーに取って代わられました。
画像フォーマット
各コントローラには多数のエミュレートされたハードディスクが接続され、設定されたストレージに存在するファイルまたはブロックデバイスによってバックアップされます。ストレージタイプの選択により、ハードディスクイメージのフォーマットが決まります。ブロックデバイスを使用するストレージ (LVM、ZFS、Ceph) ではraw ディスクイメージフォーマットが必要ですが、ファイルベースのストレージ (Ext4、NFS、CIFS、GlusterFS) ではraw ディスクイメージフォーマットまたはQEMU イメージフォーマットのいずれかを選択できます。
-
QEMU イメージフォーマットは、スナップショットやディスクイメージのシンプロビジョニングを可能にするコピーオンライトフォーマットです。
-
rawディスクイメージは、ハードディスクのビット単位のイメージで、Linuxでブロックデバイスに対してddコマンドを実行したときに得られるものと似ています。このフォーマットは、それ自体ではシンプロビジョニングやスナップショットをサポートしません。しかし、QEMUイメージ形式よりも最大10%高速になる可能性があります。
[詳細はこのベンチマークを参照してください: https://events.static.linuxfound.org/sites/events/files/slides/CloudOpen2013_Khoa_Huynh_v3.pdf] -
VMwareのイメージフォーマットは、ディスクイメージを他のハイパーバイザーにインポート/エクスポートする場合にのみ意味があります。
キャッシュ・モード
ハードドライブのキャッシュモードを設定すると、ホストシステムがゲストシステムにブロック書き込み完了を通知する方法に影響します。デフォルトのNo cacheは、各ブロックが物理ストレージの書き込みキューに到達したときに書き込みが完了したことをゲストシステムに通知し、ホストのページキャッシュを無視することを意味します。 これは、安全性と速度の良いバランスを提供します。
ProxmoxのVEバックアップマネージャがVMのバックアップを実行するときにディスクをスキップしたい場合は、そのディスクにNo backupオプションを設定します。
Proxmox VE のストレージレプリケーション機構で、レプリケーションジョブの開始時にディスクをスキップさせたい場合は、そのディスクにレプリケーションのスキップオプションを設定します。 Proxmox VE 5.0 のレプリケーションでは、ディスクイメージがzfspool タイプのストレージ上にある必要があるため、VM にレプリケーションが設定されている場合にディスクイメージを他のストレージに追加すると、このディスクイメージのレプリケーションをスキップする必要があります。
トリム/廃棄
ストレージがシンプロビジョニングをサポートしている場合(Proxmox VE ガイドのストレージの章を参照)、ドライブのDiscardオプションを有効にすることができます。Discard が設定され、TRIM が有効なゲスト OS
[TRIM、UNMAP、および discardhttps://en.wikipedia.org/wiki/Trim_%28computing%29]
では、VM のファイルシステムがファイルを削除した後にブロックを未使用としてマークすると、コントローラはこの情報をストレージにリレーし、ストレージはそれに応じてディスクイメージを縮小します。 ゲストがTRIMコマンドを発行できるようにするには、ドライブでDiscardオプションを有効にする必要があります。ゲストオペレーティングシステムによっては、SSD Emulationフラグを設定する必要もあります。VirtIO BlockドライブのDiscardは、Linux Kernel 5.0 以降を使用するゲストでのみサポー トされていることに注意してください。
ドライブを回転ハード ディスクではなくソリッド ステート ドライブとしてゲストに表示する場合は、そのドライブにSSD エミュレーションオプションを設定できます。基盤となるストレージが実際に SSD でバックアップされている必要はなく、この機能はあらゆるタイプの物理メディアで使用できます。SSD エミュレーションは、VirtIO Blockドライブではサポートされていないことに注意してください。
IOスレッド
IO Threadオプションは、VirtIOコントローラでディスクを使用する場合、またはエミュレートされるコントローラのタイプがVirtIO SCSI シングルである場合にSCSIコントローラでディスクを使用する場合にのみ使用できます。IO Threadを有効にすると、QEMU は、メイン イベント ループまたは vCPU スレッドですべての I/O を処理するのではなく、ストレージ コントローラごとに 1 つの I/O スレッドを作成します。利点の 1 つは、基礎となるストレージの作業分散と利用が向上することです。もう 1 つの利点は、メイン スレッドも vCPU スレッドもディスク I/O によってブロックされることがないため、非常に I/O 負荷の高いホスト ワークロードのゲストでの待ち時間 (ハング) が短縮されることです。
10.2.5.CPU
CPUソケットとは、PCマザーボード上にある物理的なスロットのことで、CPUを差し込むことができます。 このCPUには、独立した処理ユニットであるコアを1つまたは複数含めることができます。CPUソケットが1つで4コアか、2つで2コアかは、性能の観点からはほとんど関係ありません。 しかし、ソフトウェアのライセンスによっては、マシンのソケット数に依存するものがあり、その場合は、ライセンスで許可されているソケット数に設定するのが理にかなっています。
仮想 CPU (コアとソケット) の数を増やすと、通常はパフォーマンスが向上しますが、これは VM の用途に大きく依存します。 仮想 CPU を追加するごとに、QEMU はホスト・システム上に新しい実行スレッドを作成するためです。VM のワークロードについて確信が持てない場合は、通常、合計コア数を 2 に設定するのが安全です。
|
|
すべての VM の全体のコア数がサーバーのコア数よりも大きい場合(例えば、8 コアしかないマシンにそれぞれ 4 コア (= 合計 16 コア) の VM を 4 つ配置する場合)は、まったく問題ありません。この場合、ホスト・システムは、標準的なマルチスレッド・アプリケーションを実行する場合と同様に、QEMU の実行スレッドをサーバー・コア間でバランスさせます。しかし、Proxmox VEは、物理的に利用可能な数よりも多くの仮想CPUコアでVMを起動することを防ぎます。 |
リソース制限
クプリミット
仮想コア数に加えて、VMで使用可能な「ホストCPU時間」の合計もcpulimitオプションで設定できます。これはCPU時間をパーセントで表した浮動小数点値で、1.0は 100%、2.5は250%などに相当します。1つのプロセスが1つのコアを完全に使用する場合、CPU時間の使用率は100%になります。4つのコアを持つVMがすべてのコアをフルに使用した場合、理論上は400%の使用率になります。QEMUはvCPUコア以外にVMペリフェラル用の追加スレッドを持つことができるため、実際の使用率はさらに高くなる可能性があります。
この設定は、VMがいくつかのプロセスを並行して実行しているために複数のvCPUを持つ必要があるが、VM全体としてはすべてのvCPUを同時に100%で実行することはできない場合に役立ちます。
例えば、8つの仮想CPUを持つことで恩恵を受けられる仮想マシンがあるとして、その仮想マシンが8つのコアをフル稼働させることはできません。これを解決するには、cpulimitを 4.0(=400%)に設定します。これは、VMが8つのプロセスを同時に実行して8つすべての仮想CPUを完全に利用する場合、各vCPUは物理コアから最大50%のCPU時間を受け取ることを意味します。ただし、VMのワークロードが4つの仮想CPUしかフルに使用しない場合でも、物理コアから最大100%のCPU時間を受け取ることができ、合計で400%になります。
|
|
VMは、その構成によっては、ネットワーキングやIOオペレーション、ライブマイグレーションなど、追加のスレッドを使用することができます。そのため、VMは仮想CPUが使用できる以上のCPU時間を使用するように表示されることがあります。VMが割り当てられたvCPUよりも多くのCPU時間を使用しないようにするには、cpulimitを総コア数と同じ値に設定します。 |
CPU
cpuunitsオプション(最近では CPU shares または CPU weight と呼ばれることもあります)を使用すると、VM が他の実行中の VM と比較してどれだけの CPU 時間を取得するかを制御できます。これは相対的な重みで、デフォルトは100(またはホストがレガシーcgroup v1を使用している場合は1024)です。これを増やすと、VMはスケジューラによって、より低いウェイトの他のVMよりも優先されます。
たとえば、VM 100がデフォルトの100に設定され、VM 200が200に変更された場合、後者のVM 200は最初のVM 100の2倍のCPU帯域幅を受け取ることになります。
より詳しい情報はman systemd.resource-control を見てください。ここではCPUQuotaがcpulimit に、CPUWeightがcpuunits の設定に対応しています。参考文献や実装の詳細については Notes セクションを参照してください。
親和性
アフィニティ・オプションを使用すると、VMのvCPUの実行に使用する物理CPUコアを指定できます。I/OなどのペリフェラルVMプロセスは、この設定の影響を受けません。CPUアフィニティはセキュリティ機能ではないことに注意してください。
CPUアフィニティを強制することは、場合によっては意味がありますが、複雑さとメンテナンスの手間の増加を伴います。例えば、後からVMを追加したい場合や、VMをCPUコアの少ないノードに移行したい場合などです。また、一部のCPUがフルに使用され、他のCPUがほとんどアイドル状態である場合、非同期でシステムのパフォーマンスが制限されやすくなります。
アフィニティは tasksetCLIツールで設定します。これはman cpuset のList Formatにあるホスト CPU 番号 (lscpu を参照) を受け入れます。このASCII 10進数リストには、数値だけでなく数値範囲も含めることができます。例えば、アフィニティ0-1,8-11(拡張0,1,8,9,10,11)は、VMがこれら6つの特定のホストコアのみで実行されるようにします。
CPUタイプ
QEMU は、486 から最新の Xeon プロセッサまで、さまざまな種類の CPUをエミュレートできます。プロセッサの世代が新しくなるごとに、ハードウェア アシスト 3d レンダリング、乱数生成、メモリ保護などの新機能が追加されます。また、現在の世代は、バグやセキュリティの修正を伴うマイクロコードアップデートによってアップグレードできます。
通常、ホスト・システムのCPUに近いプロセッサ・タイプをVMに選択する必要があります。これは、ホストのCPU機能(CPUフラグとも呼ばれます)がVMで利用できることを意味します。完全に一致させたい場合は、CPUタイプをホストに設定すると、VMはホスト・システムと全く同じCPUフラグを持つことになります。
しかし、これには欠点があります。異なるホスト間でVMのライブマイグレーションを行いたい場合、VMは異なるCPUタイプや異なるマイクロコードバージョンを持つ新しいシステム上で終了するかもしれません。 ゲストに渡されたCPUフラグが欠落している場合、QEMUプロセスは停止します。これを解決するために、QEMUには独自の仮想CPUタイプがあり、Proxmox VEはデフォルトでこれを使用します。
バックエンドのデフォルトはkvm64で、基本的にすべてのx86_64ホストCPUで動作します。新しいVMを作成する際のUIのデフォルトはx86-64-v2-AESで、Intelの場合はWestmereから始まるホストCPU、AMDの場合は少なくとも第4世代のOpteronが必要です。
要するに:
ライブマイグレーションにこだわらない場合や、すべてのノードが同じCPUと同じマイクロコードバージョンを持つ均質なクラスタの場合は、CPUタイプをホストに設定してください。
ライブマイグレーションとセキュリティを重視し、Intel CPUのみ、またはAMD CPUのみを使用している場合は、クラスタのCPUの世代が最も低いモデルを選択してください。
セキュリティなしのライブマイグレーションを重視する場合や、Intel/AMDクラスタが混在している場合は、互換性の最も低い仮想QEMU CPUタイプを選択してください。
|
|
IntelとAMDのホストCPU間のライブマイグレーションは、動作保証がありません。 |
QEMUで定義されているAMDとIntelのCPUタイプの一覧」も参照してください。
QEMU CPU タイプ
QEMUは、IntelとAMDの両方のホストCPUと互換性のある仮想CPUタイプも提供しています。
|
|
仮想CPUタイプのSpectre脆弱性を緩和するには、関連するCPUフラグを追加する必要があります。 |
歴史的に、Proxmox VEのCPUモデルはkvm64で、Pentium 4レベルのCPUフラグが有効になっていました。
2020年夏、AMD、Intel、Red Hat、SUSEは共同で、x86-64ベースラインの上に3つのx86-64マイクロアーキテクチャ・レベルを定義し、モダン・フラグを有効にしました。詳細については、x86-64-ABI仕様を参照してください。
|
|
CentOS 9のような新しいディストリビューションは、x86-64-v2フラグを最低要件としてビルドされています。 |
-
kvm64 (x86-64-v1):Intel CPU >= Pentium 4、AMD CPU >= Phenomに対応。
-
x86-64-v2:Intel CPU >= Nehalem, AMD CPU >= Opteron_G3 に対応。x86-64-v1 と比較して CPU フラグを追加:+cx16,+lahf-lm,+popcnt,+pni,+sse4.1,+sse4.2,+ssse3.
-
x86-64-v2-AES:Intel CPU >= Westmere, AMD CPU >= Opteron_G4に対応。x86-64-v2と比較してCPUフラグを追加:+aes。
-
x86-64-v3: Intel CPU >= Broadwell, AMD CPU >= EPYC に対応。x86-64-v2-AESと比較してCPUフラグを追加:+avx、+avx2 、+bmi1 、+bmi2、+f16c、+fma、+movbe、+xsave。
-
x86-64-v4: Intel CPU >= Skylake, AMD CPU >= EPYC v4 Genoa と互換性があります。x86-64-v3 と比較して CPU フラグが追加されました:+avx512f,+avx512bw,+avx512cd,+avx512dq,+avx512vl.
カスタムCPUタイプ
設定可能な機能セットを持つカスタム CPU タイプを指定できます。これらは、管理者が設定ファイル/etc/pve/virtual-guest/cpu-models.confで管理します。フォーマットの詳細については、man cpu-models.confを参照してください。
指定されたカスタムタイプは、/nodesの Sys.Audit権限を持つユーザであれば誰でも選択できます。CLIまたはAPIを介してVMにカスタムCPUタイプを設定する場合、名前の前にcustom-を付ける必要があります。
Meltdown / Spectre 関連 CPU フラグ
MeltdownおよびSpectre脆弱性
[Meltdown Attackhttps://meltdownattack.com/]
に関連するCPUフラグがいくつかありますが、選択したVMのCPUタイプがデフォルトですでに有効になっている場合を除き、手動で設定する必要があります。
これらのCPUフラグを使用するには、2つの条件を満たす必要があります:
-
ホスト CPU がその機能をサポートし、それをゲストの仮想 CPU に伝える必要があります。
-
ゲストオペレーティングシステムは、攻撃を軽減し、CPU機能を利用できるバージョンにアップデートする必要があります。
そうでない場合は、Web UIでCPUオプションを編集するか、VM設定ファイルでcpuオプションのflagsプロパティを設定して、仮想CPUの希望するCPUフラグを設定する必要があります。
Spectre v1,v2,v4の修正については、CPUまたはシステムベンダーがCPU用のいわゆる「マイクロコードアップデート」を提供する必要もあります。影響を受けるすべての CPU が spec-ctrl をサポートするようにアップデートできるわけではないことに注意してください。
Proxmox VE ホストが脆弱かどうかを確認するには、root で以下のコマンドを実行します:
for f in /sys/devices/system/cpu/vulnerabilities/*; do echo "${f##*/}.-" $(cat "$f"); done
[spectre-meltdown-checkerhttps://meltdown.ovh/]ホストがまだ脆弱かどうかを検出するためのコミュニティ・スクリプトも用意されています。
インテル・プロセッサー
-
ピピッド
これにより、ユーザー空間からカーネルメモリを効果的に隠すKPTI(Kernel Page-Table Isolation)と呼ばれるMeltdown(CVE-2017-5754)緩和策のパフォーマンスへの影響が軽減されます。PCIDなしでは、KPTIはかなり高価なメカニズムです
[PCID is now a critical performance/security feature on x86https://groups.google.com/forum/m/#!topic/mechanical-sympathy/L9mHTbeQLNU]
。Proxmox VEホストがPCIDをサポートしているかどうかを確認するには、rootで次のコマンドを実行します:
# grep ' pcid ' /proc/cpuinfo
これがemptyを返さない場合、ホストのCPUはpcidをサポートしています。
-
スペックctrl
Spectre v1 (CVE-2017-5753) および Spectre v2 (CVE-2017-5715) の修正を有効にするには、retpolines が十分でない場合に必要です。 IBRS サフィックスが -IBRS のインテル CPU モデルではデフォルトで含まれています。 IBRS サフィックスが -IBRS でないインテル CPU モデルでは明示的にオンにする必要があります。 更新されたホスト CPU マイクロコード (intel-microcode >= 20180425) が必要です。
-
エスエスビーディー
Spectre V4 (CVE-2018-3639) 修正を有効にするために必要です。すべてのインテル CPU モデルで明示的にオンにする必要があります。 更新されたホスト CPU マイクロコード (intel-microcode >= 20180703) が必要です。
AMDプロセッサー
-
イブピ
Spectre v1 (CVE-2017-5753) および Spectre v2 (CVE-2017-5715) の修正を有効にするには、retpolines が十分でない場合に必要です。 AMD CPU モデルで -IBPB サフィックスがデフォルトで含まれています。 AMD CPU モデルで -IBPB サフィックスがない場合は、明示的にオンにする必要があります。 ゲスト CPU で使用する前に、ホスト CPU のマイクロコードがこの機能をサポートしている必要があります。
-
ヴィルトエスビーディー
Spectre v4 (CVE-2018-3639) の修正を有効にするために必要です。 どの AMD CPU モデルにもデフォルトでは含まれていません。 すべての AMD CPU モデルで明示的に有効にする必要があります。 ゲストの互換性を最大化するために、amd-ssbd も提供されている場合でも、これはゲストに提供する必要があります。 これは物理 CPU には存在しない仮想機能であるため、「ホスト」CPU モデルを使用する場合は明示的に有効にする必要があることに注意してください。
-
amd-ssbd
Spectre v4 (CVE-2018-3639) 修正を有効にするために必要です。 どの AMD CPU モデルにもデフォルトでは含まれていません。すべての AMD CPU モデルで明示的にオンにする必要があります。 これは virt-ssbd よりも高いパフォーマンスを提供するため、これをサポートするホストは、可能であれば常にこれをゲストに公開する必要があります。
-
amd-no-ssb
ホストが Spectre V4 (CVE-2018-3639) に対して脆弱ではないことを示すために推奨されます。 どの AMD CPU モデルにもデフォルトでは含まれていません。 将来のハードウェア世代の CPU は CVE-2018-3639 に対して脆弱ではないため、amd-no-ssb を公開することで、その緩和策を有効にしないようにゲストに伝える必要があります。 これは virt-ssbd および amd-ssbd と相互に排他的です。
NUMA
また、オプションでNUMA
[https://en.wikipedia.org/wiki/Non-uniform_memory_access]
アーキテクチャをVMでエミュレートすることもできます。NUMAアーキテクチャの基本は、すべてのコアで利用可能なグローバル・メモリ・プールを持つ代わりに、メモリを各ソケットに近いローカル・バンクに分散させることを意味します。 これにより、メモリ・バスがボトルネックでなくなるため、速度が向上します。システムがNUMAアーキテクチャを採用している場合
[numactl --hardware | grep availableコマンドが複数のノードを返す場合は、ホストシステムがNUMAアーキテクチャを採用しています]
ホストシステム上でVMリソースを適切に分配できるようになるため、このオプションを有効にすることをお勧めします。 このオプションは、VMのコアやRAMをホットプラグする場合にも必要です。
NUMAオプションを使用する場合は、ソケット数をホストシステムのノード数に設定することをお勧めします。
vCPU ホットプラグ
最近のオペレーティングシステムでは、実行中のシステムでCPUをホットプラグしたり、ある程度までホットアンプラグしたりする機能が導入されています。仮想化によって、このようなシナリオで実際のハードウェアが引き起こす(物理的な)問題の多くを回避することができます。 それでも、これはかなり新しく複雑な機能なので、その使用は絶対に必要な場合に限定すべきです。この機能のほとんどは、よくテストされた、より複雑でない他の機能で再現できます。
Proxmox VEでは、プラグインされたCPUの最大数は常にコア数*ソケット数です。 このCPUの合計コア数より少ないコア数でVMを起動するには、vcpus設定を使用することができ、これはVM起動時にプラグインされるべきvCPUの数を示します。
現在、この機能はLinuxでのみサポートされており、3.10より新しいカーネルが必要で、4.7より新しいカーネルが推奨されています。
以下のように udev ルールを使用して、新しい CPU をゲストのオンラインとして自動的に設定できます:
SUBSYSTEM=="cpu", ACTION=="add", TEST=="online", ATTR{online}=="0", ATTR{online}="1"
これを /etc/udev/rules.d/ の下に.rules で終わるファイルとして保存します。
注意: CPU ホットリムーブはマシン依存であり、ゲストの協力が必要です。 削除コマンドは CPU の削除が実際に行われることを保証するものではなく、通常は x86/amd64 の ACPI のようなターゲットに依存するメカニズムを使用してゲスト OS に転送されるリクエストです。
10.2.6.メモリー
各VMには、固定サイズのメモリを設定するか、ホストの現在のRAM使用量に基づいて動的にメモリを割り当てるようにProxmox VEに依頼するオプションがあります。
固定メモリサイズを使用している場合でも、ゲストが実際に使用するメモリ量などの有用な情報を提供するため、バルーニングデバイスは VM に追加されます。 一般的に、バルーニングは有効なままにしておく必要がありますが、(デバッグ目的などで)無効にしたい場合は、バルーニングデバイスのチェックを外すか、または
バルーン: 0
を設定します。
最小メモリをメモリより低く設定すると、Proxmox VE は指定した最小量が常に VM で使用可能であることを確認し、ホスト上の RAM 使用率が 80% 未満の場合、指定した最大メモリまで動的にゲストにメモリを追加します。
ホストの RAM が不足すると、VM はホストにメモリを解放し、必要に応じて実行中のプロセスをスワップし、最後の手段として oom killer を起動します。ホストとゲスト間のメモリの受け渡しは、ゲスト内部で動作する特別なバルーンカーネルドライバを介して行われます。
[バルーンドライバの内部構造に関する詳しい説明は、こちらhttps://rwmj.wordpress.com/2010/07/17/virtio-balloon/] を参照してください。
複数のVMが自動割り当て機能を使用する場合、各VMが占有すべき空きホスト・メモリの相対量を示すシェア係数を設定することができます。例えば、4つのVMがあり、そのうちの3つがHTTPサーバを実行し、最後の1つがデータベースサーバであるとします。データベース・サーバのRAMにより多くのデータベース・ブロックをキャッシュするために、予備のRAMが利用可能な場合、データベースVMを優先したいとします。このため、データベースVMに3000のSharesプロパティを割り当て、他のVMはデフォルト設定の1000にします。ホスト・サーバには 32GB の RAM があり、現在 16GB を使用しているため、32 * 80/100 - 16 = 9GB の RAM が、設定された最小メモリ量に加えて VM に割り当てられます。データベース VM には 9 * 3000 / (3000 + 1000 + 1000 + 1000) = 4.5 GB の RAM が、HTTP サーバにはそれぞれ 1.5 GB の RAM が追加されます。
2010 年以降にリリースされたすべての Linux ディストリビューションには、バルーンカーネルドライバーが含まれています。Windows OS の場合、バルーンドライバは手動で追加する必要があり、ゲストの速度を低下させる可能性があるため、重要なシステムでの使用はお勧めしません。
VMにRAMを割り当てる場合、ホストが使用できるRAMを常に1GB残しておくのが良い経験則です。
10.2.7.メモリ暗号化
AMD SEV
SEV(セキュア暗号化仮想化)は、AES-128暗号化とAMDセキュア・プロセッサを使用して、VMごとのメモリ暗号化を可能にします。
さらに、SEV-ES(Secure Encrypted Virtualization-Encrypted State)は、ハイパーバイザーへの情報漏洩を防ぐため、VMの実行停止時にすべてのCPUレジスタの内容を暗号化します。この機能は非常に実験的なものです。
ホストの条件
-
AMD EPYC CPU
-
SEV-ESはAMD EPYC 7xx2以降でのみサポートされます。
-
ホスト・マシンのBIOS設定でAMDメモリー暗号化を設定します。
-
デフォルトで有効になっていない場合は、カーネルパラメータに「kvm_amd.sev=1」を追加します。
-
ホスト(SME)上のメモリーを暗号化したい場合は、カーネル・パラメーターに "mem_encrypt=on "を追加https://www.kernel.org/doc/Documentation/x86/amd-memory-encryption.txtを参照。
-
SWIOTLBはhttps://github.com/AMDESE/AMDSEV#faq-4を参照。
ホスト上でSEVが有効になっているかどうかを確認するには、dmesgでsevを検索し、kvm_amdのSEVカーネルパラメータを出力します:
# dmesg | grep -i sev [...] ccp 0000:45:00.1: sev enabled [...] ccp 0000:45:00.1: SEV API: <buildversion> [...] SEV supported: <number> ASIDs [...] SEV-ES supported: <number> ASIDs # cat /sys/module/kvm_amd/parameters/sev Y
ゲストの条件
-
edk2-OVMF
-
Q35を使用することをお勧めします。
-
ゲスト OS に SEV サポートが含まれている必要があります。
制限事項
-
メモリが暗号化されているため、ホスト上のメモリ使用量は常に間違っています。
-
スナップショットやライブマイグレーションなど、メモリーの保存や復元を伴う操作はまだ機能していないか、攻撃可能です。https://github.com/PSPReverse/amd-sev-migration-attack
-
PCIパススルーはサポートされていません。
-
SEV-ESは非常に実験的なものです。
-
QEMUとAMD-SEVのドキュメントは非常に限られています。
設定例:
# qm set <vmid> -amd_sev type=std,no-debug=1,no-key-sharing=1,kernel-hashes=1。
typeは暗号化技術を定義します("type="は必要ありません)。 利用可能なオプションはstdとesです。
QEMUポリシーパラメータは、no-debugパラメータとno-key-sharingパラメータで計算されます。これらのパラメータはポリシービット0と1に対応します。typeが esの場合、ポリシービット2は1に設定され、SEV-ESが有効になります。 ポリシービット3(nosend)はマイグレーション攻撃を防ぐために常に1に設定されます。ポリシーの計算方法の詳細については、AMD SEV API仕様書第3章を参照してください。
kernel-hashesオプションは、古いOVMFイメージやカーネル/initrdを測定しないゲストとの後方互換性のため、デフォルトではオフになっています。https://lists.gnu.org/archive/html/qemu-devel/2021-11/msg02598.html を参照してください。
SEVがゲストで動作しているかチェック
方法 1 - dmesg:
出力はこのようになります。
# dmesg | grep -i sev AMD Memory Encryption Features active:SEV
方法 2 - MSR 0xc0010131 (MSR_AMD64_SEV):
出力は1でなければなりません。
# apt install msr-tools # modprobe msr # rdmsr -a 0xc0010131 1
リンク
10.2.8.ネットワークデバイス
-
Intel E1000がデフォルトで、Intelギガビットネットワークカードをエミュレートします。
-
の準仮想化 NIC を使用する必要があります。すべての VirtIO デバイスと同様に、ゲスト OS には適切なドライバがインストールされている必要があります。
-
Realtek 8139は旧式の100MB/sネットワークカードをエミュレートしているため、旧式のオペレーティングシステム(2002年以前にリリースされたもの)をエミュレートする場合にのみ使用してください。
-
vmxnet3は別の準仮想化デバイスで、別のハイパーバイザーから VM をインポートする場合にのみ使用します。
Proxmox VEは各NICにランダムなMACアドレスを生成し、VMがイーサネットネットワーク上でアドレス指定できるようにします。
VMに追加したNICは、2つの異なるモデルのいずれかに従います:
-
デフォルトのブリッジモードでは、各仮想NICはタップデバイス(イーサネットNICをシミュレートするソフトウェアループバックデバイス)によってホスト上でバックアップされます。このタップデバイスは、Proxmox VEではデフォルトでvmbr0というブリッジに追加されます。このモードでは、VMはホストがあるイーサネットLANに直接アクセスできます。
-
代替NATモードでは、各仮想NICはQEMUユーザーネットワーキングスタックとのみ通信し、内蔵ルーターとDHCPサーバーがネットワークアクセスを提供します。この内蔵DHCPは、プライベート10.0.2.0/24範囲のアドレスを提供します。NATモードはブリッジモードよりもはるかに遅いので、テストにのみ使用してください。このモードはCLIまたはAPI経由でのみ利用可能で、Web UI経由では利用できません。
また、ネットワークデバイスなしを選択することで、VMの作成時にネットワークデバイスの追加を省略することもできます。
各 VM ネットワークデバイスのMTU設定を上書きできます。mtu=1オプションは、MTU 値が基礎となるブリッジから継承される特殊なケースを表します。 このオプションは、VirtIOネットワークデバイスでのみ使用できます。
VirtIO ドライバを使用している場合、オプションでMultiqueueオプションを有効にできます。このオプションにより、ゲスト OS は複数の仮想 CPU を使用してネットワークパケットを処理できるようになり、転送されるパケットの総数が増加します。
Proxmox VEでVirtIOドライバを使用する場合、各NICネットワークキューはホストカーネルに渡され、キューはvhostドライバによって生成されたカーネルスレッドによって処理されます。このオプションを有効にすると、各 NIC に対して複数のネットワーク・キューをホスト・カーネルに渡すことができます。
Multiqueue を使用する場合は、ゲストの vCPU 数と同じ値に設定することをお勧めします。vCPU 数は、 ソケット数× VM に設定されたコア数であることを忘れないでください。また、この ethtool コマンドを使用して、VM の各 VirtIO NIC の多目的チャネル数を設定する必要があります:
ethtool -L ens1 結合 X
ここで、XはVMのvCPU数です。
WindowsゲストをMultiqueue用に設定するには、Redhat VirtIO Ethernetアダプタドライバをインストールし、次のようにNICの設定を変更します。デバイスマネージャーを開き、"Network adapters" で NIC を右クリックし、"Properties" を選択します。次に「詳細設定」タブを開き、左側のリストから「受信側スケーリング」を選択します。有効」になっていることを確認してください。次に、リストの「Maximum number of RSS Queues」に移動し、VMのvCPU数に設定します。設定が正しいことを確認したら、「OK」をクリックして確定します。
Multiqueue パラメータを 1 より大きな値に設定すると、トラフィックが増加するにつれてホストおよびゲストシステムの CPU 負荷が増加することに注意してください。このオプションは、VM がルーター、リバースプロキシ、または長時間のポーリングを行うビジーな HTTP サーバーとして実行されている場合など、VM が多数の着信接続を処理する必要がある場合にのみ設定することをお勧めします。
10.2.9.表示
QEMU は、数種類の VGA ハードウェアを仮想化できます。いくつか例を挙げます:
-
デフォルトのstd は、Bochs VBE 拡張を持つカードをエミュレートします。
-
cirrus はかつてデフォルトで使用されていましたが、非常に古いハードウェアモ ジュールをエミュレートしており、すべての問題があります。
[https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/ qemu:cirrus の使用は有害です]
、例えば Windows XP 以前を使用している場合。 -
vmwareは、VMWare SVGA-II互換アダプタです。
-
qxl は QXL 準仮想化グラフィックカードです。これを選択すると、VMのSPICE(リモート・ビューワ・プロトコル)も有効になります。
-
Virtio-gl(しばしばVirGLと呼ばれます)は、VM内で使用するための仮想3D GPUで、特別な(高価な)モデルやドライバを必要とせず、ホストGPUを完全にバインドすることなく、ワークロードをホストGPUにオフロードすることができます。
VirGLのサポートにはいくつかの追加ライブラリが必要ですが、比較的大きいためデフォルトではインストールされず、またすべてのGPUモデル/ベンダーでオープンソースとして利用できるわけではありません。ほとんどのセットアップでは、次のようにするだけです:apt install libgl1 libegl1
メモリオプションを設定することで、仮想 GPU に与えるメモリ量を編集できます。これにより、特に SPICE/QXL で、VM 内でより高い解像度を実現できます。
メモリは表示デバイスによって予約されるため、SPICE でマルチモニタ・モード(デュアルモニタの場合はqxl2など)を選択すると、いくつかの意味があります:
-
Windowsはモニタごとにデバイスを必要とするため、ostypeがWindowsの場合、Proxmox VEはモニタごとに追加のデバイスをVMに与えます。 各デバイスは指定された量のメモリを取得します。
-
Linux VMでは、常に多くの仮想モニタを有効にすることができますが、マルチモニタ・モードを選択すると、デバイスに与えられるメモリがモニタの数に乗算されます。
ディスプレイタイプとして serialXを選択すると、VGA出力が無効になり、Webコンソールは選択したシリアルポートにリダイレクトされます。この場合、ディスプレイメモリの設定は無視されます。
クリップボードを vncに設定することで、VNCクリップボードを有効にすることができます。
# qm set <vmid> -vga <displaytype>,clipboard=vnc
クリップボード機能を使用するには、まずSPICEゲストツールをインストールする必要があります。Debianベースのディストリビューションでは、spice-vdagentをインストールすることで実現できます。他のオペレーティングシステムでは、公式リポジトリで検索するか、https://www.spice-space.org/download.htmlを参照してください。
spiceゲストツールをインストールすると、VNCクリップボード機能を使用することができます(noVNCコンソールパネルなど)。ただし、SPICE、virtio、virgl を使用している場合は、使用するクリップボードを選択する必要があります。 これは、clipboardがvnc に設定されている場合、デフォルトのSPICEクリップボードがVNCクリップボードに置き換わるためです。
10.2.10.USB パススルー
USBパススルー・デバイスには2種類あります:
-
ホストUSBパススルー
-
SPICE USBパススルー
ホストUSBパススルーは、VMにホストのUSBデバイスを提供することで機能します。 これは、ベンダーIDやプロダクトIDを経由するか、ホスト・バスやポートを経由することができます。
vendor/product-idは次のようになります:0123:abcd、ここで0123はベンダーのID、abcdは製品のIDです。
バス/ポートは次のようになります:1-2.3.4で、1がバス、2.3.4がポートパスです。これはホストの物理ポートを表します(usbコントローラの内部順序に依存します)。
VMの起動時にVMのコンフィグレーションにデバイスが存在していても、そのデバイスがホストに存在しない場合、VMは問題なく起動できます。 デバイス/ポートがホストで利用可能になると、すぐにそのデバイスがパススルーされます。
|
|
このようなUSBパススルーを使用することは、VMを別のホストにオンラインで移動できないことを意味します。 |
パススルーの2つ目のタイプは、SPICE USB パススルーです。VM に 1 つ以上の SPICE USB ポートを追加すると、SPICE クライアントから VM にローカルの USB デバイスを動的に渡すことができます。これは、入力デバイスやハードウェアドングルを一時的にリダイレクトするのに便利です。
また、クラスタレベルでデバイスをマッピングすることも可能で、HAで適切に使用できるようにしたり、ハードウェアの変更を検出したり、非rootユーザが設定できるようにしたりできます。詳細はリソースマッピングを参照してください。
10.2.11.BIOS と UEFI
コンピュータを適切にエミュレートするために、QEMUはファームウェアを使用する必要があります。 一般的なPCではBIOSまたは(U)EFIとして知られているファームウェアは、VMを起動する際の最初のステップの1つとして実行されます。BIOSは、基本的なハードウェアの初期化を行い、オペレーティング・システムにファームウェアとハードウェアへのインタフェースを提供します。デフォルトでは、QEMUはオープンソースのx86 BIOS実装であるSeaBIOSを使用します。SeaBIOS は、ほとんどの標準的なセットアップに適しています。
オペレーティングシステム (Windows 11 など) によっては UEFI 互換の実装を使う必要があるかもしれません。そのような場合、代わりにオープンソースの UEFI 実装であるOVMFを使う必要があります。
[OVMF Projecthttps://github.com/tianocore/tianocore.github.io/wiki/OVMF を見て下さい]。
例えば、VGA パススルーを行いたい場合などです。
[アレックス・ウィリアムソンは、これに関して良いブログエントリを持っています。https://vfio.blogspot.co.at/2014/08/primary-graphics-assignment-without-vga.html]
OVMFを使いたい場合、考慮すべき点がいくつかあります:
このディスクはバックアップやスナップショットに含まれ、1つしかありません。
このようなディスクは以下のコマンドで作成できます:
# qm set <vmid> -efidisk0 <storage>:1,format=<format>,efitype=4m,pre-enrolled-keys=1
ここで、<storage>はディスクを置きたいストレージ、<format>はストレージがサポートするフォーマットです。あるいは、Web インターフェースから、VM のハードウェアセクションのAdd→EFI Diskで、このようなディスクを作成することもできます。
efitypeオプションは、使用する OVMF ファームウェアのバージョンを指定します。新しい VM の場合、これは常に4m であるべきです。なぜなら、これはセキュア・ブートをサ ポートしており、将来の開発をサポートするために割り当てられる容量が多いからです(GUI ではこれがデフォルトです)。
pre-enroll-keysは、efidisk にディストリビューション固有のセキュアブートキーと Microsoft 標準セキュアブートキーを事前にロードするかどうかを指定します。また、デフォルトでセキュアブートを有効にします (ただし、VM 内の OVMF メニューで無効にすることもできます)。
|
|
既存の VM (2m のefidisk を使用している) でセキュアブートの使用を開始する場合は、efidisk を再作成する必要があります。そのためには、古いefidisk を削除し(qm set <vmid> -delete efidisk0)、前述の方法で新しいefidisk を追加します。これにより、OVMFメニューで行ったカスタム設定がリセットされます! |
仮想ディスプレイ(VGAパススルーなし)でOVMFを使用する場合、OVMFメニュー(ブート中にESCボタンを押すと表示されます)でクライアントの解像度を設定するか、ディスプレイタイプとしてSPICEを選択する必要があります。
10.2.12.トラステッド・プラットフォーム・モジュール (TPM)
トラステッド・プラットフォーム・モジュール(Trusted Platform Module)は、暗号化キーなどの秘密データを安全に保存し、システムの起動を検証するための耐タンパー機能を提供するデバイスです。
特定のオペレーティングシステム(Windows 11など)では、このようなデバイスをマシン(物理または仮想)に接続する必要があります。
TPMは、tpmstateボリュームを指定して追加します。これはefidiskに似た働きをしますが、一度作成すると変更できません(削除のみ)。以下のコマンドで追加できます:
# qm set <vmid> -tpmstate0 <storage>:1,version=<version>.
ここで、<storage>は状態を置きたいストレージ、<version>は v1.2またはv2.0です。ウェブ・インターフェイスから、VM のハードウェア・セクションでAdd→TPM Stateを選択して追加することもできます。
v2.0TPM仕様の方が新しく、サポートが充実しているため、v1.2TPMを必要とする特定の実装がない限り、そちらを優先すべきです。
|
|
物理的なTPMと比較すると、エミュレートされたTPMにはセキュリティ上の利点はありません。TPMのポイントは、TPM仕様の一部として指定されたコマンドを除いて、その上のデータを簡単に変更できないことです。エミュレートされたデバイスの場合、データの保存は通常のボリューム上で行われるため、そのボリュームにアクセスできる人なら誰でも編集できる可能性があります。 |
10.2.13.VM間共有メモリー
VM 間共有メモリーデバイス(ivshmem) を追加することで、ホストとゲスト間、または複数のゲスト間でメモリーを共有することができます。
このようなデバイスを追加するには、qm:
# qm set <vmid> -ivshmem size=32,name=foo
サイズの単位は MiB です。ファイルは/dev/shm/pve-shm-$name(デフォルト名は vmid)配下に配置されます。
|
|
現在、デバイスは、それを使用しているVMがシャットダウンまたは停止されるとすぐに削除されます。オープンな接続は維持されますが、まったく同じデバイスへの新しい接続はできなくなります。 |
このようなデバイスのユースケースとしては、Looking Glass
[Looking Glass:https://looking-glass.io/]
プロジェクトがあり、ホストとゲスト間で高性能、低遅延のディスプレイミラーリングが可能です。
10.2.14.オーディオデバイス
オーディオデバイスを追加するには、以下のコマンドを実行します:
qm set <vmid> -audio0 device=<デバイス>.
対応オーディオデバイスは以下の通りです:
-
ich9-intel-hda:Intel HD オーディオコントローラ、ICH9 をエミュレート
-
intel-hda:Intel HD オーディオコントローラ、ICH6 をエミュレート
-
AC97:Audio Codec '97、Windows XPのような古いオペレーティングシステムに便利です。
バックエンドは2種類あります:
-
スパイス
-
皆無
spiceバックエンドはSPICEと組み合わせて使用することができ、noneバックエンドはVM内のオーディオデバイスがソフトウェアの動作に必要な場合に便利です。ホストの物理オーディオ・デバイスを使用するには、デバイス・パススルーを使用します(PCI パススルーとUSB パススルーを参照)。MicrosoftのRDPのようなリモートプロトコルには、サウンドを再生するオプションがあります。
10.2.15.VirtIO RNG
RNG (Random Number Generator) は、システムにエントロピー(ランダム性) を提供するデバイスです。仮想ハードウェア RNG を使用して、ホストシステムからゲスト VM にエントロピーを提供することができます。これは、特にゲストのブートプロセス中に、ゲスト内のエントロピー飢餓問題 (十分なエントロピーが利用できず、システムが遅くなったり問題が発生したりする状況) を回避するのに役立ちます。
VirtIOベースのエミュレートされたRNGを追加するには、次のコマンドを実行します:
qm set <vmid> -rng0 source=<ソース>[,max_bytes=X,period=Y]。
sourceはエントロピーがホスト上のどこから読み込まれるかを指定します:
-
/dev/urandom:ノンブロッキングカーネルエントロピープール (推奨)
-
/dev/random:カーネルプールをブロック (推奨されません。ホストシステムでエントロピーが枯渇する可能性があります)
-
/dev/hwrng:ホストに接続されたハードウェア RNG を通過させます (複数の RNG が利用可能な場合、/sys/devices/virtual/misc/hw_random/rng_currentで選択されたものが使用されます)。
max_bytesと periodパラメータで制限を指定することができ、これらはミリ秒単位で1周期あたりのmax_bytesとして読み込まれます。しかし、これは線形関係を表すものではありません:1024B/1000ms は、1 秒のタイマーで最大 1 KiB のデータが利用可能になることを意味し、1 秒の間に 1 KiB がゲストにストリーミングされることを意味しません。そのため、周期を短くすることで、より速い速度でゲストにエントロピーを注入することができます。
デフォルトでは、リミットは1000msあたり1024バイト(1KiB/s)に設定されています。ゲストがホストのリソースを使いすぎないように、常にリミッターを使用することをお勧めします。必要であれば、max_bytesに0を指定することで、すべての制限を無効にすることができます。
10.2.16.デバイスのブート順序
QEMU は、どのデバイスから、どの順番でブートすべきかをゲストに指示できます。 これは、例えば、bootプロパティ経由で config で指定できます:
boot: order=scsi0;net0;hostpci0
この方法では、ゲストはまずディスクscsi0 からのブートを試み、失敗した場合はnet0 からのネットワークブートを試み、それも失敗した場合は、最後に通過した PCIe デバイス (NVMe の場合はディスクとみなされ、そうでない場合はオプション ROM に起動しようとします) からのブートを試みます。
GUI 上では、ドラッグアンドドロップエディタを使ってブート順序を指定したり、チェックボックス を使って特定のデバイスのブートを有効または無効にすることができます。
|
|
ゲストが OS を起動したりブートローダをロードするために複数のディスクを使用する場合、ゲストが起動できるようにするためには、それらの全てがブータブルとしてマークされている必要があります (つまり、チェックボックスが有効になっているか、設定内のリストに表示されている必要があります)。 これは、最近の SeaBIOS と OVMF のバージョンでは、ブータブルとしてマークされている場合にのみディスクを初期化するためです。 |
いずれにせよ、リストに表示されないデバイスやチェックマークが無効になっているデバイスでも、ゲストのオペレーティングシステムが起動して初期化されれば、ゲストはまだ利用可能です。ブータブルフラグはゲスト BIOS とブートローダーにのみ影響します。
10.2.17.仮想マシンの自動起動とシャットダウン
VMを作成した後、ホスト・システムのブート時にVMを自動的に起動させたいと思うでしょう。そのためには、ウェブ・インターフェイスのVMのオプション・タブからStart at bootオプションを選択するか、以下のコマンドで設定する必要があります:
# qm set <vmid> -onboot 1
例えば、あるVMが他のゲストシステムにファイアウォールやDHCPを提供している場合など、VMの起動順序を微調整したい場合があります。 この場合、以下のパラメータを使用できます:
-
スタート/シャットダウン順:開始順序の優先順位を定義します。例えば、VMを最初に起動させたい場合は1に設定します。(シャットダウンには逆の起動順序を使用するため、起動順序が1のマシンは最後にシャットダウンされます)。ホスト上で複数のVMが同じ順序で定義されている場合、それらはさらにVMIDの昇順で並べられます。
-
起動遅延:このVMが起動してから後続のVMが起動するまでの間隔を定義します。例えば、240秒待ってから他のVMを起動する場合は240に設定します。
-
シャットダウンタイムアウト:Proxmox VEがシャットダウンコマンドを発行した後、VMがオフラインになるまで待機する時間を秒単位で定義します。デフォルトでは、この値は180に設定されています。これは、Proxmox VEがシャットダウン要求を発行し、マシンがオフラインになるまで180秒待つことを意味します。タイムアウト後もマシンがオンラインの場合、強制的に停止されます。
|
|
HAスタックによって管理されるVMは、現在のところ起動時開始と起動順序オプションに従いません。これらのVMは、HAマネージャ自身がVMの起動と停止を確実に行うため、起動とシャットダウンのアルゴリズムによってスキップされます。 |
開始/シャットダウン順序パラメータが設定されていないマシンは、常にパラメータが設定されているマシンの後に開始することに注意してください。さらに、このパラメータは同じホスト上で実行されている仮想マシン間でのみ適用され、クラスタ全体では適用されません。
ホストのブートと最初のVMのブートの間に遅延が必要な場合は、Proxmox VEノード管理のセクションを参照してください。
10.2.18.QEMU ゲストエージェント
QEMU ゲストエージェントは VM 内で実行されるサービスで、ホストとゲスト間の通信チャネルを提供します。情報を交換するために使用され、ホストがゲストにコマンドを発行できるようにします。
例えば、VM サマリーパネルの IP アドレスはゲストエージェント経由で取得されます。
または、バックアップを開始する際に、ゲストエージェントを介して、fs-freezeとfs-thawコマンドで未処理の書き込みを同期するようにゲストに指示します。
ゲストエージェントが正しく動作するためには、以下の手順を実行する必要があります:
-
ゲストにエージェントをインストールし、実行されていることを確認します。
-
Proxmox VEでエージェント経由の通信を有効にします。
ゲストエージェントのインストール
ほとんどの Linux ディストリビューションでは、ゲストエージェントが利用可能です。パッケージの名前は通常qemu-guest-agent です。
Windows では、Fedora VirtIO ドライバー ISO からインストールできます。
QGA を使用した自動 TRIM
Run guest-trimオプションを有効にすることができます。これを有効にすると、Proxmox VE は、ストレージにゼロを書き出す可能性のある以下の操作の後に、ゲストにトリムコマンドを発行します:
-
ディスクを別のストレージに移動
-
ローカルストレージを持つ別のノードへのVMのライブマイグレーション
シンプロビジョニングされたストレージでは、未使用領域を解放するのに役立ちます。
|
|
Linux の ext4 では、重複した TRIM リクエストの発行を避けるためにメモリ内の最適化を使用するため、注意点があります。ゲストは基礎となるストレージの変更について知らないので、最初のゲストトリムだけが期待通りに実行されます。それ以降の TRIM は、次のリブートまで、それ以降に変更されたファイルシステムの一部のみを考慮します。 |
バックアップ時のファイルシステムのフリーズと解凍
デフォルトでは、バックアップが実行されると、fs-freezeQEMU ゲストエージェントコマンドを介してゲストファイルシステムが同期され、一貫性が提供されます。
Windowsゲストでは、Windows VSS(Volume Shadow Copy Service)レイヤーをフックすることで一貫性のあるバックアップを処理するアプリケーションもあるため、fs-freezeがそれを妨害する可能性があります。たとえば、一部の SQL Server でfs-freeze を呼び出すと、VSS が SQL Writer VSS モジュールを呼び出す引き金となり、差分バックアップの SQL Server バックアップチェーンが切断されることが確認されています。
このようなセットアップの場合、QGAオプションのfreeze-fs-on-backupを 0に設定することで、バックアップ時にフリーズと解凍のサイクルを発行しないようにProxmox VEを設定できます。これは、GUIでFreeze/thaw guest filesystems on backup for consistencyオプションを使用して実行することもできます。
|
|
このオプションを無効にすると、一貫性のないファイルシステムでバックアップが作成される可能性があるため、自分が何をしているのかわかっている場合にのみ無効にしてください。 |
10.2.19.SPICE の機能強化
SPICE Enhancements は、リモート・ビューワの操作性を向上させるオプション機能です。
GUIで有効にするには、仮想マシンの[オプション]パネルを開きます。CLIで有効にするには、次のコマンドを実行します:
qm set <vmid> -spice_enhancements foldersharing=1,videostreaming=すべて
|
|
これらの機能を使用するには、仮想マシンのDisplayをSPICE(qxl)に設定する必要があります。 |
フォルダ共有
ローカルフォルダをゲストと共有します。spice-webdavdデーモンをゲストにインストールする必要があります。これは、http://localhost:9843 にあるローカル WebDAV サーバーを通じて共有フォルダーを利用可能にします。
Windowsゲストの場合、Spice WebDAVデーモンのインストーラはSPICE公式ウェブサイトからダウンロードできます。
ほとんどのLinuxディストリビューションには、spice-webdavdというパッケージがインストールされています。
Virt-Viewer(リモートビューワー)でフォルダを共有するには、[ファイル]→[環境設定]に進みます。 共有するフォルダを選択し、チェックボックスを有効にします。
|
|
フォルダ共有は現在、Linux 版 Virt-Viewer でのみ機能します。 |
|
|
実験的です!現在、この機能は安定して動作していません。 |
ビデオストリーミング
高速リフレッシュエリアはビデオストリームにエンコードされます。2つのオプションがあります:
-
すべて:高速リフレッシュ領域はすべてビデオストリームにエンコードされます。
-
フィルタを使用します:ビデオストリーミングを使用するかどうかを決定するために、追加のフィルタが使用されます(現在、小さなウィンドウ面のみがスキップされます)。
ビデオストリーミングを有効にすべきかどうか、また、どのオプションを選択すべきかについては、一般的な推奨はできません。特定の状況によって異なります。
トラブルシューティング
ゲストで WebDAV サービスが有効で実行されていることを確認します。Windows ではSpice webdav proxy と呼ばれます。Linux ではspice-webdavdという名前ですが、ディストリビューションによって異なります。
サービスが実行されている場合は、ゲスト内のブラウザでhttp://localhost:9843 を開いてWebDAV サーバーを確認します。
SPICE セッションを再開するのに役立ちます。
10.3.マイグレーション
# qm migrate <vmid> <target>
これには一般的に2つのメカニズムがあります。
-
オンラインマイグレーション(別名ライブマイグレーション)
-
オフライン移行
10.3.1.オンライン移行
VMが実行中で、ローカルにバインドされたリソースが設定されていない場合(パススルーされるデバイスなど)、qm migrationコマンド呼び出しの--onlineフラグを使用してライブ・マイグレーションを開始できます。VMが実行されている場合、Webインタフェースはデフォルトでライブ・マイグレーションを行います。
仕組み
オンラインマイグレーションはまず、ターゲットホスト上で着信フラグを持つ新しい QEMU プロセスを起動し、ゲスト vCPU を一時停止したまま基本的な初期化のみを実行し、ソース仮想マシンのゲストメモリとデバイス状態のデータストリームを待ちます。 ディスクなどの他のリソースはすべて、VM の実行時状態移行が始まる前に共有されるか、すでに送信されているため、転送が必要なのはメモリコンテンツとデバイス状態のみです。
この接続が確立されると、ソースは非同期でメモリコンテンツをターゲットに送信し始めます。このループは、実行中のソースVMと受信中のターゲットVMのデータ差が数ミリ秒で送信できるほど小さくなるまで繰り返されます。 その後、ソースVMはユーザーやプログラムに気づかれることなく完全に一時停止し、残りのデータをターゲットに送信することができます。
要件
ライブマイグレーションが機能するためには、いくつかのことが必要です:
-
VM には移行できないローカルリソースはありません。例えば、PCI や USB デバイスは、現在ライブマイグレーションをブロックしています。 一方、ローカルディスクは、ターゲットに送信することで問題なくマイグレーションできます。
-
ホストは同じProxmox VEクラスタに配置されています。
-
ホスト同士は正常に(信頼できる)ネットワーク接続されています。
-
ターゲットホストには、Proxmox VEパッケージと同じかそれ以上のバージョンが必要です。逆に動作する場合もありますが、保証できません。
-
ホストは同じベンダーの同じようなCPUを使用しています。実際のモデルやVMのCPUタイプによっては異なるベンダーでも動作するかもしれませんが、保証はできません。
10.4.コピーとクローン
同じタイプのVMを多数デプロイする簡単な方法は、既存のVMをコピーすることです。このようなコピーにはクローンという用語を使用し、リンククローンと フルクローンを区別します。
- フルクローン
-
このようなコピーの結果は独立したVMです。新しいVMは元のVMとストレージ・リソースを共有しません。
ターゲット・ストレージを選択することができるので、VMを全く別のストレージに移行することができます。ストレージドライバが複数のフォーマットをサポートしている場合は、ディスクイメージのフォーマットを変更することもできます。
完全クローンは、すべてのVMイメージ・データを読み込んでコピーする必要があります。これは通常、リンクされたクローンを作成するよりもはるかに遅いです。 ストレージの種類によっては、特定のスナップショットをコピーすることができます。これはまた、最終的なコピーに元のVMからの追加スナップショットが含まれないことを意味します。
- リンクド・クローン
-
最近のストレージ・ドライバは、リンクされたクローンを高速に生成する方法をサポートしています。このようなクローンは書き込み可能なコピーで、初期内容は元のデータと同じです。リンクされたクローンの作成はほぼ瞬時に行われ、初期状態では追加の領域を消費しません。
新しい画像はまだ元の画像を参照しているため、リンクされていると呼ばれます。変更されていないデータブロックは元の画像から読み込まれますが、変更は新しい場所から書き込まれます(その後、読み込まれます)。この手法はコピー・オン・ライトと呼ばれます。
これには、元のボリュームが読み取り専用であることが必要です。Proxmox VEを使用すると、任意のVMを読み取り専用のテンプレートに変換できます。このようなテンプレートは、後でリンクされたクローンを効率的に作成するために使用できます。
リンクされたクローンが存在する間は、元のテンプレートを削除することはできません。 これはストレージの内部機能であるため、リンクされたクローンのターゲットストレージを変更することはできません。
ターゲット・ノード・オプションを使用すると、新しいVMを別のノードに作成できます。唯一の制限は、VMが共有ストレージ上にあり、そのストレージがターゲット・ノードでも利用可能であることです。
リソースの競合を避けるため、ネットワーク・インターフェイスのMACアドレスはすべてランダム化され、VMのBIOS(smbios1)設定用に新しいUUIDが生成されます。
10.5.仮想マシンテンプレート
VMをテンプレートに変換することができます。このようなテンプレートは読み取り専用で、リンクされたクローンを作成するために使用できます。
|
|
ディスクイメージを変更することになるため、テンプレートを起動することはできません。テンプレートを変更したい場合は、リンクされたクローンを作成し、それを変更してください。 |
10.6.VM 世代 ID
Proxmox VEは、仮想マシンのVirtual Machine Generation ID(vmgenid)
[OfficialvmgenidSpecificationhttps://docs.microsoft.com/en-us/windows/desktop/hyperv_v2/virtual-machine-generation-identifier]
をサポートしています。これは、ゲストオペレーティングシステムが、バックアップの復元やスナップショットのロールバックなどのタイムシフトイベントを検出するために使用できます。
新しいVMを作成すると、vmgenidが自動的に生成され、設定ファイルに保存されます。
既に存在するVMにvmgenidを作成して追加するには、特別な値'1'を渡してProxmox VEに自動生成させるか、手動でUUID
[Online GUID generatorhttp://guid.one/]
を値として使用するなどして設定します:
# qm set VMID -vmgenid 1 # qm set VMID -vmgenid 00000000-0000-0000-000000000000
|
|
既存のVMにvmgenidデバイスを最初に追加すると、スナップショットのロールバックやバックアップのリストアなどで、VMがこれを世代の変更と解釈するため、変更と同じ効果が生じる可能性があります。 |
vmgenidメカニズムが不要な場合は、VM作成時にその値に'0'を渡すか、またはコンフィギュレーションでそのプロパティを遡及的に削除することができます:
# qm set VMID -delete vmgenid
vmgenidの最も顕著なユースケースは、新しいMicrosoft Windowsオペレーティングシステムで、スナップショットのロールバック、バックアップのリストア、またはVM全体のクローン操作において、時間の影響を受けやすい、またはレプリケートサービス(データベースやドメインコントローラ
[https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-dc/virtualized-domain-controller-architecture]
など)の問題を回避するために使用されます。
10.7.仮想マシンのインポート
海外のハイパーバイザーや他のProxmox VEクラスタから既存の仮想マシンをインポートするには、さまざまな方法があります:
-
ESXiの特殊ストレージが提供するようなインポートコンテンツタイプを利用するネイティブインポートウィザードを使用します。
-
ソースでバックアップを実行し、ターゲットでリストアします。この方法は、別のProxmox VEインスタンスから移行する場合に最適です。
-
qmコマンドラインツールの OVF 専用インポートコマンドを使用します。
他のハイパーバイザーからProxmox VEにVMをインポートする場合は、Proxmox VEの概念に慣れることをお勧めします。
10.7.1.インポートウィザード
Proxmox VEは、APIとWebベースのユーザインタフェースにネイティブに統合するために、ストレージプラグインシステムを使用した統合VMインポーターを提供します。これを使用してVMを全体としてインポートし、そのコンフィグのほとんどをProxmox VEのコンフィグモデルにマッピングし、ダウンタイムを削減することができます。
|
|
インポートウィザードはProxmox VE 8.2の開発サイクルで追加され、技術プレビューの状態です。すでに有望で安定して動作していますが、まだアクティブな開発中です。 |
インポートウィザードを使用するには、まずインポートソース用に新しいストレージをセットアップする必要があります。
次に、リソースツリーで新しいストレージを選択し、Virtual Guestsコンテンツタブを使用して、インポート可能なすべてのゲストを確認できます。
1つを選択し、インポートボタン(またはダブルクリック) を使ってインポートウィザードを開きます。ここで利用可能なオプションのサブセットを変更し、インポートを開始することができます。インポートが完了した後に、さらに詳細な修正を行うことができます。
|
|
ESXi インポートウィザードは、ESXi バージョン 6.5 から 8.0 でテストされています。vSAN ストレージを使用しているゲストは、直接インポートできないことに注意してください。インポート元として vCenter を使用することは可能ですが、パフォーマンスが大幅に低下します(5 ~ 10 倍遅くなります)。 |
仮想ゲストを新しいハイパーバイザーに適応させる方法のステップバイステップのガイドとヒントについては、Proxmox VE へのマイグレーションの wiki 記事を参照してください。
OVA/OVF インポート
OVA/OVFファイルをインポートするには、まず、インポートコンテンツタイプのファイルベースのストレージが必要です。このストレージにはインポートフォルダがあり、OVAファイルまたはOVFファイルと対応する画像をフラットな構造で置くことができます。 または、Web UIを使用してOVAファイルを直接アップロードまたはダウンロードすることもできます。 その後、Web UIを使用してそれらを選択し、インポートウィザードを使用してゲストをインポートすることができます。
OVAファイルの場合、一時的にイメージを展開するために必要な領域が追加されます。これには、イメージのコンテンツタイプが設定されたファイルベースのストレージが必要です。デフォルトでは、このためにソースストレージが選択されますが、実際のターゲットストレージにインポートする前にイメージを抽出するインポート作業用ストレージを指定することができます。
|
|
OVA/OVF ファイルの構造やコンテンツは常によく維持・定義されているわけではないので、いくつかのゲスト設定を手動で適応させる必要があるかもしれません。例えば、SCSI コントローラのタイプは OVA/OVF ファイルではほとんど定義されていませんが、デフォルトでは OVMF (UEFI) で起動できません。 |
10.7.2.CLIによるOVF/OVAのインポート
海外のハイパーバイザーからのVMエクスポートは通常、1つ以上のディスクイメージと、VMの設定(RAM、コア数)を記述した設定ファイルから構成されます。
ディスク・イメージは、ディスクがVMwareまたはVirtualBoxから提供される場合はvmdk形式、ディスクがKVMハイパーバイザーから提供される場合はqcow2形式になります。 VMエクスポート用の最も一般的な設定フォーマットはOVF標準ですが、多くの設定が標準自体で実装されておらず、ハイパーバイザーが非標準の拡張子で補足情報をエクスポートするため、実際には相互運用が制限されます。
フォーマットの問題だけでなく、エミュレートされるハードウェアがハイパーバイザーごとに大きく変わると、他のハイパーバイザーからのディスクイメージのインポートに失敗することがあります。OS はハードウェアの変更に非常にうるさいため、Windows VM は特にこの問題を気にします。この問題は、エクスポートする前にインターネットから入手可能な MergeIDE.zip ユーティリティをインストールし、インポートした Windows VM を起動する前にハードディスクのタイプをIDEに選択することで解決できます。
GNU/Linuxやその他のフリーのUnix OSには必要なドライバがすべてデフォルトでインストールされており、VMをインポートした直後に準仮想化ドライバに切り替えることができます。Windows VMの場合は、Windows準仮想化ドライバを自分でインストールする必要があります。
GNU/Linuxやその他のフリーUnixは通常、問題なくインポートできます。上記の問題のため、Windows VMのインポート/エクスポートがすべてのケースで成功することは保証できません。
Windows OVFインポートのステップバイステップ例
マイクロソフトは、Windows開発を始めるための仮想マシンのダウンロードを提供しています。私たちは、OVFインポート機能のデモを行うために、これらのうちの1つを使用するつもりです。
仮想マシンzipのダウンロード
ユーザー同意書について説明を受けた後、VMwareプラットフォーム用のWindows 10 Enterprise (Evaluation - Build)を選択し、zipをダウンロードします。
ZIPからディスクイメージを展開
unzipユーティリティまたは任意のアーカイバを使用してzipを解凍し、ssh/scp経由でovfファイルとvmdkファイルをProxmox VEホストにコピーします。
仮想マシンのインポート
これにより、OVFマニフェストから読み取ったコア、メモリ、VM名を使用して新しい仮想マシンが作成され、ディスクがlocal-lvmストレージにインポートされます。ネットワークは手動で設定する必要があります。
# qm importovf 999 WinDev1709Eval.ovf local-lvm
VMを起動する準備ができました。
仮想マシンへの外部ディスクイメージの追加
既存のディスク・イメージをVMに追加することもできます。
vmdebootstrapツールでDebian/Ubuntuディスクイメージを作成したとします:
vmdebootstrap --verbose ˶ --size 10GiB --serial-console ˶ --grub --no-extlinux ˶ --package openssh-server ˶ --package avahi-daemon ˶ --package qemu-guest-agent ˶ --hostname vm600 --enable-dhcp ˶ --customize=./copy_pub_ssh.sh ˶ --sparse --image vm600.raw
これで新しいターゲットVMを作成し、イメージをストレージpvedirにインポートしてVMのSCSIコントローラにアタッチすることができます:
# qm create 600 --net0 virtio,bridge=vmbr0 --name vm600 --serial0 socket ˶ --boot order=scsi0 --scsihw virtio-scsi-pci --ostype l26 ˶ --scsi0 pvedir:0,import-from=/path/to/dir/vm600.raw
VMを起動する準備ができました。
10.8.クラウドイニットサポート
Cloud-Initは、仮想マシンインスタンスの初期化を処理する、事実上の複数配布パッケージです。Cloud-Initを使用すると、ハイパーバイザー側でネットワークデバイスとsshキーの設定が可能になります。VM が初めて起動すると、VM 内部の Cloud-Init ソフトウェアがこれらの設定を適用します。
多くのLinuxディストリビューションは、すぐに使えるCloud-Initイメージを提供しています。これらのイメージは Proxmox VE でも動作します。このようなすぐに使えるイメージを入手するのは便利かもしれませんが、通常は自分でイメージを準備することをお勧めします。その利点は、何をインストールしたかを正確に知ることができ、後で自分のニーズに合わせてイメージを簡単にカスタマイズできることです。
このようなCloud-Initイメージを作成したら、それをVMテンプレートに変換することをお勧めします。VMテンプレートからリンクされたクローンを素早く作成できるので、これは新しいVMインスタンスをロールアウトする迅速な方法です。新しいVMを起動する前にネットワーク(と多分sshキー)を設定するだけです。
Cloud-InitでプロビジョニングされたVMにログインするには、SSHキーベースの認証を使用することをお勧めします。パスワードを設定することも可能ですが、Proxmox VEはCloud-Initのデータ内に暗号化されたパスワードを保存する必要があるため、SSHキーベースの認証ほど安全ではありません。
Proxmox VEはCloud-InitデータをVMに渡すためにISOイメージを生成します。通常、シリアルコンソールを追加してディスプレイとして使用します。多くのCloud-Initイメージはこれに依存しており、これはOpenStackの要件です。しかし、他のイメージではこの設定に問題があるかもしれません。シリアルコンソールを使ってもうまくいかない場合は、デフォルトのディスプレイ構成に戻してください。
10.8.1.Cloud-Initテンプレートの準備
最初のステップはVMの準備です。Cloud-Initパッケージを準備したいVMにインストールするだけです。Debian/Ubuntuベースのシステムでは、これは以下のように簡単です:
apt-get install cloud-init
|
|
このコマンドはProxmox VEホスト上では実行されず、VM内部でのみ実行されます。 |
すでに多くのディストリビューションがすぐに使えるCloud-Initイメージ(.qcow2ファイルとして提供)を提供しているので、そのようなイメージをダウンロードしてインポートすることもできます。以下の例では、Ubuntuが提供するクラウドイメージ(https://cloud-images.ubuntu.com)を使用します。
# イメージをダウンロード wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img # VirtIO SCSI コントローラで新しい VM を作成 qm create 9000 --memory 2048 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci # ダウンロードしたディスクを local-lvm ストレージにインポートし、 SCSI ドライブとしてアタッチ qm set 9000 --scsi0 local-lvm:0,import-from=/path/to/bionic-server-cloudimg-amd64.img
|
|
Ubuntu Cloud-Init イメージには、SCSI ドライブ用にvirtio-scsi-pciコントローラタイプが必要です。 |
qm set 9000 --ide2 local-lvm:cloudinit
Cloud-Init イメージから直接ブートするには、ブートパラメータを order=scsi0に設定して、BIOS がこのディスクからのみブートするように制限します。これにより、VM BIOS はブート可能な CD-ROM のテストをスキップするため、ブートが高速化されます。
qm set 9000 --boot order=scsi0
多くの Cloud-Init イメージでは、シリアルコンソールを設定してディスプレイとして使用する必要があります。しかし、あるイメージで設定がうまくいかない場合は、代わりにデフォルトのディスプレイに切り替えてください。
qm set 9000 --serial0 socket --vga serial0
最後のステップでは、VMをテンプレートに変換すると便利です。VMテンプレートからのデプロイは、完全なクローン(コピー)を作成するよりもはるかに高速です。
QMテンプレート9000
10.8.2.Cloud-Initテンプレートのデプロイ
qm clone 9000 123 --name ubuntu2
次に、認証に使用するSSH公開鍵を設定し、IP設定を行います:
qm set 123 --sshkey ~/.ssh/id_rsa.pub qm set 123 --ipconfig0 ip=10.0.10.123/24,gw=10.0.10.1
1つのコマンドだけですべてのCloud-Initオプションを設定することもできます。上記の例では、行数を減らすためにコマンドを単純に分割しています。また、特定の環境のIPセットアップを採用するようにしてください。
10.8.3.カスタムクラウドイニット構成
Cloud-Init の統合では、自動生成された設定の代わりにカスタム設定ファイルを使うこともできます。これはコマンドラインのcicustomオプションで行います:
qm set 9000 --cicustom "user=<volume>,network=<volume>,meta=<volume>"
カスタム設定ファイルは、スニペットをサポートするストレージ上にあり、VMを移行するすべてのノードで利用可能でなければなりません。そうでないと、VMは起動できません。 例えば、以下のようになります:
qm set 9000 --cicustom "user=local:snippets/userconfig.yaml"
Cloud-Initには3種類の設定があります。一つ目は上の例にあるようにユーザー設定です。2つ目はネットワーク設定、3つ目はメタ設定です。カスタムコンフィグファイルが指定されていない場合は、自動生成されたコンフィグが使われます。
生成されたコンフィグはカスタムコンフィグのベースとしてダンプすることができます:
qm cloudinit dump 9000 ユーザー
ネットワークと メタにも同じコマンドがあります。
10.8.4.WindowsのCloud-Init
Cloudbase-initというWindows用のCloud-Initの再実装があります。Cloudbase-InitではCloud-Initのすべての機能が利用できるわけではなく、Cloud-Initとは異なる機能もあります。
Cloudbase-Initでは、ostypeをWindowsバージョンに設定し、citypeを configdrive2に設定する必要があります。
Windows用の既製のクラウドイメージは無料で入手できません。Cloudbase-Initを使用するには、Windowsゲストを手動でインストールして設定する必要があります。
10.8.5.Cloudbase-Initテンプレートの準備
最初のステップはVMにWindowsをインストールすることです。Cloudbase-Initをダウンロードしてゲストにインストールします。インストールの最後にSysprepを実行しないでください。代わりにCloudbase-Initを最初に設定します。
一般的なオプションは以下の通りです:
-
username: 管理者のユーザー名を設定します。
-
グループに追加します:これにより、ユーザーをAdministratorsグループに追加できます。
-
inject_user_password: VMコンフィグでパスワードを設定できるようにするには、これをtrueに設定します。
-
first_logon_behaviour:ログイン時に新しいパスワードを要求しないようにするには、これをnoに設定します。
-
rename_admin_user:デフォルトの管理者ユーザーをusernameで指定したユーザー名に変更する場合はtrue を設定します。
-
metadata_services に設定します:Cloudbase-Init が最初にこのサービスをチェックするようにcloudbaseinit.metadata.services.configdrive.ConfigDriveServiceに設定します。そうしないと Cloudbase-Init がブート後にシステムを設定するのに数分かかるかもしれません。
プラグインの中には、例えば SetHostnamePlugin のように再起動を必要とし、自動的に再起動するものもあります。Cloudbase-Init による自動再起動を無効にするには、allow_rebootをfalse に設定します。
設定オプションの完全なセットはcloudbase-init の公式ドキュメントにあります。
設定の一部にまだ調整が必要な場合に備えて、設定後にスナップショットを作成することは意味があります。 Cloudbase-Initを設定した後、テンプレートの作成を開始できます。Windowsゲストをシャットダウンし、Cloud-Initディスクを追加してテンプレートにします。
qm set 9000 --ide2 local-lvm:cloudinit qm template 9000
テンプレートを新しいVMにクローンします:
qm clone 9000 123 --name windows123
その後、パスワード、ネットワーク設定、SSHキーを設定します:
qm set 123 --cipassword <password> qm set 123 --ipconfig0 ip=10.0.10.123/24,gw=10.0.10.1 qm set 123 --sshkey ~/.ssh/id_rsa.pub
パスワードを設定する前に、ostypeが任意の Windows バージョンに設定されていることを確認してください。そうしないとパスワードは暗号化され、Cloudbase-Initは暗号化されたパスワードを平文のパスワードとして使用します。
すべての設定が完了したら、クローンしたゲストを起動します。最初の起動ではログインは機能せず、変更されたホスト名で自動的に再起動します。 再起動後、新しいパスワードが設定され、ログインが機能するはずです。
10.8.6.Cloudbase-Init と Sysprep
SysprepはWindowsの設定をリセットして新しいシステムを提供する機能です。Cloudbase-Initと併用することで、クリーンなテンプレートを作成することができます。
Sysprepを使用する場合、適合させる必要がある2つの設定ファイルがあります。 1つ目は通常の設定ファイル、2つ目は-unattend.confで終わる設定ファイルです。
Cloudbase-Initは2つのステップで実行されます。最初に-unattend.confを使用するSysprepステップ、次にプライマリ設定ファイルを使用する通常のステップです。
提供されているUnattend.xmlファイルを使用してSysprepを実行しているWindows Serverでは、すぐに動作するはずです。しかし、通常のWindowsバージョンでは、追加の手順が必要です:
-
PowerShellインスタンスを開きます。
-
Administrator ユーザーを有効にします:
net user Administrator /active:yes`
-
Cloudbase-InitをAdministratorユーザでインストールします。
-
Unattend.xmlを変更し、sysprepping後の最初のブートでAdministratorユーザーを有効にするコマンドを含めます:
<RunSynchronousCommand wcm:action="add"> <Path>net user administrator /active:yes</Path> <Order>1</Order> <Description>管理者ユーザーを有効にします</Description> </RunSynchronousCommand> <RunSynchronousCommand
<Order >が他の同期コマンドと衝突しないことを確認してください。 Cloudbase-Initコマンドの<Order>を、このコマンドの後に実行するように変更します。
-
(Windows 11のみ)競合するMicrosoft.OneDriveSyncパッケージを削除します:
Get-AppxPackage -AllUsers Microsoft.OneDriveSync | Remove-AppxPackage -AllUsers
-
Cloudbase-Init configディレクトリにcdします:
cd 'C:¥Program Files¥Cloudbase Solutions¥Cloudbase-Init¥conf
-
(オプション)Sysprep前にVMのスナップショットを作成し、設定ミスに備えます。
-
Sysprepを実行します:
C:¥Windows¥System32¥Sysprep¥Sysprep.exe /generalize /oobe /unattend:Unattend.xml
上記の手順を踏むと、SysprepによってVMはシャットダウン状態になるはずです。これでVMをテンプレート化し、クローンして必要に応じて設定することができます。
10.8.7.Cloud-Init固有のオプション
- カスタム[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>] です。
-
開始時に自動生成されるファイルを置き換えるカスタムファイルを指定します。
- meta=<ボリューム
-
cloud-init経由でVMに渡されるすべてのメタデータを含むカスタムファイルを指定します。これはプロバイダ固有で、configdrive2とnocloudは異なります。
- ネットワーク=<ボリューム
-
すべてのネットワークデータを含むカスタムファイルをcloud-init経由でVMに渡す場合。
- ユーザー=<ボリューム
-
すべてのユーザーデータを含むカスタムファイルをcloud-init経由でVMに渡す場合。
- ベンダー=<ボリューム
-
すべてのベンダーデータを含むカスタムファイルをcloud-init経由でVMに渡すには。
- cipassword:<文字列
-
ユーザーに割り当てるパスワード。これを使用することは一般的に推奨されません。代わりに ssh 鍵を使ってください。また、cloud-init の古いバージョンではハッシュ化されたパスワードをサポートしていないことに注意しましょう。
- citype:<configdrive2 | nocloud | opennebula>です。
-
cloud-init設定フォーマットを指定します。デフォルトは、設定されているオペレーティングシステムの種類(ostype.Linuxではnocloud形式、Windowsではconfigdrive2を使用します。
- ciupgrade:<boolean>(デフォルト = 1)
-
最初のブート後にパッケージの自動アップグレードを行います。
- ciuser:<文字列
-
イメージに設定されているデフォルトユーザの代わりに、ssh キーとパスワードを変更するユーザ名。
- ipconfig[n]:[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>] となります。
-
対応するインターフェイスのIPアドレスとゲートウェイを指定します。
IPアドレスはCIDR表記を使用し、ゲートウェイはオプションですが、同じタイプのIPを指定する必要があります。
特別な文字列dhcpは、DHCPを使用するIPアドレスに使用することができ、その場合、明示的なゲートウェイを提供する必要はありません。 IPv6の場合、特別な文字列autoは、ステートレス自動設定を使用するために使用することができます。これにはcloud-init 19.4以降が必要です。
cloud-initが有効で、IPv4アドレスもIPv6アドレスも指定されていない場合、デフォルトでIPv4のdhcpを使用します。
- gw=<ゲートウェイIPv4
-
IPv4トラフィックのデフォルトゲートウェイ。
必要なオプション:ip - gw6=<ゲートウェイIPv6
-
IPv6トラフィックのデフォルトゲートウェイ。
必要なオプション:ip6 - ip=<IPv4Format/CIDR>(デフォルト = dhcp)
-
CIDR形式のIPv4アドレス。
- ip6=<IPv6Format/CIDR>(デフォルト = dhcp)
-
CIDR形式のIPv6アドレス。
- ネームサーバー:<文字列
-
コンテナの DNS サーバー IP アドレスを設定します。searchdomainもnameserverも設定されていない場合、Createはホストからの設定を自動的に使用します。
- searchdomain:<文字列
-
コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定されていない場合、Createはホストからの設定を自動的に使用します。
- sshkeys:<文字列
-
公開SSH鍵を設定します(1行に1つの鍵、OpenSSH形式)。
10.9.PCI(e) パススルー
PCIパススルーは、ホストから仮想マシンにPCIデバイスを制御させるメカニズムです。これには、仮想化ハードウェアを使用する場合よりも、低レイテンシ、高パフォーマンス、より多くの機能(オフロードなど)などの利点があります。
しかし、デバイスを仮想マシンに渡すと、そのデバイスはホスト上でも他のVMでも使用できなくなります。
PCIパススルーはi440fxおよびq35マシンで利用可能ですが、PCIeパススルーはq35マシンのみで利用可能です。これは、PCIデバイスとしてパススルーされたPCIe対応デバイスがPCI速度でのみ動作することを意味するものではありません。PCIe としてデバイスを通過させることは、デバイスが "本当に高速なレガシー PCI デバイス" ではなく PCIe デバイスであることをゲストに伝えるためのフラグを設定するだけです。一部のゲストアプリケーションはこの恩恵を受けます。
10.9.1.一般要件
パススルーは実際のハードウェア上で実行されるため、いくつかの要件を満たす必要があります。これらの要件の概要を以下に示します。特定のデバイスに関する詳細については、PCIパススルーの例を参照してください。
ハードウェア
ハードウェアがIOMMU(I/O Memory ManagementUnit)割り込みリマッピングをサポートしている必要があります。
一般的に、VT-dを搭載したIntelシステムとAMD-Viを搭載したAMDシステムはこれをサポートしています。 しかし、ハードウェアの実装が悪かったり、ドライバが不足していたり、品質が低かったりするため、箱から出してすぐにすべてが動作する保証はありません。
さらに、サーバーグレードのハードウェアは、コンシューマーグレードのハードウェアよりもサポートが優れていることが多いのですが、それでも最近のシステムの多くはこれをサポートしています。
この機能がLinuxでサポートされているかどうかは、ハードウェアベンダーにお問い合わせください。
PCI カードアドレスの決定
最も簡単な方法は、GUI を使用して VM のハードウェア・タブに「Host PCI」タイプのデバイスを追加することです。また、コマンドラインを使用することもできます。
カードを探すには
エルエスピーシー
コンフィギュレーション
ハードウェアがパススルーをサポートしていることを確認したら、PCI(e) パススルーを有効にするための設定を行う必要があります。
BIOS/UEFI で IOMMU サポートを有効にする必要があります。通常、対応する設定はIOMMUまたはVT-d と呼ばれますが、正確なオプション名はマザーボードのマニュアルで見つけてください。
AMD CPUでは、IOMMUはデフォルトで有効になっています。最近のカーネル(6.8以降)では、Intel CPUでも有効です。それ以前のカーネルでは、カーネルコマンドラインに以下を追加して、Intel CPU で有効にする必要があります:
intel_iommu=on
ハードウェアがIOMMUパススルーモードをサポートしている場合、このモードを有効にするとパフォーマンスが向上する可能性があります。 これは、VMがハイパーバイザによって通常実行される(デフォルトの)DMA変換をバイパスし、代わりにDMA要求をハードウェアIOMMUに直接渡すためです。これらのオプションを有効にするには、以下を追加します:
iommu=pt
をカーネルコマンドラインに追加します。
以下のモジュールがロードされていることを確認する必要があります。etc/modules'に追加してください。
|
|
媒介機器のパススルー
仲介デバイス(vGPUなど)を通過する場合は、以下は必要ありません。 このような場合、デバイスは該当するホストドライバが直接所有します。 |
vfio vfio_iommu_type1 vfio_pci
モジュール関連の何かを変更したら、initramfsをリフレッシュする必要があります。Proxmox VEでは、これを実行することで行えます:
# update-initramfs -u -k all
モジュールがロードされているかどうかをチェックするには
# lsmod | grep vfio
の4つのモジュールが含まれている必要があります。
最後に再起動して変更を有効にし、実際に有効になっていることを確認してください。
# dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
は、IOMMU、Directed I/O、またはInterrupt Remappingが有効であることを表示するはずですが、正確なメッセージはハードウェアとカーネルによって異なります。
IOMMU が意図したとおりに動作しているかどうかを確認する方法については、wiki の「IOMMU パラメータの検証」セクションを参照してください。
また、通過させたいデバイスが別の IOMMUグループに属していることも重要です。これは Proxmox VE API を呼び出すことで確認できます:
# pvesh get /nodes/{nodename}/hardware/pci --pci-class-blacklist ""
デバイスが、その機能(例えば、HDMIオーディオデバイスを持つGPU)と一緒にIOMMUグループにあるか、そのルートポートまたはPCI(e)ブリッジと一緒にある場合は問題ありません。
|
|
PCI(e)スロット
プラットフォームによっては、物理的なPCI(e)スロットの扱いが異なります。そのため、希望のIOMMUグループ分離が得られない場合、カードを別のPCI(e)スロットに置くことが助けになることがあります。 |
|
|
安全でない割り込み
プラットフォームによっては、安全でない割り込みを許可する必要があるかもしれません。 その場合は、/etc/modprobe.d/の'.conf'で終わるファイルに以下の行を追加してください: オプション vfio_iommu_type1 allow_unsafe_interrupts=1 このオプションはシステムを不安定にする可能性がありますのでご注意ください。 |
10.9.2.ホスト・デバイス・パススルー
PCI(e)パススルーの最も一般的な方法は、PCI(e)カード全体(GPUやネットワークカードなど)を通過させる方法です。
ホスト構成
Proxmox VEは自動的にPCI(e)デバイスをホストから使用できないようにしようとします。 しかし、これがうまくいかない場合、2つの方法があります:
-
を追加することで、vfio-pciモジュールのオプションにデバイスIDを渡します。
オプション vfio-pci ids=1234:5678,4321:8765
ここで1234:5678と 4321:8765は、/etc/modprobe.d/の.confファイルで取得したベンダーとデバイスのIDです:
# lspci -nn
-
ホスト上のドライバを完全にブラックリストに入れ、パススルー用にバインドできるようにします。
ブラックリスト DRIVERNAME
を/etc/modprobe.d/ の .conf ファイルに追加します。
ドライバ名を見つけるには
# lspci -k
例えば
# lspci -k | grep -A 3 "VGA"
のようなものが出力されます。
01:00.0 VGA 互換コントローラ:NVIDIA Corporation GP108 [GeForce GT 1030] (rev a1) サブシステム:サブシステム: Micro-Star International Co.[MSI] GP108 [GeForce GT 1030] 使用中のカーネルドライバ: <some-module> カーネルモジュール: <some-module
これで、.confファイルにドライバを記述することで、ドライバをブラックリスト化することができます:
echo "blacklist <some-module>" >> /etc/modprobe.d/blacklist.conf
どちらの方法でも、 initramfsを再度更新し、その後再起動する必要があります。
これがうまくいかない場合は、vfio-pciをロードする前にgpuモジュールをロードするよう、ソフト依存を設定する必要があるかもしれません。これはsoftdepフラグで行えます。詳しくはmodprobe.dの man ページも参照してください。
例えば、<some-module>という名前のドライバを使っている場合です:
# echo "softdep <some-module> pre: vfio-pci" >> /etc/modprobe.d/<some-module>.conf。
変更が成功したかどうかを確認するには
# lspci -nnk
をクリックし、デバイスのエントリを確認してください。もし
使用中のカーネルドライバ:vfio-pci
または使用中の行が全くない場合、デバイスはパススルーに使用する準備ができています。
|
|
媒介機器
mediatedデバイスの場合、デバイスはvfio-pciではなく直接ホストドライバとして所有されるため、この行は異なります。 |
VM 構成
GPU をパススルーする場合、q35をマシンタイプとして使い、SeaBIOS の代わりにOVMF(VM 用UEFI)、そして PCI の代わりに PCIe を使うと最高の互換性が得られます。GPU パススルーにOVMF を使いたい場合、GPU が UEFI 対応の ROM を持っている必要があることに注意してください。ROM が UEFI に対応しているかチェックするにはPCI Passthrough Exampleswiki を見て下さい。
さらに、OVMFを使用することで、vgaのアービトレーションを無効にすることができ、ブート中に実行する必要があるレガシーコードの量を減らすことができます。vgaアービトレーションを無効にするには
echo "options vfio-pci ids=<vendor-id>,<device-id> disable_vga=1" > /etc/modprobe.d/vfio.conf
を<vendor-id>と<device-id>に置き換えてください:
# lspci -nn
PCIデバイスは、VMのハードウェア・セクションにあるウェブ・インターフェイスで追加できます。 また、コマンドラインを使用することもできます。VMコンフィギュレーションでhostpciXオプションを設定します:
# qm set VMID -hostpci0 00:02.0
またはVMコンフィギュレーション・ファイルに行を追加します:
ホストPCI0: 00:02.0
デバイスに複数のファンクション(例えば '00:02.0' と '00:02.1' )がある場合は、`00:02` という短縮構文でまとめて渡すことができます。 これはウェブインターフェースの``All Functions`チェックボックスをチェックするのと同じです。
デバイスとゲストOSによっては、必要なオプションがいくつかあります:
-
x-vga=on|offは、PCI(e) デバイスを VM のプライマリ GPU としてマークします。 これを有効にすると、vga設定オプションは無視されます。
-
pcie=on|offはPCIeまたはPCIポートを使用するようにProxmox VEに指示します。ゲスト/デバイスの組み合わせによってはPCIではなくPCIeを必要とします。PCIeはq35マシンタイプでのみ使用可能です。
-
rombar=on|offは、ファームウェア ROM をゲストから見えるようにします。デフォルトは on です。 いくつかの PCI(e) デバイスはこれを無効にする必要があります。
-
romfile=<path> は、デバイスが使用する ROM ファイルへのオプションのパスです。 これは、/usr/share/kvm/ 以下の相対パスです。
GPUをプライマリに設定したPCIeパススルーの例:
# qm set VMID -hostpci0 02:00,pcie=on,x-vga=on。
ゲストによって認識される PCI ベンダー ID、デバイス ID、サブシステム ID を上書きすることができます。これは、デバイスがゲストのドライバが認識しない ID を持つバリアントであるにもかかわらず、それらのドライバを強制的にロードしたい場合に便利です (例えば、デバイスがサポートされるバリアントと同じチップセットを共有していることが分かっている場合など)。
使用可能なオプションはvendor-id、device-id、sub-vendor-id、sub-device-id です。デバイスのデフォルトIDを上書きするために、これらのいずれかまたはすべてを設定できます。
例えば
# qm set VMID -hostpci0 02:00,device-id=0x10f6,sub-vendor-id=0x0000。
10.9.3.SR-IOV
PCI(e)デバイスを通過させるもう一つの方法は、もし利用可能であれば、デバイスのハードウェア仮想化機能を使うことです。
|
|
SR-IOVの実現
SR-IOV を使用するには、プラットフォームのサポートが特に重要です。最初に BIOS/UEFI でこの機能を有効にするか、特定の PCI(e) ポートを使用する必要があるかもしれません。不明な点は、プラットフォームのマニュアルを参照するか、ベンダーにお問い合わせください。 |
SR-IOV(Single-RootInput/Output Virtualization)は、1つのデバイスで複数のVF(仮想 機能)をシステムに提供することができます。これらのVFはそれぞれ異なるVMで使用することができ、完全なハードウェア機能を備え、ソフトウェア仮想化デバイスよりも優れたパフォーマンスと低レイテンシを実現します。
現在、最も一般的なユースケースは SR-IOV をサポートする NIC(ネットワーク・インターフェイス・ カード)で、物理ポートごとに複数の VF を提供することができます。これにより、チェックサム・オフロードなどの機能をVM内部で使用できるようになり、(ホストの)CPUオーバーヘッドを削減できます。
ホスト構成
一般的に、デバイス上で仮想機能を有効にするには2つの方法があります。
-
ドライバモジュールにオプションがある場合もあります。
max_vfs=4
これは、/etc/modprobe.d/ の下に.conf を末尾に持つファイルを置くことができます (この後、initramfs を更新することを忘れないでください)。
正確なパラメータとオプションについては、ドライバ・モジュールのマニュアルを参照してください。
-
デバイスとドライバがこれをサポートしていれば、VFの数をその場で変更することができます。例えば、デバイス0000:01:00.0に4つのVFをセットアップするには、次のように実行します:
# echo 4 > /sys/bus/pci/devices/0000:01:00.0/sriov_numvfs
インストール後、/etc/sysfs.confまたは/etc/sysfs.d/ 内の `FILE.conf' で設定します。
VM 構成
VF を作成した後、それらをlspci で出力すると、別々の PCI(e) デバイスとして見えるはずです。それらの ID を取得し、通常の PCI(e) デバイスのように通してください。
10.9.4.媒介デバイス (vGPU、GVT-g)
媒介デバイスは、物理ハードウェアの機能と性能を仮想化ハードウェアに再利用するもう1つの方法です。これらは、IntelのGVT-gやNVIDIAのGRIDテクノロジーで使用されているvGPUのような仮想化GPUセットアップで最もよく見られます。
これによって、物理カードはSR-IOVと同様に仮想カードを作成することができます。 違いは、mediatedデバイスはホスト内でPCI(e)デバイスとして表示されず、仮想マシンでの使用にのみ適していることです。
ホスト構成
一般的に、カードのドライバがその機能をサポートしていなければ、動作しません。そのため、互換性のあるドライバとその設定方法については、各ベンダーにお問い合わせください。
インテルのGVT-g用ドライバはカーネルに統合されており、第5、第6、第7世代のインテルCoreプロセッサ、およびE3 v4、E3 v5、E3 v6のXeonプロセッサで動作するはずです。
Intel Graphicsで有効にするには、モジュールkvmgtを(例えば/etc/modules経由で)ロードし、カーネルコマンドラインで有効にして、以下のパラメータを追加する必要があります:
i915.enable_gvt=1
その後、 initramfsを更新し、ホストを再起動することを忘れないでください。
VM 構成
mediatedデバイスを使用するには、hostpciXVMコンフィギュレーション・オプションでmdevプロパティを指定するだけです。
サポートされているデバイスは、sysfs経由で取得できます。例えば、0000:00:02.0というデバイスでサポートされているタイプをリストアップするには、次のように実行します:
# ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types
各エントリーは、以下の重要なファイルを含むディレクトリです:
-
available_instancesには、このタイプのまだ利用可能なインスタンスの量が含まれます。
-
説明には、その型の能力に関する短い説明が含まれます。
-
createは、このようなデバイスを作成するためのエンドポイントです。Proxmox VEは、mdevの hostpciXオプションが設定されている場合、自動的にこれを行います。
Intel GVT-gvGPU(Intel Skylake 6700k)を使用した構成例:
# qm set VMID -hostpci0 00:02.0,mdev=i915-GVTg_V5_4。
この設定により、Proxmox VEはVM起動時にこのようなデバイスを自動的に作成し、VM停止時に再びクリーンアップします。
10.9.5.クラスターでの使用
また、クラスタレベルでデバイスをマッピングすることも可能で、HAで適切に使用できるようにしたり、ハードウェアの変更を検出したり、非rootユーザが設定できるようにしたりできます。詳細はリソースマッピングを参照してください。
10.9.6. vIOMMU(エミュレートされた IOMMU)
vIOMMUは、仮想マシン内のハードウェアIOMMUのエミュレーションで、仮想化I/Oデバイスのメモリアクセス制御とセキュリティを向上させます。vIOMMU オプションを使用すると、ネストされた仮想化により、PCI(e) デバイスをレベル 1 VM のレベル 2 VM にパススルーすることもできます。 ホストからネストされた VM に物理 PCI(e) デバイスをパススルーするには、PCI(e) パススルーの手順に従ってください。
現在、2つのvIOMMU実装が利用可能です:IntelとVirtIOです。
インテル vIOMMU
Intel vIOMMU固有のVM要件:
-
ホストでIntelまたはAMDのどちらのCPUを使用している場合でも、VMのカーネル・パラメータでintel_iommu=onを設定することが重要です。
-
Intel vIOMMUを使用するには、マシンタイプとしてq35を設定する必要があります。
すべての要件が満たされていれば、PCIデバイスを通過できるはずのVMのコンフィギュレーションのマシン・パラメータにviommu=intelを追加できます。
# qm set VMID -machine q35,viommu=intel
10.10.フックスクリプト
設定プロパティhookscriptを使用すると、VMにフックスクリプトを追加できます。
# qm set 100 --hookscript local:snippets/hookscript.pl
このスクリプトは、ゲストが生きている間の様々な局面で呼び出されます。 例とドキュメントは、/usr/share/pve-docs/examples/guest-example-hookscript.pl にあるサンプルスクリプトを参照してください。
10.11.ハイバネーション
VMをディスクにサスペンドするには、GUIオプションのHibernateまたは
# qm suspend ID --todisk
つまり、メモリの現在の内容がディスクに保存され、VMは停止します。次の起動時には、メモリの内容がロードされ、VMは中断したところから続行することができます。
メモリーのターゲット・ストレージが指定されていない場合は、自動的に選択されます:
-
VMコンフィグのストレージvmstatestorage。
-
任意のVMディスクからの最初の共有ストレージ。
-
どのVMディスクからも最初の非共有ストレージ。
-
フォールバックとしてのストレージローカル。
10.12.リソースマッピング
-
HAを使用する場合、ターゲットノード上に同じIDやパスを持つ別のデバイスが存在する可能性があり、そのようなゲストをHAグループに割り当てる際に注意しなければ、間違ったデバイスが使用され、設定が壊れてしまう可能性があります。
-
ハードウェアを変更するとIDやパスが変わることがあるので、割り当てられたすべてのデバイスをチェックして、パスやIDが正しいかどうかを確認する必要があります。
これをうまく処理するには、クラスタ全体のリソースマッピングを定義して、リソースがクラスタ固有の、ユーザが選択した識別子を持ち、異なるホスト上の異なるデバイスに対応できるようにします。これにより、HAが間違ったデバイスでゲストを起動することはなくなり、ハードウェアの変更も検出できるようになります。
このようなマッピングの作成は、Proxmox VE ウェブ GUI のリソースマッピ ングカテゴリの関連タブにあるデータセンターで行うことができます。
# pvesh create /cluster/mapping/<type> <options>
オプションには、ハードウェアが変更されておらず、正しいデバイスが通過していることを確認できるように、そのハードウェアのすべての識別プロパティを持つマッププロパティを含める必要があることに注意してください。
例えば、ノードnode1にデバイスID0001とベンダーID0002を持つパス0000:01:00.0のPCIデバイスをdevice1として追加し、ノードnode2に0000:02:00.0を追加するには、次のようにします:
# pvesh create /cluster/mapping/pci --id device1 ˶ --map node=node1,path=0000:01:00.0,id=0002:0001 ˶ --map node=node2,path=0000:02:00.0,id=0002:0001
デバイスがマッピングされるべき各ノードに対して、mapパラメータを繰り返す必要があります(現在、1つのマッピングにつき1つのノードにつき1つのUSBデバイスしかマッピングできないことに注意してください)。
GUIを使用すると、正しいプロパティが自動的にピックアップされ、APIに送信されるため、これが非常に簡単になります。
PCI デバイスでは、ノードごとに複数のマッププロパティを持つ複数のデバイスを提供することも可能です。このようなデバイスがゲストに割り当てられた場合、ゲストの起動時に最初に空いているものが使用されます。与えられたパスの順番は試行される順番でもあるため、任意の割り当てポリシーを実装できます。
これは、SR-IOVを持つデバイスにとって便利です。
このようなデバイスをゲストに割り当てるには、GUI または
# qm set ID -hostpci0 <名前>.
PCIデバイスの場合
# qm set <vmid> -usb0 <name>
USBデバイス用。
ここで、<vmid>はゲスト ID で、<name>は作成されるマッピングの名前です。mdev のような、デバイスを通過するための通常のオプションはすべて許可されています。
マッピングを作成するには、Mapping.Modifyon/mapping/<type>/<name>が必要です(<type>はデバイスタイプ、<name>はマッピング名)。
これらのマッピングを使用するには、/mapping/<type>/<name>上のMapping.Useが必要です(設定を編集する通常のゲスト権限に加えて)。
10.13.qmによる仮想マシンの管理
qm は Proxmox VE 上の QEMU/KVM 仮想マシンを管理するツールです。仮想マシンの作成と破棄、実行の制御(スタート/ストップ/サスペンド/レジューム)ができます。さらに、qm を使用して関連する設定ファイルにパラメータを設定できます。仮想ディスクの作成と削除も可能です。
10.13.1.CLIの使用例
ローカル・ストレージにアップロードされたisoファイルを使って、4GBのIDEディスクを持つVMをlocal-lvmストレージに作成します。
# qm create 300 -ide0 local-lvm:4 -net0 e1000 -cdrom local:iso/proxmox-mailgateway_2.1.iso
新しいVMの起動
# qm start 300
シャットダウン要求を送信し、VMが停止するまで待ちます。
# qm shutdown 300 && qm wait 300
上記と同じですが、40秒間待つだけです。
# qm shutdown 300 && qm wait 300 -timeout 40
VMがシャットダウンしない場合は、VMを強制停止し、実行中のシャットダウン・タスクを上書きします。VMを停止するとデータが失われる可能性があるため、使用には注意が必要です。
# qm stop 300 -overrule-shutdown 1
VMを破棄すると、そのVMは常にアクセス制御リストから削除され、そのVMのファイアウォール構成も常に削除されます。レプリケーション・ジョブ、バックアップ・ジョブ、およびHAリソース・コンフィギュレーションからもVMを削除する場合は、-purgeを有効にする必要があります。
# qm destroy 300 --purge
ディスクイメージを別のストレージに移動します。
# qm move-disk 300 scsi0 other-storage
ディスクイメージを別のVMに再割り当てします。これにより、ディスクscsi1がソース VM から削除され、scsi3としてターゲット VM にアタッチされます。バックグラウンドでは、ディスク・イメージの名前が新しい所有者と一致するように変更されます。
# qm move-disk 300 scsi1 --target-vmid 400 --target-disk scsi3
10.14.コンフィギュレーション
VM設定ファイルはProxmoxクラスタファイルシステム内に保存され、/etc/pve/qemu-server/<VMID>.confにアクセスできます。/etc/pve/内に保存された他のファイルと同様に、他のすべてのクラスタノードに自動的に複製されます。
|
|
100未満のVMIDは内部用に予約されており、VMIDはクラスタ全体で一意である必要があります。 |
boot: order=virtio0;net0 コア:1 ソケット1 メモリ512 name: webmail ostype: l26 net0: e1000=EE:D2:28:5F:B6:3E,bridge=vmbr0 virtio0: local:vm-100-disk-1,size=32G
これらの設定ファイルは単純なテキストファイルで、通常のテキストエディタ(vi、nano、...)を使用して編集できます。これはちょっとした修正に便利ですが、そのような変更を適用するにはVMを再起動する必要があることに注意してください。
そのため、通常はqmコマンドを使用してファイルを生成・変更するか、GUIを使用してすべての作業を行う方がよいでしょう。 私たちのツールキットは十分に賢く、実行中のVMにほとんどの変更を即座に適用することができます。この機能は「ホットプラグ」と呼ばれ、この場合VMを再起動する必要はありません。
10.14.1.ファイルフォーマット
VM設定ファイルは、コロンで区切られた単純なキー/値形式を使用します。各行の書式は以下のとおりです:
# これはコメントです。
これらのファイルの空白行は無視され、#文字で始まる行はコメントとして扱われ、これも無視されます。
10.14.2.スナップショット
スナップショットを作成すると、qm はスナップショット時の設定を同じ設定ファイル内の別のスナップショットセクションに保存します。例えば、"testsnapshot" というスナップショットを作成した後、設定ファイルは以下のようになります:
メモリ512 swap:512 parent: testsnaphot ... [testsnaphot] memory:512 swap:512 snaptime: 1457170803 ...
parentやsnaptime のようなスナップショット関連のプロパティがいくつかあります。parentプロパティはスナップショット間の親子関係を保存するために使用されます。snaptimeはスナップショットの作成タイムスタンプ (Unix epoch) です。
オプションのvmstateを使用すると、実行中のVMのメモリを保存することができます。 VMの状態のターゲット・ストレージの選択方法については、「ハイバネーション」の章の「状態ストレージの選択」を参照してください。
10.14.3.オプション
- acpi:<ブール値>(デフォルト = 1)
-
ACPI を有効/無効にします。
- 親和性:<文字列
-
ゲストプロセスの実行に使用されるホストコアのリスト(例:0,5,8-11
- エージェント:[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]。
-
QEMU ゲストエージェントとそのプロパティとの通信を有効/無効にします。
- enabled=<boolean>(デフォルト = 0)
-
VM 内で実行されている QEMU ゲストエージェント (QGA) との通信を有効/無効にします。
- freeze-fs-on-backup=<boolean>(デフォルト = 1)
-
一貫性を保つために、バックアップ時にゲストファイルシステムをフリーズ/解凍します。
- fstrim_cloned_disks=<boolean>(デフォルト = 0)
-
ディスクの移動またはVMの移行後にfstrimを実行します。
- type=<isa| virtio>(デフォルト = virtio)
-
エージェントタイプの選択
- amd-sev:[type=]<sev-type>[,kernel-hashes=<1|0>][,no-debug=<1|0>][,no-key-sharing=<1|0>]。
-
AMD CPUによるセキュア暗号化仮想化(SEV)機能
- kernel-hashes=<boolean>(デフォルト = 0)
-
カーネル・ハッシュをゲスト・ファームウェアに追加して、Linuxカーネルの起動を測定します。
- no-debug=<boolean>(デフォルト = 0)
-
ポリシービット 0 を 1 に設定し、ゲストのデバッグを禁止します。
- no-key-sharing=<boolean>(デフォルト = 0)
-
ポリシービット1を1に設定し、他のゲストとの鍵共有を禁止します。
- type=<セブタイプ
-
type=stdで標準的なSEVを有効にするか、esオプションで実験的なSEV-ESを有効にします。
- arch:<aarch64 | x86_64>です。
-
仮想プロセッサ・アーキテクチャ。デフォルトはホスト。
- 引数:<文字列
-
例えばkvmに渡される任意の引数:
args: -no-reboot -smbiostype=0,vendor=FOO
このオプションはエキスパート専用です。 - audio0:device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>].
-
QXL/Spiceと組み合わせると便利です。
- device=<AC97| ich9-intel-hda | intel-hda> です。
-
オーディオデバイスを設定します。
- driver=<none| spice>(デフォルト = spice)
-
オーディオデバイスのドライババックエンド。
- autostart:<boolean>(デフォルト = 0)
-
クラッシュ後の自動再起動(現在は無視されています)。
- バルーン:<整数> (0 - N)
-
VM のターゲット RAM の量 (MiB 単位)。ゼロを使用すると、バロンドライバが無効になります。
- bios:<ovmf | seabios>(デフォルト = seabios)
-
BIOSの実装を選択します。
- を起動します:[[legacy=]<[acdn]{1,4}>]ブート: [,order=<デバイス[;デバイス...]>]]。
-
ゲストの起動順序を指定します。order=サブプロパティを使用してください。
- legacy=<[acdn]{1,4}>(デフォルト = cdn)
-
フロッピー(a)、ハードディスク(c)、CD-ROM(d)、ネットワーク(n)で起動。非推奨。代わりにorder=を使ってください。
- order=<デバイス[;デバイス...]>です。
-
ゲストは、ここに表示されている順番でデバイスからの起動を試みます。
ディスク、光学ドライブ、パススルー・ストレージ USBデバイスは直接起動し、NICはPXEをロードし、PCIeデバイスはディスクのように動作するか(NVMeなど)、オプションROMをロードします(RAIDコントローラ、ハードウェアNICなど)。
このリストにあるデバイスだけがブート可能としてマークされ、ゲストファームウェア (BIOS/UEFI) によってロードされることに注意してください。ブートに複数のディスクが必要な場合 (例: ソフトウェアレイド)、ここで全てのディスクを指定する必要があります。
指定された場合、非推奨のlegacy=[acdn]*値を上書きします。
- bootdisk:(ide|sata|scsi|virtio) \d+.
-
指定したディスクからの起動を有効にします。非推奨:代わりにboot: order=foo;barを使用してください。
- CDROM:<ボリューム
-
これは -ide2 オプションのエイリアスです。
- カスタム[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>] です。
-
cloud-init:開始時に自動生成されるファイルを置き換えるカスタムファイルを指定します。
- meta=<ボリューム
-
cloud-init経由でVMに渡されるすべてのメタデータを含むカスタムファイルを指定します。これはプロバイダ固有で、configdrive2とnocloudは異なります。
- ネットワーク=<ボリューム
-
すべてのネットワークデータを含むカスタムファイルをcloud-init経由でVMに渡す場合。
- ユーザー=<ボリューム
-
すべてのユーザーデータを含むカスタムファイルをcloud-init経由でVMに渡す場合。
- ベンダー=<ボリューム
-
すべてのベンダーデータを含むカスタムファイルをcloud-init経由でVMに渡すには。
- cipassword:<文字列
-
cloud-init:ユーザーに割り当てるパスワード。一般的に、これを使うことは推奨されません。代わりに ssh 鍵を使います。また、古いバージョンの cloud-init はハッシュ化されたパスワードをサポートしていないことに注意しましょう。
- citype:<configdrive2 | nocloud | opennebula>です。
-
cloud-init設定フォーマットを指定します。デフォルトは、設定されているオペレーティングシステムの種類(ostype.Linuxではnocloud形式、Windowsではconfigdrive2を使用します。
- ciupgrade:<boolean>(デフォルト = 1)
-
cloud-init: 最初の起動後にパッケージの自動アップグレードを行います。
- ciuser:<文字列
-
cloud-init:イメージに設定されているデフォルトユーザーの代わりに、sshキーとパスワードを変更するユーザー名。
- core:<整数> (1 - N)(デフォルト = 1)
-
ソケットあたりのコア数。
- cpu:[[cputype=]<string>] ]。[,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendorid=<vendor-id>] [,phys-bits=<vendor-id>] [[cputype=]<string[,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]。
-
エミュレートされたCPUタイプ。
- cputype=<string>(デフォルト = kvm64)
-
エミュレートされたCPUタイプ。デフォルトまたはカスタム名(カスタムモデル名の前にcustom-を付ける必要があります)。
- flags=<+FLAG[;-FLAG...]>です。
-
で区切られた追加CPUフラグのリスト。フラグを有効にするには+FLAG を、無効にするには-FLAG を使用します。カスタム CPU モデルは、QEMU/KVM でサポートされる任意のフラグを指定できます。VM 固有のフラグは、セキュリティ上の理由から以下のセットから選択する必要があります: pcid、spec-ctrl、ibpb、ssbd、virt-ssbd、amd-ssbd、amd-no-ssb、pdpe1gb、md-clear、hv-tlbflush、hv-evmcs、aes
- hidden=<boolean>(デフォルト = 0)
-
KVM仮想マシンとして識別しないでください。
- hv-vendor-id=<ベンダーID>です。
-
Hyper-VのベンダーID。Windows ゲスト内の一部のドライバーまたはプログラムには、特定の ID が必要です。
- phys-bits=<8-64|host>です。
-
ゲスト OS に報告される物理メモリアドレスビット。ホストの値より小さいか等しくなければなりません。ホスト CPU の値を使用するにはホストに設定しますが、そうすると他の値を持つ CPU へのライブマイグレーションが壊れることに注意してください。
- reported-model=<486 | Broadwell | Broadwell-IBRS | Broadwell-noTSX | Broadwell-noTSX-IBRS | Cascadelake-Server | Cascadelake-Server-noTSX | Cascadelake-Server-v2 | Cascadelake-Server-v4 | Cascadelake-Server-v5 | Conroe | Cooperlake | Cooperlake-v2 | EPYC | EPYC-Genoa | EPYC-IBPB | EPYC-Milan | EPYC-Milan-EPYC-Rome|EPYC-Rome-v2|EPYC-Rome-v3|EPYC-Rome-v4|EPYC-v3|EPYC-v4|GraniteRapids|Haswell|Haswell-IBRS|Haswell-noTSX|Haswell-noTSX-IBRS|Icelake-Client|Icelake-Client-noTSX|Icelake-Server|Icelake-Server-noTSX|Icelake-Server-v3|Icelake-Server-v4|Icelake-Server-v5|Icelake-Server-v6|IvyBridge|IvyBridge-IBRS|KnightsMill|Nehalem|Nehalem-IBRS|Opteron_G1|Opteron_G2|Opteron_G3|Opteron_G4|Opteron_G5|Penryn|SandyBridge|SandyBridge-IBRS|SapphireRapids|SapphireRapids-v2|Skylake-Client|Skylake-Client-IBRS|Skylake-Skylake-Client|Skylake-Client-v4|Skylake-Server|Skylake-Server-IBRS|Skylake-Server-noTSX-IBRS|Skylake-Server-v4|Skylake-Server-v5|Westmere|Westmere-IBRS|athlon|core2duo|coreduo|host|kvm32|kvm64|max|pentium|pentium2|pentium3|phenom|qemu32|qemu64>。(デフォルト = kvm64)
-
ゲストに報告する CPU モデルとベンダー。QEMU/KVM がサポートするモデルである必要があります。カスタム CPU モデル定義に対してのみ有効で、デフォルトモデルは常にゲスト OS に自分自身を報告します。
- cpulimit:<数値> (0 - 128)(デフォルト = 0)
-
CPU使用量の上限。
コンピュータに2つのCPUがある場合、合計2つのCPU時間を持ちます。値0はCPU制限なしを示します。 - cpuunits:<整数> (1 - 262144)(デフォルト = cgroup v1: 1024, cgroup v2: 100)
-
VMのCPUウェイト。引数はカーネルのフェア・スケジューラで使用されます。この数値が大きいほど、このVMはより多くのCPU時間を得ます。数値は、他のすべての実行中のVMのウェイトに対する相対値です。
- 説明:<文字列
-
VM の説明。WebインターフェイスのVMのサマリーに表示されます。コンフィギュレーション・ファイルのコメントとして保存されます。
- efidisk0:[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>].
-
EFIバーを保存するディスクを設定します。
- efitype=<2m| 4m>(デフォルト = 2m)
-
OVMF EFIバーのサイズとタイプ。4mが新しく推奨され、セキュアブートには必須です。後方互換性のため、特に指定がない場合は2mが使用されます。arch=aarch64(ARM)のVMでは無視されます。
- ファイル=<ボリューム
-
ドライブのバックアップ・ボリューム。
- format=<cloop|cow|qcow|qcow2|qed|raw|vmdk>。
-
ドライブのバックアップ・ファイルのデータ形式。
- pre-enrolled-keys=<boolean>(デフォルト = 0)
-
efitype=4m とともに使用する場合は、ディストリビューション固有および Microsoft Standard キーが登録された am EFI vars テンプレートを使用します。この場合、デフォルトでセキュアブートが有効になりますが、VM 内からオフにすることも可能です。
- size=<ディスクサイズ
-
ディスクサイズ。これは単なる情報提供であり、何の効果もありません。
- freeze:<ブール値
-
起動時にCPUをフリーズ(cmonitorコマンドで実行開始)。
- フックスクリプト:<文字列
-
vmsのライフタイムの様々なステップで実行されるスクリプト。
- hostpci[n]: [[host=]<HOSTPCIID[;HOSTPCIID2...]>] [,deviceid=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id[,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0> ] [,romfile=<string>] [,sub-devpci[n] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>] となります。
-
ホストのPCIデバイスをゲストにマッピングします。
このオプションは、ホストハードウェアへの直接アクセスを可能にします。そのため、このようなマシンの移行はもはや不可能です。 実験的!このオプションに関する問題が報告されました。 - デバイスID=<16進数ID
-
ゲストから見えるPCIデバイスIDを上書き
- host=<HOSTPCIID[;HOSTPCIID2...]>です。
-
ホストPCIデバイス・パススルー。ホストのPCIデバイスのPCI ID、またはホストのPCI仮想ファンクションのリスト。HOSTPCIID の構文は次のとおりです:
bus:dev.func(16進数)
lspciコマンドを使用すると、既存の PCI デバイスを一覧表示できます。
このキーまたはマッピング・キーのどちらかを設定する必要があります。
- legacy-igd=<boolean>(デフォルト = 0)
-
このデバイスをレガシーIGDモードで渡すと、VMのプライマリで排他的なグラフィックデバイスになります。pc-i440fxマシンタイプとVGAがnoneに設定されている必要があります。
- マッピング=<マッピングID
-
クラスタ全体のマッピングのID。このホストかdefault-keyホストのどちらかを設定する必要があります。
- mdev=<文字列
-
このタイプのインスタンスはVMの起動時に作成され、VMの停止時にクリーンアップされます。
- pcie=<boolean>(デフォルト = 0)
-
PCI-expressバスを選択してください(q35マシンモデルが必要です)。
- rombar=<boolean>(デフォルト = 1)
-
デバイスの ROM をゲストのメモリーマップに表示するかどうかを指定します。
- romfile=<文字列
-
カスタム pci デバイス rom ファイル名 (/usr/share/kvm/ にある必要があります)。
- サブデバイスID=<16進数ID
-
ゲストから見えるPCIサブシステムのデバイスIDを上書きします。
- サブベンダーID=<16進数ID
-
ゲストから見えるPCIサブシステムのベンダーIDを上書きします。
- ベンダーID=<16進数ID
-
ゲストに見えるPCIベンダーIDの上書き
- x-vga=<boolean>(デフォルト = 0)
-
vfio-vgaデバイスのサポートを有効にします。
- hotplug:<文字列>(デフォルト = ネットワーク,ディスク,USB)
-
ホットプラグ機能を選択的に有効にします。これはカンマ区切りのホットプラグ機能のリストです:ネットワーク、ディスク、CPU、メモリ、USB、cloudinit。ホットプラグを完全に無効にするには0を使用します。値として1 を使用すると、デフォルトのnetwork、disk、usb のエイリアスになります。USB ホットプラグは、マシンのバージョンが >= 7.1 で、ostype l26 または Windows > 7 のゲストで可能です。
- hugepages:<1024 | 2 | any>.
-
hugepagesメモリの有効/無効。
- ide[n]:[ファイル=]<ボリューム> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0> ] [,size=<Disk] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]。
-
ボリュームをIDEハードディスクまたはCD-ROMとして使用します(nは0~3)。
- aio=<io_uring|ネイティブ|スレッド>。
-
使用するAIOタイプ。
- backup=<ブール値
-
バックアップ作成時にドライブを含めるかどうか。
- bps=<bps>
-
最大r/w速度(バイト/秒)。
- bps_max_length=<seconds>です。
-
I/Oバーストの最大長(秒)。
- bps_rd=<bps>
-
最大読み取り速度(バイト/秒)。
- bps_rd_max_length=<seconds>です。
-
読み取りI/Oバーストの最大長(秒)。
- bps_wr=<bps>
-
最大書き込み速度(バイト/秒)。
- bps_wr_max_length=<seconds>です。
-
書き込みI/Oバーストの最大長(秒)。
- cache=<directsync| none | unsafe | writeback | writethrough>です。
-
ドライブのキャッシュ・モード
- cys=<整数
-
ドライブの物理ジオメトリを特定のシリンダ数に強制します。
- detect_zeroes=<ブール値
-
ゼロの書き込みを検出し、最適化を試みるかどうかを制御します。
- discard=<無視|オン
-
破棄/トリム要求を基礎となるストレージに渡すかどうかを制御します。
- ファイル=<ボリューム
-
ドライブのバックアップ・ボリューム。
- format=<cloop|cow|qcow|qcow2|qed|raw|vmdk>。
-
ドライブのバックアップ・ファイルのデータ形式。
- heads=<整数
-
ドライブの物理ジオメトリが特定のヘッド数を持つように強制します。
- iops=<iops>
-
最大r/w I/O(オペレーション毎秒)。
- iops_max=<iops>
-
スロットルされていないr/w I/Oプールの最大オペレーション/秒。
- iops_max_length=<seconds>です。
-
I/Oバーストの最大長(秒)。
- iops_rd=<iops>
-
1秒あたりの最大読み取りI/O。
- iops_rd_max=<iops>です。
-
スロットルされていない最大読み取りI/Oプール(1秒あたりの処理数)。
- iops_rd_max_length=<seconds>です。
-
読み取りI/Oバーストの最大長(秒)。
- iops_wr=<アイオプス>。
-
最大書き込みI/O(オペレーション/秒)。
- iops_wr_max=<iops>です。
-
スロットルなしの最大書き込みI/Oプール(1秒あたりの操作数)。
- iops_wr_max_length=<seconds>です。
-
書き込みI/Oバーストの最大長(秒)。
- mbps=<mbps>
-
最大R/W速度(メガバイト/秒)。
- mbps_max=<mbps>
-
最大スロットルなしR/Wプール(メガバイト/秒)。
- mbps_rd=<mbps>
-
最大読み取り速度(メガバイト/秒)。
- mbps_rd_max=<mbps>です。
-
スロットルのない最大読み取りプール(メガバイト/秒)。
- mbps_wr=<mbps>です。
-
最大書き込み速度(メガバイト/秒)。
- mbps_wr_max=<mbps>です。
-
スロットルなしの最大書き込みプール(メガバイト/秒)。
- media=<cdrom| disk>(デフォルト = disk)
-
ドライブのメディア・タイプ。
- model=<モデル
-
ドライブのモデル名(URLエンコード、最大40バイト)。
- replicate=<boolean>(デフォルト = 1)
-
ドライブをレプリケーション・ジョブの対象とするかどうか。
- rerror=<ignore| report | stop>です。
-
読み取りエラー。
- secs=<整数
-
ドライブの物理ジオメトリを特定のセクタ数に強制します。
- シリアル=<シリアル
-
報告されたドライブのシリアル・ナンバー(URLエンコード、最大20バイト)。
- shared=<boolean>(デフォルト = 0)
-
このローカル管理ボリュームをすべてのノードで使用可能としてマークします。
このオプションは、ボリュームを自動的に共有しません! - size=<ディスクサイズ
-
ディスクサイズ。これは単なる情報提供であり、何の効果もありません。
- snapshot=<boolean>
-
qemu のスナップショットモード機能を制御します。有効な場合、ディスクに加えられた変更は一時的なもので、VM がシャットダウンされると破棄されます。
- ssd=<ブール値
-
このドライブを回転式ハードディスクではなくSSDとして公開するかどうか。
- trans=<自動| lba | なし>。
-
強制ディスクジオメトリバイオス変換モード。
- werror=<enospc|無視|報告|停止>。
-
書き込みエラーアクション。
- wwn=<wwn>
-
16バイトの16進文字列としてエンコードされたドライブのワールドワイド名で、先頭に0xが付きます。
- ipconfig[n]:[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>] となります。
-
cloud-init:対応するインターフェースのIPアドレスとゲートウェイを指定します。
IPアドレスはCIDR表記を使用し、ゲートウェイはオプションですが、同じタイプのIPを指定する必要があります。
特別な文字列dhcpは、DHCPを使用するIPアドレスに使用することができ、その場合、明示的なゲートウェイを提供する必要はありません。 IPv6の場合、特別な文字列autoは、ステートレス自動設定を使用するために使用することができます。これにはcloud-init 19.4以降が必要です。
cloud-initが有効で、IPv4アドレスもIPv6アドレスも指定されていない場合、デフォルトでIPv4のdhcpを使用します。
- gw=<ゲートウェイIPv4
-
IPv4トラフィックのデフォルトゲートウェイ。
必要なオプション:ip - gw6=<ゲートウェイIPv6
-
IPv6トラフィックのデフォルトゲートウェイ。
必要なオプション:ip6 - ip=<IPv4Format/CIDR>(デフォルト = dhcp)
-
CIDR形式のIPv4アドレス。
- ip6=<IPv6Format/CIDR>(デフォルト = dhcp)
-
CIDR形式のIPv6アドレス。
- ivshmem:size=<整数> [,name=<文字列>] です。
-
VM間共有メモリ。VM間やホストとの直接通信に便利。
- name=<文字列
-
ファイル名。先頭にpve-shm- が付きます。デフォルトは VMID です。VM の停止時に削除されます。
- size=<integer>(1 - N)
-
MB単位のファイルサイズ。
- keephugepages:<boolean>(デフォルト = 0)
-
hugepagesと一緒に使用します。有効にすると、hugepagesはVMシャットダウン後も削除されず、その後の起動に使用できます。
- キーボード:<da | de | de-ch | en-gb | en-us | es | fi | fr | fr-be | fr-ca | fr-ch | hu | is | it | ja | lt | mk | nl | no | pl | pt | pt-br | sl | sv | tr>.
-
VNC サーバーのキーボードレイアウト。このオプションは一般的には必要なく、ゲストOS内で処理した方が良い場合が多いです。
- kvm:<論理値>(デフォルト = 1)
-
KVMハードウェア仮想化の有効/無効を設定します。
- localtime:<ブール値
-
リアルタイムクロック(RTC)をローカルタイムに設定します。ostypeがMicrosoft Windows OSの場合、デフォルトで有効になります。
- lock:<バックアップ|クローン|作成|マイグレーション|ロールバック|スナップショット|スナップショット削除|中断|サスペンド>。
-
VMをロック/アンロックします。
- マシン [[タイプ=]<マシンタイプ>]][viommu=<intel|virtio>]です。
-
QEMUマシンを指定します。
- type=<マシンタイプ
-
QEMUのマシンタイプを指定します。
- viommu=<intel| virtio> です。
-
ゲストの vIOMMU バリアントを有効にして設定します (Intel vIOMMU はマシンタイプとして q35 を設定する必要があります)。
- メモリを使用します:[カレント=]<整数
-
メモリ特性。
- current=<integer>(16 - N)(デフォルト = 512)
-
VM の現在のオンライン RAM 量 (MiB 単位)。これは、バルーン デバイスを使用する際に使用可能な最大メモリです。
- migrate_downtime:<数値> (0 - N)(デフォルト = 0.1)
-
マイグレーションの最大許容ダウンタイム(秒)を設定します。新しく汚れたRAMを転送する必要があるため、マイグレーションが最後まで収束しない場合、マイグレーションが収束するまで、この上限は自動的に段階的に増加します。
- migrate_speed:<整数> (0 - N)(デフォルト = 0)
-
マイグレーションの最大速度(MB/s)を設定します。値 0 は制限なしです。
- name:<文字列
-
VM の名前を設定します。コンフィギュレーションWebインターフェイスでのみ使用します。
- ネームサーバー:<文字列
-
cloud-init:コンテナの DNS サーバー IP アドレスを設定します。searchdomain も nameserver も設定されていない場合、Create は自動的にホストからの設定を使用します。
- net[n]:[model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>][,<model>=<macaddr>] [,<model>=<macaddr>] [,<model>=<macaddr
-
ネットワーク機器を指定します。
- ブリッジ
-
ネットワークデバイスを接続するブリッジ。Proxmox VE標準ブリッジはvmbr0と呼ばれます。
ブリッジを指定しない場合は、DHCPとDNSサービスを提供するkvmユーザー(NAT)ネットワークデバイスを作成します。以下のアドレスが使用されます:
10.0.2.2 ゲートウェイ 10.0.2.3 DNSサーバ 10.0.2.4 SMBサーバ
DHCPサーバーは、10.0.2.15から始まるアドレスをゲストに割り当てます。
- firewall=<boolean>
-
このインターフェイスをファイアウォールで保護するかどうか。
- link_down=<ブール値
-
このインターフェイスを切断するかどうか(プラグを抜くように)。
- macaddr=<XX:XX:XX:XX:XX>となります。
-
I/G(Individual/Group)ビットが設定されていない共通のMACアドレス。
- model=<e1000|e1000-82540em|e1000-82544gc|e1000-82545em|e1000e|i82551|i82557b|i82559er|ne2k_isa|ne2k_pci|pcnet|rtl8139|virtio|vmxnet3>です。
-
ネットワークカードモデル。virtioモデルは、非常に低い CPU オーバーヘッドで最高のパフォーマンスを提供します。ゲストがこのドライバをサポートしていない場合、通常はe1000 を使用するのが最善です。
- mtu=<整数>(1 - 65520)
-
MTUを強制します。ブリッジMTUを使用するには1を設定します。
- キュー=<整数>(0 - 64)
-
デバイスで使用するパケットキューの数。
- rate=<数値>(0 - N)
-
mbps(メガバイト/秒)単位のレート制限を浮動小数点数で指定します。
- タグ=<整数>(1 - 4094)
-
このインターフェイスのパケットに適用するVLANタグ。
- trunks=<vlanid[;vlanid...]>です。
-
このインターフェイスを通過する VLAN トランク。
- numa:<ブール値>(デフォルト = 0)
-
NUMAの有効/無効。
- numa[n]:cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,policy=<優先|バインド|インターリーブ>][,policy=<優先|バインド|インターリーブ[,メモリ=<数>] [,ポリシー=<preferred|bind|interleave>]。
-
NUMAトポロジー。
- cpus=<id[-id];...>です。
-
このNUMAノードにアクセスするCPU。
- hostnodes=<id[-id];...>です。
-
使用するホストNUMAノード。
- メモリ=<数字
-
このNUMAノードが提供するメモリ量。
- policy=<バインド|インターリーブ|プリファード>。
-
NUMA割り当てポリシー。
- onboot:<boolean>(デフォルト = 0)
-
システム起動時に VM を起動するかどうかを指定します。
- ostype:<l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win11 | win7 | win8 | wvista | wxp>.
-
ゲストオペレーティングシステムを指定します。これは、特定のオペレーティングシステム用の特別な最適化/機能を有効にするために使用されます:
その他
不特定OS
ダブルエックスピー
Microsoft Windows XP
ダブリューツーケー
Microsoft Windows 2000
w2k3
Microsoft Windows 2003
w2k8
Microsoft Windows 2008
ウエビスタ
Microsoft Windows Vista
ウインセブン
Microsoft Windows 7
ウインエイト
Microsoft Windows 8/2012/2012r2
ウインテン
Microsoft Windows 10/2016/2019
ウィンナップ
マイクロソフト Windows 11/2022/2025
l24
Linux 2.4 カーネル
l26
Linux 2.6 - 6.X カーネル
ソラリス
Solaris/OpenSolaris/OpenIndian カーネル
- parallel[n]:/dev/parportd+|/dev/usb/lpd+
-
ホスト・パラレル・デバイスをマップします(nは0~2)。
このオプションは、ホストハードウェアへの直接アクセスを可能にします。そのため、このようなマシンのマイグレーションはもはや不可能です。 実験的!このオプションに関する問題が報告されました。 - protection:<ブール値>(デフォルト = 0)
-
VM の保護フラグを設定します。これにより、VM の削除とディスクの削除操作が無効になります。
- reboot:<boolean>(デフォルト = 1)
-
再起動を許可。0に設定すると、VM は再起動時に終了します。
- rng0:[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>] です。
-
VirtIO ベースの乱数ジェネレータを設定します。
- max_bytes=<整数>(デフォルト = 1024)
-
ミリ秒ごとにゲストに注入されるエントロピーの最大バイト数。ソースとして/dev/random を使用する場合は低い値を推奨します。制限を無効にするには0 を使用します (潜在的に危険です!)。
- period=<integer>(デフォルト= 1000)
-
周期ミリ秒ごとにエントロピー注入クォータがリセットされ、ゲストは別のmax_bytesのエントロピーを取得できるようになります。
- source=</dev/hwrng|/dev/random|/dev/urandom>。
-
エントロピーを収集するホスト上のファイル。ほとんどの場合、ホスト上のエントロピー枯渇の問題を避けるために/dev/randomよりも/dev/urandom を優先すべきです。urandomを使用しても、実際のエントロピーのシードであることに変わりはなく、提供されるバイトはゲスト上でも実際のエントロピーと混合される可能性が高いため、意味のある方法でセキュリティを低下させることはありません。/dev/hwrngは、ホストからハードウェア RNG を渡すために使用できます。
- sata[n]:[ファイル=]<ボリューム> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<秒>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]。
-
ボリュームをSATAハードディスクまたはCD-ROMとして使用します(nは0~5)。
- aio=<io_uring|ネイティブ|スレッド>。
-
使用するAIOタイプ。
- backup=<ブール値
-
バックアップ作成時にドライブを含めるかどうか。
- bps=<bps>
-
最大r/w速度(バイト/秒)。
- bps_max_length=<seconds>です。
-
I/Oバーストの最大長(秒)。
- bps_rd=<bps>
-
最大読み取り速度(バイト/秒)。
- bps_rd_max_length=<seconds>です。
-
読み取りI/Oバーストの最大長(秒)。
- bps_wr=<bps>
-
最大書き込み速度(バイト/秒)。
- bps_wr_max_length=<seconds>です。
-
書き込みI/Oバーストの最大長(秒)。
- cache=<directsync| none | unsafe | writeback | writethrough>です。
-
ドライブのキャッシュ・モード
- cys=<整数
-
ドライブの物理ジオメトリを特定のシリンダ数に強制します。
- detect_zeroes=<ブール値
-
ゼロの書き込みを検出し、最適化を試みるかどうかを制御します。
- discard=<無視|オン
-
破棄/トリム要求を基礎となるストレージに渡すかどうかを制御します。
- ファイル=<ボリューム
-
ドライブのバックアップ・ボリューム。
- format=<cloop|cow|qcow|qcow2|qed|raw|vmdk>。
-
ドライブのバックアップ・ファイルのデータ形式。
- heads=<整数
-
ドライブの物理ジオメトリが特定のヘッド数を持つように強制します。
- iops=<iops>
-
最大r/w I/O(オペレーション毎秒)。
- iops_max=<iops>
-
スロットルされていないr/w I/Oプールの最大オペレーション/秒。
- iops_max_length=<seconds>です。
-
I/Oバーストの最大長(秒)。
- iops_rd=<iops>
-
1秒あたりの最大読み取りI/O。
- iops_rd_max=<iops>です。
-
スロットルなしの最大読み取りI/Oプール(1秒あたりの処理数)。
- iops_rd_max_length=<seconds>です。
-
読み取りI/Oバーストの最大長(秒)。
- iops_wr=<アイオプス>。
-
最大書き込みI/O(オペレーション/秒)。
- iops_wr_max=<iops>です。
-
スロットルなしの最大書き込みI/Oプール(1秒あたりの操作数)。
- iops_wr_max_length=<seconds>です。
-
書き込みI/Oバーストの最大長(秒)。
- mbps=<mbps>
-
最大R/W速度(メガバイト/秒)。
- mbps_max=<mbps>
-
最大スロットルなしR/Wプール(メガバイト/秒)。
- mbps_rd=<mbps>
-
最大読み取り速度(メガバイト/秒)。
- mbps_rd_max=<mbps>です。
-
スロットルのない最大読み取りプール(メガバイト/秒)。
- mbps_wr=<mbps>です。
-
最大書き込み速度(メガバイト/秒)。
- mbps_wr_max=<mbps>です。
-
スロットルなしの最大書き込みプール(メガバイト/秒)。
- media=<cdrom| disk>(デフォルト = disk)
-
ドライブのメディア・タイプ。
- replicate=<boolean>(デフォルト = 1)
-
ドライブをレプリケーション・ジョブの対象とするかどうか。
- rerror=<ignore| report | stop>です。
-
読み取りエラー。
- secs=<整数
-
ドライブの物理ジオメトリを特定のセクタ数に強制します。
- シリアル=<シリアル
-
報告されたドライブのシリアル・ナンバー(URLエンコード、最大20バイト)。
- shared=<boolean>(デフォルト = 0)
-
このローカル管理ボリュームをすべてのノードで使用可能としてマークします。
このオプションは、ボリュームを自動的に共有しません! - size=<ディスクサイズ
-
ディスクサイズ。これは単なる情報提供であり、何の効果もありません。
- snapshot=<boolean>
-
qemu のスナップショットモード機能を制御します。有効な場合、ディスクに加えられた変更は一時的なもので、VM がシャットダウンされると破棄されます。
- ssd=<ブール値
-
このドライブを回転式ハードディスクではなくSSDとして公開するかどうか。
- trans=<自動| lba | なし>。
-
強制ディスクジオメトリバイオス変換モード。
- werror=<enospc|無視|報告|停止>。
-
書き込みエラーアクション。
- wwn=<wwn>
-
16バイトの16進文字列としてエンコードされたドライブのワールドワイド名で、先頭に0xが付きます。
- scsi[n]:[ファイル=]<ボリューム> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<秒>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps> ]。] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>] となります。
-
ボリュームをSCSIハードディスクまたはCD-ROMとして使用します(nは0~30)。
- aio=<io_uring|ネイティブ|スレッド>。
-
使用するAIOタイプ。
- backup=<ブール値
-
バックアップ作成時にドライブを含めるかどうか。
- bps=<bps>
-
最大r/w速度(バイト/秒)。
- bps_max_length=<seconds>です。
-
I/Oバーストの最大長(秒)。
- bps_rd=<bps>
-
最大読み取り速度(バイト/秒)。
- bps_rd_max_length=<seconds>です。
-
読み取りI/Oバーストの最大長(秒)。
- bps_wr=<bps>
-
最大書き込み速度(バイト/秒)。
- bps_wr_max_length=<seconds>です。
-
書き込みI/Oバーストの最大長(秒)。
- cache=<directsync| none | unsafe | writeback | writethrough>です。
-
ドライブのキャッシュ・モード
- cys=<整数
-
ドライブの物理ジオメトリを特定のシリンダ数に強制します。
- detect_zeroes=<ブール値
-
ゼロの書き込みを検出し、最適化を試みるかどうかを制御します。
- discard=<無視|オン
-
破棄/トリム要求を基礎となるストレージに渡すかどうかを制御します。
- ファイル=<ボリューム
-
ドライブのバックアップ・ボリューム。
- format=<cloop|cow|qcow|qcow2|qed|raw|vmdk>。
-
ドライブのバックアップ・ファイルのデータ形式。
- heads=<整数
-
ドライブの物理ジオメトリが特定のヘッド数を持つように強制します。
- iops=<iops>
-
最大r/w I/O(オペレーション毎秒)。
- iops_max=<iops>
-
スロットルされていないr/w I/Oプールの最大オペレーション/秒。
- iops_max_length=<seconds>です。
-
I/Oバーストの最大長(秒)。
- iops_rd=<iops>
-
1秒あたりの最大読み取りI/O。
- iops_rd_max=<iops>です。
-
スロットルされていない最大読み取りI/Oプール(1秒あたりの処理数)。
- iops_rd_max_length=<seconds>です。
-
読み取りI/Oバーストの最大長(秒)。
- iops_wr=<アイオプス>。
-
最大書き込みI/O(オペレーション/秒)。
- iops_wr_max=<iops>です。
-
スロットルなしの最大書き込みI/Oプール(1秒あたりの操作数)。
- iops_wr_max_length=<seconds>です。
-
書き込みI/Oバーストの最大長(秒)。
- iothread=<ブール値
-
このドライブにiothreadsを使用するかどうか
- mbps=<mbps>
-
最大R/W速度(メガバイト/秒)。
- mbps_max=<mbps>
-
最大スロットルなしR/Wプール(メガバイト/秒)。
- mbps_rd=<mbps>
-
最大読み取り速度(メガバイト/秒)。
- mbps_rd_max=<mbps>です。
-
スロットルのない最大読み取りプール(メガバイト/秒)。
- mbps_wr=<mbps>です。
-
最大書き込み速度(メガバイト/秒)。
- mbps_wr_max=<mbps>です。
-
スロットルなしの最大書き込みプール(メガバイト/秒)。
- media=<cdrom| disk>(デフォルト = disk)
-
ドライブのメディア・タイプ。
- product=<商品
-
ドライブの製品名(最大16バイト)。
- キュー=<整数>(2 - N)
-
キューの数。
- replicate=<boolean>(デフォルト = 1)
-
ドライブをレプリケーション・ジョブの対象とするかどうか。
- rerror=<ignore| report | stop>です。
-
読み取りエラー。
- ro=<ブール値
-
ドライブが読み取り専用かどうか。
- scsiblock=<boolean>(デフォルト = 0)
-
ホストブロックデバイスのフルパススルーに scsi-block を使用するかどうか
ホストのメモリ不足やメモリの断片化が進むと、I/O エラーが発生する可能性があります。 - secs=<整数
-
ドライブの物理ジオメトリを特定のセクタ数に強制します。
- シリアル=<シリアル
-
報告されたドライブのシリアル・ナンバー(URLエンコード、最大20バイト)。
- shared=<boolean>(デフォルト = 0)
-
このローカル管理ボリュームをすべてのノードで使用可能としてマークします。
このオプションは、ボリュームを自動的に共有しません! - size=<ディスクサイズ
-
ディスクサイズ。これは単なる情報提供であり、何の効果もありません。
- snapshot=<boolean>
-
qemu のスナップショットモード機能を制御します。有効な場合、ディスクに加えられた変更は一時的なもので、VM がシャットダウンされると破棄されます。
- ssd=<ブール値
-
このドライブを回転式ハードディスクではなくSSDとして公開するかどうか。
- trans=<自動| lba | なし>。
-
強制ディスクジオメトリバイオス変換モード。
- ベンダー
-
ドライブのベンダー名(最大8バイト)。
- werror=<enospc|無視|報告|停止>。
-
書き込みエラーアクション。
- wwn=<wwn>
-
16バイトの16進文字列としてエンコードされたドライブのワールドワイド名で、先頭に0xが付きます。
- scsihw:<lsi | lsi53c810 | megasas | pvscsi | virtio-scsi-pci | virtio-scsi-single>(デフォルト = lsi)
-
SCSIコントローラモデル
- searchdomain:<文字列
-
cloud-init:コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定されていない場合、Createはホストからの設定を自動的に使用します。
- serial[n]:(/dev/.+|socket)
-
VM内部でシリアル・デバイスを作成し(nは0~3)、ホストのシリアル・デバイス(例:/dev/ttyS0)を通すか、ホスト側でunixソケットを作成します(qm terminalを使ってターミナル接続を開きます)。
ホストシリアルデバイスを経由すると、そのようなマシンの移行はできなくなります。 実験的!このオプションに関する問題が報告されました。 - shares:<整数> (0 - 50000)(デフォルト = 1000)
-
オート・バルーニングのメモリ・シェア量。この数値が大きいほど、このVMはより多くのメモリを取得します。数値は、他のすべての実行中のVMの重みに対する相対値です。ゼロを使用すると、オートバルーニングは無効になります。オートバルーニングはpvestatdによって実行されます。
- smbios1:[base64=<1|0>] [,family=<Base64 エンコードされた文字列>] [,manufacturer=<Base64 エンコードされた文字列>] [,product=<Base64 エンコードされた文字列>] [,serial=<Base64 エンコードされた文字列>] [,sku=<Base64 エンコードされた文字列>] [,uuid=<UUID>] [,version=<Base64 エンコードされた文字列>].
-
SMBIOSタイプ1のフィールドを指定します。
- base64=<ブール値
-
SMBIOSの値がbase64エンコードされていることを示すフラグ
- family=<Base64でエンコードされた文字列
-
SMBIOS1 ファミリ文字列を設定します。
- メーカー=<Base64エンコード文字列
-
SMBIOS1 メーカーを設定します。
- product=<Base64でエンコードされた文字列
-
SMBIOS1のプロダクトIDを設定します。
- serial=<Base64でエンコードされた文字列
-
SMBIOS1のシリアル番号を設定します。
- sku=<Base64でエンコードされた文字列
-
SMBIOS1 SKU文字列を設定します。
- uuid=<UUID>
-
SMBIOS1 の UUID を設定します。
- バージョン=<Base64エンコード文字列
-
SMBIOS1のバージョンを設定します。
- smp:<整数> (1 - N)(デフォルト = 1)
-
CPU数。代わりに -sockets オプションを使用してください。
- sockets:<整数> (1 - N)(デフォルト = 1)
-
CPUソケットの数。
- spice_enhancements:[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]。
-
SPICE の追加機能拡張を設定します。
- フォルダ共有=<ブール値>(デフォルト = 0)
-
SPICE 経由でのフォルダ共有を有効にします。VMにSpice-WebDAVデーモンがインストールされている必要があります。
- videostreaming=<all| filter | off>(デフォルト = off)
-
ビデオストリーミングを有効にします。検出されたビデオストリームに圧縮を使用します。
- sshkeys:<文字列
-
cloud-init:公開 SSH 鍵を設定します (1 行に 1 つの鍵、OpenSSH 形式)。
- startdate:(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)(デフォルト = now)
-
リアルタイムクロックの初期日付を設定します。有効な日付のフォーマットは'now'または2006-06-17T16:01:21または2006-06-17です。
- を起動します:order=]♪ [,up=♪] [,down=♪ `)
-
スタートアップとシャットダウンの動作。Orderは一般的な起動順序を定義する非負の数値です。シャットダウンは逆の順序で行われます。さらに、次のVMが起動または停止するまでの待ち時間を秒単位で設定できます。
- tablet:<ブール値>(デフォルト = 1)
-
USBタブレットデバイスを有効/無効にします。このデバイスは通常、VNCで絶対的なマウスポジショニングを可能にするために必要です。そうしないと、マウスは通常のVNCクライアントと同期しません。1つのホスト上で多くのコンソールオンリーゲストを実行している場合、コンテキストスイッチを節約するために、これを無効にすることを検討することができます。spice(qm set <vmid> --vga qxl) を使用すると、デフォルトでオフになります。
- タグ:<string
-
VM のタグ。これは単なるメタ情報です。
- tdf:<ブール値>(デフォルト = 0)
-
時間ドリフト修正の有効/無効。
- テンプレート:<boolean>(デフォルト = 0)
-
テンプレートの有効/無効。
- tpmstate0:[file=]<volume> [,size=<DiskSize>] [,version=<v1.2|v2.0>].
-
TPMの状態を保存するDiskを設定します。フォーマットはraw固定。
- ファイル=<ボリューム
-
ドライブのバックアップ・ボリューム。
- size=<ディスクサイズ
-
ディスクサイズ。これは単なる情報提供であり、何の効果もありません。
- version=<v1.2 | v2.0>(デフォルト = v1.2)
-
TPMインターフェースのバージョン。v2.0の方が新しいので、そちらを優先してください。これは後で変更できないことに注意してください。
- unused[n]です:[ファイル=]<ボリューム
-
未使用ボリュームへの参照。これは内部的に使用されるので、手動で変更しないでください。
- ファイル=<ボリューム
-
ドライブのバックアップ・ボリューム。
- usb[n]:[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mappingid>] [,usb3=<1|0[,mapping=<mapping-id>] [,usb3=<1|0>] となります。
-
USBデバイスを設定します(nは0~4、マシンのバージョンが7.1以上、かつostype l26またはwindows > 7の場合、nは最大14まで)。
- host=<HOSTUSBDEVICE|spice>です。
-
ホスト USB デバイスまたはポート、または値のスパイス。HOSTUSBDEVICE 構文は次のとおりです:
'bus-port(.port)*'(10進数)または'vendor_id:product_id'(16進数)または'spice'
lsusb -tコマンドを使えば、既存の usb デバイスをリストアップできます。
このオプションは、ホストハードウェアへの直接アクセスを可能にします。そのため、このようなマシンの移行はもはや不可能です。 spiceの値は、spice用のusbリダイレクトデバイスを追加するために使用できます。
このキーまたはマッピング・キーのどちらかを設定する必要があります。
- マッピング=<マッピングID
-
クラスタ全体のマッピングのID。このホストかdefault-keyホストのどちらかを設定する必要があります。
- usb3=<boolean>(デフォルト = 0)
-
与えられたホストオプションが USB3 デバイスかポートかを指定します。最近のゲスト (マシンのバージョン >= 7.1 および ostype l26 と Windows > 7) では、このフラグは無関係です (すべてのデバイスは xhci コントローラに接続されています)。
- vcpus:<整数> (1 - N)(デフォルト = 0)
-
ホットプラグされたvcpusの数。
- vga:[[タイプ=]<enum>] ]。[クリップボード=<vnc>] [,メモリ=<整数]
-
VGAハードウェアを設定します。高解像度モード(>= 1280x1024x16)を使用したい場合は、VGAメモリオプションを増やす必要があるかもしれません。QEMU 2.9以降、デフォルトのVGAディスプレイタイプは、cirrusを使用する一部のWindowsバージョン(XPおよびそれ以前)以外のすべてのOSタイプで標準となっています。qxlオプションは SPICE ディスプレイサーバーを有効にします。また、シリアルデバイスを端末として使用し、グラフィックカードなしで実行することもできます。
- クリップボード=<vnc
-
特定のクリップボードを有効にします。設定されていない場合、ディスプレイの種類に応じて SPICE のものが追加されます。VNCクリップボードとの移行はまだサポートされていません!
- メモリ=<整数>(4 - 512)
-
VGA メモリ(MiB)を設定します。シリアル表示には影響しません。
- type=<cirrus| none | qxl | qxl2 | qxl3 | qxl4 | serial0 | serial1 | serial2 | serial3 | std | virtio | virtio-gl | vmware>(デフォルト = std)
-
VGA タイプを選択します。cirrusタイプの使用はお勧めしません。
- virtio[n]です:[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<秒>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps> ]。] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] となります。
-
ボリュームを VIRTIO ハード ディスクとして使用します (n は 0 ~ 15)。
- aio=<io_uring|ネイティブ|スレッド>。
-
使用するAIOタイプ。
- backup=<ブール値
-
バックアップ作成時にドライブを含めるかどうか。
- bps=<bps>
-
最大r/w速度(バイト/秒)。
- bps_max_length=<seconds>です。
-
I/Oバーストの最大長(秒)。
- bps_rd=<bps>
-
最大読み取り速度(バイト/秒)。
- bps_rd_max_length=<seconds>です。
-
読み取りI/Oバーストの最大長(秒)。
- bps_wr=<bps>
-
最大書き込み速度(バイト/秒)。
- bps_wr_max_length=<seconds>です。
-
書き込みI/Oバーストの最大長(秒)。
- cache=<directsync| none | unsafe | writeback | writethrough>です。
-
ドライブのキャッシュ・モード
- cys=<整数
-
ドライブの物理ジオメトリを特定のシリンダ数に強制します。
- detect_zeroes=<ブール値
-
ゼロの書き込みを検出し、最適化を試みるかどうかを制御します。
- discard=<無視|オン
-
破棄/トリム要求を基礎となるストレージに渡すかどうかを制御します。
- ファイル=<ボリューム
-
ドライブのバックアップ・ボリューム。
- format=<cloop|cow|qcow|qcow2|qed|raw|vmdk>。
-
ドライブのバックアップ・ファイルのデータ形式。
- heads=<整数
-
ドライブの物理ジオメトリが特定のヘッド数を持つように強制します。
- iops=<iops>
-
最大r/w I/O(オペレーション毎秒)。
- iops_max=<iops>
-
スロットルされていないr/w I/Oプールの最大オペレーション/秒。
- iops_max_length=<seconds>です。
-
I/Oバーストの最大長(秒)。
- iops_rd=<iops>
-
1秒あたりの最大読み取りI/O。
- iops_rd_max=<iops>です。
-
スロットルされていない最大読み取りI/Oプール(1秒あたりの処理数)。
- iops_rd_max_length=<seconds>です。
-
読み取りI/Oバーストの最大長(秒)。
- iops_wr=<アイオプス>。
-
最大書き込みI/O(オペレーション/秒)。
- iops_wr_max=<iops>です。
-
スロットルなしの最大書き込みI/Oプール(1秒あたりの操作数)。
- iops_wr_max_length=<seconds>です。
-
書き込みI/Oバーストの最大長(秒)。
- iothread=<ブール値
-
このドライブにiothreadsを使用するかどうか
- mbps=<mbps>
-
最大R/W速度(メガバイト/秒)。
- mbps_max=<mbps>
-
最大スロットルなしR/Wプール(メガバイト/秒)。
- mbps_rd=<mbps>
-
最大読み取り速度(メガバイト/秒)。
- mbps_rd_max=<mbps>です。
-
スロットルのない最大読み取りプール(メガバイト/秒)。
- mbps_wr=<mbps>です。
-
最大書き込み速度(メガバイト/秒)。
- mbps_wr_max=<mbps>です。
-
スロットルなしの最大書き込みプール(メガバイト/秒)。
- media=<cdrom| disk>(デフォルト = disk)
-
ドライブのメディア・タイプ。
- replicate=<boolean>(デフォルト = 1)
-
ドライブをレプリケーション・ジョブの対象とするかどうか。
- rerror=<ignore| report | stop>です。
-
読み取りエラー。
- ro=<ブール値
-
ドライブが読み取り専用かどうか。
- secs=<整数
-
ドライブの物理ジオメトリを特定のセクタ数に強制します。
- シリアル=<シリアル
-
報告されたドライブのシリアル・ナンバー(URLエンコード、最大20バイト)。
- shared=<boolean>(デフォルト = 0)
-
このローカル管理ボリュームをすべてのノードで使用可能としてマークします。
このオプションは、ボリュームを自動的に共有しません! - size=<ディスクサイズ
-
ディスクサイズ。これは単なる情報提供であり、何の効果もありません。
- snapshot=<boolean>
-
qemu のスナップショットモード機能を制御します。有効な場合、ディスクに加えられた変更は一時的なもので、VM がシャットダウンされると破棄されます。
- trans=<自動| lba | なし>。
-
強制ディスクジオメトリバイオス変換モード。
- werror=<enospc|無視|報告|停止>。
-
書き込みエラーアクション。
- vmgenid:<UUID>(デフォルト = 1 (自動生成))
-
VM generation ID (vmgenid) デバイスは、128 ビットの整数値識別子をゲスト OS に公開します。これにより、仮想マシンが異なるコンフィギュレーション(スナップショットの実行やテンプレートからの作成など)で実行された場合に、ゲストOSに通知することができます。ゲスト OS はこの変更に気付き、分散データベースのコピーをダーティとしてマークしたり、乱数ジェネレーターを再初期化したりするなど、適切に対応することができます。自動作成は、API/CLI の作成または更新メソッドによって実行される場合にのみ機能し、設定ファイルを手動で編集する場合には機能しないことに注意してください。
- vmstatestorage:<ストレージID>。
-
VM 状態ボリューム/ファイルのデフォルトストレージ。
- watchdog:[[model=]<i6300esb|ib700>][アクション]
-
仮想ハードウェアウォッチドッグデバイスを作成します。いったん (ゲストのアクションによって) 有効になると、ウォッチドッグはゲスト内部のエージェントによって定期的にポーリングされる必要があります。
- action=<debug| none | pause | poweroff | reset | shutdown>です。
-
アクティブ化後、ゲストが時間内にウォッチドッグのポーリングに失敗した場合に実行するアクション。
- model=<i6300esb| ib700>(デフォルト = i6300esb)
-
エミュレートするウォッチドッグ・タイプ。
11.Proxmox コンテナツールキット
コンテナは完全に仮想化されたマシン(VM)に代わる軽量なもので、完全なオペレーティング・システム(OS)をエミュレートする代わりに、実行するホスト・システムのカーネルを使用します。つまり、コンテナはホストシステム上のリソースに直接アクセスできます。
コンテナの実行コストは低く、通常は無視できます。しかし、考慮すべき欠点もあります:
-
Proxmoxコンテナで実行できるのはLinuxディストリビューションのみです。例えば、FreeBSDやMicrosoft Windowsのような他のオペレーティングシステムをコンテナ内で実行することはできません。
-
セキュリティ上の理由から、ホストリソースへのアクセスを制限する必要があります。 そのため、コンテナはそれぞれ別の名前空間で実行されます。さらに、一部のシステムコール(Linuxカーネルに対するユーザー空間の要求)はコンテナ内で許可されていません。
Proxmox VEは、基盤となるコンテナ技術としてLinux Containers (LXC)を使用しています。Proxmox Container Toolkit」(pct)は、複雑なタスクを抽象化するインターフェイスを提供することで、LXCの使用と管理を簡素化します。
コンテナはProxmox VEと緊密に統合されています。つまり、コンテナはクラスタのセットアップを認識し、仮想マシンと同じネットワークおよびストレージリソースを使用できます。Proxmox VEのファイアウォールを使用したり、HAフレームワークを使用してコンテナを管理することもできます。
私たちの主な目標は、VMを使用する利点を提供しながら、追加のオーバーヘッドがない環境を提供することです。つまり、Proxmox Containersは "アプリケーションコンテナ "ではなく、"システムコンテナ "に分類されます。
|
|
アプリケーションコンテナ、例えばDockerイメージを実行する場合は、Proxmox QEMU VM内で実行することをお勧めします。これにより、アプリケーション・コンテナ化のすべての利点が得られるだけでなく、ホストからの強力な分離や、コンテナでは不可能なライブ・マイグレーション機能など、VMが提供する利点も得られます。 |
11.1.技術概要
-
Proxmox VE グラフィカル・ウェブ・ユーザー・インターフェイス(GUI)に統合
-
使いやすいコマンドラインツールpct
-
Proxmox VE REST API経由でのアクセス
-
コンテナ化された /proc ファイルシステムを提供するlxcfs
-
リソースの分離と制限のためのコントロールグループ(cgroups)
-
セキュリティを向上させるAppArmorと seccomp
-
最新のLinuxカーネル
-
イメージベースのデプロイメント(テンプレート)
-
Proxmox VEストレージライブラリを使用
-
ホストからのコンテナ設定(ネットワーク、DNS、ストレージなど)
11.2.対応ディストリビューション
公式にサポートされているディストリビューションのリストは以下にあります。
以下のディストリビューション用のテンプレートは、私たちのリポジトリから入手できます。pveamtool または Graphical User Interface を使ってダウンロードできます。
11.2.1.アルパイン Linux
Alpine Linux は、musl libc と busybox をベースにしたセキュリティ重視の軽量 Linux ディストリビューションです。
現在サポートされているリリースについては、こちらをご覧ください:
11.2.2.Arch Linux
Arch Linux は軽量で柔軟な Linux® ディストリビューションです。
Arch Linux はローリングリリースモデルを採用しています、詳しくは wiki を見て下さい:
11.2.3.CentOS、Almalinux、Rocky Linux
CentOS / CentOS Stream
CentOS Linux ディストリビューションは、Red Hat Enterprise Linux (RHEL) のソースから派生した、安定した、予測可能な、管理可能な、再現可能なプラットフォームです。
現在サポートされているリリースについては、こちらをご覧ください:
Almalinux
オープンソース、コミュニティが所有し管理する、永久無料のエンタープライズLinuxディストリビューションで、長期的な安定性に重点を置き、堅牢なプロダクショングレードのプラットフォームを提供します。AlmaLinux OSはRHEL®とプレストリームCentOSと1:1のバイナリ互換性があります。
現在サポートされているリリースについては、こちらをご覧ください:
11.2.4.Debian
Debian はフリーなオペレーティングシステムであり、Debian プロジェクトによって開発・保守されています。フリーな Linux ディストリビューションで、 ユーザのニーズを満たす数千のアプリケーションがあります。
現在サポートされているリリースについては、こちらをご覧ください:
11.2.5.デヴアン
Devuan GNU+Linux は systemd を使わない Debian のフォークで、不要な絡みを避け Init Freedom を確保することで、ユーザがシステムの制御を取り戻すことを可能にします。
現在サポートされているリリースについては、こちらをご覧ください:
11.2.6.Fedora
Fedoraは、ハードウェア、クラウド、コンテナのための革新的で無償のオープンソースプラットフォームを作成し、ソフトウェア開発者とコミュニティメンバーがユーザーのためにカスタマイズされたソリューションを構築することを可能にします。
現在サポートされているリリースについては、こちらをご覧ください:
11.2.7.Gentoo
柔軟性の高いソースベースのLinuxディストリビューションです。
Gentooはローリングリリースモデルを使用しています。
11.2.8.OpenSUSE
システム管理者、開発者、デスクトップ・ユーザーのためのメーカー選択です。
現在サポートされているリリースについては、こちらをご覧ください:
11.3.コンテナイメージ
コンテナイメージは、「テンプレート」または「アプライアンス」とも呼ばれることがあり、コンテナを実行するためのすべてを含むtarアーカイブです。
Proxmox VE自体は、最も一般的なLinuxディストリビューション用のさまざまな基本テンプレートを提供しています。 これらのテンプレートは、GUIまたはpveam(Proxmox VE Appliance Managerの略)コマンドラインユーティリティを使用してダウンロードできます。 さらに、TurnKey Linuxコンテナテンプレートもダウンロードできます。
利用可能なテンプレートのリストはpve-daily-updateタイマーによって毎日更新されます。手動で更新することもできます:
#pveam アップデート
利用可能な画像のリストを表示するには
#pveam available
基本的なシステム画像など、興味のあるセクションを指定することで、この大きなリストを制限することができます:
# pveam available --section system system alpine-3.12-default_20200823_amd64.tar.xz system alpine-3.13-default_20210419_amd64.tar.xz system alpine-3.14-default_20210623_amd64.tar.xz system archlinux-base_20210420-1_amd64.tar.gz system centos-7-default_20190926_amd64.tar.xz system centos-8-default_20201210_amd64.tar.xz system debian-9.0-standard_9.7-1_amd64.tar.gz system debian-10-standard_10.7-1_amd64.tar.gz system devuan-3.0-standard_3.0_amd64.tar.gz system fedora-33-default_20201115_amd64.tar.xz system fedora-34-default_20210427_amd64.tar.xz system gentoo-current-default_20200310_amd64.tar.xz system opensuse-15.2-default_20200824_amd64.tar.xz system ubuntu-16.04-standard_16.04.5-1_amd64.tar.gz system ubuntu-18.04-standard_18.04.1-1_amd64.tar.gz system ubuntu-20.04-standard_20.04-1_amd64.tar.gz system ubuntu-20.10-standard_20.10-1_amd64.tar.gz system ubuntu-21.04-standard_21.04-1_amd64.tar.gz
このようなテンプレートを使用する前に、いずれかのストレージにダウンロードする必要があります。どのストレージかわからない場合は、ローカルの名前付きストレージを使用することができます。クラスタ化されたインストールでは、すべてのノードがこれらのイメージにアクセスできるように共有ストレージを使用することが推奨されます。
# pveam download local debian-10.0-standard_10.0-1_amd64.tar.gz
これで、そのイメージを使ってコンテナを作成する準備が整いました。また、ダウンロードしたすべてのイメージをローカルストレージに一覧表示することができます:
# pveam list local local:vztmpl/debian-10.0-standard_10.0-1_amd64.tar.gz 219.95MB
|
|
また、Proxmox VEウェブインタフェースGUIを使用して、コンテナテンプレートのダウンロード、一覧表示、削除を行うこともできます。 |
pctは、例えば新しいコンテナを作成するためにこれらを使用します:
# pct create 999 local:vztmpl/debian-10.0-standard_10.0-1_amd64.tar.gz
上記のコマンドは、完全なProxmox VEボリューム識別子を表示します。この識別子にはストレージ名が含まれており、他のほとんどの Proxmox VE コマンドはこの識別子を使用できます。例えば、後でそのイメージを削除するには、次のようにします:
# pveam remove local:vztmpl/debian-10.0-standard_10.0-1_amd64.tar.gz
11.4.コンテナ設定
11.4.1.一般設定
-
ノード: コンテナが実行される物理サーバー
-
CT ID:コンテナを識別するために使用されるProxmox VEのインストールで一意の番号です。
-
ホスト名:コンテナのホスト名
-
リソースプール:コンテナとVMの論理グループ
-
パスワード:コンテナのルートパスワード
-
SSH公開鍵:SSH経由でルート・アカウントに接続するための公開鍵。
-
非特権コンテナ:このオプションでは、特権コンテナまたは非特権コンテナを作成するかどうかを作成時に選択できます。
非特権コンテナ
非特権コンテナは、ユーザーネームスペースと呼ばれる新しいカーネル機能を使用します。 コンテナ内のルート UID 0 は、コンテナ外の非特権ユーザーにマッピングされます。つまり、これらのコンテナにおけるほとんどのセキュリティ問題(コンテナのエスケープ、リソースの乱用など)は、ランダムな非特権ユーザーに影響し、LXCの問題ではなく一般的なカーネルセキュリティバグになります。LXCチームは、非特権コンテナは設計上安全であると考えています。
これは、新しいコンテナを作成するときのデフォルトのオプションです。
|
|
コンテナが init システムとして systemd を使用している場合、コンテナ内で実行されている systemd のバージョンは 220 以上でなければならないことに注意してください。 |
11.4.2.CPU
coresオプションを使用して、コンテナ内の可視CPU数を制限できます。これは、Linuxのcpusetcgroup(制御 グループ)を使用して実装されます。pvestatd内部の特別なタスクは、実行中のコンテナを利用可能なCPUに定期的に分散しようとします。 割り当てられたCPUを表示するには、次のコマンドを実行します:
# pct cpusets --------------------- 102: 6 7 105: 2 3 4 5 108: 0 1 ------------------------
コンテナはホストカーネルを直接使用します。コンテナ内のすべてのタスクは、ホストCPUスケジューラによって処理されます。Proxmox VEは、デフォルトでLinuxCFS(CompletelyFair Scheduler)スケジューラを使用します。
|
cpulimit: |
このオプションを使用すると、割り当てられた CPU 時間をさらに制限できます。 これは浮動小数点数なので、コンテナに 2 つのコアを割り当てても、全体の CPU 消費を半分のコアに制限することはまったく問題ありません。 コア: 2 cpulimit: 0.5 |
|
cpuunits: |
これは、カーネルスケジューラに渡される相対的な重みです。数値が大きいほど、このコンテナの CPU 時間は長くなります。数値は、実行中の他のすべてのコンテナの重みに対する相対値です。デフォルトは100(ホストがレガシー cgroup v1 を使用している場合は1024)です。この設定を使用して、一部のコンテナに優先順位を付けることができます。 |
11.4.3.メモリー
|
メモリ: |
全体のメモリ使用量を制限します。これはmemory.limit_in_bytescgroup 設定に対応します。 |
|
スワップ |
コンテナがホストのスワップ領域から追加のスワップメモリを使用できるようにします。これはmemory.memsw.limit_in_bytescgroup 設定に対応し、両方の値(メモリ + スワップ)の合計に設定されます。 |
11.4.4.マウントポイント
ルート・マウント・ポイントは、rootfsプロパティで設定します。さらに最大256個のマウントポイントを設定できます。対応するオプションはmp0からmp255 と呼ばれます。これらのオプションには、以下の設定を含めることができます:
- rootfs:ボリューム=]<ボリューム> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<1|0>[quota=<1|0>][,replicate=<1|0>][,ro=<1|0>][,shared=<1|0>][,size=<DiskSize>]。
-
ボリュームをコンテナ・ルートとして使用します。すべてのオプションの詳細については、以下を参照してください。
- mp[n]:ボリューム=]<ボリューム> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<1|0>] [,マウントオプション=<opt[;opt...[quota=<1|0>][,replicate=<1|0>][,ro=<1|0>][,shared=<1|0>][,size=<DiskSize>]。
-
ボリュームをコンテナ・マウント・ポイントとして使用します。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。
- acl=<ブール値
-
ACL サポートを明示的に有効または無効にします。
- backup=<ブール値
-
マウント・ポイントをバックアップに含めるかどうか(ボリューム・マウント・ポイントにのみ使用)。
- mountoptions=<opt[;opt...]>です。
-
rootfs/mps 用の追加マウントオプション。
- mp=<パス
-
コンテナ内部から見たマウントポイントへのパス。
セキュリティ上の理由から、シンボリックリンクを含んではいけません。 - quota=<ブール値
-
コンテナ内でユーザークォータを有効化(zfsサブボリュームではサポートされていません。)
- replicate=<boolean>(デフォルト = 1)
-
このボリュームをストレージ・レプリカ・ジョブに含めます。
- ro=<ブール値
-
読み取り専用のマウントポイント
- shared=<boolean>(デフォルト = 0)
-
この非ボリュームマウントポイントをすべてのノードで使用可能としてマークします。
このオプションは、マウントポイントを自動的に共有するのではなく、すでに共有されていると仮定します! - size=<ディスクサイズ
-
ボリュームサイズ(読み取り専用値)。
- ボリューム=<ボリューム
-
コンテナにマウントするボリューム、デバイス、またはディレクトリ。
現在、マウントポイントには、ストレージバックアップマウントポイント、バインドマウント、デバイスマウントの3種類があります。
rootfs: thin1:base-100-disk-1,size=8G。
ストレージバックアップされたマウントポイント
ストレージバックアップマウントポイントはProxmox VEストレージサブシステムによって管理され、3つの異なる種類があります:
-
イメージベース:単一のext4フォーマットされたファイルシステムを含むrawイメージです。
-
ZFSサブボリューム:これらは技術的にはバインドマウントですが、管理されたストレージを持つため、サイズ変更とスナップショットが可能です。
-
ディレクトリ:size=0を渡すと、生イメージの代わりにディレクトリが作成される特殊なケースが発生します。
|
|
ストレージバックマウントポイントボリューム用の特別なオプション構文STORAGE_ID:SIZE_IN_GBは、指定されたストレージ上に指定されたサイズのボリュームを自動的に割り当てます。例えば |
pct set 100 -mp0 thin1:10,mp=/path/in/container
は、ストレージthin1上に10GBのボリュームを割り当て、ボリュームIDのプレースホルダー10を割り当てられたボリュームIDに置き換え、コンテナ内の/path/in/containerにマウトポイントを設定します。
バインド・マウント・ポイント
バインドマウントを使用すると、コンテナ内のProxmox VEホストから任意のディレクトリにアクセスできます。以下のような使用例が考えられます:
-
ゲストのホームディレクトリへのアクセス
-
ゲスト内のUSBデバイスディレクトリへのアクセス
-
ゲストのホストからNFSマウントへのアクセス
バインド・マウントはストレージ・サブシステムによって管理されていないと見なされるため、コンテナ内からスナップショットを作成したりクォータを処理したりすることはできません。非特権コンテナでは、ユーザーマッピングに起因するパーミッションの問題に遭遇する可能性があり、ACLを使用できません。
|
|
vzdumpを使用すると、バインドマウントポイントの内容はバックアップされません。 |
|
|
セキュリティ上の理由から、バインドマウントは、この目的のために特別に確保されたソースディレクトリ(たとえば/mnt/bindmounts 以下のディレクトリ階層)を使用してのみ確立する必要があります。マウント・システム・ディレクトリ(/、/var、/etcなど)をコンテナにバインドしてはいけません。 |
|
|
バインドマウントソースパスにはシンボリックリンクを含んではいけません。 |
たとえば、ID100のコンテナで、/shared というパスの下にある/mnt/bindmounts/shared というディレクトリにアクセスできるようにするには、次のような設定行を追加します:
mp0: /mnt/bindmounts/shared,mp=/shared
を/etc/pve/lxc/100.conf に追加します。
またはpctツールを使うこともできます:
pct set 100 -mp0 /mnt/bindmounts/shared,mp=/shared
同じ結果を得るために。
11.4.5.ネットワーク
- net[n]:name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>][,type=<veth>]
-
コンテナのネットワーク・インタフェースを指定します。
- ブリッジ
-
ネットワークデバイスを接続するブリッジ。
- firewall=<boolean>
-
このインターフェイスのファイアウォールルールを使用するかどうかを制御します。
- gw=<ゲートウェイIPv4
-
IPv4トラフィックのデフォルトゲートウェイ。
- gw6=<ゲートウェイIPv6
-
IPv6トラフィックのデフォルトゲートウェイ。
- hwaddr=<XX:XX:XX:XX:XX:XX>となります。
-
I/G(Individual/Group)ビットが設定されていない共通のMACアドレス。
- ip=<(IPv4/CIDR|dhcp|マニュアル)>です。
-
CIDR形式のIPv4アドレス。
- ip6=<(IPv6/CIDR|auto|dhcp|manual)>です。
-
CIDR形式のIPv6アドレス。
- link_down=<ブール値
-
このインターフェイスを切断するかどうか(プラグを抜くように)。
- mtu=<整数>(64 - 65535)
-
インタフェースの最大転送単位。(lxc.network.mtu)
- name=<文字列
-
コンテナ内部から見たネットワークデバイスの名前。(lxc.network.name)
- レート=<mbps
-
インターフェイスにレート制限を適用
- タグ=<整数>(1 - 4094)
-
このインターフェイスの VLAN タグ。
- trunks=<vlanid[;vlanid...]>です。
-
インターフェイスを通過するVLAN ID
- タイプ=<ベス
-
ネットワークインターフェースのタイプ。
11.4.6.コンテナの自動スタートとシャットダウン
ホスト・システムの起動時にコンテナを自動的に起動するには、Web インターフェイスのコンテナのオプション・パネルで[Start at boot]オプションを選択するか、以下のコマンドを実行します:
# pct set CTID -onboot 1
-
スタート/シャットダウン順:開始順序の優先順位を定義します。例えば、CTを最初に起動させたい場合は1に設定します。(シャットダウンには逆の起動順序を使用するため、起動順序が1のコンテナは最後にシャットダウンされます)
-
起動遅延:このコンテナの起動と後続のコンテナの起動の間隔を定義します。たとえば、他のコンテナを起動する前に 240 秒待つ場合は 240 に設定します。
-
シャットダウンタイムアウト:Proxmox VEがシャットダウンコマンドを発行した後、コンテナがオフラインになるまで待機する時間を秒単位で定義します。 デフォルトでこの値は60に設定されています。つまり、Proxmox VEはシャットダウン要求を発行し、マシンがオフラインになるまで60秒待機し、60秒経過してもマシンがオンラインの場合はシャットダウンアクションが失敗したことを通知します。
Start/Shutdown順序パラメータが設定されていないコンテナは、常にパラメータが設定されているコンテナの後に開始することに注意してください。
ホストのブートと最初のコンテナのブートの間に遅延が必要な場合は、Proxmox VE Node Managementのセクションを参照してください。
11.5.セキュリティに関する考察
コンテナはホストシステムのカーネルを使用します。そのため、悪意のあるユーザーにとって攻撃対象が露出することになります。一般的に、完全な仮想マシンの方がより優れた分離を提供します。コンテナを未知の人や信頼できない人に提供する場合は、この点を考慮する必要があります。
攻撃対象領域を減らすために、LXCはAppArmor、CGroups、カーネル・ネームスペースなどの多くのセキュリティ機能を使用しています。
11.5.1.AppArmor
AppArmorプロファイルは、危険な可能性のあるアクションへのアクセスを制限するために使用されます。 一部のシステムコール(マウントなど)は実行が禁止されています。
AppArmorのアクティビティをトレースするには、以下を使用します:
# dmesg | grep apparmor
推奨されませんが、AppArmorはコンテナに対して無効にすることができます。これにはセキュリティ・リスクが伴います。システムが誤って設定されている場合や、LXCまたはLinuxカーネルに脆弱性が存在する場合、コンテナ内で一部のシステムコールを実行すると、特権の昇格につながる可能性があります。
コンテナの AppArmor を無効にするには、/etc/pve/lxc/CTID.conf にあるコンテナ構成ファイルに以下の行を追加します:
lxc.apparmor.profile=アンコンファインド
|
|
本番用にはお勧めできませんのでご注意ください。 |
11.5.2.コントロールグループ(cgroup)
cgroupは、プロセスを階層的に整理し、システムリソースを分配するために使用されるカーネルのメカニズムです。
cgroupsによって制御される主なリソースは、CPU時間、メモリとスワップの制限、デバイスノードへのアクセスです。cgroupsは、スナップショットを取得する前にコンテナを「フリーズ」するためにも使用されます。
Proxmox VE 7.0 以降、デフォルトは純粋なcgroupv2環境です。以前は「ハイブリッド」セットアップが使用され、リソース制御は主にcgroupv1で行われ、cgroup_no_v1カーネルコマンドラインパラメータで一部のサブシステムを引き継ぐことができるcgroupv2コントローラーが追加されていました。(詳細はカーネルパラメータのドキュメントを参照してください)。
CGroup バージョン互換性
Proxmox VE に関する純粋なcgroupv2と従来のハイブリッド環境の主な違いは、cgroupv2ではメモリとスワップが独立して制御されるようになったことです。以前はメモリの上限とメモリとスワップの合計の上限しか制限できませんでしたが、コンテナのメモリとスワップの設定はこれらの値に直接マッピングできます。
もう1つの重要な違いは、デバイスコントローラが全く異なる方法で設定されることです。このため、純粋なcgroupv2環境では、ファイルシステムクォータは現在サポートされていません。
純粋なcgroupv2環境で実行するには、コンテナの OS によるcgroupv2サポートが必要です。systemdバージョン 231 以降を実行しているコンテナはcgroupv2 をサポートします
[Proxmox VE が出荷するコンテナテンプレートの最新メジャーバージョンすべてが含まれます]
、init システムとしてsystemd を使用していないコンテナも同様です
[Alpine Linux など]
。
|
|
CentOS 7とUbuntu 16.10は、cgroupv2環境で実行するには古すぎるsystemdバージョンを持つ2つの著名なLinuxディストリビューションのリリースです。
|
CGグループバージョンの変更
|
|
ファイルシステムのクォータが必要なく、すべてのコンテナがcgroupv2をサポートしている場合は、新しいデフォルトに固執することをお勧めします。 |
以前のバージョンに戻すには、以下のカーネルコマンドラインパラメーターを使用します:
systemd.unified_cgroup_hierarchy=0
パラメータを追加する場所については、カーネルブートコマンドラインの編集に関するこのセクションを参照してください。
11.6.ゲストオペレーティングシステムの構成
Proxmox VEはコンテナ内のLinuxディストリビューションを検出しようとし、いくつかのファイルを変更します。以下は、コンテナ起動時に実行されることの簡単なリストです:
- etc/hostname を設定します。
-
コンテナ名の設定
- etc/hosts を修正
-
ローカルホスト名の検索を許可するには
- ネットワーク設定
-
完全なネットワーク・セットアップをコンテナに渡します。
- DNSの設定
-
DNSサーバーに関する情報を渡します。
- initシステムの適応
-
例えば、gettyプロセスの生成数を修正します。
- ルートパスワードの設定
-
新規コンテナ作成時
- ssh_host_keys を書き換えます。
-
各コンテナが一意のキーを持つように
- crontabのランダム化
-
全てのコンテナでcronが同時に起動しないようにします。
Proxmox VEによる変更はコメントマーカーで囲まれています:
# BEGIN PVE --- <data> # --- END PVE ---
これらのマーカーはファイル内の適切な位置に挿入されます。そのようなセクションがすでに存在する場合、そのセクションはそのまま更新され、移動されることはありません。
例えば、/etc/.pve-ignore.hostsファイルが存在する場合、/etc/hostsファイルは変更されません。これは単純な空のファイルでも構いません:
# touch /etc/.pve-ignore.hosts
ほとんどの修正はOSに依存するため、ディストリビューションやバージョンによって異なります。手動でostypeを unmanagedに設定することで、修正を完全に無効にすることができます。
OS タイプの検出は、コンテナ内の特定のファイルをテストすることで行います。Proxmox VEは、最初に/etc/os-releaseファイル
[/etc/os-releaseは、ディストリビューションごとの多数のリリースファイルhttps://manpages.debian.org/stable/systemd/os-release.5.en.html]
をチェックします。このファイルが存在しないか、明確に認識できるディストリビューション識別子が含まれていない場合は、次のディストリビューション固有のリリースファイルがチェックされます。
- ウブントゥ
-
etc/lsb-release(DISTRIB_ID=Ubuntu) を検査します。
- デビアン
-
test /etc/debian_version
- フェドラ
-
test /etc/fedora-release
- RedHat または CentOS
-
test /etc/redhat-release
- ArchLinux
-
test /etc/arch-release
- アルパイン
-
テスト /etc/alpine-release
- ジェンツー
-
test /etc/gentoo-release
|
|
設定されたostype が自動検出されたタイプと異なる場合、コンテナの起動に失敗します。 |
11.7.コンテナ保管
Proxmox VE LXCコンテナストレージモデルは、従来のコンテナストレージモデルよりも柔軟です。コンテナは複数のマウントポイントを持つことができます。これにより、各アプリケーションに最適なストレージを使用できます。
例えば、コンテナのルートファイルシステムは低速で安価なストレージに置き、データベースは2つ目のマウントポイントを経由して高速で分散ストレージに置くことができます。詳細については、「マウントポイント」を参照してください。
Proxmox VEストレージライブラリがサポートするストレージタイプであれば何でも使用できます。つまり、コンテナはローカル(lvm、zfs、ディレクトリなど)、共有外部(iSCSI、NFSなど)、あるいはCephのような分散ストレージシステムにも保存できます。基礎となるストレージがサポートしていれば、スナップショットやクローンのような高度なストレージ機能も使用できます。vzdumpバックアップツールは、スナップショットを使用して一貫性のあるコンテナバックアップを提供できます。
さらに、バインドマウントを使ってローカルデバイスやローカルディレクトリを直接マウントすることもできます。これにより、実質的にオーバーヘッドゼロでコンテナ内のローカルリソースにアクセスできます。バインドマウントは、コンテナ間でデータを共有する簡単な方法として使用できます。
11.7.1.FUSEマウント
|
|
Linuxカーネルのフリーザーサブシステムには既存の問題があるため、コンテナ内でFUSEマウントを使用することは強くお勧めできません。 |
FUSEマウントを他のマウント機構やストレージ技術で置き換えることができない場合は、Proxmoxホスト上でFUSEマウントを確立し、バインドマウントポイントを使用してコンテナ内でアクセスできるようにすることができます。
11.7.2.コンテナ内でのクォータの使用
クオータは、コンテナ内で各ユーザが使用できるディスク容量の制限を設定することができます。
|
|
これには現在、レガシーのcgroupを使用する必要があります。 |
|
|
これはext4イメージベースのストレージタイプでのみ動作し、現在のところ特権コンテナでのみ動作します。 |
quotaオプションを有効にすると、マウント・ポイントに次のマウント・オプションが使用されます:usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0
これにより、他のシステムと同様にクォータを使用することができます。を実行することで/aquota.userと /aquota.groupファイルを初期化することができます:
# quotacheck -cmug / # quotaon /
次に、edquotaコマンドを使用してクォータを編集します。詳細については、コンテナ内で実行されているディストリビューションのドキュメントを参照してください。
|
|
上記のコマンドをマウントポイントごとに実行する必要があります。その際、/だけでなくマウントポイントのパスを渡す必要があります。 |
11.7.3.コンテナ内部でのACLの使用
標準のPosixアクセス 制御 リストもコンテナ内で利用できます。ACL を使用すると、従来のユーザー/グループ/その他モデルよりも詳細なファイル所有権を設定できます。
11.7.4.コンテナマウントポイントのバックアップ
マウントポイントをバックアップに含めるには、コンテナ構成でそのマウントポイントのバックアップオプションを有効にします。既存のマウントポイントmp0 の場合
mp0: ゲスト:subvol-100-disk-1,mp=/root/files,size=8G
backup=1 を追加して有効にします。
mp0: guests:subvol-100-disk-1,mp=/root/files,size=8G,backup=1。
|
|
GUIで新しいマウントポイントを作成する場合、このオプションはデフォルトで有効になっています。 |
マウント・ポイントのバックアップを無効にするには、上記の方法でbackup=0 を追加するか、GUI のBackupチェックボックスのチェックを外します。
11.7.5.コンテナマウントポイントのレプリケーション
デフォルトでは、ルートディスクがレプリケートされると、追加のマウントポイントもレプリケー トされます。Proxmox VE ストレージのレプリケーション機構でマウントポイントをスキップしたい場合は、そのマウントポイントに[レプリケーションをスキップ]オプションを設定します。 Proxmox VE 5.0 では、レプリケーションにはzfspool タイプのストレージが必要です。コンテナでレプリケーションが設定されているときに別のタイプのストレージにマウントポイントを追加するには、そのマウントポイントでレプリケーションをスキップするオプションを有効にする必要があります。
11.8.バックアップとリストア
11.8.2.コンテナバックアップのリストア
vzdumpで作成したコンテナのバックアップをリストアするには、pct restoreコマンドを使用します。デフォルトでは、pct restoreはバックアップされたコンテナ構成を可能な限り復元しようとします。コマンドラインでコンテナオプションを手動で設定することで、バックアップされた構成を上書きすることができます(詳細についてはpct のマニュアルページを参照してください)。
|
|
pvesm extractconfig を使用すると、vzdump アーカイブに含まれるバックアップされた設定を表示できます。 |
基本的なリストアモードは2つあり、マウントポイントの扱いだけが異なります:
"シンプル "リストアモード
rootfsパラメーターもオプションのmpXパラメーターも明示的に設定されていない場合、バックアップされた設定ファイルからマウントポイントの設定が以下の手順で復元されます:
-
バックアップからマウントポイントとそのオプションを抽出
-
storageパラメーター(デフォルト:ローカル)で指定されたストレージ上に、ストレージバックされたマウントポイント用のボリュームを作成します。
-
バックアップアーカイブからファイルを抽出
-
リストアされた設定にバインドポイントとデバイスマウントポイントを追加(rootユーザーに限定
|
|
バインドとデバイスのマウントポイントは決してバックアップされないので、最後のステップではファイルはリストアされず、設定オプションだけがリストアされます。このようなマウントポイントは、別のメカニズム(多くのコンテナにバインドマウントされているNFSスペースなど)でバックアップされているか、まったくバックアップされることを意図していないかのいずれかであることが前提です。 |
このシンプル・モードは、ウェブ・インターフェイスのコンテナ・リストア操作でも使用されます。
"高度な "復元モード
rootfsパラメータ (およびオプションでmpXパラメータの任意の組み合わせ) を設定することで、pct restoreコマンドは自動的にアドバンスモードに切り替わります。このアドバンスモードは、バックアップアーカイブに含まれるrootfsとmpX の設定オプションを完全に無視し、代わりにパラメータとして明示的に提供されたオプションのみを使用します。
このモードでは、リストア時などにマウントポイントの設定を柔軟に設定できます:
-
各マウントポイントのターゲットストレージ、ボリュームサイズ、その他のオプションを個別に設定します。
-
新しいマウントポイントスキームに従ってバックアップされたファイルを再配布します。
-
デバイスおよび/またはバインドマウントポイントへのリストア(rootユーザーに限定)
11.9.pctによるコンテナの管理
Proxmox Container Toolkit"(pct)はProxmox VEコンテナを管理するコマンドラインツールです。コンテナの作成や破棄、コンテナ実行の制御(開始、停止、再起動、マイグレーションなど)が可能です。また、コンテナの設定ファイルにパラメータを設定することもできます。
11.9.1.CLIの使用例
Debian テンプレートに基づいてコンテナを作成します (ウェブインタフェースからテンプレートをダウンロード済みの場合)。
# pct create 100 /var/lib/vz/template/cache/debian-10.0-standard_10.0-1_amd64.tar.gz
コンテナ 100
# pct start 100
gettyによるログインセッションの開始
# pct コンソール 100
LXCネームスペースに入り、rootユーザーとしてシェルを実行します。
# pct enter 100
設定の表示
# pct config 100
ホストブリッジvmbr0にブリッジされたeth0というネットワークインターフェースを追加し、アドレスとゲートウェイを設定します。
# pct set 100 -net0 name=eth0,bridge=vmbr0,ip=192.168.15.147/24,gw=192.168.15.1。
コンテナのメモリを512MBに削減。
# pct set 100 -memory 512
コンテナを破棄すると、常にアクセス制御リストからコンテナが削除され、常にコンテナのファイアウォール構成が削除されます。レプリケーション・ジョブ、バックアップ・ジョブ、およびHAリソース構成からもコンテナを削除する場合は、-purgeを有効にする必要があります。
# pct destroy 100 --purge
マウントポイントボリュームを別のストレージに移動します。
# pct move-volume 100 mp0 other-storage
ボリュームを別のCT に再割り当てします。これにより、ソースCTからボリュームmp0が削除され、ターゲットCTにmp1としてアタッチされます。バックグランドでは、ボリュームの名前が新しい所有者と一致するように変更されます。
# pct move-volume 100 mp0 --target-vmid 200 --target-volume mp1
11.9.2.デバッグ・ログの取得
pct startが特定のコンテナを起動できない場合、--debugフラグ(CTIDをコンテナのCTIDに置き換える)を渡してデバッグ出力を収集すると便利です:
# pct start CTID --debug
代わりに、以下のlxc-startコマンドを使用することもできます。このコマンドは、-ooutputオプションで指定されたファイルにデバッグ・ログを保存します:
# lxc-start -n CTID -F -l DEBUG -o /tmp/lxc-CTID.log
このコマンドは、フォアグラウンド・モードでコンテナを起動しようとします。コンテナを停止するには、2 番目のターミナルでpct shutdown CTIDまたはpct stop CTIDを実行します。
収集されたデバッグログは/tmp/lxc-CTID.logに書き込まれます。
|
|
最後にpct start で起動を試みてからコンテナの構成を変更した場合は、少なくとも 1 回pct start を実行してlxc-start で使用する構成も更新する必要があります。 |
11.10.マイグレーション
クラスタがある場合、コンテナのマイグレーションは
# pct migrate <ctid> <target>
これは、コンテナがオフラインである限り動作します。ローカルボリュームまたはマウントポイントが定義されている場合、同じストレージがターゲットホストに定義されていれば、移行はネットワーク経由でコンテンツをターゲットホストにコピーします。
実行中のコンテナは、技術的な制限によりライブマイグレーションできません。再起動マイグレーションは可能で、シャットダウンしてコンテナを移動し、ターゲットノードでコンテナを再度起動します。コンテナは非常に軽量であるため、通常は数百ミリ秒のダウンタイムしか発生しません。
マイグレーションの再開は、ウェブ・インターフェイスから行うか、pct migrateコマンドで--restartフラグを使用して行うことができます。
再起動マイグレーションはコンテナをシャットダウンし、指定されたタイムアウト(デフォルトは180秒)の後にコンテナを強制終了します。その後、オフラインマイグレーションのようにコンテナをマイグレーションし、終了するとターゲットノード上でコンテナを起動します。
11.11.コンフィギュレーション
etc/pve/lxc/<CTID>.confファイルにはコンテナ構成が格納されます。<CTID>は指定されたコンテナの数値 ID です。etc/pve/ 内に格納されている他のすべてのファイルと同様に、他のすべてのクラスタ ノードに自動的に複製されます。
|
|
CTID < 100は内部用に予約されており、CTIDはクラスタ全体で一意である必要があります。 |
ostype: debian arch: amd64 hostname: www memory:512 スワップ512 net0: bridge=vmbr0,hwaddr=66:64:66:64:64:36,ip=dhcp,name=eth0,type=veth rootfs: local:107/vm-107-disk-1.raw,size=7G
設定ファイルは単純なテキストファイルです。通常のテキストエディタ、たとえばviやnano を使用して編集できます。 小さな修正を行うのに便利な場合もありますが、そのような変更を適用するにはコンテナを再起動する必要があることに注意してください。
そのため、通常はpctコマンドを使用してこれらのファイルを生成および変更するか、GUI を使用してすべてを行う方がよいでしょう。 私たちのツールキットは、実行中のコンテナに対してほとんどの変更を即座に適用できるほど賢いです。この機能は「ホットプラグ」と呼ばれ、この場合、コンテナを再起動する必要はありません。
ホットプラグできない変更の場合、保留中の変更として登録されます(GUI では赤色で表示されます)。 変更はコンテナを再起動した後にのみ適用されます。
11.11.1.ファイルフォーマット
コンテナ設定ファイルでは、コロンで区切られた単純なキー/値形式を使用します。各行の書式は以下のとおりです:
# これはコメントです。
これらのファイルの空白行は無視され、#文字で始まる行はコメントとして扱われ、これも無視されます。
例えば、低レベルのLXCスタイルのコンフィギュレーションを直接追加することも可能です:
lxc.init_cmd:/sbin/my_own_init
または
lxc.init_cmd = /sbin/my_own_init
この設定は、LXCの低レベルツールに直接渡されます。
11.11.2.スナップショット
スナップショットを作成すると、pct はスナップショット時の設定を同じ設定ファイル内の別のスナップショットセクションに保存します。例えば、"testsnapshot" というスナップショットを作成した後、設定ファイルは次のようになります:
メモリ512 swap:512 parent: testsnaphot ... [testsnaphot] memory:512 swap:512 snaptime: 1457170803 ...
parentやsnaptime のようなスナップショット関連のプロパティがいくつかあります。parentプロパティはスナップショット間の親子関係を保存するために使用されます。snaptimeはスナップショットの作成タイムスタンプ (Unix epoch) です。
11.11.3.オプション
- arch:<amd64 | arm64 | armhf | i386 | riscv32 | riscv64>(デフォルト = amd64)
-
OSアーキテクチャの種類。
- cmode:<コンソール | シェル | tty>(デフォルト = tty)
-
コンソールモード。デフォルトでは、consoleコマンドは利用可能なttyデバイスの1つに接続を開こうとします。cmode をconsoleに設定すると、代わりに /dev/console にアタッチしようとします。cmode をshell に設定すると、コンテナ内で単にシェルを起動します(ログインはしません)。
- console:<論理値>(デフォルト = 1)
-
コンテナにコンソールデバイス(/dev/console)をアタッチします。
- コア:<整数> (1 - 8192)
-
コンテナに割り当てられたコアの数。コンテナは、デフォルトで使用可能なすべてのコアを使用できます。
- cpulimit:<数値> (0 - 8192)(デフォルト = 0)
-
CPU使用量の上限。
コンピュータに2つのCPUがある場合、合計2つのCPU時間があります。値0はCPU制限なしを示します。 - cpuunits:<整数> (0 - 500000)(デフォルト = cgroup v1: 1024, cgroup v2: 100)
-
コンテナの CPU ウェイト。引数は、カーネルのフェアスケジューラで使用されます。数値が大きいほど、このコンテナはより多くの CPU 時間を得ます。数値は、他のすべての実行中のゲストの重みに対する相対値です。
- debug:<boolean>(デフォルト = 0)
-
もっと冗長にしてみてください。今のところ、これは起動時にデバッグログレベルを有効にするだけです。
- 説明:<文字列
-
コンテナの説明。WebインターフェイスCTのサマリーに表示されます。これは設定ファイルのコメントとして保存されます。
- dev[n]:[[パス=]<パス>] [,gid=<整数[,deny-write=<1|0>][,gid=<整数>][,mode=<オクタルのアクセスモード>][,uid=<整数]
-
コンテナへの通過装置
- deny-write=<boolean>(デフォルト = 0)
-
コンテナのデバイスへの書き込みを拒否
- gid=<整数>(0 - N)
-
デバイスノードに割り当てるグループID
- mode=<オクタルアクセスモード
-
デバイス・ノードで設定するアクセス・モード
- パス=<パス
-
コンテナに通すデバイスへのパス
- uid=<整数>(0 - N)
-
デバイスノードに割り当てられるユーザーID
- の機能があります:[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]です。
-
コンテナが高度な機能にアクセスできるようにします。
- force_rw_sys=<boolean>(デフォルト = 0)
-
非特権コンテナの /sys をmixed ではなく rwでマウントするようにしました。これは、新しい (>= v245) systemd-network の使用下でネットワークを壊す可能性があります。
- fuse=<boolean>(デフォルト = 0)
-
コンテナ内でのfuseファイルシステムの使用を許可します。fuse と freezer cgroup の相互作用により、I/O デッドロックが発生する可能性があることに注意してください。
- keyctl=<ブール値>(デフォルト = 0)
-
非特権コンテナ専用:keyctl() システムコールの使用を許可します。これは、コンテナ内で docker を使用するために必要です。デフォルトでは、非特権コンテナはこのシステムコールを存在しないと見なします。これは主に systemd-networkd の回避策で、keyctl() の操作がパーミッション不足でカーネルに拒否された場合に致命的なエラーとして扱われます。基本的には、systemd-networkd を走らせるか docker を走らせるかを選ぶことができます。
- mknod=<boolean>(デフォルト = 0)
-
非特権コンテナが mknod() を使用して特定のデバイスノードを追加できるようにしました。これには、ユーザ空間への seccomp トラップがサポートされたカーネルが必要です (5.3 以降)。これは実験的なものです。
- mount=<fstype;fstype;...>です。
-
特定のタイプのファイルシステムのマウントを許可します。これは、mount コマンドで使用するファイルシステムタイプのリストである必要があります。これは、コンテナのセキュリティに悪影響を及ぼす可能性があることに注意してください。ループデバイスへのアクセスでは、ファイルをマウントするとデバイス cgroup の mknod パーミッションを回避できます。
- nesting=<boolean>(デフォルト = 0)
-
ネストを許可します。id マッピングを追加した非特権コンテナで使用するのが最適です。これは、ホストの procfs と sysfs の内容をゲストに公開することに注意してください。
- フックスクリプト:<文字列
-
コンテナのライフタイムのさまざまなステップで実行されるスクリプト。
- ホスト名:<文字列
-
コンテナのホスト名を設定します。
- lock:<バックアップ|作成|破棄|ディスク|fstrim|マイグレーション|マウント|ロールバック|スナップショット|スナップショット削除>。
-
コンテナのロック/アンロック
- メモリ:<整数> (16 - N)(デフォルト = 512)
-
コンテナのRAM容量(MB)。
- mp[n]:ボリューム=]<ボリューム> ,mp=<Path> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<1|0>] [,マウントオプション=<opt[;opt...[quota=<1|0>][,replicate=<1|0>][,ro=<1|0>][,shared=<1|0>][,size=<DiskSize>]。
-
ボリュームをコンテナ・マウント・ポイントとして使用します。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。
- acl=<ブール値
-
ACL サポートを明示的に有効または無効にします。
- backup=<ブール値
-
マウント・ポイントをバックアップに含めるかどうか(ボリューム・マウント・ポイントにのみ使用)。
- mountoptions=<opt[;opt...]>です。
-
rootfs/mps 用の追加マウントオプション。
- mp=<パス
-
コンテナ内部から見たマウントポイントへのパス。
セキュリティ上の理由から、シンボリックリンクを含んではいけません。 - quota=<ブール値
-
コンテナ内でユーザークォータを有効化(zfsサブボリュームではサポートされていません。)
- replicate=<boolean>(デフォルト = 1)
-
このボリュームをストレージ・レプリカ・ジョブに含めます。
- ro=<ブール値
-
読み取り専用のマウントポイント
- shared=<boolean>(デフォルト = 0)
-
この非ボリュームマウントポイントをすべてのノードで使用可能としてマークします。
このオプションは、マウントポイントを自動的に共有するのではなく、すでに共有されていると仮定します! - size=<ディスクサイズ
-
ボリュームサイズ(読み取り専用値)。
- ボリューム=<ボリューム
-
コンテナにマウントするボリューム、デバイス、またはディレクトリ。
- ネームサーバー:<文字列
-
コンテナの DNS サーバー IP アドレスを設定します。searchdomainもnameserverも設定しない場合、Createは自動的にホストの設定を使用します。
- net[n]:name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>][,type=<veth>]
-
コンテナのネットワーク・インタフェースを指定します。
- ブリッジ
-
ネットワークデバイスを接続するブリッジ。
- firewall=<boolean>
-
このインターフェイスのファイアウォールルールを使用するかどうかを制御します。
- gw=<ゲートウェイIPv4
-
IPv4トラフィックのデフォルトゲートウェイ。
- gw6=<ゲートウェイIPv6
-
IPv6トラフィックのデフォルトゲートウェイ。
- hwaddr=<XX:XX:XX:XX:XX:XX>となります。
-
I/G(Individual/Group)ビットが設定されていない共通のMACアドレス。
- ip=<(IPv4/CIDR|dhcp|マニュアル)>です。
-
CIDR形式のIPv4アドレス。
- ip6=<(IPv6/CIDR|auto|dhcp|manual)>です。
-
CIDR形式のIPv6アドレス。
- link_down=<ブール値
-
このインターフェイスを切断するかどうか(プラグを抜くように)。
- mtu=<整数>(64 - 65535)
-
インタフェースの最大転送単位。(lxc.network.mtu)
- name=<文字列
-
コンテナ内部から見たネットワークデバイスの名前。(lxc.network.name)
- レート=<mbps
-
インターフェイスにレート制限を適用
- タグ=<整数>(1 - 4094)
-
このインターフェイスの VLAN タグ。
- trunks=<vlanid[;vlanid...]>です。
-
インターフェイスを通過するVLAN ID
- タイプ=<ベス
-
ネットワークインターフェースのタイプ。
- onboot:<boolean>(デフォルト = 0)
-
システム起動時にコンテナを起動するかどうかを指定します。
- ostype:<alpine | archlinux | centos | debian | devuan | fedora | gentoo | nixos | opensuse |ubuntu | unmanaged>.
-
OS タイプ。これは、コンテナ内の設定を行うために使用され、/usr/share/lxc/config/<ostype>.common.conf 内の lxc 設定スクリプトに対応します。値unmanagedは、OS 固有のセットアップをスキップするために使用できます。
- protection:<ブール値>(デフォルト = 0)
-
コンテナの保護フラグを設定します。これにより、CT または CT のディスクの削除/更新操作を防止します。
- rootfs:ボリューム=]<ボリューム> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<1|0>[quota=<1|0>][,replicate=<1|0>][,ro=<1|0>][,shared=<1|0>][,size=<DiskSize>]。
-
ボリュームをコンテナのルートとして使用します。
- acl=<ブール値
-
ACL サポートを明示的に有効または無効にします。
- mountoptions=<opt[;opt...]>です。
-
rootfs/mps 用の追加マウントオプション。
- quota=<ブール値
-
コンテナ内でユーザークォータを有効化(zfsサブボリュームではサポートされていません。)
- replicate=<boolean>(デフォルト = 1)
-
このボリュームをストレージ・レプリカ・ジョブに含めます。
- ro=<ブール値
-
読み取り専用のマウントポイント
- shared=<boolean>(デフォルト = 0)
-
この非ボリュームマウントポイントをすべてのノードで使用可能としてマークします。
このオプションは、マウントポイントを自動的に共有するのではなく、すでに共有されていると仮定します! - size=<ディスクサイズ
-
ボリュームサイズ(読み取り専用値)。
- ボリューム=<ボリューム
-
コンテナにマウントするボリューム、デバイス、またはディレクトリ。
- searchdomain:<文字列
-
コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定しない場合、Createはホストからの設定を自動的に使用します。
- を起動します:order=]♪ [,up=♪] [,down=♪ `)
-
スタートアップとシャットダウンの動作。Orderは一般的な起動順序を定義する非負の数値です。シャットダウンは逆の順序で行われます。さらに、次のVMが起動または停止するまでの待ち時間を秒単位で設定できます。
- swap:<整数> (0 - N)(デフォルト = 512)
-
MB単位のコンテナのSWAP量。
- タグ:<string
-
コンテナのタグ。これは単なるメタ情報です。
- テンプレート:<boolean>(デフォルト = 0)
-
テンプレートの有効/無効。
- timezone:<文字列
-
コンテナで使用するタイムゾーン。オプションが設定されていない場合は、何も行われません。ホストのタイムゾーンに合わせるためにhostを設定するか、/usr/share/zoneinfo/zone.tab から任意のタイムゾーンオプションを設定することができます。
- tty:<整数> (0 - 6)(デフォルト = 2)
-
コンテナで利用可能なttyの数を指定
- unprivileged:<boolean>(デフォルト = 0)
-
コンテナを非特権ユーザーとして実行します。(手動で変更してはいけません)。
- unused[n]です:[ボリューム=]<ボリューム
-
未使用ボリュームへの参照。これは内部的に使用されるので、手動で変更しないでください。
- ボリューム=<ボリューム
-
現在使用されていないボリューム。
12.ソフトウェア定義ネットワーク
Proxmox VEのSDN(Software-Defined Network)機能は、仮想ゾーンとネットワーク(VNet)の作成を可能にします。この機能により、高度なネットワーク構成とマルチテナントの設定が簡素化されます。
12.1.はじめに
Proxmox VE SDN は、柔軟でソフトウェア制御のコンフィギュレーションを使用して、仮想ゲストネットワークの分離ときめ細かな制御を可能にします。
分離はゾーン、仮想ネットワーク(VNets)、サブネットによって管理されます。 ゾーンは仮想的に分離された独自のネットワーク領域です。 VNetはゾーンに属する仮想ネットワークです。サブネットはVNet内のIP範囲です。
ゾーンのタイプによって、ネットワークの動作は異なり、特定の機能、利点、制限を提供します。
SDN のユースケースは、個々のノード上の孤立したプライベートネットワークから、異なる場所にある複数の PVE クラスタにまたがる複雑なオーバーレイネットワークまで多岐にわたります。
クラスタ全体のデータセンタ SDN 管理インターフェイスで VNet を設定した後、各ノードでローカルに共通の Linux ブリッジとして利用でき、VM やコンテナに割り当てることができます。
12.2.サポート状況
12.2.1.ヒストリー
Proxmox VE SDN スタックは 2019 年から実験的な機能として提供され、多くの開発者とユーザによって継続的に改良とテストが行われてきました。 Proxmox VE 6.2 でウェブインタフェースに統合されたことで、より広範な統合に向けた重要なマイルストーンが達成されました。 Proxmox VE 7 のリリースサイクルでは、多くの改良と機能が追加されました。 ユーザからのフィードバックに基づき、基本的な設計の選択とその実装は非常に健全で安定していることが明らかになりました。Proxmox VE 8 では、ネットワークとインタフェースの管理を Proxmox VE アクセス制御スタックのコアコンポーネントに昇格させることで、SDN 機能の完全な統合のための基礎を築くことが決定されました。 Proxmox VE 8.1 では、二つの大きなマイルストーンが達成されました。第一に、IP アドレス管理 (IPAM) 機能に DHCP の統合が追加され、第二に、SDN の統合がデフォルトでインストールされました。
12.3.インストール
12.3.1.SDN コア
Proxmox VE 8.1 以降、Software-Defined Network (SDN) のコアパッケージがデフォルトでインストールされます。
古いバージョンからアップグレードする場合は、各ノードにlibpve-network-perlパッケージをインストールする必要があります:
apt update apt install libpve-network-perl
|
|
Proxmox VEバージョン7.0以上では、デフォルトでifupdown2パッケージがインストールされています。それ以前のバージョンでシステムをインストールした場合は、ifupdown2パッケージを明示的にインストールする必要があります。 |
インストール後、全てのノードで/etc/network/interfaces設定ファイルの最後に以下の行があることを確認する必要があります。
ソースは /etc/network/interfaces.d/* です。
12.3.2.DHCP IPAM
PVE内蔵IPアドレス管理スタックへのDHCP統合は、現在DHCPリースの提供にdnsmasqを使用しています。これは現在オプトインです。
この機能を使うには、各ノードにdnsmasqパッケージをインストールする必要があります:
apt update apt install dnsmasq # デフォルトのインスタンスを無効にする systemctl disable --now dnsmasq
12.3.3.FRRouting
Proxmox VE SDN スタックは高度なセットアップのためにFRRoutingプロジェクトを使います。これは現在オプトインです。
SDNルーティングの統合を使うには、すべてのノードにfrr-pythontoolsパッケージをインストールする必要があります:
apt update apt install frr-pythontools
12.4.構成の概要
設定はデータセンター・レベルのWeb UIで行われ、以下のセクションに分かれています:
Optionsカテゴリでは、SDNセットアップで使用する追加サービスを追加・管理できます。
12.5.テクノロジーとコンフィギュレーション
Proxmox VE Software-Defined Network の実装は可能な限り標準的な Linux ネットワークを使います。その理由は、最新の Linux ネットワーキングは SDN 実装に必要なほとんど全ての機能を提供し、外部依存の追加を避け、壊れる可能性のあるコンポーネントの総量を減らすことができるからです。
Proxmox VE SDN 設定は/etc/pve/sdn にあり、Proxmox VE設定ファイルシステムを通して他の全てのクラスタノードと共有されます。 これらの設定は、基礎となるネットワークスタックを管理するツール (例えばifupdown2やfrr) のそれぞれの設定フォーマットに変換されます。
新しい変更はすぐに適用されるのではなく、まず保留として記録されます。その後、ウェブインターフェイスのメインのSDN概要パネルで一連の異なる変更を一度に適用することができます。このシステムは様々な変更を単一のアトミックなものとしてロールアウトすることができます。
SDN は/etc/pve/sdn にある.running-configと.versionファイルを通してロールアウトされた状態を追跡します。
12.6.ゾーン
ゾーンは仮想的に分離されたネットワークを定義します。ゾーンは特定のノードに制限され、特定のゾーンとその中に含まれるVNetsにユーザーを制限するために、パーミッションが割り当てられます。
分離にはさまざまな技術を用いることができます:
-
シンプル:孤立ブリッジ。シンプルなレイヤ3ルーティングブリッジ(NAT)
-
VLAN:仮想LANは、LANを細分化する古典的な方法です。
-
QinQ:スタックドVLAN(正式名称:IEEE 802.1ad)
-
VXLAN:UDPトンネル経由のレイヤー2 VXLANネットワーク
-
evpn (bgp evpn):レイヤ3ルーティングを確立するためのBGP付きVXLAN
12.6.1.共通オプション
以下のオプションはすべてのゾーンタイプで利用可能です:
- ノード
-
ゾーンと関連するVNetsを配置するノード。
- アイパム
-
ゾーン内のIPを管理するためにIPアドレス管理(IPAM)ツールを使用します。オプション、デフォルトはpve。
- DNS
-
DNS APIサーバー。オプション。
- リバースDNS
-
リバースDNS APIサーバー。オプション。
- DNSゾーン
-
DNSドメイン名。<ホスト名>.<ドメイン名>のようにホスト名を登録するときに使用します。DNSゾーンはDNSサーバー上にすでに存在している必要があります。オプション。
12.6.2.シンプルゾーン
これは最もシンプルなプラグインです。孤立したVNetブリッジを作成します。 このブリッジは物理インターフェイスにリンクされておらず、VMトラフィックは各ノード上でローカルにのみ行われます。 NATまたはルーティングされたセットアップで使用できます。
12.6.3.VLAN ゾーン
VLAN プラグインは、既存のローカル Linux または OVS ブリッジを使用してノードの物理インターフェイスに接続します。 VLAN プラグインは、VNet で定義された VLAN タギングを使用してネットワークセグメントを分離します。 これにより、異なるノード間でのVMの接続が可能になります。
VLAN ゾーン設定オプション:
- ブリッジ
-
ノード間の接続を可能にする、各ノードに設定済みのローカルブリッジまたはOVSスイッチ。
12.6.4.QinQゾーン
QinQ は VLAN スタッキングとも呼ばれ、複数の VLAN タグを使用して分離します。 QinQゾーンは外側のVLANタグ(サービスVLAN)を定義し、内側のVLANタグはVNetによって定義されます。
|
|
この構成では、物理ネットワークスイッチがスタックドVLANをサポートしている必要があります。 |
QinQゾーン設定オプション:
- ブリッジ
-
各ローカルノードに設定済みのローカルVLAN対応ブリッジ
- サービスVLAN
-
このゾーンのメインVLANタグ
- サービスVLANプロトコル
-
802.1q(デフォルト)または 802.1ad サービス VLAN タイプを選択できます。
- エムティーユー
-
例えば、物理インターフェイスの MTU が1500 の場合、MTU を1496 に下げる必要があります。
12.6.5.VXLAN ゾーン
VXLANプラグインは、既存のネットワーク(アンダーレイ)の上にトンネル(オーバーレイ)を確立します。 これは、レイヤー2のイーサネットフレームを、デフォルトの宛先ポート4789を使用するレイヤー4のUDPデータグラム内にカプセル化します。
すべてのピア間でUDP接続を有効にするには、アンダーレイネットワークを自分で設定する必要があります。
例えば、パブリック・インターネットの上にVXLANオーバーレイ・ネットワークを作成し、あたかもVMが同じローカル・レイヤ2ネットワークを共有しているかのように見せることができます。
|
|
VXLANは、それ自体では暗号化を提供しません。VXLAN経由で複数のサイトに参加する場合は、サイト間VPNを使用するなどして、サイト間で安全な接続を確立してください。 |
VXLANゾーン設定オプション:
- ピアアドレスリスト
-
VXLANゾーン内の各ノードのIPアドレスのリスト。このIPアドレスで到達可能な外部ノードでもかまいません。 クラスタ内のすべてのノードをここに記載する必要があります。
- エムティーユー
-
VXLAN カプセル化は 50 バイトを使用するため、MTU は発信物理インターフェイスより 50 バイト低くする必要があります。
12.6.6.EVPN ゾーン
EVPNゾーンは、複数のクラスタにまたがるルーティング可能なレイヤ3ネットワークを構築します。これは、VPNを確立し、ルーティングプロトコルとしてBGPを利用することで実現されます。
EVPN の VNet はエニーキャスト IP アドレスおよび/または MAC アドレスを持つことができます。ブリッジ IP は各ノードで同じで、仮想ゲストがゲートウェイとしてこのアドレスを使用できることを意味します。
VRF(Virtual Routing and Forwarding)インターフェイスを通じて、異なるゾーンのVNet間でルーティングを行うことができます。
EVPN ゾーン設定オプション:
- VRF VXLAN ID
-
Vネット間の専用ルーティング相互接続に使用されるVXLAN-ID。 VネットのVXLAN-IDとは異なる必要があります。
- コントローラー
-
このゾーンで使用するEVPNコントローラ。(コントローラのプラグインのセクションを参照)。
- VNet MACアドレス
-
このゾーン内のすべてのVネットに割り当てられるエニーキャストMACアドレス。 定義されていない場合は自動生成されます。
- 出口ノード
-
EVPNネットワークから実ネットワークを経由する出口ゲートウェイとして設定されるノード。 設定されたノードはEVPNネットワークのデフォルトルートをアナウンスします。 オプション。
- 一次出口ノード
-
複数の出口ノードを使用する場合は、すべてのノードで負荷分散を行う代わりに、このプライマリ出口ノードを介してトラフィックを強制します。 オプションですが、SNATを使用する場合、またはアップストリームルーターがECMPをサポートしていない場合は必要です。
- 出口ノード ローカルルーティング
-
これは、出口ノードからVM/CTサービスに到達する必要がある場合の特別なオプションです。(デフォルトでは、出口ノードはリアルネットワークとEVPNネットワーク間のトラフィック転送のみを許可します)。 オプションです。
- サブネットの広告
-
EVPNネットワーク内のフルサブネットをアナウンスします。 サイレントVM/CTがある場合(例えば、複数のIPがあり、エニーキャストゲートウェイがこれらのIPからのトラフィックを見ない場合、IPアドレスはEVPNネットワーク内に到達できません)。 オプション。
- ARP ND抑制の無効化
-
ARPやND(Neighbor Discovery)パケットを抑制しないでください。 これは、VMでフローティングIPを使用している場合に必要です(IPアドレスとMACアドレスがシステム間で移動されます)。 オプション。
- ルートターゲットインポート
-
外部 EVPN ルートターゲットのリストをインポートできるようにします。クロスDCまたは異なるEVPNネットワークの相互接続に使用します。 オプションです。
- エムティーユー
-
VXLAN カプセル化は 50 バイトを使用するため、MTU は発信物理インターフェイスの最大 MTU よりも 50 バイト少なくする必要があります。 オプションで、デフォルトは 1450 です。
12.7.VNets
SDN GUI で仮想ネットワーク(VNet)を作成すると、各ノードで同じ名前のローカルネットワークインタフェースが利用可能になります。ゲストを VNet に接続するには、インターフェイスをゲストに割り当て、それに応じて IP アドレスを設定します。
ゾーンによって、これらのオプションの意味は異なり、本書の各ゾーンのセクションで説明されています。
|
|
現状では、一部のオプションは効果がなかったり、特定のゾーンで機能しないことがあります。 |
VNet設定オプション:
- 身分証明書
-
VNetを識別するための最大8文字のID
- コメント
-
より説明的な識別子。インターフェースのエイリアスとして割り当てられます。オプション
- ゾーン
-
このVNetの関連ゾーン
- タグ
-
固有のVLANまたはVXLAN ID
- VLAN対応
-
インターフェイスの vlan 対応オプションを有効にし、ゲストでの設定を有効にします。
- ポートの分離
-
このインターフェースのすべてのゲストポートに対して分離フラグを設定します。つまり、ゲストは非絶縁ブリッジポート (ブリッジ自体) にのみトラフィックを送信できます。この設定を有効にするには、影響を受けるゲストを再起動する必要があります。
|
|
ポートの分離は各ホストに対してローカルに行われます。ノード間で VNET のトラフィックをさらに分離するにはVNET ファイアウォールを使用します。例えば、デフォルトでDROPし、IPサブネットからゲートウェイへのトラフィックのみを許可します。 |
12.8.サブネット
サブネットは、CIDRネットワーク・アドレスによって記述される特定のIP範囲を定義します。 各VNetは、1つまたは複数のサブネットを持つことができます。
サブネットは
-
特定のVNetに定義できるIPアドレスの制限
-
レイヤー3ゾーンのVNetにルート/ゲートウェイを割り当て
-
レイヤー3ゾーンのVNetでSNATを有効化
-
IPAMプラグインによる仮想ゲスト(VMまたはCT)へのIP自動割り当て
-
DNSプラグインによるDNS登録
サブネットゾーンにIPAMサーバーが関連付けられている場合、サブネットプレフィックスは自動的にIPAMに登録されます。
サブネット構成オプション:
- 身分証明書
-
CIDRネットワークアドレス(例:10.0.0.0/8
- ゲートウェイ
-
ネットワークのデフォルトゲートウェイのIPアドレス。レイヤー3ゾーン(Simple/EVPNプラグイン)では、VNet上に配置されます。
- SNAT
-
パケットをノードの送信インターフェイスに転送することで、VNet内部からのVMが外部ネットワークに接続できるようにするソースNATを有効にします。EVPNゾーンでは、転送はEVPNゲートウェイノードで行われます。 オプション。
- DNSゾーンプレフィックス
-
<ホスト名>.prefix.<ドメイン>のように、ドメイン登録にプレフィックスを追加します。
12.9.コントローラー
ゾーンによっては、制御プレーンとデータプレーンを分離して実装しているため、VNetの制御プレーンを管理する外部コントローラが必要になります。
現在、外部コントローラを必要とするのはEVPNゾーンのみです。
12.9.1.EVPN コントローラ
EVPNゾーンは、コントロールプレーンを管理する外部コントローラを必要とします。 EVPNコントローラのプラグインは、Free Range Routing (frr)ルータを設定します。
EVPNコントローラを有効にするには、EVPNゾーンに参加するすべてのノードにfrrをインストールする必要があります。
apt install frr frr-pythontools
EVPN コントローラーの設定オプション:
- ASN #
-
一意のBGP ASN番号。プライベートな ASN 番号 (64512 - 65534, 4200000000 - 4294967294) を使用することを強くお勧めします。
- ピアーズ
-
EVPNゾーンの全ノードのIPリスト。 (外部ノードまたはルートリフレクタサーバも可能)
12.9.2.BGPコントローラ
BGPコントローラはゾーンによって直接使用されません。 BGPピアを管理するためにFRRを設定するために使用することができます。
BGP-EVPNでは、ノードごとに異なるASNを定義してEBGPを行うために使用できます。 また、外部のBGPピアにEVPNルートをエクスポートするためにも使用できます。
|
|
デフォルトでは、シンプルなフルメッシュEVPNの場合、BGPコントローラを定義する必要はありません。 |
BGPコントローラの設定オプション:
- ノード
-
このBGPコントローラのノード
- ASN #
-
一意のBGP ASN番号。(64512~65534)または(4200000000~4294967294)の範囲のプライベートASN番号を使用することを強くお勧めします。
- ピア
-
基礎となるBGPネットワークを使用して通信したいピアIPアドレスのリスト。
- EBGP
-
ピアのリモートASが異なる場合、EBGPを有効にします。
- ループバックインターフェース
-
EVPNネットワークのソースとしてループバックまたはダミーインターフェイスを使用します(マルチパス用)。
- エブグップミューティホップ
-
ピアが直接接続されていない場合やループバックを使用している場合は、ピアに到達するためのホップ数を増やします。
- bgp-multipath-as-path-relax
-
ピアのASNが異なる場合、ECMPを許可します。
12.10.IPAM
IPアドレス管理(IPAM)ツールはネットワーク上のクライアントのIPアドレスを管理します。Proxmox VE の SDN は IPAM を使用して、例えば新しいゲストのために空いている IP アドレスを見つけます。
1つのIPAMインスタンスは、1つまたは複数のゾーンに関連付けることができます。
12.10.1.PVE IPAM プラグイン
Proxmox VEクラスタのデフォルトの組み込みIPAMです。
PVE IPAM Plugin の現在のステータスは、データセンター設定の SDN セクションにある IPAM パネルで確認できます。この UI を使用して、IP マッピングの作成、更新、および削除を行うことができます。DHCP機能と併用すると特に便利です。
DHCP を使用している場合、IPAM パネルを使用して特定の VM のリースを作成または編集することができます。DHCP を使用している VM の IP を編集する場合は、ゲストに新しい DHCP リースを取得させる必要があります。これは通常、ゲストのネットワークスタックをリロードするか、ゲストを再起動することで可能です。
12.10.2.NetBox IPAM プラグイン
NetBoxは、オープンソースのIPアドレス管理(IPAM)およびデータセンター・インフラストラクチャ管理(DCIM)ツールです。
NetBox と Proxmox VE SDN を統合するには、以下の手順に従って NetBox で API トークンを作成します: https://docs.netbox.dev/en/stable/integrations/rest-api/#tokens
NetBoxの設定プロパティは以下の通りです:
- URL
-
NetBox REST API エンドポイント: http://yournetbox.domain.com/api
- トークン
-
APIアクセストークン
12.10.3. phpIPAM プラグイン
phpIPAMでは、"アプリケーション "を作成し、アプリケーションに管理者権限を持つAPIトークンを追加する必要があります。
phpIPAM の設定プロパティは次のとおりです:
- URL
-
REST-API エンドポイント: http://phpipam.domain.com/api/<appname>/
- トークン
-
APIアクセストークン
- セクション
-
整数の ID。セクションは phpIPAM のサブネットのグループです。デフォルトのインストールでは、顧客にsectionid=1 を使用します。
12.11.DNS
Proxmox VE SDN の DNS プラグインは、ホスト名と IP アドレスを登録するための DNS API サーバを定義するために使用します。DNS 設定は 1 つ以上のゾーンに関連付けられ、ゾーンに設定されたすべてのサブネット IP に対して DNS 登録を提供します。
12.11.1.PowerDNSプラグイン
PowerDNSの設定で、ウェブサーバーとAPIを有効にする必要があります:
api=yes api-key=arandomgeneratedstring webserver=yes webserver-port=8081
PowerDNSの設定オプションは以下の通りです:
- url
-
REST API エンドポイント: http://yourpowerdnserver.domain.com:8081/api/v1/servers/localhost
- キー
-
APIアクセスキー
- トル
-
レコードのデフォルト TTL
12.12.DHCP
Proxmox VE SDN の DHCP プラグインを使用すると、ゾーンに DHCP サーバを自動的に配置できます。DHCP 範囲が設定されているゾーン内のすべてのサブネットに DHCP を提供します。現在、DHCP で使用可能なバックエンドプラグインは dnsmasq プラグインだけです。
DHCPプラグインは、VM/CTに新しいネットワークインターフェイスを追加する際に、ゾーンに設定されたIPAMプラグインでIPを割り当てることで動作します。IPAMの設定方法については、ドキュメントの各セクションを参照してください。
VMが起動すると、ゾーンのDHCPプラグインにMACアドレスとIPのマッピングが作成されます。ネットワークインターフェイスが削除されるか、VM/CTが破棄されると、IPAMとDHCPサーバのエントリも削除されます。
|
|
現在、一部の機能(IPマッピングの追加/編集/削除)は、PVE IPAMプラグインを使用した場合にのみ利用可能です。 |
12.12.1.コンフィギュレーション
Web UIでゾーンの自動DHCPを有効にするには、「ゾーン」パネルを使用し、ゾーンの詳細オプションでDHCPを有効にします。
|
|
現在、自動DHCPをサポートしているのはシンプルゾーンのみです。 |
ゾーンで自動DHCPを有効にした後、ゾーン内のサブネットにDHCP範囲を設定する必要があります。そのためには、[Vnets]パネルに移動して、DHCP範囲を設定したいサブネットを選択します。編集ダイアログでは、それぞれのタブでDHCP範囲を設定できます。または、以下のCLIコマンドを使用して、サブネットのDHCP範囲を設定することもできます:
pvesh set /cluster/sdn/vnets/<vnet>/subnets/<subnet> -dhcp-range start-address=10.0.1.100,end-address=10.0.1.200 -dhcp-range start-address=10.0.2.100,end-address=10.0.2.200
また、サブネットにゲートウェイを設定する必要があります - そうしないと自動DHCPが機能しません。
DHCPプラグインは、設定された範囲でのみIPAM内のIPを割り当てます。
dnsmasq DHCPプラグインのインストール手順も忘れないでください。
12.12.2.プラグイン
Dnsmasq プラグイン
現在、これは唯一のDHCPプラグインであり、したがってゾーンでDHCPを有効にするときに使用されるプラグインです。
インストールについては、「DHCP IPAM」のセクションを参照してください。
プラグインは dnsmasq がデプロイされるゾーンごとに新しい systemd サービスを作成します。サービス名はdnsmasq@<zone> です。このサービスのライフサイクルは DHCP プラグインによって管理されます。
プラグインは、/etc/dnsmasq.d/<zone>フォルダに以下の設定ファイルを自動的に生成します:
- 00-default.conf
-
dnsmasqインスタンスのデフォルトのグローバル構成が含まれます。
- 10-<zone>-<subnet_cidr>.conf
-
このファイルは、DHCP経由で設定されるべきDNSサーバーなど、サブネットの特定のオプションを設定します。
- 10-<zone>-<subnet_cidr>.ranges.conf
-
このファイルは、dnsmasqインスタンスのDHCP範囲を構成します。
- エーテル
-
このファイルには、IPAMプラグインからのMACアドレスとIPマッピングが含まれています。これらのマッピングを上書きするには、dnsmasqプラグインによって上書きされるため、このファイルを編集するのではなく、それぞれのIPAMプラグインを使用してください。
上記のファイルはDHCPプラグインによって管理されるため、編集してはいけません。dnsmasqの設定をカスタマイズするには、設定フォルダに追加のファイル(90-custom.confなど)を作成します。
設定ファイルは順番に読み込まれるので、カスタム設定ファイルに適切な名前を付けることで、 設定ディレクティブの順番を制御することができます。
DHCPリースは/var/lib/misc/dnsmasq.<zone>.leasesファイルに保存されます。
PVE IPAMプラグインを使用すると、DHCPリースの更新、作成、削除ができます。 詳細については、PVE IPAMプラグインのドキュメントを参照してください。他のIPAMプラグインでは、DHCPリースの変更は現在サポートされていません。
12.13.ファイアウォールの統合
SDN は、ファイアウォールルールのソース/宛先フィールドで参照できる IPSet を自動的に生成することで Proxmox VE ファイアウォールと統合します。これは VNets と IPAM エントリに対して自動的に行われます。
12.13.1.VNetsとサブネット
ファイアウォールはすべてのVNetに対して、SDNスコープ内に以下のIPSetを自動的に生成します:
- ネットオール
-
VNet内のすべてのサブネットのCIDRを含みます。
- ブイネットゲートウェイ
-
VNet内のすべてのサブネットのゲートウェイのIPを含みます。
- vnet-no-gateway
-
VNet内のすべてのサブネットのCIDRを含みますが、ゲートウェイは含みません。
- vnet-dhcp
-
VNetのサブネットに設定されたすべてのDHCPレンジを含みます。
設定を変更すると、IPSetsは自動的に更新されるため、サブネットの設定を変更する際にファイアウォールルールを更新する必要はありません。
シンプルゾーンの例
VNetとそのサブネットについて、以下のコンフィギュレーションを仮定します:
# /etc/pve/sdn/vnets.cfg vnet: vnet0 zone simple # /etc/pve/sdn/subnets.cfg subnet: simple-192.0.2.0-24 vnet vnet0 dhcp-range start-address=192.0.2.100,end-address=192.0.2.199 gateway 192.0.2.1 subnet: simple-2001:db8::-64 vnet vnet0 dhcp-range start-address=2001:db8::1000,end-address=2001:db8::1999 gateway 2001:db8::1
この例では、192.0.2.0/24をIPレンジ、192.0.2.1をゲートウェイ、192.0.2.100~192.0.2.199をDHCPレンジとして、VNetvnet0にIPv4サブネットを設定しました。
さらに、2001:db8::/64をIPレンジ、2001:db8::1をゲートウェイ、2001:db8::1000~2001:db8::1999をDHCPレンジとするIPv6サブネットを設定しました。
vnet0用に自動生成されたIPセットには、以下の要素が含まれます:
- vnet0-all
-
-
192.0.2.0/24
-
2001:db8::/64
-
- vnet0-ゲートウェイ
-
-
192.0.2.1
-
2001:db8::1
-
- vnet0-no-gateway
-
-
192.0.2.0/24
-
2001:db8::/64
-
!192.0.2.1
-
2001:db8::1
-
- vnet0-dhcp
-
-
192.0.2.100 - 192.0.2.199
-
2001:db8::1000 - 2001:db8::1999
-
12.13.2.IPAM
内蔵の PVE IPAM を使用している場合、ファイアウォールは IPAM にエントリがあるゲストごとに IP セットを自動的に生成します。ID 100のゲスト用のそれぞれのIPセットはguest-ipam-100になります。これは、すべてのIPAMエントリからのすべてのIPアドレスを含みます。したがって、ゲスト 100 が複数の VNets のメンバーである場合、IPset にはすべてのVNets からの IP が含まれます。
エントリーが追加/更新/削除されると、それに応じてそれぞれのIPSetが更新されます。
|
|
ゲストのすべてのエントリを削除したときに、自動生成されたIPSセットを参照するファイアウォールルールが残っていると、ファイアウォールは存在しないIPSセットを参照するため、ルールセットの更新に失敗します。 |
12.14.例
この節では、一般的な SDN のユースケースに合わせた複数の設定例を示します。利用可能な設定オプションの理解を深めるために追加的な詳細を提供し、具体的な実装を提供することを目的としています。
12.14.1.シンプルゾーンの例
シンプルゾーンネットワークは、単一のホスト上のゲストが相互に接続するための隔離されたネットワークを作成します。
|
|
ゲスト間の接続は、すべてのゲストが同じホストに存在し、他のノードに到達できない場合に可能です。 |
-
simpleという名前のシンプルなゾーンを作成します。
-
VNet名vnet1を追加します。
-
ゲートウェイとSNATオプションを有効にしてサブネットを作成します。
-
これにより、ノード上にネットワークブリッジvnet1が作成されます。このブリッジをネットワークに参加するゲストに割り当て、IPアドレスを設定します。
2つのVMのネットワーク・インターフェイスのコンフィギュレーションは、10.0.1.0/24ネットワーク経由で通信できるように、次のようになります。
allow-hotplug ens19 iface ens19 inet static address 10.0.1.14/24
allow-hotplug ens19 iface ens19 inet static address 10.0.1.15/24
12.14.2.ソースNATの例
シンプルネットワークゾーンでゲストの発信接続を許可する場合、シンプルゾーンにはソースNAT(SNAT)オプションがあります。
上記の設定から、VNetvnet1にサブネットを追加し、ゲートウェイIPを設定し、SNATオプションを有効にします。
サブネット:172.16.0.0/24 ゲートウェイ:172.16.0.1 SNAT:チェック済み
ゲストでは、サブネットのIPレンジ内で静的IPアドレスを設定します。
ノード自体はゲートウェイIP172.16.0.1でこのネットワークに参加し、サブネット範囲内のゲストのためのNATゲートウェイとして機能します。
12.14.3.VLAN設定例
異なるノード上のVMが分離されたネットワークを介して通信する必要がある場合、VLANゾーンはVLANタグを使用してネットワークレベルの分離を可能にします。
myvlanzone という名前の VLAN ゾーンを作成します:
ID: myvlanzone ブリッジ: vmbr0
VLANタグ10と先に作成したmyVlanzoneで myVnet1というVNetを作成します。
ID: myvnet1 Zone: myvlanzone Tag:10
メイン SDN パネルから設定を適用し、各ノードにローカルに VNets を作成します。
node1 上に Debian ベースの仮想マシン(vm1) をmyvnet1 上の vNIC で作成します。
このVMには、以下のネットワーク構成を使用します:
auto eth0 iface eth0 inet static address 10.0.3.100/24
ノード2上に、vm1と同じVNetmyvnet1上のvNICを持つ2台目の仮想マシン(vm2)を作成します。
このVMには、以下のネットワーク構成を使用します:
auto eth0 iface eth0 inet static address 10.0.3.101/24
これに従って、そのネットワークを使用して両方のVM間でpingを実行できるはずです。
12.14.4.QinQセットアップの例
この例では、2つのQinQゾーンを設定し、各ゾーンに2つのVMを追加して、より分離されたVLANの設定を可能にするVLANタグの追加レイヤを示します。
この構成の典型的なユースケースは、ホスティング・プロバイダーがVM通信のために顧客に隔離されたネットワークを提供し、VMを他の顧客から隔離する場合です。
サービスVLAN 20でqinqzone1というQinQゾーンを作成します。
ID:qinqzone1ブリッジ:vmbr0サービスVLAN:20
サービスVLAN 30でqinqzone2という別のQinQゾーンを作成します。
ID:qinqzone2ブリッジ:vmbr0サービスVLAN:30
先に作成したqinqzone1ゾーンに、VLAN-ID 100のmyVnet1というVNetを作成します。
ID: qinqvnet1 Zone: qinqzone1 Tag:100
qinqzone2ゾーンにVLAN-ID 100のmyVnet2を作成します。
ID: qinqvnet2 Zone: qinqzone2 Tag:100
メインの SDN ウェブインタフェースパネルで設定を適用して、各ノードでローカルに VNets を作成します。
Debian ベースの仮想マシンを 4 台 (vm1、vm2、vm3、vm4) 作成し、vm1 と vm2 にブリッジqinqvnet1を、vm3 と vm4 にブリッジqinqvnet2 を使用してネットワークインターフェイスを追加します。
VM内部では、/etc/network/interfacesなどでインターフェースのIPアドレスを設定します:
auto eth0 iface eth0 inet static address 10.0.3.101/24
4つのVMすべてに10.0.3.101~10.0.3.104のIPアドレスを設定します。
これで、VMvm1とvm2の間、およびvm3とvm4の間でpingを打つことができるはずです。しかし、VMvm1、vm2のどちらも、VMvm3、vm4に対してpingを打つことができません。
12.14.5.VXLAN セットアップ例
この例では、ノードIPアドレスが192.168.0.1、192.168.0.2、192.168.0.3の3つのノードを持つクラスタを想定しています。
myvxlanzoneという名前の VXLAN ゾーンを作成し、ノードからのすべての IP をピアアドレスリストに追加します。デフォルトの MTU 1450 を使用するか、適宜設定します。
ID:myvxlanzoneピアのアドレスリスト:192.168.0.1,192.168.0.2,192.168.0.3
先に作成したVXLANゾーンmyvxlanzoneを使用して、vxvnet1というVNetを作成します。
ID: vxvnet1 Zone: myvxlanzone Tag:100000
メインの SDN ウェブインタフェースパネルで設定を適用して、各ノードにローカルに VNets を作成します。
ノード1にDebianベースの仮想マシン(vm1)を作成し、vxvnet1にvNICを設定します。
このVMには、以下のネットワーク構成を使用します(MTUが低いことに注意してください)。
auto eth0 iface eth0 inet static address 10.0.3.100/24 mtu 1450
vm1と同じVNetvxvnet1上にvNICを持つ2台目の仮想マシン(vm2)をnode3上に作成します。
このVMには、以下のネットワーク構成を使用します:
auto eth0 iface eth0 inet static address 10.0.3.101/24 mtu 1450
すると、vm1とvm2の間でpingが送れるようになるはずです。
12.14.6.EVPNセットアップ例
この例では、IPアドレスが192.168.0.1、192.168.0.2、192.168.0.3の3つのノード(node1、node2、node3)を持つクラスタを想定しています。
プライベートASN番号と上記のノードアドレスをピアとして使用して、EVPNコントローラを作成します。
ID: myevpnctl ASN#: 65000 Peers:192.168.0.1,192.168.0.2,192.168.0.3
myevpnzoneという名前のEVPNゾーンを作成し、先に作成したEVPN-コントローラーを割り当て、node1とnode2を出口ノードとして定義します。
ID: myevpnzone VRF VXLAN Tag:10000 コントローラ: myevpnctl MTU: 1450 VNet MAC アドレス:32:F4:05:FE:6C:0A 終了ノード:node1,node2
EVPNゾーンmyevpnzoneを使用して、myvnet1という最初のVNetを作成します。
ID: myvnet1 Zone: myevpnzone Tag:11000
myvnet1にサブネットを作成します:
サブネット:10.0.1.0/24 ゲートウェイ:10.0.1.1
同じEVPNゾーンmyevpnzoneを使用して、myvnet2という名前の2番目のVNetを作成します。
ID: myvnet2 Zone: myevpnzone Tag:12000
myvnet2`に別のサブネットを作成します:
サブネット:10.0.2.0/24 ゲートウェイ:10.0.2.1
メイン SDN ウェブインタフェースパネルからコンフィグレーションを適用して、各ノードにローカルに VNets を作成し、FRR コンフィグレーションを生成します。
node1 上に Debian ベースの仮想マシン(vm1) をmyvnet1 上の vNIC で作成します。
vm1には以下のネットワーク構成を使用します:
auto eth0 iface eth0 inet static address 10.0.1.100/24 gateway 10.0.1.1 mtu 1450
もう1つのVNetmyvnet2上にvNICを持つ2つ目の仮想マシン(vm2)をnode2上に作成します。
vm2には以下のネットワーク構成を使用します:
auto eth0 iface eth0 inet static address 10.0.2.100/24 gateway 10.0.2.1 mtu 1450
これでvm1からvm2に、vm1からvm2にpingを送れるようになります。
ゲートウェイでないnode3のvm2から外部IPにpingを打つと、パケットは設定されたmyvnet2ゲートウェイに行き、その後、出口ノード(node1またはnode2)にルーティングされ、そこからnode1またはnode2に設定されたデフォルトゲートウェイを経由してそれらのノードから離脱します。
|
|
外部ゲートウェイのnode1とnode2に10.0.1.0/24と 10.0.2.0/24ネットワークのリバースルートを追加して、パブリックネットワークが返信できるようにする必要があります。 |
外部BGPルータを設定した場合、BGP-EVPNルート(この例では10.0.1.0/24と10.0.2.0/24)は動的にアナウンスされます。
12.15.備考
12.15.1.複数のEVPN出口ノード
複数のゲートウェイノードがある場合、rp_filter(Strict Reverse Path Filter) オプションを無効にする必要があります。
etc/sysctl.confに以下を追加します:
net.ipv4.conf.default.rp_filter=0 net.ipv4.conf.all.rp_filter=0
12.15.2.VXLAN IPSEC 暗号化
VXLAN の上に IPSEC 暗号化を追加するために、この例ではstrongswan を使用する方法を示します。
暗号化を処理するために、IPv4の場合は60バイト、IPv6の場合は80バイト、MTUを減らす必要があります。
つまり、デフォルトの実質1500のMTUでは、1370のMTUを使用する必要があります(1370 + 80 (IPSEC) + 50 (VXLAN) == 1500)。
ホストにstrongswanをインストールします。
apt install strongswan
etc/ipsec.conf に設定を追加します。VXLAN UDP ポート4789 からのトラフィックだけを暗号化する必要があります。
conn %default ike=aes256-sha1-modp1024! # leftfirewall=yes # これはProxmox VEのファイアウォールルールを使用する際に必要です conn output rightsubnet=%dynamic[udp/4789] right=%any type=transport authby=psk auto=route conn input leftsubnet=%dynamic[udp/4789] type=transport authby=psk auto=route
で事前共有キーを生成します:
openssl rand -base64 128
そして、その鍵を/etc/ipsec.secretsに追加して、ファイルの内容が次のようになるようにします:
:PSK <generatedbase64key>。
VXLANネットワークに参加しているすべてのノードにPSKとコンフィグレーションをコピーします。
13.Proxmox VE ファイアウォール
Proxmox VE Firewallは、ITインフラストラクチャを保護する簡単な方法を提供します。クラスタ内のすべてのホストのファイアウォールルールを設定したり、仮想マシンやコンテナのルールを定義したりできます。ファイアウォールマクロ、セキュリティグループ、IPセット、エイリアスなどの機能が、このタスクを容易にします。
すべての設定はクラスタ・ファイル・システムに保存されますが、iptablesベースのファイアウォール・サービスは各クラスタ・ノード上で実行されるため、仮想マシン間で完全に分離されます。また、このシステムは分散型であるため、中央のファイアウォール・ソリューションよりもはるかに高い帯域幅を提供します。
ファイアウォールはIPv4とIPv6をフルサポートしています。IPv6のサポートは完全に透過的で、デフォルトで両方のプロトコルのトラフィックをフィルタリングします。そのため、IPv6用に別のルールセットを維持する必要はありません。
13.1.方向とゾーン
Proxmox VEファイアウォールはネットワークを複数の論理ゾーンにグループ化します。各ゾーンのルールは個別に定義できます。ゾーンに応じて、受信、送信、転送トラフィックのルールを定義できます。
13.1.1.道順
ゾーンのルールを定義する際、3つの方向から選ぶことができます:
- で
-
ゾーンに到着しているトラフィック。
- アウト
-
ゾーンを出るトラフィック。
- フォワード
-
ゾーンを通過するトラフィック。ホストゾーンでは、ルーティングされたトラフィックになります(ホストがゲートウェイとして動作している場合やNATを実行している場合)。VNetレベルでは、ブリッジ接続されたネットワークインターフェイスのトラフィックを含め、VNetを通過するすべてのトラフィックに影響します。
|
|
転送されたトラフィックのルールを作成することは、現在のところ、新しいnftables ベースの proxmox-firewall を使用している場合にのみ可能です。いかなる転送ルールも純正のpve-firewallでは無視され、何の効果もありません! |
13.1.2.ゾーン
ファイアウォールルールを定義できるゾーンは3種類あります:
- ホスト
-
このゾーンのルールは、データ センタ レベルまたはホスト レベルで定義できます。ホスト レベルのルールは、データセンター レベルのルールよりも優先されます。
- かそうけいさんき
-
VMまたはCTを発着するトラフィック。 転送されるトラフィックに対してルールを定義することはできません。
- ブイネット
-
SDN VNet を通過するトラフィックは、ゲストからゲストへ、またはホストからゲストへ、あるいはその逆です。 このトラフィックは常に転送されるトラフィックなので、方向が forward のルールしか作成できません。
|
|
VNet レベルでのルール作成は現在、新しいnftables ベースの proxmox-firewall を使っている場合にのみ可能です。VNet レベルのルールは純正のpve-firewallでは無視され、何の効果もありません! |
13.2.設定ファイル
ファイアウォール関連の設定はすべてproxmoxクラスタファイルシステムに保存されます。そのため、これらのファイルは自動的にすべてのクラスタノードに配布され、pve-firewallサービスは変更時に自動的に基礎となるiptablesルールを更新します。
GUI(データセンター→ファイアウォール、またはノード→ファイアウォール)を使用して何でも設定できます。また、お好みのエディタを使用して設定ファイルを直接編集することもできます。
ファイアウォール設定ファイルには、キーと値のペアのセクションがあります。で始まる行と空白行はコメントとみなされます。セクションは[と] で囲まれたセクション名を含むヘッダー行で始まります。
13.2.1.クラスタ全体のセットアップ
クラスタ全体のファイアウォール設定は、次の場所に保存されます:
/etc/pve/firewall/cluster.fw
コンフィギュレーションには以下のセクションがあります:
- [オプション]
-
クラスタ全体のファイアウォールオプションを設定します。
- ebtables:<boolean>(デフォルト = 1)
-
クラスタ全体でebtablesルールを有効にします。
- enable:<整数> (0 - N)
-
ファイアウォールクラスター全体を有効または無効にします。
- log_ratelimit:[enable=]<1|0> [,burst=<integer>] [,rate=<rate>] です。
-
ログ・レイトリミットの設定
- burst=<整数>(0 - N)(デフォルト = 5)
-
レートが適用される前に常に記録されるパッケージの初期バースト
- enable=<boolean>(デフォルト = 1)
-
ログレート制限の有効化または無効化
- rate=<rate>(デフォルト= 1/秒)
-
バーストバケツが補充される頻度
- policy_forward:<ACCEPT | DROP>です。
-
前向きな方針。
- policy_in:<ACCEPT | DROP | REJECT>です。
-
入力ポリシー。
- policy_out:<ACCEPT | DROP | REJECT>です。
-
出力ポリシー。
- [ルール]
-
このセクションには、全ノードのクラスタ全体のファイアウォールルールが含まれます。
- [IPSET <名前>]。
-
クラスタ全体のIPセット定義。
- [GROUP <名前>]。
-
クラスタ全体のセキュリティグループ定義。
- [ALIASES]
-
クラスタ全体のエイリアス定義。
ファイアウォールの有効化
ファイアウォールはデフォルトでは完全に無効になっていますので、ここで有効オプションを設定する必要があります:
[OPTIONS] # enable firewall (クラスタ全体の設定。デフォルトは無効) enable:1
|
|
ファイアウォールを有効にすると、デフォルトですべてのホストへのトラフィックがブロックされます。唯一の例外は、ローカルネットワークからのWebGUI(8006)とssh(22)です。 |
リモートから Proxmox VE ホストを管理する場合は、リモート IP から Web GUI (ポート 8006) へのトラフィックを許可するルールを作成する必要があります。また、ssh(ポート22)やSPICE(ポート3128)も許可する必要があります。
|
|
ファイアウォールを有効にする前に、Proxmox VEホストの1つにSSH接続を開いてください。そうすれば、何か問題が発生してもホストにアクセスできます。 |
この作業を単純化するには、代わりに「管理」という名前のIPSセットを作成し、すべてのリモートIPをそこに追加します。これにより、リモートからGUIにアクセスするために必要なファイアウォールルールがすべて作成されます。
13.2.2.ホスト固有構成
ホスト関連の設定を読み込みます:
/etc/pve/nodes/<nodename>/host.fw
cluster.fw設定からルールを上書きしたい場合に便利です。また、ログの冗長性を上げたり、ネットフィルタ関連のオプションを設定することもできます。コンフィギュレーションには以下のセクションを含めることができます:
- [オプション]
-
ホスト関連のファイアウォールオプションを設定します。
- enable:<ブール値
-
ホストファイアウォールルールを有効にします。
- log_level_forward:<alert | crit | debug | emerg | err | info | nolog | notice | warning>です。
-
転送トラフィックのログレベル。
- log_level_in:<alert | crit | debug | emerg | err | info | nolog | notice | warning>です。
-
受信トラフィックのログレベル。
- log_level_out:<alert | crit | debug | emerg | err | info | nolog | notice | warning>です。
-
発信トラフィックのログレベル。
- log_nf_conntrack:<boolean>(デフォルト = 0)
-
conntrack 情報のロギングを有効にします。
- ndp:<ブール値>(デフォルト = 0)
-
NDP(Neighbor Discovery Protocol)を有効にします。
- nf_conntrack_allow_invalid:<boolean>(デフォルト = 0)
-
接続追跡時に無効なパケットを許可します。
- nf_conntrack_helpers:<string>(デフォルトは``)
-
特定のプロトコルに対して conntrack ヘルパーを有効にします。サポートされているプロトコル: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp
- nf_conntrack_max:<整数> (32768 - N)(デフォルト = 262144)
-
追跡接続の最大数。
- nf_conntrack_tcp_timeout_established:<整数> (7875 - N)(デフォルト = 432000)
-
CONNTRACK がタイムアウトしました。
- nf_conntrack_tcp_timeout_syn_recv:<整数> (30 - 60)(デフォルト = 60)
-
Conntrack syn recv タイムアウト。
- nftables:<ブール値>(デフォルト = 0)
-
nftablesベースのファイアウォールの有効化(技術プレビュー)
- nosmurfs:<ブール値
-
SMURFSフィルターを有効にします。
- protection_synflood:<boolean>(デフォルト = 0)
-
シ ン フ ラ ッ ド 防御の有効化
- protection_synflood_burst:<整数>(デフォルト = 1000)
-
ip srcによるシンフラッドプロテクションレートバースト。
- protection_synflood_rate:<整数>(デフォルト = 200)
-
ip srcによるシン・フラッド・プロテクション・レート syn/sec。
- smurf_log_level:<alert | crit | debug | emerg | err | info | nolog | notice | warning>です。
-
SMURFSフィルターのログレベル。
- tcp_flags_log_level:<alert | crit | debug | emerg | err | info | nolog | notice | warning>です。
-
不正なtcpフラグフィルターのログレベル。
- tcpflags:<boolean>(デフォルト = 0)
-
TCP フラグの不正な組み合わせをフィルタリングします。
- [ルール]
-
このセクションにはホスト固有のファイアウォールルールが含まれます。
13.2.3.VM/コンテナ構成
VM のファイアウォール設定を読み込みます:
/etc/pve/ファイアウォール/<VMID>.fw
そして以下のデータを含んでいます:
- [オプション]
-
VM/Container 関連のファイアウォールオプションを設定します。
- dhcp:<ブール値>(デフォルト = 0)
-
DHCPを有効にします。
- enable:<ブール値>(デフォルト = 0)
-
ファイアウォールルールを有効/無効にします。
- ipfilter:<ブール値
-
デフォルトIPフィルタを有効にします。これは各インターフェイスに空の ipfilter-net<id> ipset を追加するのと同じです。このようなipsetは、IPv6リンクのローカルアドレスをインターフェイスのMACアドレスに由来するものに制限するような、まともなデフォルトの制限を暗黙的に含んでいます。コンテナに対しては、設定されたIPアドレスが暗黙的に追加されます。
- log_level_in:<alert | crit | debug | emerg | err | info | nolog | notice | warning>です。
-
受信トラフィックのログレベル。
- log_level_out:<alert | crit | debug | emerg | err | info | nolog | notice | warning>です。
-
発信トラフィックのログレベル。
- macfilter:<boolean>(デフォルト = 1)
-
MACアドレスフィルターの有効/無効。
- ndp:<ブール値>(デフォルト = 0)
-
NDP(Neighbor Discovery Protocol)を有効にします。
- policy_in:<ACCEPT | DROP | REJECT>です。
-
入力ポリシー。
- policy_out:<ACCEPT | DROP | REJECT>です。
-
出力ポリシー。
- radv:<ブール値
-
ルーター広告の送信を許可します。
- [ルール]
-
このセクションには、VM/コンテナファイアウォールルールが含まれます。
- [IPSET <名前>]。
-
IPセットの定義。
- [ALIASES]
-
IPエイリアスの定義。
13.2.4.VNet コンフィギュレーション
VNet関連のコンフィギュレーションを読み込みます:
/etc/pve/sdn/firewall/<vnet_name>.fw
VNet 内の各 VM に対して個別にファイアウォール・ルールを設定することなく、VNet レベルでグローバルにファイアウォール設定を行うことができます。受信トラフィックと送信トラフィックの概念がないため、FORWARD方向のルールのみを含めることができます。これは、ホスト・インタフェースを含め、ブリッジ・ポートから別のポートに移動するすべてのトラフィックに影響します。
|
|
この機能は現在、新しいnftables ベースの proxmox-firewall でのみ利用可能です。 |
FORWARDチェインを通過するトラフィックは双方向なので、トラフィックを双方向に通過させたい場合は、双方向のルールを作成する必要があります。例えば、特定のホストに対するHTTPトラフィックを許可する場合、以下のルールを作成する必要があります:
FORWARD ACCEPT -dest 10.0.0.1 -dport 80 FORWARD ACCEPT -source 10.0.0.1 -sport 80
- [オプション]
-
VNet 関連のファイアウォールオプションを設定します。
- enable:<ブール値>(デフォルト = 0)
-
ファイアウォールルールを有効/無効にします。
- log_level_forward:<alert | crit | debug | emerg | err | info | nolog | notice | warning>です。
-
転送トラフィックのログレベル。
- policy_forward:<ACCEPT | DROP>です。
-
前向きな方針。
- [ルール]
-
このセクションには、VNet 固有のファイアウォール ルールが含まれています。
13.3.ファイアウォールルール
ファイアウォールルールは、方向(IN、OUT、FORWARD)とアクション(ACCEPT、DENY、REJECT)で構成されます。マクロ名を指定することもできます。マクロには、定義済みのルールとオプションのセットが含まれます。ルールの前に| を付けると、ルールを無効にできます。
[ルール] DIRECTION ACTION [オプション] |DIRECTION ACTION [オプション] # 無効ルール DIRECTION MACRO(ACTION) [オプション] # 定義済みマクロの使用
以下のオプションを使用して、ルールの一致を絞り込むことができます。
- --dest <文字列
-
パケットの宛先アドレスを制限します。これは、単一のIPアドレス、IPセット(+ipsetname)、またはIPエイリアスの定義を参照できます。また、20.34.101.207-201.3.9.99のようなアドレス範囲、またはIPアドレスとネットワークのリスト(エントリはカンマで区切られます)を指定することもできます。このようなリストの中にIPv4アドレスとIPv6アドレスを混在させないでください。
- --dport <文字列
-
TCP/UDP宛先ポートを制限します。etc/services で定義されているように、サービス名または単純な番号 (0 ~ 65535) を使用できます。ポート範囲は、80:85 のように ㊟+:㊟+ で指定でき、カンマ区切りのリストを使って複数のポートまたはポート範囲に一致させることができます。
- --icmp-type <文字列
-
icmp-type を指定します。proto がicmpまたはicmpv6/ipv6-icmp の場合のみ有効。
- --iface <文字列
-
ネットワークインターフェース名。VMとコンテナにはネットワーク構成キー名を使用する必要があります(netd+)。ホスト関連のルールでは、任意の文字列を使用できます。
- --ログ <alert | crit | debug | emerg | err | info | nolog | notice | warning>.
-
ファイアウォールルールのログレベル。
- -プロト <文字列
-
IPプロトコル。etc/protocolsで定義されているプロトコル名(tcp/udp)や単純な数字を使うことができます。
- --ソース <文字列
-
パケットの送信元アドレスを制限します。これは、単一のIPアドレス、IPセット(+ipsetname)、またはIPエイリアスの定義を参照できます。また、20.34.101.207-201.3.9.99のようなアドレス範囲、またはIPアドレスとネットワークのリスト(エントリはカンマで区切られます)を指定することもできます。このようなリストの中にIPv4アドレスとIPv6アドレスを混在させないでください。
- --スポーツ <文字列
-
TCP/UDPソース・ポートを制限します。etc/services で定義されているように、サービス名または単純な番号 (0 ~ 65535) を使用できます。ポート範囲は、80:85 のように ㊟+:㊟+ で指定することができます。
いくつか例を挙げましょう:
[RULES] IN SSH(ACCEPT) -i net0 IN SSH(ACCEPT) -i net0 # コメント IN SSH(ACCEPT) -i net0 -source 192.168.2.192 # 192.168.2.192からのSSHだけを許可。168.2.192 IN SSH(ACCEPT) -i net0 -source 10.0.0.1-10.0.0.10 # IPレンジのSSHを受け入れる IN SSH(ACCEPT) -i net0 -source 10.0.0.1,10.0.0.2,10.0.0.3 #accept ssh for IP list IN SSH(ACCEPT) -i net0 -source +mynetgroup # accept ssh for ipset mynetgroup IN SSH(ACCEPT) -i net0 -source myserveralias #accept ssh for alias myserveralias |IN SSH(ACCEPT) -i net0 # disabled rule IN DROP # drop all incoming packages OUT ACCEPT # accept all outgoing packages
13.4.セキュリティグループ
セキュリティ・グループとは、クラスタ・レベルで定義されるルールの集まりで、すべての VM のルールで使用できます。例えば、httpとhttps のポートを開くルールを持つ "webserver" という名前のグループを定義することができます。
# /etc/pve/firewall/cluster.fw [group webserver] IN ACCEPT -p tcp -dport 80 IN ACCEPT -p tcp -dport 443
次に、このグループをVMのファイアウォールに追加します。
# /etc/pve/firewall/<VMID>.fw [RULES] GROUP webserver
13.5.IPエイリアス
IPエイリアスを使用すると、ネットワークのIPアドレスを名前に関連付けることができます。そして、その名前を参照することができます:
-
インサイドIPセット定義
-
ファイアウォールルールの送信元と 送信先のプロパティで
13.5.1.標準IPエイリアスlocal_network
このエイリアスは自動的に定義されます。割り当てられた値を確認するには、以下のコマンドを使用してください:
# pve-firewall localnet local hostname: example local IP address:192.168.2.100 network auto detect: 192.168.0.0/20 using detected local_network:192.168.0.0/20
ファイアウォールは、このエイリアスを使用してクラスタ通信(corosync、API、SSH)に必要なすべてのものを許可するルールを自動的に設定します。
ユーザはcluster.fwaliasセクションでこれらの値を上書きできます。パブリックネットワーク上で単一のホストを使用する場合は、明示的にローカルIPアドレス
# /etc/pve/firewall/cluster.fw [ALIASES] local_network 1.2.3.4 # 単一IPアドレスを使用
13.6.IPセット
IP セットは、ネットワークとホストのグループを定義するために使用できます。ファイアウォールルールのsourceとdestプロパティで '+name` を使って参照できます。
以下の例では、管理IPセットからのHTTPトラフィックを許可しています。
IN HTTP(ACCEPT) -ソース +管理
13.6.1.標準IPセット管理
この IP セットはホストファイアウォールのみに適用されます(VM ファイアウォールではありません)。 これらのIPは、通常の管理タスク(Proxmox VE GUI、VNC、SPICE、SSH)を実行できます。
ローカルクラスタネットワークは自動的にこのIPセット(aliascluster_network)に追加され、ホスト間のクラスタ通信を可能にします。(マルチキャスト、ssh、...)
# /etc/pve/firewall/cluster.fw [IPSET 管理] 192.168.2.10 192.168.2.10/24
13.6.2.標準IPセットブラックリスト
これらのIPからのトラフィックは、各ホストとVMのファイアウォールによってドロップされます。
# /etc/pve/firewall/cluster.fw [IPSET ブラックリスト] 77.240.159.182 213.87.123.0/24
13.6.3.標準IPセットipfilter-net*
これらのフィルターはVMのネットワーク・インターフェースに属し、主にIPスプーフィングを防ぐために使用されます。このようなセットがインターフェイスに存在する場合、そのインターフェイスの対応するipfilterセットに一致しないソースIPを持つ発信トラフィックはすべてドロップされます。
IPアドレスが設定されているコンテナでは、これらのセットが存在する場合(またはVMのファイアウォールのオプションタブで一般的なIPフィルターオプションを使用して有効になっている場合)、関連するIPアドレスが暗黙的に含まれます。
仮想マシンとコンテナの両方で、近隣発見プロトコルを動作させるために、標準のMAC由来のIPv6リンクローカルアドレスも暗黙的に含まれています。
/etc/pve/firewall/<VMID>.fw [IPSET ipfilter-net0] # net0 192.168.2.10上の指定されたIPのみを許可します。
13.7.サービスとコマンド
ファイアウォールは各ノードで2つのサービス・デーモンを実行します:
-
pvefw-logger:NFLOG デーモン (ulogd の置き換え)。
-
pve-firewall: iptables ルールの更新
また、pve-firewallというCLIコマンドもあり、これを使用してファイアウォールサービスを開始および停止することができます:
# pve-firewall start # pve-firewall stop
ステータスを取得するには
# pve-firewall status
上記のコマンドはすべてのファイアウォールルールを読み込んでコンパイルするので、ファイアウォールの設定にエラーがある場合は警告が表示されます。
生成されたiptablesのルールを見たい場合は、次のようにします:
# iptables-save
13.8.デフォルトのファイアウォールルール
デフォルトのファイアウォール設定では、以下のトラフィックがフィルタリングされます:
13.8.1.データセンター着信/発信 DROP/REJECT
ファイアウォールの入力または出力ポリシーがDROPまたはREJECTに設定されている場合でも、クラスタ内のすべてのProxmox VEホストで次のトラフィックが許可されます:
-
ループバックインターフェース上のトラフィック
-
すでに確立された接続
-
IGMPプロトコルを使用したトラフィック
-
ウェブインターフェースへのアクセスを許可するため、管理ホストからのTCPトラフィックをポート8006へ
-
管理ホストからのTCPトラフィックは、VNCウェブコンソールのトラフィックを許可するポート範囲5900~5999へ。
-
管理ホストからの TCP トラフィックは、SPICE プロキシへの接続用にポート 3128 に送られます。
-
管理ホストからのTCPトラフィックをポート22に送り、sshアクセスを許可します。
-
クラスタネットワークのUDPトラフィックをポート5405-5412に送ってcorosyncします。
-
クラスタネットワークのUDPマルチキャストトラフィック
-
ICMPトラフィック・タイプ3(宛先到達不能)、4(輻輳制御)、または11(時間超過
以下のトラフィックはドロップされますが、ロギングを有効にしてもログには記録されません:
-
無効な接続状態のTCPコネクション
-
corosyncに関連しないブロードキャスト、マルチキャスト、エニーキャストのトラフィック、すなわちポート5405-5412を経由しないトラフィック
-
ポート43へのTCPトラフィック
-
ポート135と445へのUDPトラフィック
-
UDPトラフィックはポート範囲137から139へ
-
送信元ポート137からポート範囲1024~65535へのUDPトラフィック
-
ポート1900へのUDPトラフィック
-
135、139、445番ポートへのTCPトラフィック
-
送信元ポート53からのUDPトラフィック
残りのトラフィックは、それぞれドロップまたは拒否され、ログにも記録されます。 これは、NDP、SMURFS、TCPフラグフィルタリングなど、ファイアウォール→オプションで有効になっている追加オプションによって異なる場合があります。
の出力を確認してください。
# iptables-save
この出力はシステム・レポートにも含まれ、Web GUI のノードのサブスクリプション・タブ、またはpvereportコマンドライン・ツールからアクセスできます。
13.8.2.VM/CT 着信/発信 DROP/REJECT
設定されたコンフィグレーションに応じて、DHCP、NDP、ルーター広告、MAC、IP フィルタリングなどの例外を除き、VM へのすべてのトラフィックをドロップまたは拒否します。 パケットをドロップ/拒否するルールはデータセンターから引き継がれ、ホストの送受信トラフィックの例外は適用されません。
繰り返しになりますが、iptables-save (上記参照)を使って、適用されたすべてのルールとチェインを検査することができます。
13.9.ファイアウォールルールのログ
デフォルトでは、ファイアウォールルールによってフィルタリングされたトラフィックのロギングはすべて無効になっています。 ロギングを有効にするには、受信トラフィックおよび/または送信トラフィックのログレベルを ファイアウォール→オプションで設定する必要があります。これは、ホストだけでなく、VM/CT ファイアウォールに対しても個別に行うことができます。これにより、Proxmox VEの標準ファイアウォールルールのロギングが有効になり、ファイアウォール→ログで出力を確認できます。 さらに、標準ルールでは、一部のドロップまたは拒否されたパケットのみがログに記録されます(デフォルトのファイアウォールルールを参照)。
loglevelは、フィルタされたトラフィックがどの程度ログに記録されるかに影響しません。これは、フィルタリングと後処理を容易にするために、ログ出力に接頭辞として付加されるLOGIDを変更します。
loglevelは以下のフラグのいずれかです:
| ログレベル | ロジッド |
|---|---|
ノログ |
- |
エマージェンシー |
0 |
アラート |
1 |
クリティック |
2 |
誤る |
3 |
警告 |
4 |
お知らせ |
5 |
インフォメーション |
6 |
デバッグ |
7 |
典型的なファイアウォールのログ出力は次のようになります:
vmid logid chain timestamp policy:PACKET_DETAILS
ホストファイアウォールの場合、VMIDは0になります。
13.9.1.ユーザー定義ファイアウォールルールのログ
ユーザー定義のファイアウォールルールによってフィルタリングされたパケットをログに記録するために、各ルールに対して個別にログレベルパラメータを設定することができます。 これにより、ファイアウォール→オプションで標準ルールに定義されたログレベルとは独立して、きめ細かくログを記録することができます。
個々のルールのログレベルは、ルールの作成中または変更中に Web UI で簡単に定義または変更できますが、対応するpveshAPI 呼び出しによっても設定できます。
さらに、選択したルールに-log <loglevel>を追加することで、ファイアウォール設定ファイル経由でログレベルを設定することもできます (可能なログレベルを参照)。
例えば、次の2つは同じです:
IN REJECT -p icmp -log nolog IN REJECT -p icmp
一方
IN REJECT -p icmp -log debug
は、デバッグ・レベルのフラグが付いたログ出力を生成します。
13.10.ヒントとコツ
13.10.1.FTPを許可する方法
FTPは、ポート21と他のいくつかの動的ポートを使用する古いスタイルのプロトコルです。そのため、ポート21を受け入れるルールが必要です。さらに、ip_conntrack_ftpモジュールをロードする必要があります。 ですから、実行してください:
modprobe ip_conntrack_ftp
を追加し、/etc/modulesにip_conntrack_ftp を追加します(再起動後も動作するように)。
13.10.2.スリカタIPS統合
Suricata IPS(Intrusion Prevention System)を使用したい場合は可能です。
パケットは、ファイアウォールがACCEPTした後にのみIPSに転送されます。
リジェクト/ドロップされたファイアウォールのパケットは IPS に送られません。
suricataをproxmoxホストにインストールします:
# apt-get install suricata # modprobe nfnetlink_queue
次回のリブートのために、/etc/modulesに nfnetlink_queueを追加することを忘れないでください。
次に、特定のVMに対してIPSを有効にします:
# /etc/pve/firewall/<VMID>.fw [OPTIONS] ips:1 ips_queues: 0
ips_queuesはこのVMに特定のCPUキューをバインドします。
利用可能なキューは
# etc/default/suricata NFQUEUE=0
13.11.IPv6 。
ファイアウォールにはIPv6特有のオプションがいくつかあります。IPv6はARPプロトコルを使用せず、代わりにIPレベルで動作するNDP(Neighbor Discovery Protocol)を使用するため、成功するにはIPアドレスが必要です。このため、インターフェイスのMACアドレスに由来するリンクローカルアドレスが使用されます。デフォルトでは、ホストとVMの両方のレベルでNDPオプションが有効になっており、近隣探索(NDP)パケットの送受信が可能になっています。
NDPは近隣探索以外にも、自動コンフィグレーションやルーターの広告など、いくつかのことに使用されます。
デフォルトでは、VMはルーター勧誘メッセージの送信(ルーターへの問い合わせ)とルーター広告パケットの受信を許可されています。これにより、ステートレス自動コンフィグレーションを使用できます。一方、"Allow Router Advertisement"(radv: 1)オプションが設定されていない限り、VMは自分自身をルーターとしてアドバタイズすることはできません。
NDPに必要なリンク・ローカル・アドレスについては、"IP Filter"(ipfilter: 1) オプションを有効にすることで、対応するリンク・ローカル・アドレスを含むVMの各ネットワーク・インターフェースにipfilter-net*ipsetを追加するのと同じ効果が得られます。 (詳細については、標準 IP セットipfilter-net*のセクションを参照してください)。
13.12.Proxmox VEが使用するポート
-
ウェブインターフェース8006(TCP、HTTP/1.1 over TLS)
-
VNCウェブコンソール5900-5999 (TCP、WebSocket)
-
SPICE プロキシ:3128 (TCP)
-
sshd (クラスタアクションに使用):22 (TCP)
-
rpcbind: 111 (UDP)
-
sendmail:25 (TCP、送信)
-
corosyncクラスタのトラフィック:5405-5412 UDP
-
ライブマイグレーション(VMメモリとローカルディスクのデータ):60000-60050 (tcp)
13.13. nftables
pve-firewallの代替として、私たちはproxmox-firewallを提供しています。これはiptablesではなく、より新しいnftablesをベースにしたProxmox VEファイアウォールの実装です。
|
|
proxmox-firewallは現在技術プレビュー中です。バグやオリジナルのファイアウォールとの非互換性があるかもしれません。現在のところ本番環境での使用には適していません。 |
この実装では、同じ設定ファイルと設定フォーマットを使用します。いくつかの例外を除いて、まったく同じ機能を提供します:
-
REJECTは現在、ゲストラフィックにはできません(代わりにトラフィックはドロップされます)。
-
NDP、ルーター広告、またはDHCPオプションを使用すると、デフォルトのポリシーに関係なく、常にファイアウォールルールが作成されます。
-
ゲスト用のファイアウォールルールは、conntrackテーブルエントリを持つ接続でも評価されます。
13.13.1.インストールと使用方法
proxmox-firewallパッケージをインストールします:
apt install proxmox-firewall
ホストの Web UI (ホスト > ファイアウォール > オプション > nftables)、またはホストの構成ファイル(/etc/pve/nodes/<ノード名>/host.fw) で nftables バックエンドを有効にします:
[OPTIONS] nftables: 1
|
|
proxmox-firewall を有効/無効にした後、古い/新しいファイアウォールを正しく動作させるために、実行中のすべての VM とコンテナを再起動する必要があります。 |
nftables設定キーを設定すると、新しいproxmox-firewallサービスが引き継がれます。新しいサービスが動作しているかどうかは、proxmox-firewallのsystemctl statusをチェックすることで確認できます:
systemctl status proxmox-firewall
生成されたルールセットを調べることもできます。これについてはヘルプコマンド を参照してください。pve-firewallが iptables ルールを生成しなくなったかどうかも確認してください。
古いファイアウォールに戻すには、設定値を0/Noに戻すだけです。
13.13.2.使用法
proxmox-firewallはproxmox-firewallサービスによって管理される2つのテーブル:proxmox-firewallと proxmox-firewall-guestsを作成します。Proxmox VE ファイアウォール設定の外側にあるカスタムルールを作成したい場合は、カスタムファイアウォールルールを管理するために独自のテーブルを作成できます。proxmox-firewallは生成したテーブルにしか触れないので、独自のテーブルを追加することで簡単にproxmox-firewallの動作を拡張・変更できます。
pve-firewallコマンドを使う代わりに、nftables ベースのファイアウォールはproxmox-firewall を使います。これは systemd サービスなので、systemctl で起動と停止ができます:
systemctl start proxmox-firewall systemctl stop proxmox-firewall
ファイアウォールサービスを停止すると、生成されたルールがすべて削除されます。
ファイアウォールのステータスを照会するには、systemctl サービスのステータスを照会します:
systemctl status proxmox-firewall
13.13.3.役立つコマンド
生成されたルールセットは、以下のコマンドで確認できます:
nftリストルールセット
proxmox-firewallをデバッグしたい場合は、RUST_LOG環境変数をtraceに設定してデーモンをフォアグラウンドで実行するだけです。これにより詳細なデバッグ出力が得られるはずです:
RUST_LOG=trace /usr/libexec/proxmox/proxmox-firewall
ファイアウォールデーモンの詳細な出力を得たい場合は、systemctlサービスを編集することもできます:
systemctl proxmox-firewall を編集します。
次に、RUST_LOG環境変数のオーバーライドを追加する必要があります:
[サービス] Environment="RUST_LOG=trace"
これは大量のログを素早く生成するので、デバッグ目的でのみ使用してください。他の、より冗長でないログレベルはinfoとdebug です。
フォアグラウンドで実行すると、ログ出力がSTDERRに書き込まれるので、以下のコマンドでリダイレクトできます(コミュニティフォーラムにログを提出する場合など):
RUST_LOG=trace /usr/libexec/proxmox/proxmox-firewall 2> firewall_log_$(hostname).txt
ファイアウォールルールをデバッグするために、異なるチェーンを経由するパケットフ ローをトレースすると便利です。これは、追跡したいパケットに対してnftrace を1 に設定することで実現できます。すべてのパケットにこのフラグを設定しないことをお勧めします。
#!/usr/sbin/nft -f
table bridge tracebridge
delete table bridge tracebridge
table bridge tracebridge {
chain trace {
meta l4proto icmp meta nftrace set 1
}
chain prerouting {
type filter hook prerouting priority -350; policy accept;
jump trace
}
chain postrouting {
type filter hook postrouting priority -350; policy accept;
jump trace
}
}
このファイルを保存し、実行可能にしてから 1 回実行すると、それぞれのトレースチェー ンが作成されます。トレース出力は、Proxmox VE Web UI (Firewall > Log) またはnft monitor trace で確認できます。
上記の例では、すべてのブリッジのトラフィックをトレースしていますが、これは通常、ゲストのトラフィックが流れる場所です。ホストのトラフィックを調べたい場合は、ブリッジテーブルの代わりにinetテーブルにこれらのチェーンを作成します。
|
|
これは大量のログスパムを生成し、ネットワークスタックのパフォーマンスを著しく低下させる可能性があることに注意してください。 |
以下のコマンドを実行することで、トレースルールを削除することができます:
nft テーブル削除ブリッジトレース
14.ユーザー管理
Proxmox VEは、Linux PAM、統合Proxmox VE認証サーバ、LDAP、Microsoft Active Directory、OpenID Connectなど、複数の認証ソースをサポートしています。
すべてのオブジェクト(VM、ストレージ、ノードなど)に対してロールベースのユーザーと権限管理を使用することで、きめ細かなアクセスを定義できます。
14.1.ユーザー
Proxmox VE はユーザ属性を/etc/pve/user.cfg に保存します。 パスワードはここには保存されず、ユーザは後述する認証レルムに関連付けられます。 したがって、ユーザは内部的にはユーザ名とレルムによって<userid>@<realm> という形式で識別されることがよくあります。
このファイルの各ユーザー・エントリには、以下の情報が含まれています:
-
名前
-
姓
-
メールアドレス
-
団体会員
-
任意の有効期限
-
このユーザーに関するコメント
-
このユーザーが有効か無効か
-
オプションの二要素認証キー
|
|
ユーザーを無効化または削除した場合、または設定された有効期限が過去の場合、このユーザーは新しいセッションにログインしたり、新しいタスクを開始したりできなくなります。このユーザーによってすでに開始されているすべてのタスク(ターミナル・セッションなど)は、このようなイベントによって自動的に終了することはありません。 |
14.2.グループ
各ユーザーは複数のグループのメンバーになることができます。グループは、アクセス許可を整理するための好ましい方法です。個々のユーザーではなく、常にグループにアクセス許可を与えるべきです。そうすることで、よりメンテナンスしやすいアクセス制御リストを得ることができます。
14.3.APIトークン
APIトークンを使用すると、別のシステム、ソフトウェア、またはAPIクライアントからREST APIのほとんどの部分にステートレスでアクセスできます。トークンは個々のユーザーのために生成することができ、アクセスの範囲と期間を制限するために個別の権限と有効期限を与えることができます。APIトークンが漏洩した場合、ユーザー自身を無効にすることなく、トークンを失効させることができます。
APIトークンには基本的に2つのタイプがあります:
-
権限の分離:トークンには ACL による明示的なアクセスが必要です。 トークンの有効な権限は、ユーザー権限とトークン権限を交差させて計算されます。
-
完全な権限:トークンの権限は、関連付けられたユーザーの権限と同じです。
|
|
トークンの値は、トークンが生成されたときに一度だけ表示/返されます。後からAPI経由で再度取得することはできません! |
API トークンを使用するには、API リクエストの際に HTTP ヘッダAuthorizationにPVEAPIToken=USER@REALM!TOKENID=UUIDの形式で表示される値を設定するか、API クライアントのドキュメントを参照してください。
14.5.認証領域
Proxmox VEのユーザは、外部レルムに存在するユーザのカウンターパートに過ぎないので、レルムは/etc/pve/domains.cfgで設定する必要があります。 以下のレルム(認証方法)が利用可能です:
- Linux PAM 標準認証
-
Linux PAMは、システム全体のユーザー認証のためのフレームワークです。これらのユーザは、ホストシステム上でadduser などのコマンドを使用して作成します。PAM ユーザーが Proxmox VE ホストシステムに存在する場合、対応するエントリを Proxmox VE に追加して、これらのユーザーがシステムのユーザー名とパスワードでログインできるようにすることができます。
- Proxmox VE 認証サーバー
-
これは Unix ライクなパスワードストアで、ハッシュ化されたパスワードを/etc/pve/priv/shadow.cfg に保存します。パスワードは SHA-256 ハッシュアルゴリズムを使ってハッシュされます。これは、ユーザがProxmox VEの外部にアクセスする必要がない小規模な(あるいは中規模の)インストールに最も便利な領域です。この場合、ユーザはProxmox VEによって完全に管理され、GUIを介して自分のパスワードを変更することができます。
- ライトウェイトディレクトリアクセスプロトコル
-
LDAP (Lightweight Directory Access Protocol) は、ディレクトリサービスを使った認証のための、オープンでクロスプラットフォームなプロトコルです。OpenLDAP は、LDAP プロトコルの一般的なオープンソース実装です。
- Microsoft Active Directory (AD)
-
Microsoft Active Directory (AD)はWindowsドメインネットワーク用のディレクトリサービスで、Proxmox VEの認証レルムとしてサポートされています。認証プロトコルとしてLDAPをサポートしています。
- OpenID Connect
-
OpenID Connectは、OATH 2.0プロトコルの上にIDレイヤーとして実装されています。クライアントは、外部の認証サーバによって実行された認証に基づいて、ユーザの身元を確認することができます。
14.5.1.Linux PAM 標準認証
Linux PAM はホスト・システム・ユーザーに対応するため、ユーザーがログインを許可される各ノードにシステム・ユーザーが存在する必要があります。ユーザーは通常のシステムパスワードで認証します。このレルムはデフォルトで追加され、削除することはできません。設定可能な点では、管理者はレルムからのログインで二要素認証を要求したり、レルムをデフォルトの認証レルムとして設定したりすることができます。
14.5.2.Proxmox VE 認証サーバ
Proxmox VE認証サーバのレルムは、シンプルなUnixライクなパスワードストアです。 レルムはデフォルトで作成され、Linux PAMと同様に、利用可能な設定項目は、レルムのユーザに二要素認証を要求する機能と、ログイン時のデフォルトレルムとして設定する機能のみです。
他のProxmox VEレルムタイプとは異なり、ユーザは他のシステムに対して認証するのではなく、Proxmox VEを通じて作成および認証されます。したがって、このタイプのユーザーは作成時にパスワードを設定する必要があります。
14.5.3.LDAP
ユーザ認証に外部LDAPサーバを使用することもできます(OpenLDAPなど)。このレルム・タイプでは、ユーザはユーザ属性名(user_attr)フィールドで指定されたユーザ名属性を使用して、ベース・ドメイン名(base_dn)の下で検索されます。
サーバーとオプションのフォールバック・サーバーを設定し、SSLで接続を暗号化することができます。さらに、ディレクトリとグループに対してフィルタを設定することができます。フィルタにより、レルムの範囲をさらに制限することができます。
例えば、あるユーザーが次のようなLDIFデータセットで表現されているとします:
# user1 of People at ldap-test.com dn: uid=user1,ou=People,dc=ldap-test,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson uid: user1 cn:テストユーザー1 sn: Testers description:これは最初のテストユーザーです。
ベース・ドメイン名はou=People,dc=ldap-test,dc=comで、ユーザ属性はuidです。
Proxmox VE がユーザーを照会および認証する前に LDAP サーバーに認証 (バインド) する必要がある場合、/etc/pve/domains.cfg のbind_dnプロパティでバインド ドメイン名を構成できます。そのパスワードは、/etc/pve/priv/ldap/<realmname>.pw(例えば、/etc/pve/priv/ldap/my-ldap.pw) に格納する必要があります。このファイルには、生のパスワードを1行で記述します。
証明書を検証するには、capath を設定する必要があります。LDAPサーバのCA証明書を直接設定するか、信頼されたCA証明書を含むシステムパス(/etc/ssl/certs)を設定することができます。 さらに、verifyオプションを設定する必要があり、これはウェブインターフェイス上でも行うことができます。
LDAPサーバ・レルムの主な設定オプションは以下のとおりです:
-
レルム(realm):Proxmox VEユーザのレルム識別子
-
ベース・ドメイン名(base_dn):ユーザーを検索するディレクトリ
-
ユーザ属性名(user_attr):ユーザがログインするユーザ名を含むLDAP属性
-
サーバー(server1):LDAPディレクトリをホストするサーバー
-
予備サーバー(server2):プライマリサーバが到達不能な場合のフォールバックサーバアドレス(オプション
-
Port(ポート):LDAPサーバーがリッスンするポート
|
|
特定のユーザにLDAPサーバを使用した認証を許可するには、Proxmox VEサーバからそのレルムのユーザとして追加する必要があります。これは同期によって自動的に実行できます。 |
14.5.4.Microsoft Active Directory (AD)
Microsoft ADをレルムとして設定するには、サーバアドレスと認証ドメインを指定する必要があります。Active Directoryは、オプションのフォールバックサーバ、ポート、SSL暗号化など、LDAPと同じプロパティのほとんどをサポートしています。 さらに、設定後、同期操作によってユーザをProxmox VEに自動的に追加することができます。
LDAPと同様に、Proxmox VEがADサーバにバインドする前に認証が必要な場合は、バインド・ユーザ(bind_dn)プロパティを構成する必要があります。このプロパティは通常、Microsoft ADではデフォルトで必要です。
Microsoft Active Directoryの主な構成設定は以下のとおりです:
-
レルム(realm):Proxmox VEユーザのレルム識別子
-
ドメイン(domain):サーバーのADドメイン
-
サーバー(server1):サーバーのFQDNまたはIPアドレス
-
予備サーバー(server2):プライマリサーバが到達不能な場合のフォールバックサーバアドレス(オプション
-
Port(ポート):Microsoft ADサーバーがリッスンするポート。
|
|
Microsoft ADは通常、大文字と小文字を区別せずにユーザー名のような値をチェックします。Proxmox VEでも同じようにするには、Web UIでrealmを編集するか、CLIを使用して(realm IDでIDを変更して)、デフォルトの大文字小文字を区別するオプションを無効にします:pveum realm modify ID --case-sensitive 0 |
14.5.5.LDAPベースのレルムの同期
LDAP ベースのレルム(LDAP & Microsoft Active Directory)のユーザーとグループを Proxmox VE に手動で追加するのではなく、自動的に同期することができます。 同期オプションには、Web インターフェイスのAuthenticationパネルの Add/Edit ウィンドウ、またはpveum realm add/modifyコマンドからアクセスできます。その後、GUI のAuthenticationパネルから、または以下のコマンドを使用して同期操作を実行できます:
pveum realm sync <realm>
ユーザとグループはクラスタ全体の構成ファイル/etc/pve/user.cfg に同期されます。
属性からプロパティへ
同期レスポンスにユーザ属性が含まれている場合、それらはuser.cfg内の一致するユーザ・プロパティに同期されます。例:firstnameまたはlastname。
属性の名前がProxmox VEのプロパティと一致しない場合は、sync_attributesオプションを使用して、コンフィグでカスタムフィールド間マップを設定できます。
このようなプロパティが消えた場合にどのように処理されるかは、後述の同期オプションで制御できます。
同期設定
LDAPベースのレルムを同期するための設定オプションは、[追加/編集]ウィンドウの[同期オプション]タブにあります。
設定オプションは以下の通りです:
-
バインド・ユーザー(bind_dn):ユーザとグループの問い合わせに使用する LDAP アカウントを指します。このアカウントは、必要なエントリすべてにアクセスできる必要があります。このアカウントが設定されている場合、検索はバインド経由で行われます。ユーザは完全なLDAP形式の識別名(DN)でなければなりません、例えば、cn=admin,dc=example,dc=comです。
-
グループ名attr(group_name_attr):ユーザのグループを表します。user.cfgの通常の文字制限に従ったエントリのみが同期されます。グループは、名前の衝突を避けるために、名前に-$realmが付加された状態で同期されます。同期によって手動で作成したグループが上書きされないようにしてください。
-
ユーザー・クラス(user_classes):ユーザーに関連するオブジェクト・クラス。
-
グループ・クラス(group_classes):グループに関連するオブジェクト・クラス。
-
Eメール属性:LDAPベースのサーバでユーザの電子メールアドレスが指定されている場合、ここで関連する属性を設定することで、これらの電子メールアドレスも同期に含めることができます。これはコマンドラインから--sync_attributesパラメータを指定することで実現できます。
-
ユーザーフィルター(filter):特定のユーザーをターゲットとするフィルタオプションです。
-
グループ・フィルター(group_filter):特定のグループをターゲットとするフィルタオプション。
|
|
フィルタを使用すると、追加の一致基準を作成して、同期の範囲を絞り込 むことができます。利用可能な LDAP フィルタの種類とその使用方法については、ldap.com を参照してください。 |
同期オプション
これらのオプションは同期の前にパラメータとして設定するか、レルムオプションsync-defaults-options でデフォルトとして設定します。
同期の主なオプションは以下の通りです:
-
スコープ(範囲):同期するものの範囲。ユーザー、グループ、またはその両方を指定できます。
-
新規を有効にする(enable-new):設定すると、新しく同期されたユーザが有効になり、ログインできるようになります。デフォルトはtrueです。
-
Remove Vanished(remove-vanished):これはオプションのリストで、有効にすると、同期レスポンスから返されなかったときに削除されるかどうかを決定します。オプションは次のとおりです:
-
ACL(acl):同期応答で返されなかったユーザーとグループの ACL を削除します。多くの場合、Entry と一緒に使用します。
-
エントリ(entry):エントリ(entry):同期応答で返されなかったエントリ(ユーザーやグループなど)を削除します。
-
Properties(プロパティ):プロパティ(properties):シンク応答のユーザーがそれらの属性を含んでいないエントリのプロパティを削除します。こ れはすべてのプ ロパテ ィ を含み、 一度も同期に よ っ て設定 さ れていない も の も 含みます。こ れ ら は こ のオプシ ョ ンを有効に し て も保持 さ れます。
-
-
プレビュー(ドライラン):データはコンフィグに書き込まれません。どのユーザとグループがuser.cfgに同期されるかを確認したい場合に便利です。
予約文字
特定の文字は予約されており(RFC2253参照)、適切にエスケープされないとDNの属性値で簡単に使用できません。
以下の文字はエスケープが必要です:
-
先頭または末尾にスペース( )
-
先頭に数字記号(#)
-
カンマ(,)
-
プラス記号(+)
-
ダブルクォート(")
-
スラッシュ(/)
-
角括弧(<>)
-
セミコロン(;)
-
等号(=)
こ の よ う な文字を DN で使用す る には、 属性値を ダブル ク ォーテーシ ョ ンで囲みます。 た と えば、 CN (共通名)Example, User を持つユーザ と バ イ ン ド す る には、bind_dn の値 と し てCN="Example, User",OU=people,DC=example,DC=comを用います。
これはbase_dn 属性、bind_dn 属性、group_dn属性に適用されます。
|
|
コロンとスラッシュはユーザー名の予約文字であるため、同期できません。 |
14.5.6.OpenID Connect
OpenID Connectの主な設定オプションは以下のとおりです:
-
発行者URL(issuer-url):ProxmoxはOpenID Connect Discoveryプロトコルを使用して、自動的に詳細を設定します。
暗号化されていないhttp://URL を使用することも可能ですが、暗号化されたhttps://接続を使用することを強くお勧めします。
-
レルム(realm):Proxmox VEユーザのレルム識別子
-
クライアントID(client-id): OpenIDクライアントID。
-
クライアント・キー(client-key):オプションの OpenID クライアント鍵。
-
ユーザーの自動作成(autocreate):ユーザが存在しない場合、自動的にユーザを作成します。認証はOpenIDサーバで行われますが、すべてのユーザはProxmox VEのユーザ設定にエントリが必要です。手動で追加するか、自動作成オプションを使用して新しいユーザを自動的に追加します。
-
ユーザ名請求(username-claim):一意なユーザ名(件名、ユーザ名、またはメールアドレス) を生成するために使用される OpenID claim。
ユーザー名のマッピング
OpenID Connectの仕様では、subjectという一意な属性(OpenID用語ではclaim)が定義されています。デフォルトでは、この属性の値を使ってProxmox VEのユーザ名を生成します。
残念なことに、ほとんどのOpenIDサーバはDGH76OKH34BNG3245SBのようなランダムな文字列を件名に使っているので、典型的なユーザ名はDGH76OKH34BNG3245SB@yourrealmのようになります。ユニークではありますが、人間がこのようなランダムな文字列を覚えておくのは難しいので、実際のユーザと関連付けるのはかなり不可能です。
username-claim設定では、ユーザー名のマッピングに他の属性を使用することができます。OpenID Connect サーバがその属性を提供し、一意性が保証されている場合はusernameを指定することを推奨します。
もう1つのオプションはemailを使うことで、こちらも人間が読めるユーザ名が得られます。繰り返しますが、サーバがこの属性の一意性を保証している場合にのみ、この設定を使用してください。
例
Google を使って OpenID レルムを作成する例です。client-idと --client-keyは、Google OpenIDの設定の値で置き換える必要があります。
pveum realm add myrealm1 --type openid --issuer-url https://accounts.google.com --client-id XXXX --client-key YYYY --username-claim email
上記のコマンドでは--username-claim email を使用しているため、Proxmox VE 側のユーザー名はexample.user@google.com@myrealm1 のようになります。
Keycloak(https://www.keycloak.org/)は、OpenID Connectをサポートするオープンソースのアイデンティティおよびアクセス管理ツールです。以下の例では、--issuer-urlと --client-idをあなたの情報で置き換える必要があります:
pveum realm add myrealm2 --type openid --issuer-url https://your.server:8080/realms/your-realm --client-id XXX --username-claim ユーザー名
username-claimユーザー名を使用すると、Proxmox VE側でexample.user@myrealm2のようなシンプルなユーザー名を使用できます。
|
|
ユーザーが(Keycloakサーバー上で)ユーザー名の設定を自分で編集できないようにする必要があります。 |
14.6.二要素認証
二要素認証を使用するには2つの方法があります:
これは、TOTP(Time-based One-Time Password) またはYubiKey OTP のいずれかの認証レルムによって要求されます。この場合、新しく作成されたユーザは、すぐに鍵を追加する必要があります。TOTPの場合、最初にログインできれば、後からTOTPを変更することも可能です。
あるいは、たとえレルムが2ファクタ認証を強制していなくても、ユーザは後から2ファクタ認証を選択することもできます。
14.6.1.利用可能なセカンドファクター
スマートフォンやセキュリティーキーを紛失してアカウントから永久にロックされる事態を避けるため、複数のセカンドファクターを設定することができます。
レルム強制 TOTP、YubiKey OTP に加え、以下の二要素認証が利用可能です:
-
ユーザーが設定するTOTP(時間ベースのワンタイムパスワード)。 共有シークレットと現在時刻から導き出される短いコードで、30秒ごとに変更されます。
-
WebAuthn(Web Authentication) 認証の一般的な標準。コンピュータやスマートフォンのハードウェアキーやTPM(Trusted Platform Module)など、さまざまなセキュリティデバイスによって実装されます。
-
シングルユースのリカバリーキー。プリントアウトして安全な場所に施錠するか、電子保管庫にデジタル保存する必要があるキーのリスト。各キーは1回のみ使用できます。他のすべてのセカンドファクターが紛失または破損した場合でも、ロックアウトされないようにするのに最適なキーです。
WebAuthn がサポートされる前は、U2F はユーザーが設定できました。既存のU2Fファクターは引き続き使用できますが、サーバー上で設定された後は、WebAuthnに切り替えることをお勧めします。
14.6.2.レルム強制二要素認証
これは、認証レルムを追加または編集する際に、TFAドロップダウン・ボックスで利用可能な方法の1つを選択することで行うことができます。 レルムがTFAを有効にすると、それが要件となり、TFAが設定されたユーザのみがログインできるようになります。
現在、2つの方法があります:
- タイムベースOATH(TOTP)
-
これは標準的な HMAC-SHA1 アルゴリズムを使用し、現在時刻はユーザーが設定したキーでハッシュ化されます。時間ステップとパスワードの長さのパラメータは設定可能です。
ユーザーは複数のキーを(スペースで区切って)設定することができ、キーはBase32(RFC3548)または16進数表記で指定できます。
Proxmox VEは、oathtoolコマンドラインツールやAndroid Google Authenticator、FreeOTP、andOTPなどの様々なOTPツールで直接使用できるBase32記法のランダムキーを出力するキー生成ツール(oathkeygen)を提供しています。
- YubiKey OTP
-
YubiKeyで認証を行うには、Yubico API ID、API KEY、認証サーバURLが設定されており、ユーザがYubiKeyを持っている必要があります。YubiKeyからキーIDを取得するには、YubiKeyをUSBで接続した後、一度YubiKeyを起動し、入力されたパスワードの最初の12文字をユーザーのキーIDsフィールドにコピーします。
YubiCloudを使用する方法、または独自の認証サーバをホストする方法については、YubiKey OTPのドキュメントを参照してください。
14.6.3.二要素認証の制限とロックアウト
第二の要因は、パスワードが何らかの形で漏れたり推測されたりした場合に、ユーザーを保護するためのものです。しかし、いくつかの要素は総当たりで破られる可能性があります。このため、第2要素によるログインに何度も失敗すると、ユーザーはロックアウトされます。
TOTPの場合、8回失敗すると、ユーザーのTOTPファクターは無効になります。回復キーでログインすると解除されます。TOTP が唯一の利用可能な要素であった場合、管理者の介入が必要であり、ユーザに直ちにパスワードの変更を要求することが強く推奨されます。
FIDO2/Webauthnとリカバリキーはブルートフォースアタックの影響を受けにくいため、リミットは高くなりますが(100回)、それを超えるとすべてのセカンドファクターが1時間ブロックされます。
管理者は、UIのユーザーリストまたはコマンドラインから、いつでもユーザーの二要素認証を解除することができます:
pveum ユーザー tfa ロック解除 joe@pve
14.6.4.ユーザが設定したTOTP認証
ユーザは、ログイン時にTOTPまたはWebAuthnを第二要素として有効にするかどうかを、ユーザ一覧のTFAボタンから選択できます (レルムがYubiKey OTP を強制している場合を除く)。
ユーザーはいつでも1回限りのリカバリーキーを追加して使用できます。
TFAウィンドウを開くと、TOTP認証を設定するためのダイアログが表示されます。Secret」フィールドには鍵を入力します。鍵は「Randomize」ボタンでランダムに生成することができます。ほとんどのTOTPアプリは、発行者名と対応するOTP値を表示します。ユーザ名はTOTPアプリの QR コードにも含まれます。
キーを生成すると、FreeOTP などのほとんどの OTP アプリで使用できる QR コードが表示されます。その後、ユーザーは、現在のユーザーパスワード(root としてログインしている場合を除く)と、TOTPキーを正しく使用できることを、現在のOTP値をVerification Codeフィールドに入力してApplyボタンを押すことで確認する必要があります。
14.6.5.TOTP
サーバーの設定は不要です。スマートフォンにTOTPアプリ(例えばFreeOTP)をインストールし、Proxmox VEのウェブインターフェースを使用してTOTPファクターを追加するだけです。
14.6.6.WebAuthn
WebAuthnを動作させるには、2つのものが必要です:
-
信頼できる HTTPS 証明書 (Let's Encrypt を使用するなど)。 信頼できない証明書でもおそらく動作しますが、ブラウザによっては信頼できない証明書を使用すると警告が表示されたり、WebAuthn の操作が拒否されたりすることがあります。
-
WebAuthn 設定を設定します(Proxmox VE ウェブインターフェースのDatacenter → Options → WebAuthn Settingsを参照)。これはほとんどのセットアップで自動入力できます。
これらの両方の要件を満たすと、[Datacenter] → [Permissions] → [Two Factor] の[Two Factor]パネルで WebAuthn 設定を追加できます。
14.6.8.サーバー側 Webauthn 設定
|
|
WebAuthn の設定を変更すると、既存のすべてのWebAuthn登録が使用できなくなる可能性があります! |
これは/etc/pve/datacenter.cfgで行います。例えば
webauthn: rp=mypve.example.com,origin=https://mypve.example.com:8006,id=mypve.example.com
14.6.9.サーバ側U2F設定
|
|
代わりにWebAuthnを使用することをお勧めします。 |
ユーザーがU2F認証を使用できるようにするには、有効なSSL証明書を持つ有効なドメインを使用する必要がある場合があります。そうでない場合、ブラウザによっては警告が表示されたり、U2Fの使用を完全に拒否したりする場合があります。最初に、AppId
[AppIdhttps://developers.yubico.com/U2F/App_ID.html]
を設定する必要があります。
|
|
AppIdを変更すると、既存のすべてのU2F登録が使用できなくなります! |
これは/etc/pve/datacenter.cfgで行います。例えば
u2f: appid=https://mypve.example.com:8006
1つのノードの場合、AppIdは単純にウェブインターフェースのアドレスで、ブラウザで使用されているものと全く同じで、上記のようにhttps://、ポートも含みます。ブラウザによっては、AppIdのマッチングが他のブラウザよりも厳しい場合があることに注意してください。
複数のノードを使用する場合、appid.json
[Multi-facet apps:https://developers.yubico.com/U2F/App_ID.html]
ファイルを提供する別のhttpsサーバーを用意するのが、ほとんどのブラウザと互換性があるようです。すべてのノードが同じトップレベルドメインのサブドメインを使用している場合、AppId として TLD を使用すれば十分かもしれません。ただし、ブラウザによってはこれを受け入れない場合があることに注意してください。
|
|
AppIdが正しくないと通常はエラーになりますが、特にChromiumでサブドメイン経由でアクセスされるノードにトップレベルドメインのAppIdを使用している場合、エラーにならないことがあります。このため、後でAppIdを変更すると既存のU2F登録が使用できなくなるため、複数のブラウザで設定をテストすることをお勧めします。 |
14.6.10.ユーザーとしてのU2Fの有効化
U2F認証を有効にするには、TFAウィンドウのU2Fタブを開き、現在のパスワードを入力し(rootでログインしていない場合)、Registerボタンを押します。 サーバーが正しくセットアップされ、ブラウザがサーバーから提供されたAppIdを受け入れると、U2Fデバイスのボタンを押すよう促すメッセージが表示されます(YubiKeyの場合、ボタンのランプが1秒間に約2回、安定して点滅するはずです)。
FirefoxユーザーはU2Fトークンを使う前にabout:configで security.webauth.u2fを有効にする必要があるかもしれません。
14.7.パーミッション管理
ユーザがアクション(VMのコンフィギュレーションの一部を一覧表示、変更、削除など)を実行するには、そのユーザに適切なパーミッションが必要です。
Proxmox VEは、ロールおよびパスベースの権限管理システムを使用しています。パーミッションテーブルのエントリは、オブジェクトや パスにアクセスする際に、ユーザー、グループ、トークンが特定の役割を担うことを許可します。つまり、アクセスルールは(パス、ユーザー、ロール)、(パス、グループ、ロール)、(パス、トークン、ロール)のトリプルとして表すことができます。
14.7.1.役割
ロールは単に権限のリストです。Proxmox VEには定義済みのロールが多数用意されており、ほとんどの要件を満たすことができます。
-
管理者:すべての権限があります。
-
NoAccess: 権限を持たない (アクセスを禁止するために使用)
-
PVEAdmin:ほとんどのタスクを実行できますが、システム設定(Sys.PowerMgmt、Sys.Modify、Realm.Allocate)やパーミッション(Permissions.Modify)を変更する権限はありません。
-
PVEAuditor: 読み取り専用
-
PVEDatastoreAdmin: バックアップ領域とテンプレートの作成と割り当て
-
PVEDatastoreUser: バックアップ領域の割り当てとストレージの表示
-
PVEMappingAdmin: リソースマッピングの管理
-
PVEMappingUser: リソースマッピングの表示と使用
-
PVEPoolAdmin: プールの割り当て
-
PVEPoolUser: プールを見る
-
PVESDNAdmin: SDN コンフィギュレーションの管理
-
PVESDNUser: ブリッジ/ネットへのアクセス
-
PVESysAdmin: 監査、システムコンソール、システムログ
-
PVETemplateUser: テンプレートの表示とクローン
-
PVEUserAdmin: ユーザーの管理
-
PVEVMAdmin: VM を完全に管理します。
-
PVEVMUser:表示、バックアップ、CD-ROM設定、VMコンソール、VM電源管理
GUIで定義済みのロール一式を見ることができます。
GUIまたはコマンドラインから新しいロールを追加できます。
GUIからDatacenterの Permissions → Rolesタブに移動し、Createボタンをクリックします。そこでロール名を設定し、Privilegesドロップダウンメニューから必要な権限を選択できます。
コマンドラインからロールを追加するには、例えばpveumCLIツールを使用します:
pveum role add VM_Power-only --privs"VM.PowerMgmt VM.Console"pveum role add Sys_Power-only --privs"Sys.PowerMgmt Sys.Console"
|
|
PVEで始まるロールは常に組み込みのものであり、カスタムロールはこの予約接頭辞を使用することはできません。 |
14.7.2.特権
権限とは、特定のアクションを実行する権利のことです。管理を簡単にするために、権限のリストはロールにグループ化されます。権限はロールの一部でなければユーザやパスに直接割り当てることができないことに注意してください。
現在、以下の特権をサポートしています:
- ノード / システム関連権限
-
-
Group.Allocate:グループの作成/変更/削除
-
Mapping.Audit:リソースマッピングの表示
-
Mapping.Modify:リソースマッピングの管理
-
Mapping.Use:リソースマッピングの使用
-
Permissions.Modify:アクセス許可の変更
-
Pool.Allocate:プールの作成/変更/削除
-
Pool.Audit:プールの表示
-
Realm.AllocateUser: ユーザーをレルムに割り当てる
-
Realm.Allocate: 認証レルムの作成/変更/削除
-
SDN.Allocate: SDNコンフィギュレーションの管理
-
SDN.Audit:SDNコンフィギュレーションの表示
-
Sys.Audit:ノードステータス/設定、Corosyncクラスタ設定、HA設定の表示
-
Sys.Console: ノードへのコンソールアクセス
-
Sys.Incoming:他のクラスタからの受信データストリームを許可(実験的)
-
Sys.Modify: ノード・ネットワーク・パラメータの作成/変更/削除
-
Sys.PowerMgmt: ノードの電源管理 (スタート、ストップ、リセット、シャットダウンなど)
-
Sys.Syslog: syslogの表示
-
User.Modify:ユーザーアクセスと詳細の作成/変更/削除。
-
- 仮想マシン関連権限
-
-
SDN.Use: SDN ネットワークとローカルネットワークのブリッジにアクセスします。
-
VM.Allocate:サーバー上のVMの作成/削除
-
VM.Audit:VMコンフィグを表示
-
VM.Backup:VMのバックアップ/リストア
-
VM.Clone: VMのクローン/コピー
-
VM.Config.CDROM: CD-ROM の取り出し/交換
-
VM.Config.CPU: CPU設定の変更
-
VM.Config.Cloudinit: クラウドイットパラメータの変更
-
VM.Config.Disk: ディスクの追加/変更/削除
-
VM.Config.HWType: エミュレートされたハードウェアタイプを変更します。
-
VM.Config.Memory: メモリ設定の変更
-
VM.Config.Network: ネットワークデバイスの追加/変更/削除
-
VM.Config.Options:その他のVM設定を変更します。
-
VM.Console: VMへのコンソールアクセス
-
VM.Migrate:クラスタ上の代替サーバにVMを移行
-
VM.Monitor:VMモニター(kvm)へのアクセス
-
VM.PowerMgmt: 電源管理 (スタート、ストップ、リセット、シャットダウンなど)
-
VM.Snapshot.Rollback:VMをスナップショットの1つにロールバックします。
-
VM.Snapshot: VMスナップショットの作成/削除
-
- ストレージ関連の権限
-
-
Datastore.Allocate: データストアの作成/変更/削除とボリュームの削除
-
Datastore.AllocateSpace:データストアに領域を割り当てる
-
Datastore.AllocateTemplate: テンプレートと ISO イメージの割り当て/アップロード
-
Datastore.Audit:データストアの表示/閲覧
-
|
|
Permissions.Modifyと Sys.Modifyはどちらも、危険であったり機密であったりするシステムやその設定の変更を許可するものであるため、取り扱いには注意が必要です。 |
|
|
以下の継承に関するセクションを注意深く読んで、割り当てられたロール(およびその権限)がACLツリーに沿ってどのように伝搬するかを理解してください。 |
14.7.3.オブジェクトとパス
アクセス許可は、仮想マシン、ストレージ、リソースプールなどのオブジェクトに割り当てられます。 ファイルシステムのようなパスを使用して、これらのオブジェクトにアクセスします。これらのパスは自然なツリーを形成し、上位レベル(より短いパス)のパーミッションは、オプションでこの階層内に伝搬することができます。
パスはテンプレート化できます。API 呼び出しがテンプレート化されたパスのパーミッションを必要とする場合、パスには API 呼び出しのパラメータへの参照が含まれることがあります。こ れ ら の参照は中かっ こ で指定 し ます。一部のパラメータは、APIコールのURIから暗黙的に取得されます。例えば、/nodes/mynode/status を呼び出すときのパーミッションパス/nodes/{node}は、/nodes/mynode のパーミッションを必要とし、/access/aclへの PUT 要求のパス{path}は、メソッドのパスパラメータを参照します。
いくつか例を挙げましょう:
-
/ノード/{ノード}:Proxmox VE サーバマシンへのアクセス
-
/vms:すべてのVMをカバー
-
/vms/{vmid}です:特定の VM へのアクセス
-
/storage/{storeid}:特定のストレージへのアクセス
-
/pool/{プール名}:特定のプールに含まれるリソースへのアクセス
-
/アクセス/グループグループ管理
-
/access/realms/{realmid}:レルムへの管理者アクセス
相続
前述したように、オブジェクトのパスはファイルシステムのようなツリーを形成し、パーミッションはそのツリーの下のオブジェクトに継承されます(デフォルトではpropagateフラグが設定されています)。以下の継承ルールを使用します:
-
個人ユーザーに対するパーミッションは、常にグループパーミッションに取って代わります。
-
グループに対するパーミッションは、ユーザーがそのグループのメンバーである場合に適用されます。
-
より深いレベルのパーミッションは、上位レベルから継承されたものを置き換えます。
-
NoAccessは、指定されたパス上の他のすべてのロールをキャンセルします。
さらに、権限分離されたトークンは、関連するユーザーが持っていないパーミッションを、任意のパス上で持つことはできません。
14.7.4.プール
プールを使用すると、仮想マシンとデータストアのセットをグループ化できます。そして、プール(/pool/{poolid}) にパーミッションを設定するだけで、そのパーミッションはすべてのプールメンバーに継承されます。これは、アクセス制御を簡素化する素晴らしい方法です。
14.7.5.どの権限が必要ですか?
必要なAPI権限は個々のメソッドごとに文書化されており、https://pve.proxmox.com/pve-docs/api-viewer/。
パーミッションはリストとして指定され、ロジックとアクセスチェック関数のツリーとして解釈できます:
- ["および", <subtests>...]および["or", <subtests>...] 。
-
現在のリストの各要素(and)またはそれ以上の要素(any(or))が真でなければなりません。
- ["perm", <path>, [ <privileges>... ], <options>...]] 。
-
パスはテンプレート化されたパラメータです(「オブジェクトとパス」参照)。列挙 さ れてい る 権限のすべて (またはanyオプシ ョ ンが用い ら れてい る 場合はいずれか) が、 指定 さ れたパス上で許 さ れてい る 必要があ り ます。require-paramオプシ ョ ンが指定 さ れてい る と き は、 その API 呼び出 し の ス キーマがそれ以外にはそのパラ メ タ をオプシ ョ ナル と し て リ ス ト し てい る と き で も 、 その指定 さ れたパ ラ メ タ は必須です。
- [userid-group", [ <privileges>... ], <options>... ]。
-
呼び出し元は、/access/groupsにリストされた特権のいずれかを持っていなければなりません。さらに、groups_paramオプションが設定されているかどうかによって、2つのチェックが可能です:
-
groups_paramが設定されています:APIコールに非オプションのgroupsパラメータがあり、呼び出し元がリストされたすべてのグループに対してリストされた特権のいずれかを持っている必要があります。
-
groups_paramが設定されていません:useridパラメータで渡されたユーザは、呼び出し元が(/access/groups/<group>パス経由で)リストされた権限のいずれかを持つグループに存在し、そのグループの一部でなければなりません。
-
- [userid-param", "self"]。
-
APIコールのuseridパラメータに提供される値は、アクションを実行するユーザーを参照する必要があります(通常、昇格権限を持っていなくても、ユーザーが自分自身に対してアクションを実行できるようにするために、orと組み合わせて使用されます)。
- ["userid-param", "Realm.AllocateUser"]。
-
ユーザはRealm.AllocateUser で /access/realm/<realm> にアクセスする必要があります。ユーザ ID は<username>@<realm> の形式で渡されますので、 レルムに関連付けるためにユーザが存在する必要はないことに注意してください。
- ["perm-modify","<path>"]。
-
パスはテンプレート化されたパラメータです(「オブジェクトとパス」を参照)。ユーザは、Permissions.Modify特権か、パスによっては以下の特権で代用することができます:
-
/storage/...: 'Datastore.Allocate` が必要です。
-
/vms/...: 'VM.Allocate` が必要です。
-
/pool/...: 'Pool.Allocate` が必要です。
パスが空の場合は、/accessの Permissions.Modifyが必要です。
ユーザーがPermissions.Modify権限を持っていない場合、指定されたパス上の自分の権限のサブセットのみを委譲することができます(例えば、PVEVMAdminを持つユーザーはPVEVMUserを委譲することはできますが、PVEAdminを委譲することはできません)。
-
14.8.コマンドラインツール
ほとんどのユーザーは GUI を使ってユーザーを管理します。しかし、pveum("ProxmoxVE User Manager"の略)と呼ばれるフル機能のコマンドラインツールもあります。Proxmox VEのコマンドラインツールはすべてAPIのラッパーなので、REST APIからこれらの機能にアクセスすることもできます。
以下は簡単な使用例です。ヘルプを表示するには
はげ
または (特定のコマンドに関する詳細なヘルプを表示するには)
pveumヘルプユーザー追加新しいユーザーを作成します:
pveum user add testuser@pve -comment"ただのテスト"パスワードを設定または変更します(すべてのレルムでサポートされているわけではありません):
pveum passwd testuser@pve
ユーザーを無効にします:
pveum user modify testuser@pve -enable0新しいグループを作成します:
pveumグループ追加テストグループ
新しいロールを作成します:
pveum role add PVE_Power-only -privs"VM.PowerMgmt VM.Console"14.9.実例
14.9.1.管理者グループ
管理者が、(rootアカウントを使わずに)完全な管理者権限を持つユーザーグループを作りたいと思うことはあり得ます。
そのためには、まずグループを定義します:
pveum group add admin -comment"システム管理者"次に役割を割り当てます:
pveum acl modify/-group admin -role 管理者最後に、新しい管理者グループにユーザーを追加します:
pveum user modify testuser@pve -group admin
14.9.2.監査役
PVEAuditorロールをユーザーまたはグループに割り当てることで、ユーザーに読み取り専用アクセス権を与えることができます。
例 1: ユーザjoe@pveにすべてを表示することを許可します。
pveum acl modify/-user joe@pve -role PVEAuditor例 2: ユーザjoe@pveにすべての仮想マシンを表示できるようにします。
pveum acl modify /vms -user joe@pve -role PVEAuditor
14.9.3.ユーザー管理の委任
ユーザ管理をユーザjoe@pveに委譲したい場合は、次のようにします:
pveum acl modify /access -user joe@pve -role PVEUserAdmin
ユーザjoe@pveはユーザの追加と削除、パスワードなどのユーザ属性の変更ができるようになりました。これは非常に強力なロールであり、選択されたレルムとグループに制限したい場合がほとんどでしょう。以下の例では、joe@pveはレルムpve内のユーザを変更することができます:
pveum acl modify /access/realm/pve -user joe@pve -role PVEUserAdmin pveum acl modify /access/groups/customers -user joe@pve -role PVEUserAdmin
|
|
そのユーザーは他のユーザーを追加することができますが、そのユーザーがcustomersグループのメンバーであり、pveレルム内にいる場合に限られます。 |
14.9.4.監視用限定APIトークン
APIトークンの権限は、常に対応するユーザの権限のサブセットです。つまり、APIトークンを使用して、バックユーザが権限を持たないタスクを実行することはできません。このセクションでは、トークン所有者の権限をさらに制限するために、別の権限を持つAPIトークンを使用する方法を示します。
すべてのVMで、ユーザーjoe@pveにロールPVEVMAdminを与えます:
pveum acl modify /vms -user joe@pve -role PVEVMAdmin
別の権限を持つ新しいAPIトークンを追加します。このAPIトークンは、VM情報の表示のみ許可されます(監視目的など):
pveum user token add joe@pve monitoring -privsep1pveum acl modify /vms -token'joe@pve!monitoring'-role PVEAuditor
ユーザーとトークンの権限を確認します:
pveum ユーザー権限 joe@pve pveum ユーザー・トークン権限 joe@pve モニタリング
14.9.5.リソースプール
通常、企業はいくつかの小さな部門に分かれており、それぞれの部門にリソースを割り当てたり、管理タスクを委任したりするのが一般的です。ここでは、ソフトウェア開発部門のためのプールを設定したいとします。まず、グループを作成します:
pveum group add developers -コメント"Our software developers"次に、そのグループのメンバーである新しいユーザーを作成します:
pveum user add developer1@pve -group developers -password
|
|
password "パラメーターはパスワードの入力を要求します。 |
そして、開発部門が使用するリソース・プールを作成します:
pveum pool add dev-pool --comment"IT開発プール"最後に、そのプールに権限を割り当てることができます:
pveum acl modify/pool/dev-pool/-group developers -role PVEAdmin当社のソフトウェア開発者は、そのプールに割り当てられたリソースを管理できるようになりました。
15.高可用性
私たちの現代社会は、ネットワークを通じてコンピューターから提供される情報に大きく依存しています。モバイル機器は、人々がいつでもどこからでもネットワークにアクセスできるため、その依存度を高めています。このようなサービスを提供する場合、常に利用可能であることが非常に重要です。
可用性を数学的に定義すると、(A)、ある間隔の間にサービスが使用可能な合計時間と、(B)、間隔の長さの比率となります。これは通常、ある年の稼働時間のパーセンテージで表されます。
| 空室率 | 年間ダウンタイム |
|---|---|
99 |
3.65日 |
99.9 |
8.76時間 |
99.99 |
52分56秒 |
99.999 |
5.26分 |
99.9999 |
31.5秒 |
99.99999 |
3.15秒 |
可用性を高める方法はいくつかあります。最もエレガントな解決策は、ソフトウェアを書き換えて、複数のホストで同時に実行できるようにすることです。ソフトウェア自体がエラーを検出し、フェイルオーバーを行う方法が必要です。読み取り専用のウェブページを提供するだけなら、これは比較的簡単です。しかし、これは一般的に複雑で、ソフトウェアを自分で修正することができないため、不可能な場合もあります。以下の解決策は、ソフトウェアを修正することなく動作します:
-
信頼性の高い「サーバー」コンポーネントの使用
同じ機能を持つコンピュータ・コンポーネントでも、コンポーネントの品質によって信頼性の数値は異なります。ほとんどのベンダーは、信頼性の高いコンポーネントを「サーバー」コンポーネントとして販売しています。 -
単一障害点の排除(冗長コンポーネント)
-
無停電電源装置(UPS)の使用
-
サーバーに冗長電源を使用
-
ECC-RAMを使用
-
冗長ネットワークハードウェアの使用
-
ローカルストレージにRAIDを使用
-
VMデータに分散冗長ストレージを使用
-
-
ダウンタイムの削減
-
迅速にアクセス可能な管理者(24時間365日)
-
スペアパーツの入手可能性 (Proxmox VEクラスタの他のノード)
-
自動エラー検出(ha-managerによって提供されます)
-
自動フェイルオーバー(ha-managerにより提供)
-
Proxmox VEのような仮想化環境では、「ハードウェア」への依存がなくなるため、高可用性の実現が非常に容易になります。また、冗長ストレージやネットワークデバイスのセットアップと使用もサポートされているため、1台のホストに障害が発生した場合でも、クラスタ内の別のホストでそれらのサービスを開始するだけで済みます。
さらに良いことに、Proxmox VEはha-managerと呼ばれるソフトウェアスタックを提供しています。自動的にエラーを検出し、自動フェイルオーバーを行うことができます。
Proxmox VEha-managerは"自動化された "管理者のように動作します。まず、管理すべきリソース(VM、コンテナなど)を設定します。次に、ha- managerは正しい機能を監視し、エラーが発生した場合に別のノードへのサービスフェイルオーバーを処理します。
しかし、高い可用性には代償が伴います。高品質の部品は高価であり、冗長化することでコストは少なくとも2倍になります。スペアパーツを追加すれば、コストはさらに増加します。そのため、利点を慎重に計算し、追加コストと比較する必要があります。
|
|
可用性を99%から99.9%に高めるのは比較的簡単です。しかし、99.9999%から99.99999%に可用性を高めるのは非常に難しく、コストがかかります。ha-managerの典型的なエラー検出とフェイルオーバーの時間は約2分なので、99.999%以上の可用性を得ることはできません。 |
15.1.要件
HAを始める前に、以下の条件を満たしている必要があります:
-
少なくとも3つのクラスタノード(信頼できるクォーラムを取得するため)
-
VMとコンテナ用の共有ストレージ
-
ハードウェアの冗長性
-
信頼性の高い「サーバー」コンポーネントを使用
-
ハードウェア・ウォッチドッグ - 利用できない場合は、Linuxカーネル・ソフトウェア・ウォッチドッグ(ソフトドッグ)にフォールバックします。
-
オプションのハードウェア・フェンス装置
15.2.リソース
ha-managerが扱う主要な管理単位をリソースと呼びます。リソース(「サービス」とも呼ばれます)はサービスID(SID)によって一意に識別されます。SIDはリソースのタイプとタイプ固有のIDで構成され、例えばvm:100のようになります。例えば、vm:100のようなIDを持つvm(仮想マシン)タイプのリソースです。
仮想マシンとコンテナです。ここでの基本的な考え方の1つは、関連するソフトウェアをこのような仮想マシンやコンテナにバンドルすることができるということで、rgmanagerのように他のサービスから1つの大きなサービスを構成する必要はありません。一般的に、HAが管理するリソースは他のリソースに依存すべきではありません。
15.3.管理タスク
このセクションでは、一般的な管理タスクの簡単な概要を説明します。最初のステップは、リソースのHAを有効にすることです。これは、リソースをHAリソース設定に追加することで行います。これはGUIを使用して行うこともできますし、単にコマンドラインツールなどを使用することもできます:
# ha-manager add vm:100
HAスタックはリソースを起動し、実行し続けようとします。要求された」リソースの状態を設定できることに注意してください。例えば、HAスタックにリソースを停止させたい場合があります:
# ha-manager set vm:100 --state stopped
また後でやり直します:
# ha-manager set vm:100 --state started
通常のVMやコンテナ管理コマンドも使用できます。コマンドは自動的にHAスタックに転送されるので
# qm start 100
は単に要求された状態をstarted に設定します。qm stop も同様で、要求された状態をstopped に設定します。
|
|
HAスタックは完全に非同期で動作し、他のクラスタメンバーと通信する必要があります。そのため、このようなアクションの結果が表示されるまで数秒かかります。 |
現在のHAリソース設定を表示するには
# ha-manager config vm:100 state stopped
そして、実際のHAマネージャーとリソースの状態を見ることができます:
# ha-manager status quorum OK master node1 (active, Wed Nov 23 11:07:23 2016) lrm elsa (active, Wed Nov 23 11:07:19 2016) service vm:100 (node1, started)
他のノードへのリソース移行を開始することもできます:
# ha-manager migrate vm:100 node2
これはオンラインマイグレーションを使用し、VMを実行し続けようとします。オンライン・マイグレーションでは、使用済みのメモリをすべてネットワーク経由で転送する必要があるため、VMを停止してから新しいノードで再起動した方が速い場合があります。これはrelocateコマンドで実行できます:
# ha-manager relocate vm:100 node2
最後に、以下のコマンドを使用して、HA構成からリソースを削除できます:
# ha-manager remove vm:100
|
|
これはリソースを開始したり停止したりするものではありません。 |
しかし、HA関連のタスクはすべてGUIで行えるので、コマンドラインを使う必要はまったくありません。
15.4.仕組み
このセクションでは、Proxmox VE HAマネージャの内部について詳しく説明します。関係するすべてのデーモンとその連携方法について説明します。HAを提供するために、各ノードで2つのデーモンが実行されます:
- プベ・ハ・ルム
-
ローカル・リソース・マネージャ(LRM)は、ローカル・ノード上で実行されているサービスを制御します。現在のマネージャステータスファイルからサービスの要求状態を読み取り、それぞれのコマンドを実行します。
- PVE-HA-CRM
-
クラスタ全体の意思決定を行うクラスタリソースマネージャ(CRM)。LRMにコマンドを送信し、結果を処理し、何か障害が発生した場合はリソースを他のノードに移動します。CRMはノードのフェンシングも行います。
|
|
LRM と CRM のロック ロックは分散コンフィギュレーション・ファイル・システム(pmxcfs)によって提供され、各LRMが一度だけアクティブになって動作することを保証するために使用されます。LRMはロックを保持しているときのみアクションを実行するため、ロックを取得することができれば、障害が発生したノードをフェンスされたノードとしてマークすることができます。これは、現在未知の障害ノードからの干渉を受けることなく、障害となったHAサービスを安全に復旧させることができます。 これはすべて、現在マネージャ・マスター・ロックを保持しているCRMによって監視されます。 |
15.4.1.サービス状態
CRM はサービス状態の列挙を使用して現在のサービス状態を記録します。この状態はGUIに表示され、ha-managerコマンドラインツールを使用して照会できます:
# ha-manager status quorum OK master elsa (active, Mon Nov 21 07:23:29 2016) lrm elsa (active, Mon Nov 21 07:23:22 2016) service ct:100 (elsa, stopped) service ct:102 (elsa, started) service vm:501 (elsa, started)
以下は可能な状態のリストです:
- 停止
-
サービスが停止しました(LRM で確認)。LRM は停止したサービスがまだ実行中であることを検出すると、再度停止します。
- リクエストストップ
-
サービスを停止してください。CRM は LRM からの確認を待ちます。
- へいせん
-
停止要求の保留。しかし、CRMは今のところリクエストを受け取っていません。
- 開始
-
サービスがアクティブな場合、LRM は、まだ実行中でなければ、早急にサービスを開始する必要があります。 サービスが失敗し、実行中でないことが検出された場合、LRM はサービスを再起動します(「開始失敗ポリシー」を参照)。
- スタート
-
開始要求を保留中です。しかし、CRMはLRMからサービスが実行されていることを確認していません。
- フェンス
-
サービス・ノードがクォーレート・クラスター・パーティション内にないため、ノードのフェンシングを待ちます(フェンシングを参照)。 ノードのフェンシングが成功すると、サービスはリカバリ状態になります。
- 回復
-
サービスの復旧を待ちます。HAマネージャは、サービスが実行可能な新しいノードを見つけようとします。この検索は、オンラインノードとクォーレートノードのリストだけでなく、サービスがグループメンバーかどうか、そのようなグループがどのように制限されているかにも依存します。 新しい利用可能なノードが見つかり次第、サービスはそこに移動され、最初は停止状態になります。実行するように設定されている場合は、新しいノードが実行します。
- 凍る
-
サービス状態には触れないでください。この状態はノードのリブート時やLRMデーモンの再起動時に使用します(パッケージの更新を参照)。
- 無視
-
一時的にサービスを完全に管理したい場合に便利です.
- マイグレート
-
他のノードにサービス(ライブ)を移行します。
- エラー
-
LRM エラーが原因でサービスが無効になっています。手動操作が必要です(エラー回復を参照)。
- キューに入れられた
-
サービスは新しく追加されたもので、CRMは今のところ見ていません。
- 使用禁止
-
サービスが停止し、無効とマークされました。
15.4.2.ローカル・リソース・マネージャー
ローカルリソースマネージャ(pve-ha-lrm)は起動時にデーモンとして起動され、HAクラスタがクォーレートされ、クラスタ全体のロックが機能するまで待機します。
それは3つの状態です:
- エージェントロック待ち
-
LRMは排他的ロックを待ちます。これは、サービスが設定されていない場合、アイドル状態としても使用されます。
- アクティブ
-
LRMは排他的ロックを保持し、サービスが設定されています。
- エージェントロックの紛失
-
LRMがロックを失いました。これは障害が発生し、クォーラムが失われたことを意味します。
LRMはアクティブな状態になると、/etc/pve/ha/manager_statusにあるマネージャ・ステータス・ファイルを読み込んで、所有するサービスに対して実行するコマンドを決定します。 各コマンドに対してワーカーが起動され、これらのワーカーは並列に実行され、デフォルトでは最大4つまでに制限されています。このデフォルト設定は、データセンター設定キーmax_worker で変更することができます。 ワーカープロセスは終了すると収集され、その結果は CRM のために保存されます。
|
|
最大同時作業者数調整のヒント デフォルトの最大同時ワーカー数 4 は、特定の設定には適さない場合があります。例えば、4つのライブマイグレーションが同時に発生すると、低速なネットワークや大きな(メモリの)サービスではネットワークが混雑する可能性があります。また、最悪の場合、max_workerの値を下げてでも、輻輳が最小になるようにしてください。逆に、特にパワフルでハイエンドなセットアップを使用している場合は、max_workerの値を大きくすることもできます。 |
CRM が要求する各コマンドは UID で一意に識別できます。ワーカーが終了すると、その結果は処理され、LRM ステータスファイル/etc/pve/nodes/<nodename>/lrm_status に書き込まれます。そこで CRM はそれを収集し、コマンドの出力に応じたステートマシンを動作させることができます。
通常、CRM と LRM 間の各サービスのアクションは常に同期しています。 これは、CRM が UID で一意にマークされた状態を要求し、LRM がそのアクションを1 回実行し、同じ UID で識別可能な結果を書き戻すことを意味します。この動作は、LRM が古いコマンドを実行しないようにするために必要です。 この動作の唯一の例外は、停止コマンドとエラーコマンドです。
|
|
ログを読む HA Stackはすべての動作をログに記録します。これはクラスタ内で何が、そしてなぜ何かが起こるのかを理解するのに役立ちます。ここでは、LRMとCRMの両方のデーモンが何を行ったかを確認することが重要です。サービスが存在するノード上ではjournalctl -u pve-ha-lrm を、現在のマスタであるノード上では pve-ha-crm に対して同じコマンドを使用することができます。 |
15.4.3.クラスタリソースマネージャ
クラスタリソースマネージャ(pve-ha-crm)は各ノード上で起動し、一度に1つのノードのみが保持できるマネージャロックを待ちます。 マネージャーロックの取得に成功したノードはCRMマスターに昇格します。
それは3つの状態です:
- エージェントロック待ち
-
CRMは排他的ロックを待ちます。サービスが設定されていない場合、これはアイドル状態としても使用されます。
- アクティブ
-
CRMは排他的なロックを保持し、サービスが設定されています。
- エージェントロックの紛失
-
CRMのロックが失われました。これは障害が発生し、クォーラムが失われたことを意味します。
その主なタスクは、高可用性に設定されたサービスを管理し、常に要求された状態を強制しようとすることです。例えば、要求された状態のサービスが開始されている場合、そのサービスがまだ実行されていなければ開始されます。このように、CRM は LRM が実行する必要のあるアクションを指示します。
ノードがクラスタ・クォーラムから離脱すると、そのノードの状態は不明(unknown)に変更されます。 その後、現在のCRMが故障したノードのロックを確保できれば、サービスは盗まれて別のノードで再起動されます。
クラスタ・メンバがクラスタ・クォーラムから外れたと判断すると、LRMは新しいクォーラムが形成されるのを待ちます。クォーラムがない限り、ノードはウォッチドッグをリセットできません。これにより、ウォッチドッグがタイムアウトした後(これは60秒後に発生します)、再起動がトリガされます。
15.5.HAシミュレータ
デフォルトでは、シミュレータは6つのVMを持つ実際の3ノードクラスタの動作を監視し、テストすることができます。また、VMやコンテナを追加したり削除したりすることもできます。
実際のクラスタをセットアップしたり設定したりする必要はありません。
aptでインストールします:
apt install pve-ha-simulator
他のProxmox VEパッケージがないDebianベースのシステムにもインストールできます。 その場合、パッケージをダウンロードし、インストールするシステムにコピーする必要があります。 ローカルファイルシステムから apt を使ってパッケージをインストールすると、必要な依存関係も解決されます。
リモートマシンでシミュレータを起動するには、現在のシステムへの X11 リダイレクトが必要です。
Linuxマシンであれば、これを使うことができます:
ssh root@<IPofPVE>-Y。
Windowsではmobaxtermで動作します。
シミュレータがインストールされた既存の Proxmox VE に接続するか、ローカルの Debian ベースのシステムに手動でインストールした後、以下のようにして試すことができます。
まず、シミュレータが現在の状態を保存し、デフォルトの設定を書き込む作業ディレクトリを作成する必要があります:
mkdir 作業中
そして、作成したディレクトリをpve-ha-simulatorにパラメータとして渡すだけです:
pve-ha-シミュレータ作業/
その後、シミュレーションしたHAサービスを開始、停止、移行したり、ノード障害時に何が起こるかをチェックすることもできます。
15.6.コンフィギュレーション
HAスタックはProxmox VE APIにうまく統合されています。例えば、ha-managerコマンドラインインタフェースや Proxmox VE ウェブインタフェースで HA を設定することができます。自動化ツールはAPIを直接使用できます。
すべてのHA設定ファイルは/etc/pve/ha/内にあるため、クラスタノードに自動的に配布され、すべてのノードが同じHA設定を共有します。
15.6.1.リソース
<type>: <name> <property> <value> ...
リソースIDは、リソースの種類から始まり、コロンで区切られたリソース固有の名前が続きます。これはすべてのha-managerコマンドでリソースを一意に識別するために使用されます(例:vm:100またはct:101)。次の行は追加のプロパティです:
- コメント:<文字列
-
説明
- group:<文字列
-
HAグループの識別子。
- max_relocate:<整数> (0 - N)(デフォルト = 1)
-
サービスの起動に失敗した場合のサービス再配置の最大試行回数。
- max_restart:<整数> (0 - N)(デフォルト = 1)
-
起動に失敗したノードでサービスを再起動する最大回数。
- state:<無効 | 有効 | 無視 | 開始 | 停止>(デフォルト = 開始)
-
要求されたリソースの状態。CRMはこの状態を読み取り、それに従って動作します。enabledは単にstartedの別名であることに注意してください。
- 開始
-
CRM がリソースの起動を試みます.起動に成功すると,サービス状態はstartedに設定されます.ノードに障害が発生した場合,または起動に失敗した場合,リソースの復旧を試みます. すべて失敗した場合,サービス状態はエラーに設定されます.
- 停止
-
CRMはリソースを停止状態に維持しようとしますが、ノード障害時にはリソースの再配置を試みます。
- 使用禁止
-
CRMはリソースを停止状態にしようとしますが、ノードの障害時にリソースを再配置しようとはしません。この状態の主な目的はエラーリカバリーで、リソースをエラー状態から移動させる唯一の方法だからです。
- 無視
-
リソースはマネージャーステータスから削除されるため、CRMとLRMはもうリソースに触れることはありません。このリソースに影響する全ての{pve}APIコールが実行されます。このリソースに影響を与えるAPIコールは、HAスタックを直接バイパスして実行されます。ソースがこの状態にある間、CRMコマンドは破棄されます。リソースはノード障害時に再配置されません。
以下は、1つのVMと1つのコンテナを使った実際の例です。ご覧の通り、これらのファイルの構文は実にシンプルなので、お気に入りのエディタを使ってファイルを読んだり編集したりすることも可能です:
vm: 501 state started max_relocate 2 ct: 102 # 注意: 全てデフォルト設定を使用してください。
# ha-manager add vm:501 --state started --max_relocate 2 # ha-manager add ct:102
15.6.2.グループ
group: <group> nodes <node_list> <property> <value> ...
- コメント:<文字列
-
説明
- nodes:<node>[:<pri>]{,<node>[:<pri>]}*.
-
クラスタノードメンバーのリストで、各ノードに優先順位を与えることができます。グループにバインドされたリソースは、最も高い優先度を持つ利用可能なノード上で実行されます。最も優先度の高いクラスのノードが多い場合、サービスはそれらのノードに分散されます。優先順位は相対的な意味しか持ちません。
- nofailback:<boolean>(デフォルト = 0)
-
CRM は最も優先度の高いノードでサービスを実行しようとします。より優先度の高いノードがオンラインになると、CRM はサービスをそのノードに移行します。nofailback を有効にすると、この動作が防止されます。
- restricted:<ブール値>(デフォルト = 0)
-
制限付きグループにバインドされたリソースは、グループによって定義されたノード上でのみ実行できます。グループ・ノードのメンバがオンラインでない場合、リソースは停止状態になります。非制限グループのリソースは、グループ・メンバがすべてオフラインの場合、どのクラスタ・ノードでも実行できますが、グループ・メンバがオンラインになるとすぐに元に戻ります。メンバが1人だけの制限なしグループを使用して、優先ノードの動作を実装できます。
# ha-manager groupadd prefer_node1 --nodes node1
大規模なクラスタでは、より詳細なフェイルオーバー動作を定義することが理にかなっています。例えば、可能であればnode1で一連のサービスを実行したいとします。node1が利用できない場合は、node2とnode3で均等にサービスを実行します。これらのノードにも障害が発生した場合は、node4でサービスを実行する必要があります。これを実現するには、ノードリストを次のように設定します:
# ha-manager groupadd mygroup1 -nodes "node1:2,node2:1,node3:1,node4"
もう1つのユースケースは、リソースが特定のノード(例えばnode1とnode2)でのみ利用可能な他のリソースを使用する場合です。HAマネージャが他のノードを使用しないようにする必要があるため、当該ノードで制限グループを作成する必要があります:
# ha-manager groupadd mygroup2 -nodes "node1,node2" -restricted
上記のコマンドにより、以下のグループ設定ファイルが作成されました:
group: prefer_node1 nodes node1 group: mygroup1 nodes node2:1,node4,node1:2,node3:1 group: mygroup2 nodes node2,node1 restricted 1
nofailbackオプションは、管理タスク中に不要なリソースの移動を回避するのに便利です。例えば、あるサービスをグループ内で最も高い優先度を持たないノードに移行する必要がある場合、nofailbackオプションを設定することで、このサービスを即座に戻さないようにHAマネージャに指示する必要があります。
もう一つのシナリオは、あるサービスがフェンスにかけられ、別のノードにリカバリされた場合です。管理者はフェンスで保護されたノードを修復して再びオンラインにし、障害の原因を調査して再び安定して動作するかどうかを確認しようとします。nofailbackフラグを設定することで、復旧したサービスがそのままフェンスで保護されたノードに戻ることを防ぎます。
15.7.フェンシング
ノードの障害時には、フェンシングによって、誤ったノードがオフラインであることが保証されます。これは、リソースが別のノードで復旧したときに2回実行されないようにするために必要です。これがないと、別のノードでリソースを回復できないため、これは本当に重要なタスクです。
もしノードがフェンスされなければ、共有リソースにアクセスできる可能性がある未知の状態になります。これは本当に危険です!ストレージ以外の全てのネットワークが壊れたとします。パブリック・ネットワークからはアクセスできませんが、VMはまだ稼働しており、共有ストレージに書き込んでいます。
このVMを別のノードで起動すると、両方のノードから書き込みを行うため、危険な競合状態が発生します。このような状態になると、VMのデータがすべて破壊され、VM全体が使用不能になる可能性があります。また、ストレージが複数マウントから保護されている場合、リカバリに失敗する可能性もあります。
15.7.1.Proxmox VEフェンスの仕組み
例えば、ノードからの電力を遮断したり、通信を完全に無効にするフェンス・デバイスなどです。これらは非常に高価なことが多く、システムにさらに重要なコンポーネントを追加することになります。
そのため、外部ハードウェアを追加する必要のない、よりシンプルなフェンシング方法を統合したいと考えました。これにはウォッチドッグ・タイマーを使用します。
-
外部電源スイッチ
-
スイッチ上のネットワーク・トラフィックを完全に無効にすることで、ノードを隔離します。
-
ウォッチドッグタイマーを使用したセルフフェンシング
ウォッチドッグ・タイマーは、マイクロコントローラーが登場した当初から、重要で信頼性の高いシステムで広く使用されてきました。ウォッチドッグ・タイマは、多くの場合、コンピュータの誤動作を検出して回復するために使用される、シンプルで独立した集積回路です。
通常動作中、ha-managerは定期的にウォッチドッグ・タイマーをリセットし、タイマーが経過しないようにします。ハードウェア障害またはプログラムエラーにより、コンピューターがウォッチドッグのリセットに失敗した場合、タイマーは経過し、サーバー全体のリセット(再起動)がトリガーされます。
最近のサーバー・マザーボードには、このようなハードウェア・ウォッチドッグが搭載されていることがよくありますが、これらを設定する必要があります。ウォッチドッグが利用できない、または設定されていない場合、Linuxカーネルのソフトドッグにフォールバックします。それでも信頼性はありますが、サーバーのハードウェアから独立していないため、ハードウェア・ウォッチドッグよりも信頼性は低くなります。
15.7.2.ハードウェア・ウォッチドッグの設定
デフォルトでは、すべてのハードウェア・ウォッチドッグ・モジュールはセキュリティ上の理由でブロックされています。正しく初期化されないと、装填された銃のようになります。ハードウェア・ウォッチドッグを有効にするには、例えば/etc/default/pve-ha-manager でロードするモジュールを指定する必要があります:
# ウォッチドッグモジュールの選択(デフォルトはソフトドッグ) WATCHDOG_MODULE=iTCO_wdt
このコンフィギュレーションはwatchdog-muxサービスによって読み取られ、起動時に指定されたモジュールがロードされます。
15.7.3.フェンスされたサービスの回復
ノードに障害が発生し、そのフェンシングが成功した後、CRMは障害が発生したノードからオンライン状態のノードにサービスを移動しようとします。
サービスが回復されるノードの選択は、リソースグループの設定、現在アクティブなノードのリスト、およびそれぞれのアクティブなサービス数に影響されます。
CRMはまず、(グループ設定から)ユーザーが選択したノードと利用可能なノードの交点からセットを構築します。次に、最も優先順位の高いノードのサブセットを選択し、最後に最もアクティブなサービス数が少ないノードを選択します。これにより、ノードが過負荷になる可能性を最小限に抑えます。
|
|
ノード障害が発生すると、CRMは残りのノードにサービスを分散します。これにより、これらのノードのサービス数が増加し、特に小規模なクラスタでは高負荷になる可能性があります。このような最悪のケースに対応できるようにクラスタを設計してください。 |
15.8.スタート失敗ポリシー
起動失敗ポリシーは、あるノードでサービスが1回以上起動に失敗した場合に有効になります。このポリシーの目的は、特定のノードで共有リソースが一時的に利用できなくなるのを回避することです。例えば、共有ストレージがネットワークの問題などで利用できないが、他のノードではまだ利用できる場合、リロケート・ポリシーによってサービスを開始することができます。
各リソースに固有の設定を行うことができる2つのサービス開始回復ポリシー設定があります。
- 最大再起動
-
実際のノードで障害が発生したサービスの再起動を試行する最大回数。 デフォルトは1回です。
- max_relocate
-
サービスを別のノードに再配置する最大試行回数。 実際のノードでmax_restart値を超えた場合にのみ再配置が行われます。デフォルトは1です。
|
|
再配置カウントの状態は、サービスの起動が少なくとも1回成功した場合にのみゼロにリセットされます。つまり、エラーが修正されずにサービスが再スタートした場合、再スタートポリシーだけが繰り返されます。 |
15.9.エラーリカバリー
すべての試行の後、サービスの状態を回復できなかった場合、エラー状態になります。この状態では、サービスはもうHAスタックに接続されません。唯一の方法は、サービスを無効にすることです:
# ha-manager set vm:100 --state disabled
これはウェブ・インターフェイスでも可能です。
エラー状態から回復するには、次のようにしてください:
-
リソースを安全で一貫性のある状態に戻す(例:サービスを停止できなかった場合、そのプロセスを終了させる
-
リソースを無効にしてエラーフラグを外します。
-
不具合の原因となったエラーを修正
-
すべてのエラーを修正した後、サービスの再開をリクエストすることができます。
15.10.パッケージの更新
ha-managerをアップデートする際は、様々な理由から一度に行わず、1ノードずつ行ってください。第一に、私たちはソフトウェアを徹底的にテストしていますが、あなたの特定のセットアップに影響するバグを完全に排除することはできません。 ノードを1つずつ更新し、更新終了後に各ノードの機能をチェックすることは、最終的な問題から回復するのに役立ちます。
また、Proxmox VE HAスタックは、クラスタとローカルリソースマネージャの間でアクションを実行するためにリクエストアクノリッジプロトコルを使用します。再起動のために、LRMはCRMにすべてのサービスをフリーズする要求を行います。これにより、LRMが再起動する短時間の間、クラスタがこれらのサービスに触れることを防ぎます。 その後、LRMは再起動中にウォッチドッグを安全に閉じることができます。 このような再起動は通常パッケージの更新中に発生し、すでに述べたように、LRMからの要求を確認するためにアクティブなマスターCRMが必要です。そうでない場合、更新処理に時間がかかりすぎ、最悪の場合、ウォッチドッグがリセッ トされる可能性があります。
15.11.ノードのメンテナンス
ハードウェアの交換や新しいカーネルイメージのインストールなど、ノードのメンテナンスが必要になることがあります。これはHAスタックが使用されている間にも当てはまります。
HAスタックは主に2種類のメンテナンスをサポートします:
-
一般的なシャットダウンまたはリブートについては、シャットダウンポリシーを参照してください。
-
シャットダウンや再起動を必要としないメンテナンス、または1回の再起動だけで自動的にオフにならないメンテナンスの場合、手動メンテナンスモードを有効にすることができます。
15.11.1.メンテナンス・モード
手動メンテナンスモードを使用すると、ノードをHA動作不可としてマークし、HAによって管理されるすべてのサービスが他のノードに移行するように促すことができます。
これらの移行のターゲットノードは、現在利用可能な他のノードから選択され、HAグループ構成と設定されたクラスタリソーススケジューラ(CRS)モードによって決定されます。 各移行の間、元のノードはHAマネージャの状態に記録されるため、メンテナンスモードが無効になってノードがオンラインに戻ると、サービスは再び自動的に移行されます。
現在、ha-manager CLIツールを使用してメンテナンスモードを有効または無効にすることができます。
# ha-manager crm-command node-maintenance enable NODENAME
これはCRMコマンドをキューに入れ、マネージャがこのコマンドを処理すると、マネージャのステータスにメンテナンスモードのリクエストが記録されます。これにより、メンテナンスモードにしたいノードだけでなく、どのノードでもコマンドを送信することができます。
各ノードの LRM がコマンドを拾うと、それ自身を利用不可としてマークしますが、すべてのマイグレーションコマンドを処理します。つまり、LRM のセルフフェンシング・ウォッチドッグは、すべてのアクティブなサービスが移動し、すべての実行中のワーカーが終了するまでアクティブなままです。
LRMのステータスがメンテナンスモードと表示されるのは、LRMが要求されたステータスを選択した時点であり、全てのサービスが移動した時点ではないことに注意してください。 今のところ、ノード上にアクティブなHAサービスが残っていないか確認するか、次のようなログ行を監視することができます:pve-ha-lrm[PID]: watchdog closed (disabled)ノードがいつメンテナンスモードへの移行を完了したかを知るには、次のようなログ行を監視してください。
|
|
手動メンテナンスモードはノードのリブート時には自動的に削除されませんが、ha-managerCLIを使用して手動で解除するか、manager-statusを手動でクリアした場合にのみ削除されます。 |
# ha-manager crm-command node-maintenance disable NODENAME
上記のha-managerCLI コマンドを使用すると、CRM コマンドがキューに入れられ、それが処理されると、それぞれの LRM ノードが再び使用可能になります。
メンテナンスモードを解除すると、メンテナンスモードを有効にしたときにノード上にあったサービスはすべて元に戻ります。
15.11.2.シャットダウン・ポリシー
以下に、ノードのシャットダウンに関するさまざまなHAポリシーの説明を示します。現在のところ、後方互換性のために条件付きがデフォルトになっています。 ユーザによっては、Migrateの方がより期待通りの動作をすると感じるかもしれません。
シャットダウン・ポリシーは、WebUI(Datacenter→Options→HA Settings)で設定するか、datacenter.cfgで直接設定することができます:
ha: shutdown_policy=<値>です。
移行
ローカルリソースマネージャ(LRM)がシャットダウン要求を受け取り、このポリシーが有効になると、現在のHAマネージャが利用できないようにマークします。 これにより、現在このノードに配置されているすべてのHAサービスがマイグレーションされます。 LRMは、実行中のサービスがすべて移動されるまで、シャットダウン処理を遅らせようとします。しかし、これは実行中のサービスが別のノードに移行できることを想定しています。つまり、ハードウェア・パススルーを使用するなどして、サービスがローカルにバインドされていない必要があります。グループメンバーでないノードは、グループメンバーが利用できない場合、実行可能なターゲットとみなされるため、一部のノードだけが選択されているHAグループを利用する場合でも、このポリシーを使用することができます。しかし,グループを制限ノードとしてマークすることで,HAマネージャは選択されたノードセット以外ではサービスを実行できないことを伝えます.これらのノードがすべて利用できない場合、手動で介入するまでシャットダウンは停止します。シャットダウンされたノードが再びオンラインに戻ると、その間にまだ手動で移行されていなければ、以前に置き換えられたサービスは元に戻ります。
|
|
ウォッチドッグは、シャットダウン時の移行プロセス中もアクティブです。 ノードがクォーラムを失った場合、フェンスされ、サービスは回復します。 |
現在メンテナンス中のノードで(以前に停止した)サービスを開始する場合、サービスを移動して別の利用可能なノードで開始できるように、そのノードをフェンスで囲む必要があります。
フェイルオーバー
このモードでは、現在のノードがすぐにオンラインにならない場合、すべてのサービスが停止されますが、リカバリも行われます。一度に多くのノードがパワーオフされるとVMのライブマイグレーションが不可能になる可能性がありますが、それでもHAサービスを確実にリカバリしてできるだけ早く再スタートさせたい場合など、クラスタ規模でメンテナンスを行う場合に便利です。
条件付き
条件付きシャットダウンポリシーは、シャットダウンまたは再起動が要求されたかどうかを自動的に検出し、それに応じて動作を変更します。
シャットダウン(電源オフ)は通常、ノードがしばらくの間停止する予定がある場合に実行されます。この場合、LRMはすべての管理サービスを停止します。これは、その後、他のノードがこれらのサービスを引き継ぐことを意味します。
|
|
最近のハードウェアは大量のメモリ(RAM)を搭載しています。そのため、すべてのリソースを停止してから再起動し、すべてのRAMのオンラインマイグレーションを回避します。オンライン・マイグレーションを使用したい場合は、ノードをシャットダウンする前に手動でそれを起動する必要があります。 |
ノードの再起動はrebootコマンドで行います。これは通常、新しいカーネルをインストールした後に行われます。これは「シャットダウン」とは異なることに注意してください。
LRM は CRM に再起動を指示し、CRM がすべてのリソースをフリーズ状態にするまで待ちます(Package Updates と同じメカニズム)。これにより、これらのリソースが他のノードに移動することを防ぎます。代わりに、CRM は同じノード上で再起動後にリソースを起動します。
15.12.クラスタリソーススケジューリング
クラスタリソーススケジューラ(CRS)モードは、シャットダウンポリシーによってトリガされる移行と同様に、サービスの復旧のためにHAがノードを選択する方法を制御します。デフォルトのモードはbasicですが、Web UI(Datacenter→Options)、またはdatacenter.cfgで直接変更できます:
crs: ha=静的
復旧や移行が必要な各サービスに対して、スケジューラはそのサービスのグループ内で最も優先順位の高いノードの中から最適なノードを繰り返し選択します。
|
|
将来的には、(静的および動的な)負荷分散のモードを追加する予定です。 |
15.12.2.静的負荷スケジューラ
|
|
静的モードはまだ技術プレビューです。 |
各ノードのHAサービスからの静的な利用情報は、回復ノードを選択するために使用されます。HAで管理されていないサービスの利用は現在のところ考慮されていません。
この選択のために、各ノードは、関連するゲスト構成からのCPUとメモリ使用量を使用して、そのノード上でサービスがすでに実行されているかのように順番に検討されます。次に、このような各選択肢について、すべてのノードの CPU とメモリの使用量が考慮されます。CPUとメモリの両方について、ノード間で最も高い使用量(理想的にはどのノードもオーバーコミットされるべきではないため、より重み付けされます)と、すべてのノードの平均使用量(よりコミット率の高いノードがすでにある場合に区別できるようにするため)が考慮されます。
|
|
サービスの数が多ければ多いほど、可能な組み合わせも増えるため、数千ものHAマネージドサービスをお持ちの場合は、現在のところ使用することはお勧めできません。 |
15.12.3.CRSスケジューリングポイント
CRSアルゴリズムはラウンドごとにすべてのサービスに適用されるわけではありません。そのため、Proxmox VE HAマネージャはサービスを現在のノードに維持することを推奨しています。
CRSは現在、次のようなスケジューリングポイントで使用されています:
-
サービス復旧(常時アクティブ)。アクティブなHAサービスを持つノードが故障した場合、そのノードの全てのサービスを他のノードに復旧させる必要があります。CRSアルゴリズムは、残りのノードにバランスよく復旧させるために使用されます。
-
HAグループ設定の変更(常にアクティブ)あるノードがグループから削除されたり、そのノードの優先度が下がったりすると、HAスタックはCRSアルゴリズムを使って、適応された優先度制約に合う、そのグループ内のHAサービスの新しいターゲットノードを見つけます。
-
HAサービス停止→開始移行(オプトイン)。停止しているサービスを開始するように要求することは、CRSアルゴリズムに従って最適なノードをチェックする良い機会です。これは、データセンター設定でha-rebalance-on-startCRS オプションを設定することで有効にできます。このオプションはWeb UIのDatacenter→Options→Cluster Resource Schedulingでも変更できます。
16.バックアップとリストア
Proxmox VEは、各ストレージおよび各ゲストシステムタイプの機能を使用し、完全に統合されたソリューションを提供します。これにより、システム管理者はバックアップの一貫性とゲストシステムのダウンタイムをモードオプションで微調整することができます。
Proxmox VEのバックアップは、常にVM/CT設定とすべてのデータを含むフルバックアップです。 バックアップはGUIまたはvzdumpコマンドラインツールから開始できます。
バックアップを実行する前に、バックアップストレージを定義する必要があります。ストレージを追加する方法については、ストレージのドキュメントを参照してください。Proxmox Backup Serverストレージの場合、バックアップは重複排除されたチャンクとメタデータとして保存され、ファイルレベルのストレージの場合、バックアップは通常のファイルとして保存されます。Proxmox Backup Serverは高度な機能を備えているため、専用ホストで使用することをお勧めします。NFSサーバを使用するのも良い方法です。どちらの場合も、バックアップをテープドライブに保存し、オフサイトアーカイブにすることができます。
バックアップジョブは、選択可能なノードとゲストシステムに対して、特定の日時に自動的に実行されるようにスケジュールできます。詳細はバックアップジョブセクションを参照してください。
16.1.バックアップモード
一貫性(オプションモード)を提供するには、ゲストのタイプによっていくつかの方法があります。
- 停止モード
-
このモードでは、VMの動作が短時間停止する代わりに、バックアップの一貫性が最も高くなります。このモードは、VMの整然としたシャットダウンを実行し、バックグラウンドでQEMUプロセスを実行してVMデータをバックアップします。バックアップの開始後、VMはフル稼働モードに移行します。ライブバックアップ機能を使用することで、一貫性が保証されます。
- サスペンドモード
-
このモードは互換性のために提供されており、スナップショット・モードを呼び出す前にVMを一時停止します。VMをサスペンドするとダウンタイムが長くなり、データの一貫性が向上するとは限らないため、スナップショット・モードの使用をお勧めします。
- スナップショットモード
-
このモードは、わずかな不整合リスクを伴いますが、操作のダウンタイムを最小限に抑えます。このモードはProxmox VEのライブバックアップを実行することで機能し、VMの実行中にデータブロックがコピーされます。ゲストエージェントが有効(エージェント: 1) で実行中の場合、guest-fsfreeze-freezeとguest-fsfreeze-thaw を呼び出して整合性を向上させます。
QemuServer用Proxmox VEライブバックアップの技術概要は、こちらをご覧ください。
|
|
Proxmox VEライブバックアップは、あらゆるストレージタイプでスナップショットのようなセマンティクスを提供します。基礎となるストレージがスナップショットをサポートしている必要はありません。また、バックアップはバックグラウンドのQEMUプロセスで実行されるため、QEMUがVMディスクを読み込んでいる間、停止したVMは短時間実行されているように見えますが、VM自体は起動せず、ディスクが読み込まれるだけであることに注意してください。 |
- 停止モード
-
バックアップの間、コンテナを停止します。これにより、ダウンタイムが非常に長くなる可能性があります。
- サスペンドモード
-
このモードでは、rsync を使用してコンテナのデータを一時的な場所にコピーします(オプション--tmpdir を参照)。その後、コンテナが一時停止され、2 回目の rsync で変更されたファイルがコピーされます。その後、コンテナが再び起動(再開)されます。この結果、ダウンタイムは最小限になりますが、コンテナのコピーを保持するための追加の領域が必要になります。
コンテナがローカル・ファイル・システム上にあり、バックアップのターゲット・ストレージが NFS/CIFS サーバである場合、-tmpdirもローカル・ファイル・システム上に存在するように設定する必要があります。 バックアップ・ストレージがNFSサーバの場合、サスペンド・モードでACLを使用してローカル・コンテナをバックアップする場合にも、ローカルのtmpdirを使用する必要があります。
- スナップショットモード
-
このモードでは、基礎となるストレージのスナップショット機能を使用します。まず、データの一貫性を確保するためにコンテナが一時停止されます。 コンテナのボリュームの一時スナップショットが作成され、スナップショットの内容がtarファイルにアーカイブされます。最後に、一時スナップショットは再び削除されます。
|
|
スナップショット・モードでは、すべてのバックアップ・ボリュームがスナップショットをサポー トするストレージ上にある必要があります。backup=noマウントポイントオプションを使用すると、個々のボリュームをバックアップ(およびこの要件)から除外できます。 |
|
|
デフォルトでは、ルート ディスク マウント ポイント以外の追加のマウント ポイントはバッ クアップに含まれません。ボリューム マウント ポイントについては、バックアップオプションを設定して、マウント ポイントをバックアップに含めることができます。デバイスマウントとバインドマウントは、コンテンツがProxmox VEストレージ ライブラリの外部で管理されるため、バックアップされることはありません。 |
16.1.1.VM Backup Fleecing
VMのバックアップが開始されると、QEMUはブロック層に「copy-before-write」フィルタをインストールします。このフィルタは、新しいゲストの書き込み時に、バックアップにまだ必要な古いデータが最初にバックアップターゲットに送信されることを保証します。ゲストの書き込みはこの操作が終了するまでブロックされるため、まだバックアップされていないセクタへのゲストの IO はバックアップターゲットの速度によって制限されます。
バックアップフリークでは、そのような古いデータはバックアップターゲットに直接送信されるのではなく、フリークイメージにキャッシュされます。これはゲストのIOパフォーマンスを助け、特定のシナリオではハングを防ぐこともできますが、その代償としてより多くのストレージ容量が必要になります。
ストレージlocal-lvm上に作成されたフリーキング・イメージを使用してVM123のバックアップを手動で開始するには、以下を実行します。
vzdump 123 --fleecing enabled=1,storage=local-lvm。
いつものように、設定オプションを使用して、特定のバックアップジョブ、またはノード全体のフォールバックとしてオプションを設定できます。UIでは、fleecingはバックアップジョブの編集時にAdvancedタブで設定できます。
フ リークするストレージは、シンプロビジョニングとディスカードサポートを備えた高速なローカル ストレージであるべきです。例えば、LVM-thin、RBD、ストレージ構成にスパース1を持つZFS、多くのファイルベースのストレージです。理想的には、fleecingストレージは専用ストレージで、フルに動作しても他のゲストには影響せず、バックアップに失敗するだけです。バックアップされたfleecingイメージの一部は、スペース使用量を低く抑えるために破棄されます。
破棄をサポートしないファイルベースのストレージ(例えば、バージョン4.2以前のNFS)の場合、ストレージの設定でpreallocationをoffに設定する必要があります。qcow2(ストレージがサポートしている場合、fleecingイメージのフォーマットとして自動的に使用されます)と組み合わせることで、イメージの既に割り当てられた部分を後で再利用できるという利点があり、これでもかなりのスペースを節約できます。
|
|
シンプリープロビジョニングされていないストレージ、例えばスパースオプションのないLVMやZFSでは、オリジナルディスクのフルサイズを前もってフ リーシングイメージ用に予約しておく必要があります。シンプリープロビジョニングされたストレージでは、バックアップが別のディスクでビジーになっている間にゲストがディスク全体を再書き込みした場合にのみ、フリーキングイメージはオリジナルイメージと同じサイズまで成長できます。 |
16.1.2.CT変化検出モード
変更検出モードを設定すると、pxar アーカイブのエンコード形式が定義され、Proxmox Backup Server をターゲットとしたコンテナバックアップで変更されたファイルや変更されていないファイルがどのように処理されるかが定義されます。
変更検出モードオプションは、ジョブの編集中にAdvancedタブで個々のバックアップジョブに対して設定することができます。さらに、このオプションは設定オプションを介してノード全体のフォールバックとして設定することもできます。
3つの変化検出モードがあります:
| モード | 説明 |
|---|---|
デフォルト |
pxarフォーマットバージョン1を使用して、すべてのファイルを読み込み、単一のアーカイブにエンコードします。 |
データ |
すべてのファイルを読み込み、エンコードしますが、pxarフォーマットバージョン2を使用して、データとメタデータを別々のストリームに分割します。 |
メタデータ |
ストリームを分割し、Dataのようなアーカイブ・フォーマット・バージョン2を使用しますが、変更されていないファイルを検出するために以前のスナップショットのメタデータ・アーカイブ(存在する場合)を使用し、可能な限りディスクからファイルの内容を読み込まずにデータチャンクを再利用します。 |
変更検出モードのメタデータを使用してバックアップを実行するには、以下を実行します。
vzdump 123 --storage pbs-storage --pbs-change-detection-mode metadata
|
|
VMのバックアップやProxmox Backup Server以外のストレージバックエンドへのバックアップは、この設定の影響を受けません。 |
16.2.バックアップファイル名
vzdump の新しいバージョンでは、ゲストの種類とバックアップ時間がファイル名にエンコードされます。
vzdump-lxc-105-2009_10_09-11_04_43.tar
これにより、同じディレクトリに複数のバックアップを保存することができます。さまざまな保持オプションを使用して、保持するバックアップの数を制限できます。
16.3.バックアップファイル圧縮
lzo
[Lempel-Ziv-Oberhumer a lossless data compression algorithmhttps://en.wikipedia.org/wiki/Lempel-Ziv-Oberhumer]
,gzip
[gzip - based on DEFLATE algorithmhttps://en.wikipedia.org/wiki/Gzip]
orzstd
[Zstandard a lossless data compression algorithmhttps://en.wikipedia.org/wiki/Zstandard]
.
現在、Zstandard (zstd)はこれら3つのアルゴリズムの中で最速です。 マルチスレッドはlzoとgzipに対するzstdのもう一つの利点です。Lzo と gzip はより広く使われており、しばしばデフォルトでインストールされます。
pigz
[pigz - parallel implementation of gziphttps://zlib.net/pigz/]
をインストールすることで、gzip の代替となり、マルチスレッドによるパフォーマンスが向上します。pigz と zstd では、スレッド数/コア数を調整できます。以下の設定オプションを参照してください。
バックアップファイル名の拡張子から、どの圧縮アルゴリズムでバックアップが作成されたかを判断できます。
.zst |
Zstandard (zstd) 圧縮 |
.gz または .tgz |
gzip圧縮 |
.lzo |
エルゾ圧縮 |
バックアップファイル名が上記のファイル拡張子のいずれかで終わっていない場合、vzdumpによって圧縮されていません。
16.4.バックアップ暗号化
Proxmox Backup Serverストレージでは、オプションでバックアップのクライアント側暗号化を設定できます。
16.5.バックアップジョブ
手動でバックアップをトリガーする以外に、すべての仮想ゲストまたは選択した仮想ゲストをストレージにバックアップする定期的なジョブを設定することもできます。ジョブは UI のDatacenter→Backupで管理するか、/cluster/backupAPI エンドポイント経由で管理できます。どちらも、/etc/pve/jobs.cfg にジョブエントリを生成し、pveschedulerデーモンによって解析および実行されます。
ジョブは全てのクラスタノードまたは特定のノードに対して設定され、指定されたスケジュールに従って実行されます。スケジュールのフォーマットはsystemd のカレンダーイベントによく似ています。UI のScheduleフィールドは自由に編集することができ、ドロップダウンリストには開始点として使える例がいくつかあります。
ストレージやノードの設定より優先されるジョブ固有の保持オプションや、バックアップと一緒に保存される追加情報のメモのテンプレートを設定できます。
スケジュールされたバックアップは、スケジュールされた時間中にホストがオフラインであったり、pveschedulerが無効であったりすると実行を逃すため、遅れを取り戻すための動作を設定することが可能です。Repeat missedオプション(UIのAdvancedタブ、configのrepeat-missed)を有効にすると、見逃したジョブをできるだけ早く実行するようスケジューラに指示できます。
バックアップのパフォーマンスを調整するための設定がいくつかあります(そのうちのいくつかはUIのAdvancedタブで公開されています)。最も顕著なものは、IO帯域幅を制限するためのbwlimitです。さらに、ionice(BFQスケジューラ使用時)、パフォーマンス設定の一部として、max-workers(VMバックアップにのみ影響)、pbs-entries-max(コンテナバックアップにのみ影響)があります。詳細は設定オプションを参照してください。
16.6.バックアップの保持
prune-backupsオプションを使用すると、柔軟な方法で保持するバックアップを指定できます。
- keep-all <ブール値
-
すべてのバックアップを保持します。これがtrueの場合、他のオプションは設定できません。
- キープラスト <N
-
最後の<N>個のバックアップを保持します。
- 時間毎 <N
-
過去<N>時間のバックアップを保持します。1時間に複数のバックアップがある場合は、最新のものだけが保持されます。
- キープデイリー<N
-
過去<N>日間のバックアップを保持します。1日に複数のバックアップがある場合は、最新のものだけが保持されます。
- キープウィークリー<N
-
過去<N>週間分のバックアップを保持します。1週間に複数のバックアップがある場合は、最新のものだけが保持されます。
|
|
週は月曜日に始まり、日曜日に終わります。このソフトウェアはISOの週日付システムを使用し、年末の週を正しく処理します。 |
- キープマンスリー<N
-
過去<N>ヶ月分のバックアップを保持します。1つの月に複数のバックアップがある場合は、最新のものだけが保持されます。
- 年間 <N
-
過去<N>年間のバックアップを保持します。1年分のバックアップが複数ある場合は、最新のものだけが保存されます。
保持オプションは上記の順序で処理されます。各オプションは、その期間内のバックアップのみを対象とします。次のオプションでは、すでにカバーされているバックアップは処理されません。古いバックアップのみを考慮します。
使用したい保持オプションを、カンマ区切りのリストで指定します:
# vzdump 777 --prune-バックアップ keep-last=3,keep-daily=13,keep-yearly=9。
prune-backupsを直接vzdumpに渡すこともできますが、ストレージレベルで設定した方が賢明な場合が多く、ウェブインターフェイスから行うことができます。
|
|
古いmaxfilesオプションは非推奨で、keep-lastで置き換えるか、maxfilesが 0の場合はkeep-allで置き換えるべきです。 |
16.6.1.プルーン・シミュレーター
Proxmox Backup Serverドキュメントの剪定シミュレータを使用して、さまざまなバックアップスケジ ュールでさまざまな保持オプションの効果を調べることができます。
16.6.2.保持設定例
バックアップの頻度や古いバックアップの保持は、データの変更頻度や、特定の作業負荷における古い状態の重要性によって異なります。 バックアップが企業の文書アーカイブとして機能する場合、バックアップの保持期間に関する法的要件がある場合もあります。
この例では、バックアップを毎日行い、保存期間を10年とし、保存されるバックアップの間隔は徐々に長くなっていくと仮定します。
keep-last=3- たとえ毎日バックアップを取るとしても、管理者は大きなアップグレードの直前や直後に追加のバックアップを取りたいと思うかもしれません。keep-lastを設定することで、これが確実になります。
keep-hourlyが設定されていません - 毎日のバックアップには関係ありません。keep-lastを使用することで、余分な手動バックアップをカバーできます。
keep-daily=13- 少なくとも1日をカバーするkeep-lastと合わせて、少なくとも2週間分のバックアップを確保します。
keep-weekly=8- 少なくとも2ヶ月分の週次バックアップを確保します。
keep-monthly=11- 前回のkeep設定と合わせて、少なくとも1年間の月次バックアップを確保します。
keep-yearly=9- これは長期アーカイブ用です。前のオプションで現在の年をカバーしたので、残りの年についてはこれを9に設定し、合計で少なくとも10年間をカバーするようにします。
不必要に高いことが判明した場合は、いつでも期間を短縮できますが、一度削除されたバックアップを再作成することはできません。
16.7.バックアップ保護
バックアップを保護マークして削除できないようにすることができます。Proxmox VE の UI、CLI、または API を使用して保護されたバックアップを削除しようとすると、失敗します。ただし、これはProxmox VEによって強制されるものであり、ファイルシステムによって強制されるものではないため、バックアップファイル自体を手動で削除することは、基礎となるバックアップストレージへの書き込みアクセス権を持っている人であれば誰でも可能です。
|
|
保護されたバックアップはプルーニングによって無視され、保持設定にカウントされません。 |
ファイルシステムベースのストレージの場合、保護はセンチネルファイル<backup-name>.protectedを介して実装されます。Proxmox Backup Serverの場合は、サーバ側で処理されます(Proxmox Backup Serverバージョン2.1から使用可能)。
ストレージオプションのmax-protected-backupsを使用して、ゲストごとにストレージで許可される保護バックアップの数を制御します。無制限には-1 を使用します。デフォルトは、Datastore.Allocate権限を持つユーザは無制限、その他のユーザは5です。
16.8.バックアップノート
UIのEdit NotesボタンまたはストレージコンテンツAPIを使用して、バックアップにノートを追加できます。
バックアップジョブや手動バックアップのノートを動的に生成するためのテンプレートを指定することもできます。テンプレート文字列には、2つの中括弧で囲まれた変数を含めることができ、バックアップの実行時に対応する値に置き換えられます。
現在サポートされているのは
-
{{cluster}}もしあれば、クラスタ名。
-
{ゲスト名}}仮想ゲストの割り当て名
-
{バックアップが作成されるノードのホスト名。
-
{{vmid}}ゲストの数値 VMID です。
APIやCLIで指定する場合は、1行で指定し、改行とバックスラッシュはそれぞれリテラル ∕∕∕∕としてエスケープする必要があります。
16.9.リストア
バックアップアーカイブは、Proxmox VEのWeb GUIまたは以下のCLIツールからリストアできます:
- pct リストア
-
コンテナ復元ユーティリティ
- qmrestore
-
仮想マシン復元ユーティリティ
詳細は各マニュアルページをご覧ください。
16.9.1.帯域幅制限
1つまたは複数の大きなバックアップをリストアする場合、多くのリソース、特にバックアップストレージからの読み取りとターゲットストレージへの書き込みの両方にストレージ帯域幅が必要になることがあります。ストレージへのアクセスが混雑するため、他の仮想ゲストに悪影響を及ぼす可能性があります。
これを回避するには、バックアップジョブに帯域幅制限を設定します。Proxmox VEはリストアとアーカイブの2種類の制限を実装しています:
-
リストアごとの制限: バックアップアーカイブからの読み取りの最大帯域幅を示します。
-
ストレージごとの書き込み制限:特定のストレージへの書き込みに使用される最大帯域幅を示します。
読み込み制限は書き込み制限に間接的に影響します。ジョブごとの上限が小さいと、ストレージごとの上限が大きくても上書きされます。より大きなジョブごとの制限は、影響を受けるストレージに 'Data.Allocate' パーミッションがある場合にのみ、ストレージごとの制限を上書きします。
リストアCLIコマンドで '--bwlimit <integer>` オプションを使用すると、リストアジョブ固有の帯域幅制限を設定できます。KiB/sが制限の単位として使用されます。つまり、`10240'を渡すと、バックアップの読み取り速度が10MiB/sに制限され、実行中の仮想ゲストが残りのストレージ帯域幅を使用できるようになります。
|
|
bwlimitパラメータに '0` を使用すると、特定のリストアジョブのすべての制限を無効にできます。これは非常に重要な仮想ゲストを可能な限り速くリストアする必要がある場合に役立ちます。(ストレージの `Data.Allocate' パーミッションが必要です) |
ほとんどの場合、ストレージの一般的に利用可能な帯域幅は時間の経過とともに変化しません。そのため、設定済みのストレージごとにデフォルトの帯域幅制限を設定できるようにしました:
# pvesm set STORAGEID --bwlimit restore=KIBs
16.9.2.ライブリストア
大きなバックアップのリストアには長い時間がかかり、その間にゲストが利用できなくなることがあります。Proxmox Backup Server上に保存されたVMバックアップの場合、ライブリストアオプションを使用することで、この待ち時間を短縮できます。
GUIのチェックボックスまたはqmrestoreの -live-restore引数のいずれかを使用してライブ・リストアを有効にすると、リストアが開始されると同時にVMが起動します。データはバックグラウンドでコピーされ、VMがアクティブにアクセスしているチャンクが優先されます。
なお、これには2つの注意点があります:
-
ライブ・リストア中は、データをバックアップ・サーバーからロードする必要があるため、VMは制限されたディスク・リード速度で動作します(ただし、一度ロードされると、宛先ストレージですぐに利用できるため、データに2回アクセスしてもペナルティが発生するのは最初の1回だけです)。書き込み速度はほとんど影響を受けません。
-
つまり、すべてのデータがバックアップからコピーされていない可能性があり、失敗したリストア操作中に書き込まれたデータを保持できない可能性が高いのです。
この動作モードは、ウェブ・サーバーなど、初期動作に必要なデータ量が少ない大規模なVMに特に有効です。OSと必要なサービスが開始されると、VMは稼働し、バックグラウンド・タスクはあまり使用されないデータのコピーを続けます。
16.9.3.単一ファイルの復元
ストレージGUIの[バックアップ]タブにある[ファイル復元]ボタンを使用すると、バッ クアップに含まれるデータ上でファイルブラウザを直接開くことができます。この機能は Proxmox Backup Server 上のバックアップでのみ使用できます。
コンテナの場合、ファイルツリーの最初のレイヤには、含まれるすべてのpxarアーカイブが表示され、自由に開いたり参照したりできます。VMの場合、最初のレイヤには含まれるドライブイメージが表示され、これを開くと、ドライブでサポートされているストレージ技術のリストが表示されます。最も基本的なケースでは、これはパーティションテーブルを表すpartと呼ばれるエントリで、ドライブにある各パーティションのエントリを含んでいます。VMの場合、すべてのデータにアクセスできるわけではないことに注意してください(サポートされていないゲストファイルシステム、ストレージテクノロジーなど)。
ファイルやディレクトリはダウンロードボタンを使ってダウンロードすることができ、後者はその場でzipアーカイブに圧縮されます。
信頼できないデータを含む可能性のあるVMイメージへの安全なアクセスを可能にするために、一時的なVM(ゲストとして表示されない)が起動されます。これは、このようなアーカイブからダウンロードされたデータが本質的に安全であることを意味するものではありませんが、ハイパーバイザー・システムが危険にさらされるのを避けることができます。VMはタイムアウト後に停止します。このプロセス全体はユーザーから見て透過的に行われます。
|
|
トラブルシューティングのために、各一時的なVMインスタンスは/var/log/proxmox-backup/file-restore/にログファイルを生成します。このログファイルには、バックアップアーカイブに含まれる個々のファイルのリストアやファイルシステムへのアクセスの試みが失敗した場合の追加情報が含まれている可能性があります。 |
16.10.コンフィギュレーション
グローバル設定は/etc/vzdump.confに保存されます。このファイルでは、コロンで区切られた単純なキー/値形式を使用します。各行の書式は次のとおりです:
オプション:値
ファイル内の空白行は無視され、#文字で始まる行はコメントとして扱われ、これも無視されます。このファイルの値はデフォルトとして使用され、コマンドラインで上書きすることができます。
現在、以下のオプションをサポートしています:
- bwlimit:<整数> (0 - N)(デフォルト = 0)
-
I/Oバンド幅の制限(単位:KiB/s)。
- compress:<0 | 1 | gzip | lzo | zstd>(デフォルト = 0)
-
ダンプファイルを圧縮します。
- dumpdir:<文字列
-
結果のファイルを指定したディレクトリに保存します。
- 除外パス:<配列
-
特定のファイル/ディレクトリ(シェル・グロブ)を除外します。で始まるパスはコンテナのルートに固定され、その他のパスは各サブディレクトリに相対的に一致します。
- fleecing:[[enabled=]<1|0>] [[enabled=]<1|0>]です。[,ストレージ=<ストレージID>]]。
-
バックアップフリートのオプション(VMのみ)。
- enabled=<boolean>(デフォルト = 0)
-
バックアップフリーを有効にします。新しいゲストの書き込みがバックアップターゲットに直接コピーする代わりに、指定されたストレージで発生するブロックからバックアップデータをキャッシュします。これにより、ゲストの IO パフォーマンスを向上させ、ハングを防止することができます。
- ストレージ=<ストレージID
-
このストレージは、ストレージフリーキングイメージに使用します。スペースを効率的に使用するには、廃棄とシンプロビジョニングまたはスパースファイルをサポートするローカルストレージを使用するのが最善です。
- ionice:<整数> (0 - 8)(デフォルト = 7)
-
BFQスケジューラ使用時のIO優先度を設定します。VMのスナップショットとサスペンドモードのバックアップでは、これはコンプレッサにのみ影響します。値が8の場合はアイドル優先度が使用され、それ以外の場合は指定した値でベストエフォート優先度が使用されます。
- lockwait:<整数> (0 - N)(デフォルト = 180)
-
グローバルロックの最大待機時間(分)。
- mailnotification:<always | failure>(デフォルト = always)
-
非推奨: 代わりに通知ターゲット/マッチャーを使用してください。通知メールを送るタイミングを指定
- mailto:<文字列
-
非推奨:代わりに通知ターゲット/マッチャーを使用してください。メール通知を受け取るメールアドレスまたはユーザのカンマ区切りリスト。
- maxfiles:<整数> (1 - N)
-
非推奨: 代わりにprune-backups を使用してください。ゲストシステムごとのバックアップファイルの最大数。
- mode:<スナップショット | 停止 | サスペンド>(デフォルト = スナップショット)
-
バックアップモード。
- notes-template:<文字列
-
バックアップのメモを生成するためのテンプレート文字列。値で置き換えられる変数を含むことができます。現在サポートされているのは{{cluster}}, {{guestname}}, {{node}}, {{vmid}}ですが、今後追加されるかもしれません。改行とバックスラッシュは、それぞれ「˶n」と「˶n」としてエスケープする必要があります。
必要なオプション:ストレージ - notification-mode:<auto | legacy-sendmail | notification-system>(デフォルト = auto)
-
使用する通知システムを決定します。legacy-sendmail に設定すると、vzdump は mailto/mailnotification パラメータを考慮し、sendmailコマンドで指定したアドレスにメールを送信します。notification-systemに設定すると、PVEの通知システム経由で通知が送信され、mailtoとmailnotificationは無視されます。auto(デフォルト設定) に設定すると、mailto が設定されていればメールが送信され、設定されていなければ通知システムが使用されます。
- notification-policy:<always | failure | never>(デフォルト = always)
-
非推奨:を使用しないでください。
- 通知先:<文字列
-
非推奨:を使用しないでください。
- pbs-change-detection-mode:<データ|レガシー|メタデータ>。
-
ファイルの変更を検出し、コンテナバックアップのエンコード形式を切り替えるために使用されるPBSモード。
- パフォーマンスを向上させます:[max-workers=<integer>] [,pbs-entries-max=<integer>]。
-
その他のパフォーマンス関連の設定。
- max-workers=<integer>(1 - 256)(デフォルト = 16)
-
VMに適用されます。同時に最大この数のIOワーカーを許可します。
- pbs-entries-max=<integer>(1 - N)(デフォルト = 1048576)
-
PBS に送信されるコンテナバックアップに適用されます。意図しない OOM 状況を回避するために、指定された時間にメモリ内で許可されるエントリ数を制限します。これを増やすと、大量のファイルを含むコンテナのバックアップが可能になります。
- pigz:<整数>(デフォルト = 0)
-
N>0の場合はgzipの代わりにpigzを使用。N=1 はコアの半分を使用し、N>1 は N をスレッド数として使用します。
- プール:<文字列
-
指定されたプールに含まれるすべての既知のゲストシステムをバックアップします。
- protected:<ブール値
-
trueの場合、バックアップを保護マークします。
必要なオプション:ストレージ - を削除します:[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>](default = keep-all=1)
-
ストレージ構成の保持オプションの代わりに、これらの保持オプションを使用します。
- keep-all=<ブール値
-
すべてのバックアップを保持します。trueの場合、他のオプションと競合します。
- keep-daily=<N>
-
過去<N>日分のバックアップを保持します。1日に複数のバックアップがある場合は、最新のものだけが保持されます。
- keep-hourly=<N>
-
最後の<N>異なる時間のバックアップを保持します。1時間に複数のバックアップがある場合、最新のものだけが保持されます。
- keep-last=<N>
-
最後の<N>個のバックアップを保持します。
- keep-monthly=<N>
-
過去<N>の異なる月のバックアップを保持します。1つの月に複数のバックアップがある場合、最新のものだけが保持されます。
- keep-weekly=<N>
-
過去<N>週間分のバックアップを保持します。1週間に複数のバックアップがある場合、最新のものだけが保持されます。
- keep-yearly=<N>(毎年
-
過去<N>年分のバックアップを保持します。一つの年に複数のバックアップがある場合、最新のものだけが保持されます。
- remove:<論理値>(デフォルト = 1)
-
prune-backupsに従って古いバックアップを削除します。
- スクリプト:<文字列
-
指定されたフックスクリプトを使用します。
- stdexcludes:<論理値>(デフォルト = 1)
-
一時ファイルとログを除外します。
- stopwait:<整数> (0 - N)(デフォルト = 10)
-
ゲストシステムが停止するまでの最大待機時間 (分)。
- ストレージ:<ストレージID
-
結果のファイルをこのストレージに保存します。
- tmpdir:<文字列
-
指定したディレクトリに一時ファイルを保存します。
- zstd:<整数>(デフォルト = 1)
-
Zstdスレッド。N=0は利用可能なコアの半分を使用し、Nが0より大きな値に設定された場合、Nはスレッド数として使用されます。
tmpdir/mnt/fast_local_disk storage: my_backup_storage mode: snapshot bwlimit: 10000
16.11.フックスクリプト
オプション--script でフックスクリプトを指定できます。このスクリプトはバックアップ処理の様々な段階で呼び出され、パラメータが適宜設定されます。ドキュメンテーションディレクトリに例があります(vzdump-hook-script.pl)。
16.12.ファイルの除外
|
|
このオプションはコンテナ・バックアップでのみ使用できます。 |
vzdumpはデフォルトで以下のファイルをスキップします(--stdexcludes 0オプションで無効にできます)。
/tmp/?* /var/tmp/?* /var/run/?*pid
手動で(追加の)除外パスを指定することもできます:
# vzdump 777 --exclude-path /tmp/ --exclude-path '/var/foo*'
は、/tmp/ディレクトリと、/var/foo、/var/foobarといった名前のファイルやディレクトリを除外します。
で始まらないパスは、コンテナのルートにアンカーされません。たとえば
# vzdump 777 --exclude-path bar
は、/bar、/var/bar、/var/foo/bar などのファイルやディレクトリを除外しますが、/bar2 は除外しません。
設定ファイルもバックアップアーカイブ内(./etc/vzdump/内)に保存され、正しくリストアされます。
16.13.例
単にゲスト777をダンプします - スナップショットはなく、デフォルトのダンプディレクトリ(通常は/var/lib/vz/dump/)にゲストのプライベート領域と設定ファイルをアーカイブするだけです。
# vzdump 777
rsyncとサスペンド/レジュームを使ってスナップショットを作成します(ダウンタイムは最小限)。
# vzdump 777 --mode suspend
すべてのゲストシステムをバックアップし、rootとadminに通知メールを送信します。mailtoが設定され、notification-modeがデフォルトでautoに設定されているため、通知メールは通知システムの代わりにシステムのsendmailコマンドで送信されます。
# vzdump --all --mode suspend --mailto root --mailto admin
スナップショットモード(ダウンタイムなし)とデフォルト以外のダンプディレクトリを使用します。
# vzdump 777 --dumpdir /mnt/backup --mode snapshot
複数のゲストのバックアップ(選択的)
# vzdump 101 102 103 --mailto root
101と102を除く全ゲストをバックアップ
# vzdump --mode suspend --exclude 101,102
コンテナを新しいCT 600にリストア
# pct restore 600 /mnt/backup/vzdump-lxc-777.tar
VM 601へのQemuServer VMのリストア
# qmrestore /mnt/backup/vzdump-qemu-888.vma 601
パイプを使用して、既存のコンテナ101を、4GBのルートファイルシステムを持つ新しいコンテナ300にクローンします。
# vzdump 101 --stdout | pct restore --rootfs 4 300 -.
17.通知
17.1.概要
-
Proxmox VEは、ストレージのレプリケーション障害、ノードのフェンシング、バックアップの完了/失敗、その他のイベントが発生した場合に通知イベントを発行します。 これらのイベントは通知システムによって処理されます。通知イベントには、タイムスタンプ、重大度レベル、タイプ、その他のオプションのメタデータフィールドなどのメタデータがあります。
-
通知マッチャーは、通知イベントを1つ以上の通知ターゲットにルーティングします。マッチャーは、通知イベントのメタデータに基づいて選択的にルーティングするためのマッチルールを持つことができます。
-
通知ターゲットは、マッチャーによって通知イベントがルーティングされる宛先です。 ターゲットには複数のタイプがあり、メールベース(SendmailとSMTP)とGotifyがあります。
バックアップジョブには設定可能な通知モードがあり、通知システムとレガシーモードのどちらかを選択して通知メールを送信できます。レガシーモードはProxmox VE 8.1以前の通知方法と同じです。
通知システムは、GUI の [データセンター] → [通知] で構成できます。この構成は、/etc/pve/notifications.cfgおよび/etc/pve/priv/notifications.cfgに保存されます。/etc/pve/priv/notifications.cfgには、 通知ターゲットのパスワードや認証トークンなど、機密性の高い構成オプションが含まれており、root によってのみ読み取ることができます。
17.2.通知対象
Proxmox VEは複数のタイプの通知先を提供します。
17.2.1.Sendmail
sendmail バイナリは、Unix 系オペレーティング・システムでよく見られる、電子メール・メッセージの送信を処理するプログラムです。 コマンドライン・ユーティリティで、ユーザーやアプリケーションは、コマンドラインやスクリプト内から直接電子メールを送信できます。
sendmail通知ターゲットは、sendmailバイナリを使用して、設定されたユーザまたはメールアドレスのリストに電子メールを送信します。ユーザが受信者として選択された場合、ユーザの設定で構成された電子メールアドレスが使用されます。root@pamユーザの場合、これはインストール時に入力された電子メールアドレスです。 ユーザの電子メールアドレスは、Datacenter → Permissions → Usersで構成できます。 ユーザに関連する電子メールアドレスがない場合、電子メールは送信されません。
|
|
Proxmox VEの標準インストールでは、sendmailバイナリはPostfixによって提供されます。外部メールリレー(スマートホスト)を設定するなどして、Postfixがメールを正しく配送できるように設定する必要があるかもしれません。 配送に失敗した場合は、Postfixデーモンによって記録されたメッセージをシステムログで確認してください。 |
Sendmail ターゲットプラグインの設定には以下のオプションがあります:
-
mailto: 通知を送信するメールアドレス。複数の受信者に対応するために複数回設定することができます。
-
mailto-user:メールを送信するユーザー。ユーザーのメールアドレスはusers.cfgで検索されます。複数の受信者に対応するために、複数回設定することができます。
-
author:メールの作成者を設定します。デフォルトはProxmox VEです。
-
from-address:メールの差出人アドレスを設定します。このパラメータが設定されていない場合、プラグインはdatacenter.cfgの email_from設定にフォールバックします。このパラメータも設定されていない場合、プラグインのデフォルトはroot@$hostname ($hostnameはノードのホスト名)です。
-
コメントこのターゲットのコメント メールのFromヘッダは$author <$from-address>に設定されます。
設定例(/etc/pve/notifications.cfg):
sendmail: 例 mailto-user root@pam mailto-user admin@pve mailto max@example.com from-address pve1@example.com comment 複数のユーザー/アドレスに送信します。
17.2.2.SMTP
SMTP通知ターゲットは、SMTPメール・リレーに直接電子メールを送信できます。 このターゲットは、電子メールを配信するためにシステムのMTAを使用しません。 sendmailターゲットと同様に、ユーザが受信者として選択されている場合、ユーザの設定された電子メールアドレスが使用されます。
|
|
sendmail ターゲットとは異なり、SMTP ターゲットにはメール配送に失敗した場合のキューイング/リトライ機構はありません。 |
SMTP ターゲット・プラグインの設定には、以下のオプションがあります:
-
mailto: 通知を送信するメールアドレス。複数の受信者に対応するために複数回設定することができます。
-
mailto-user:メールを送信するユーザー。ユーザーのメールアドレスはusers.cfgで検索されます。複数の受信者に対応するために、複数回設定することができます。
-
author:メールの作成者を設定します。デフォルトはProxmox VEです。
-
From-address:メールのFromアドレスを設定します。SMTPリレーでは、なりすましを避けるためにこのアドレスがユーザのものであることを要求する場合があります。 メールのFromヘッダは$author <$from-address>に設定されます。
-
username: 認証時に使用するユーザー名。ユーザ名が設定されていない場合は、認証は行われません。PLAIN および LOGIN 認証方式をサポートしています。
-
password: 認証時に使用するパスワード。
-
モード:暗号化モード(insecure、starttls、tls)を設定します。デフォルトはtlsです。
-
サーバーを指定します:SMTPリレーのアドレス/IP
-
ポート:接続先ポート。設定されていない場合、使用されるポートのデフォルトは、mode の値に応じて 25(安全でない)、465(tls)、または 587(starttls) になります。
-
コメントこのターゲットに対するコメント
設定例(/etc/pve/notifications.cfg):
smtp: example mailto-user root@pam mailto-user admin@pve mailto max@example.com from-address pve1@example.com username pve1 server mail.example.com mode starttls
シークレットトークンを含む/etc/pve/priv/notifications.cfgの一致するエントリ:
smtp: example パスワード somepassword
17.2.3.Gotify
Gotifyは、様々なデバイスやアプリケーションにプッシュ通知を送受信できるオープンソースのセルフホスト型通知サーバーです。シンプルなAPIとウェブインターフェースを提供し、様々なプラットフォームやサービスと簡単に統合することができます。
Gotifyターゲットプラグインの設定には以下のオプションがあります:
-
サーバーを指定します:GotifyサーバーのベースURL、例:http://<ip>:8888
-
トークン:認証トークン。トークンはGotifyのWebインターフェイス内で生成することができます。
-
コメントこのターゲットに対するコメント
|
|
Gotify ターゲットプラグインは、データセンター設定からのHTTP プロキシ設定を尊重します。 |
設定例(/etc/pve/notifications.cfg):
gotify: サーバ例 http://gotify.example.com:8888 コメント 複数のユーザ/アドレスへの送信
シークレットトークンを含む/etc/pve/priv/notifications.cfgの一致するエントリ:
gotify: トークンの例 Someesecrettoken
17.2.4.Webhook
Webhook 通知ターゲットは、構成可能な URL への HTTP リクエストを実行します。
以下の設定オプションがあります:
-
url:HTTP リクエストを実行する URL。 メッセージの内容、メタデータ、秘密を注入するためのテンプレートをサポートしています。
-
メソッドを使用します:使用する HTTP メソッド (POST/PUT/GET)
-
ヘッダの配列です:リクエストに対して設定されるべき HTTP ヘッダの配列。 メッセージの内容、メタデータ、秘密を注入するためのテンプレート化をサポートします。
-
ボディ:メッセージの内容、メタデータ、秘密を注入するためのテンプレート化をサポートします。
-
secret: 秘密のキーと値のペアの配列。これらはrootだけが読める保護された設定ファイルに保存されます。秘密はsecrets名前空間を通してbody/header/URLテンプレートでアクセスできます。
-
コメントこのターゲットに対するコメント。
テンプレート化をサポートする構成オプションでは、Handlebars構文を使用して、以下のプロパティにアクセスできます:
-
{タイトル }}:レンダリングされた通知のタイトル
-
{メッセージ }}:レンダリングされた通知本文
-
{{ severity }}:通知の重大度(情報、通知、警告、エラー、不明)
-
{{ timestamp }}:通知のタイムスタンプをUNIXエポック(秒単位)で指定します。
-
{{ fields.<name> }}:通知のメタデータフィールドのサブ名前空間。例えば、fields.typeは 通知タイプを含んでいます。
-
{{ secrets.<name> }}:secretsのサブ名前空間。例えば、tokenという名前の秘密はsecrets.tokenからアクセスできます。
便宜上、以下のヘルパーを用意しています:
-
{{ url-encode <value/property> }}:プロパティ/リテラルをURLエンコードします。
-
{{ escape <value/property> }}:JSON文字列として安全に表現できない制御文字をエスケープします。
-
{{ json <value/property> }}:値をJSONとしてレンダリングします。これは、JSONペイロードの一部としてサブ名前空間全体(fieldsなど)を渡すのに便利です(例{{ json fields }})。
17.3.通知マッチャー
通知マッチャーは、マッチングルールに基づいて通知を通知ターゲットにルーティングします。これらのルールは、タイムスタンプ(match-calendar)、通知の重大度(match-severity)、またはメタデータフィールド(match-field)など、通知の特定のプロパティにマッチすることができます。 通知がマッチャーによってマッチされると、マッチャー用に構成されたすべてのターゲットが通知を受け取ります。
任意の数のマッチャーを作成することができ、それぞれが独自のマッチングルールと通知するターゲットを持ちます。 ターゲットが複数のマッチャーで使用されている場合でも、すべてのターゲットは通知のたびに最大一度だけ通知されます。
マッチング・ルールのないマッチャーは常にtrueになり、設定されたターゲットは常に通知されます。
matcher: always-matches target admin comment このマッチャーは、常に次のものにマッチします。
17.3.1.マッチャーのオプション
-
ターゲット:マッチャーがマッチした場合、どのターゲットに通知するかを決定します。複数のターゲットに通知するために複数回使用することができます。
-
invert-match:マッチャ全体の結果を反転します。
-
モード:マッチャー全体の結果を計算するために、個々のマッチ・ルールがどのように評価されるかを決定します。all に設定すると、すべての一致ルールが一致しなければなりません。any に設定すると、少なくとも 1 つのルールが一致する必要があります。デフォルトはall です。
-
match-calendar:通知のタイムスタンプをスケジュールとマッチさせます。
-
match-field:通知のメタデータフィールドにマッチします。
-
match-severity:通知の重大度にマッチ
-
コメントこのマッチャーのコメント
17.3.2.カレンダー一致ルール
カレンダーマッチャーは、通知が送信される時刻を設定可能なスケジュールと照合します。
-
マッチカレンダー 8-12
-
試合カレンダー 8:00-15:30
-
試合カレンダー 月~金 9:00~17:00
-
試合カレンダー 日・火・水・金 9-17
17.3.3.フィールド・マッチング・ルール
通知には、マッチング可能なメタデータ・フィールドの選択肢があります。 マッチング・モードとして"exact "を使用する場合、,を区切り文字として使用できます。 マッチング・ルールは、メタデータ・フィールドが指定された値のいずれかを持つ場合にマッチングします。
-
match-field exact:type=vzdumpバックアップに関する通知のみにマッチします。
-
match-field exact:type=replication,fencing レプリケーションと フェンシングの通知にマッチします。
-
match-field regex:hostname=^.+.example.com$ノードのホスト名にマッチします。
例えば、match-field regex:hostname=.*ディレクティブは任意のホスト名メタデータフィールドを持つ通知のみにマッチしますが、そのフィールドが存在しない場合はマッチしません。
17.3.4.重大度一致ルール
通知には、一致させることができる関連する重大度があります。
-
match-severity エラー:マッチエラーのみ
-
match-severity警告,エラー:マッチの警告とエラー
次の深刻度が使用されています:info、notice、warning、error、unknown。
17.3.5.例
matcher: workday match-calendar mon-fri 9-17 target admin comment 就業時間中に管理者に通知 matcher: night-and-weekend match-calendar mon-fri 9-17 invert-match true target on-call-admins comment 就業時間外用にターゲットを分離
matcher: backup-failures match-field exact:type=vzdump match-severity error target backup-admins comment ある管理者グループにバックアップ失敗の通知を送信 matcher: cluster-failures match-field exact:type=replication,fencing target cluster-admins comment 別の管理者グループにクラスタ関連の通知を送信
17.4.通知イベント
| イベント | タイプ | 重大性 | メタデータフィールド(タイプに加えて) |
|---|---|---|---|
システムのアップデートが可能 |
パッケージ更新 |
インフォメーション |
ホスト名 |
クラスターノードのフェンス |
フェンシング |
エラー |
ホスト名 |
ストレージ・レプリケーション・ジョブの失敗 |
レプリケーション |
エラー |
ホスト名,job-id |
バックアップ成功 |
ブイエスダンプ |
インフォメーション |
ホスト名、ジョブID(バックアップジョブのみ) |
バックアップ失敗 |
ブイエスダンプ |
エラー |
ホスト名、ジョブID(バックアップジョブのみ) |
ルートへのメール |
システムメール |
不明 |
ホスト名 |
| フィールド名 | 説明 |
|---|---|
タイプ |
通知の種類 |
ホスト名 |
ドメイン名を除いたホスト名 (例:pve1) |
ジョブID |
ジョブID |
|
|
バックアップジョブの通知には、バックアップジョブがスケジュールに基づいて自動的に実行された場合のみjob-idが設定されます。 |
17.5.システム・メール転送
smartdなどの特定のローカル・システム・デーモンは、最初にローカル・ルート・ユーザーに向けられた通知メールを生成します。Proxmox VEはこれらのメールを通知システムに、タイプsystem-mail、深刻度unknownの通知として送ります。
メールが sendmail ターゲットに転送される場合、メールの内容とヘッダーはそのまま転送されます。それ以外のターゲットに対しては、システムはメールのコンテンツから件名と本文の両方を抽出しようとします。メールがHTMLコンテンツのみで構成されている場合、このプロセスでプレーンテキスト形式に変換されます。
17.6.パーミッション
通知ターゲットの構成を変更/表示するには、/mapping/notificationsACL ノードのMapping.Modify/Mapping.Auditパーミッションが必要です。
ターゲットをテストするには、/mapping/notificationsのMapping.Use、Mapping.Audit、またはMapping.Modify のいずれかのパーミッションが必要です。
17.7.通知モード
バックアップジョブの設定には、notification-modeオプションがあり、3つの値のいずれかを指定できます。
-
auto:mailto/Sendemail toフィールドに電子メール・アドレスが入力されていない場合は、legacy-sendmailモードを使用します。メールアドレスが入力されていない場合、notification-systemモードが使用されます。
-
legacy-sendmail:通知システムはバイパスされ、設定されたターゲット/マッチャーは無視されます。 このモードはProxmox VE 8.1より前のバージョンの通知動作と同等です。
-
通知システム:新しいフレキシブルな通知システムをご利用ください。
notification-modeオプションが設定されていない場合、Proxmox VEのデフォルトはautoになります。
レガシー送信メールモードはProxmox VEの後のリリースで削除されるかもしれません。
18.重要なサービスデーモン
18.1. pvedaemon - Proxmox VE API デーモン
このデーモンは、Proxmox VE API全体を127.0.0.1:85に公開します。このデーモンはrootとして実行され、すべての特権操作を実行する権限を持っています。
|
|
デーモンはローカルアドレスのみをリッスンするので、外部からアクセスすることはできません。pveproxyデーモンはAPIを外部に公開します。 |
18.2. pveproxy - Proxmox VE API プロキシデーモン
このデーモンは、HTTPSを使用してTCPポート8006でProxmox VE API全体を公開します。ユーザーwww-dataとして実行され、非常に限定されたパーミッションを持っています。 より多くのパーミッションを必要とする操作は、ローカルのpvedaemonに転送されます。
つまり、1台のProxmox VEノードに接続するだけで、クラスタ全体を管理できます。
18.2.1.ホストベースのアクセス制御
apache2" ライクなアクセス制御リストを設定することができます。値は/etc/default/pveproxy ファイルから読み込まれます。例えば
ALLOW_FROM="10.0.0.1-10.0.0.5,192.168.0.0/22" DENY_FROM="all" POLICY="allow"
IPアドレスは、Net::IPが理解できる構文を使用して指定できます。allという名前は、0/0と::/0(すべての IPv4 アドレスと IPv6 アドレスを意味する) のエイリアスです。
デフォルトのポリシーは許可です。
| 試合 | POLICY=拒否 | POLICY=許可 |
|---|---|---|
マッチ許可のみ |
認める |
認める |
マッチ拒否のみ |
争う |
争う |
該当なし |
争う |
認める |
許可と拒否の両方に対応 |
争う |
認める |
18.2.2.リスニングIPアドレス
デフォルトでは、pveproxyデーモンとspiceproxyデーモンはワイルドカードアドレスをリッスンし、IPv4クライアントとIPv6クライアントの両方からの接続を受け入れます。
etc/default/pveproxyでLISTEN_IP を設定することで、pveproxyデーモンとspiceproxyデーモンがバインドする IP アドレスを制御できます。IP アドレスはシステム上で設定する必要があります。
sysctl net.ipv6.bindv6onlyをデフォルトでない1に設定すると、デーモンがIPv6クライアントからの接続のみを受け付けるようになりますが、通常は他の多くの問題も発生します。この設定を行った場合、sysctl設定を削除するか、LISTEN_IPを 0.0.0.0(IPv4クライアントのみを許可する)に設定することをお勧めします。
LISTEN_IPは、ソケットを内部インターフェイスに制限するためだけに使うことができます:
LISTEN_IP="192.0.2.1"
同様に、IPv6アドレスを設定することもできます:
LISTEN_IP="2001:db8:85a3::1"
リンクローカルIPv6アドレスを指定したい場合は、インターフェース名そのものを指定する必要があることに注意してください。例えば
LISTEN_IP="fe80::c463:8cff:feb9:6a4e%vmbr0"
|
|
クラスタ内のノードは、通信のためにpveproxyにアクセスする必要があります。クラスタ化されたシステムでLISTEN_IP を設定することはお勧めしません。 |
変更を適用するには、ノードを再起動するか、pveproxyおよびspiceproxyサービスを完全に再起動する必要があります:
systemctl restart pveproxy.service spiceproxy.service
|
|
reload とは異なり、pveproxy サービスの再起動は、仮想ゲストから実行中のコンソールやシェルなど、いくつかの長時間実行中のワーカープロセスを中断する可能性があります。そのため、この変更を有効にするにはメンテナンスウィンドウを使用してください。 |
18.2.3.SSL 暗号スイート
etc/default/pveproxyで、CIPHERS(TLS ⇐ 1.2) およびCIPHERSUITES(TLS >= 1.3) キーを使用して暗号化リストを定義できます。例えば
CIPHERS="ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256" CIPHERSUITES="TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256"
上記はデフォルトです。利用可能なオプションの一覧は、openssl パッケージの ciphers(1) man ページを参照してください。
さらに、/etc/default/pveproxyで使用される暗号をクライアントが選択するように設定できます (デフォルトは、クライアントとpveproxy の両方で使用可能なリストの最初の暗号です):
honor_cipher_order=0
18.2.4.対応TLSバージョン
安全でないSSLバージョン2と3は、pveproxyでは無条件に無効化されます。 1.1未満のTLSバージョンは、最近のOpenSSLバージョンではデフォルトで無効化され、pveproxyはこれに従います(/etc/ssl/openssl.cnfを参照)。
TLSバージョン1.2または1.3を無効にするには、/etc/default/pveproxyで以下を設定します:
disable_tls_1_2=1
または、それぞれ
disable_tls_1_3=1
|
|
特別な理由がない限り、サポートされるTLSバージョンを手動で調整することは推奨されません。 |
18.2.5.Diffie-Hellman パラメータ
etc/default/pveproxyで使用するDiffie-Hellmanパラメータを定義するには、DHPARAMSをPEM形式のDHパラメータを含むファイルのパスに設定します。
DHPARAMS="/path/to/dhparams.pem"
このオプションが設定されていない場合、組み込みのskip2048パラメータが使用されます。
|
|
DHパラメータは、DH鍵交換アルゴリズムを利用する暗号スイートがネゴシエートされた場合にのみ使用されます。 |
18.2.6.代替HTTPS証明書
使用する証明書は、外部証明書または ACME 経由で取得した証明書に変更できます。
pveproxy は、/etc/pve/local/pveproxy-ssl.pemと/etc/pve/local/pveproxy-ssl.key があればそれを使用し、/etc/pve/local/pve-ssl.pemと/etc/pve/local/pve-ssl.key にフォールバックします。 秘密鍵はパスフレーズを使用しないこともできます。
etc/default/pveproxyで TLS_KEY_FILEを設定するなどして、証明書の秘密鍵/etc/pve/local/pveproxy-ssl.keyの場所を上書きすることができます:
TLS_KEY_FILE="/secrets/pveproxy.key"
|
|
付属のACMEインテグレーションはこの設定に対応していません。 |
詳細については、マニュアルの「ホストシステム管理」の章を参照してください。
18.3. pvestatd - Proxmox VE ステータスデーモン
このデーモンは、VM、ストレージ、コンテナのステータスを定期的にクエリします。結果はクラスタ内のすべてのノードに送信されます。
18.4. spiceproxy - SPICE プロキシ・サービス
SPICE(SimpleProtocol for Independent Computing Environments)はオープンなリモートコンピューティングソリューションで、リモートディスプレイやデバイス(キーボード、マウス、オーディオなど)へのクライアントアクセスを提供します。主なユースケースは、仮想マシンやコンテナへのリモートアクセスです。
このデーモンは TCP ポート 3128 をリッスンし、SPICE クライアントからのCONNECT要求を正しい Proxmox VE VM に転送する HTTP プロキシを実装しています。ユーザwww-dataとして実行され、非常に限定された権限を持っています。
19.便利なコマンドラインツール
19.2. pveperf - Proxmox VE ベンチマークスクリプト
PATHにマウントされているハードディスク(デフォルトは/)のCPU/ハードディスクのパフォーマンスデータの収集を試みます:
- CPUボゴミップス
-
全CPUのボゴミップス合計
- REGEX/SECOND
-
1秒あたりの正規表現数(perlパフォーマンステスト)は300000以上である必要があります。
- HDサイズ
-
ハードディスクサイズ
- バファードリード
-
簡単なHD読み取りテスト。最近のHDは少なくとも40MB/秒に達するはずです。
- 平均シーク時間
-
は平均シーク時間をテストします。高速SCSI HDは8ミリ秒未満の値に達します。一般的なIDE/SATAディスクの値は15~20ミリ秒です。
- FSYNCS/SECOND
-
の値は200以上でなければなりません(RAIDコントローラでライトバックキャッシュモードを有効にする必要があります - バッテリーバックアップキャッシュ(BBWC)が必要です)。
- DNS EXT
-
外部DNS名の平均解決時間
- DNS INT
-
ローカルDNS名の平均解決時間
20.よくある質問
|
|
新しいFAQはこのセクションの一番下に追加されています。 |
-
Proxmox VEはどのようなディストリビューションに基づいていますか?
Proxmox VE はDebian GNU/Linuxをベースにしています。
-
Proxmox VEプロジェクトはどのライセンスを使用していますか?
Proxmox VEコードのライセンスはGNU Affero General Public License, version 3です。
-
Proxmox VEは32ビットプロセッサで動作しますか?
Proxmox VEは64ビットCPU(AMDまたはIntel)でのみ動作します。32ビットのプラットフォームは予定されていません。
VMとコンテナは、32ビットと64ビットの両方に対応しています。 -
私のCPUは仮想化をサポートしていますか?
CPUが仮想化に対応しているかどうかを確認するには、このコマンドの出力にvmxまたはsvmタグがあるかどうかを確認します:
egrep '(vmx|svm)' /proc/cpuinfo
-
対応インテルCPU
インテル® バーチャライゼーション・テクノロジー(インテル® VT-x)をサポートする64ビット・プロセッサー(インテル® VTおよび64ビットをサポートするプロセッサー一覧)
-
対応AMD CPU
AMD仮想化テクノロジー(AMD-V)をサポートする64ビットプロセッサー。
-
コンテナ/仮想環境(VE)/仮想専用サーバー(VPS)とは何ですか?
コンテナの文脈では、これらの用語はすべてオペレーティング・システム・レベルの仮想化という概念を指しています。オペレーティング・システム・レベルの仮想化とは、オペレーティング・システムのカーネルが、カーネルを共有する複数の分離されたインスタンスを可能にする仮想化の手法です。LXCでは、このようなインスタンスをコンテナと呼びます。コンテナは完全なオペレーティング・システムをエミュレートするのではなく、ホストのカーネルを使用するため、オーバーヘッドが少なくて済みますが、Linuxゲストに限定されます。
-
QEMU/KVMゲスト(またはVM)とは何ですか?
QEMU/KVM ゲスト (または VM) は、QEMU と Linux KVM カーネルモジュールを使用して Proxmox VE で仮想化されたゲストシステムです。
-
QEMUとは何ですか?
QEMU は、汎用的なオープンソースのマシンエミュレータおよび仮想化ツールです。QEMU は Linux KVM カーネルモジュールを使用し、ホスト CPU 上でゲストコードを直接実行することで、ネイティブに近いパフォーマンスを実現します。 Linux ゲストに限らず、任意のオペレーティングシステムを実行できます。
-
Proxmox VEのサポート期間はいつまでですか?
Proxmox VEのバージョンは、少なくとも対応するDebianバージョンがoldstableである限りサポートされます。Proxmox VE はローリングリリースモデルを採用しており、常に最新の安定版を使用することを推奨します。
プロックスモックスVEバージョン Debian バージョン ファースト・リリース Debian EOL プロックスモックスEOL プロックスモックスVE 8
Debian 12 (本の虫)
2023-06
tba
tba
プロックスモックスVE 7
Debian 11 (Bullseye)
2021-07
2024-07
2024-07
プロックスモックスVE 6
Debian 10 (Buster)
2019-07
2022-09
2022-09
プロックスモックスVE 5
Debian 9 (Stretch)
2017-07
2020-07
2020-07
プロックスモックスVE 4
Debian 8 (Jessie)
2015-10
2018-06
2018-06
プロックスモックスVE 3
Debian 7 (Wheezy)
2013-05
2016-04
2017-02
プロックスモックスVE 2
Debian 6 (Squeeze)
2012-04
2014-05
2014-05
プロックスモックスVE 1
Debian 5 (Lenny)
2008-10
2012-03
2013-01
-
Proxmox VEを次のポイントリリースにアップグレードする方法を教えてください。
マイナーバージョンのアップグレード、例えばバージョン7.1のProxmox VEから7.2や7.3へのアップグレードは、通常のアップデートと同様に行うことができます。 しかし、関連する注目すべき変更、または破壊的な変更については、リリースノートを確認する必要があります。
アップデート自体には、Web UINode → Updatesパネルまたは CLI を使用します:
apt update apt full-upgrade
必ずパッケージリポジトリを正しくセットアップし、apt updateでエラーが出なかった場合のみ、実際のアップグレードを続行してください。 -
Proxmox VEを次のメジャーリリースにアップグレードする方法を教えてください。
例えばProxmox VE 4.4から5.0へのメジャーバージョンアップもサポートされています。 これらのアップグレードは慎重に計画され、テストされなければなりません。
アップグレードの具体的な手順は、それぞれのセットアップによって異なりますが、アップグレードの実行方法に関する一般的な手順とアドバイスを提供します:
-
LXC vs LXD vs Proxmox Containers vs Docker
LXCは、Linuxカーネルのコンテナ機能のユーザー空間インターフェイスです。強力なAPIとシンプルなツールにより、Linuxユーザーはシステムコンテナを簡単に作成・管理できます。LXCは、以前のOpenVZと同様に、システムの仮想化を目的としています。そのため、コンテナ内で完全な OS を実行することができ、ssh を使用してログインしたり、ユーザーを追加したり、apache を実行したりすることができます。
LXDはLXCの上に構築され、より優れた新しいユーザー体験を提供します。LXDは、liblxcとそのGoバインディングを通じてLXCを使用し、コンテナの作成と管理を行います。基本的には、LXCのツールやディストリビューションテンプレートシステムに代わるもので、ネットワーク経由で制御可能な機能が追加されています。
Proxmoxコンテナは、Proxmox Container Toolkit(pct)を使用して作成および管理されるコンテナを指します。また、システム仮想化をターゲットとし、コンテナ提供の基盤としてLXCを使用します。Proxmox Container Toolkit(pct)はProxmox VEと緊密に連携しています。つまり、クラスタ・セットアップを認識し、QEMU 仮想マシン(VM)と同じネットワークおよびストレージ・リソースを使用できます。Proxmox VEのファイアウォールの使用、バックアップの作成と復元、HAフレームワークを使用したコンテナの管理も可能です。Proxmox VE APIを使用して、すべてをネットワーク経由で制御できます。
Dockerは、隔離された自己完結型の環境で単一のアプリケーションを実行することを目的としています。これらは一般的に「システムコンテナ」ではなく「アプリケーションコンテナ」と呼ばれています。Dockerインスタンスは、Docker Engineコマンドラインインタフェースを使用してホストから管理します。Proxmox VEホスト上で直接Dockerを実行することは推奨されません。
アプリケーションコンテナ、例えばDockerイメージを実行する場合は、Proxmox QEMU VM内で実行するのが最適です。
21.参考文献
-
[Proxmox を使いこなす - 第 3 版. Packt Publishing, 2017. ISBN 978-1788397605.
-
[Proxmox Cookbook. Packt Publishing, 2015. ISBN 978-1783980901.
-
[Cheng14】Simon M.C. Cheng.Proxmox High Availability. Packt Publishing, 2014.
-
[Goldman16] Rik Goldman.Learning Proxmox VE. Packt Publishing, 2016.
-
[Surber16]]リー・R・サーバー.仮想化大全:Linux Solutions (LRS-TEK), 2016. ASIN B01BBVQZT6
-
[Hertzog13] Raphaël Hertzog, Roland Mas., Freexian SARLThe Debian Administrator's Handbook:Debian 管理者ハンドブック: Debian Bullseye の発見から習得まで, Freexian, 2021.
-
[Bir96] Kenneth P. Birman.Building Secure and Reliable Network Applications. Manning Publications Co, 1996.
-
[Richardson07] Leonard Richardson & Sam Ruby.RESTful Web Services. O'Reilly Media, 2007.
-
[Singh15] Karan Singh.Learning Ceph. Packt Publishing, 2015. ISBN 978-1783985623
-
[Mauerer08] Wolfgang Mauerer.Professional Linux Kernel Architecture. John Wiley & Sons, 2008. ISBN 978-0470343432
-
[Loshin03] Pete Loshin,IPv6: Theory, Protocol, and Practice, 2nd Edition. Morgan Kaufmann, 2003. ISBN 978-1558608108.
-
[Loeliger12] Jon Loeliger & Matthew McCullough.Version Control with Git:Version Control with Git:Powerful tools and techniques for collaborative software development.
-
[Kreibich10] Jay A. Kreibich.Using SQLite, O'Reilly and Associates, 2010.
22.付録 A: コマンドライン・インターフェース
22.1.一般
歴史的に統一されていないオプションのケーシングスタイルについては、設定ファイルの関連セクションを参照してください。
22.2.出力フォーマット・オプション[FORMAT_OPTIONS]
出力形式は--output-formatパラメータで指定できます。デフォルトのフォーマット・テキストは、ASCII-artを使用して表の周囲にきれいな枠線を描きます。さらに、いくつかの値を人間が読めるテキストに変換します:
-
Unix epoch は ISO 8601 日付文字列として表示されます。
-
期間は週/日/時/分/秒のカウントで表示されます。
-
バイトサイズの値には単位(B、KiB、MiB、GiB、TiB、PiB)が含まれます。
-
分数はパーセントで表示されます。つまり、1.0は100%として表示されます。
オプション--quietを使えば、出力を完全に抑制することもできます。
- --human-readable <boolean>(デフォルト = 1)
-
出力レンダリング関数を呼び出して、人間が読めるテキストを生成します。
- --noborder <boolean>(デフォルト = 0)
-
ボーダーを描画しません(テキスト形式の場合)。
- --noheader <boolean>(デフォルト = 0)
-
カラムヘッダを表示しない(テキスト形式の場合)。
- --output-format <json | json-pretty | text | yaml>(default = text)
-
出力フォーマット
- --quiet <ブール値
-
印刷結果を抑制します。
22.3.pvesm- Proxmox VE Storage Manager
pvesm <COMMAND> [ARGS] [OPTIONS] です。
pvesm add <タイプ> <ストレージ> [オプション].
新しいストレージを作成します。
- <type>: <btrfs | cephfs | cifs | dir | esxi | glusterfs | iscsi | iscsidirect | lvm | lvmthin | nfs | pbs | rbd | zfs | zfspool> です。
-
収納タイプ。
- <ストレージ>: <ストレージID
-
ストレージ識別子。
- --authsupported <文字列
-
認証済み。
- --ベース <文字列
-
基本音量。このボリュームは自動的にアクティブになります。
- --ブロックサイズ <文字列
-
ブロックサイズ
- --bwlimit [clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>] となります。
-
各種操作のI/O帯域幅制限を設定(単位:KiB/s)。
- --コムスター_hg <文字列
-
コムスタービューのホストグループ
- --comstar_tg <文字列
-
コムスター・ビューの対象者
- --内容 <文字列
-
許可されるコンテンツタイプ
コンテナにはrootdir が、VM にはimagesが使用されます。 - --コンテンツディレクトリ <文字列
-
デフォルトのコンテンツタイプのディレクトリを上書きします。
- --ベースパス作成 <ブール値>(デフォルト = yes)
-
ベース・ディレクトリが存在しない場合は作成します。
- --サブディレクトリの作成 <論理値>(デフォルト = yes)
-
ディレクトリにデフォルトの構造を入力します。
- --データプール <文字列
-
データプール(消去符号化専用)
- --データストア <文字列
-
Proxmox Backup Server データストア名。
- --無効 <ブール値
-
ストレージを無効にするフラグ。
- --ドメイン <文字列
-
CIFS ドメイン。
- --encryption-key 暗号化キーを含むファイル、または特別な値 "autogen"
-
暗号化キー。パスフレーズなしで自動生成するにはautogenを使用します。
- --エクスポート <文字列
-
NFSエクスポートパス。
- --fingerprint ([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}
-
証明書の SHA 256 フィンガープリント。
- --format <文字列
-
デフォルトの画像フォーマット。
- -fs-name <文字列
-
Cephファイルシステム名。
- --ヒューズ <ブール値
-
FUSEを使用してCephFSをマウントします。
- --is_mountpoint <string>(デフォルト = no)
-
指定されたパスが外部で管理されているマウントポイントであると仮定し、マウントされていない場合はストレージをオフラインと見なします。ブーリアン(yes/no)値を使用すると、このフィールドでターゲットパスを使用するショートカットとして機能します。
- --iscsiprovider <文字列
-
iscsi プロバイダ
- -- Cephクラスタで認証するためのキーリングを含むkeyring ファイル
-
クライアントのキーリングの内容(外部クラスタ用)。
- --krbd <ブール値
-
常にkrbdカーネルモジュールを通してrbdにアクセスしてください。
- --lio_tpg <文字列
-
Linux LIOターゲット用ターゲットポータルグループ
- --PEM 形式のマスター公開鍵を含むファイル。
-
Base64 エンコードされた PEM 形式の RSA 公開鍵。暗号化された各バックアップに追加される暗号化キーのコピーを暗号化するために使用します。
- --max-protected-backups <integer> (-1 - N)(デフォルト = Datastore.Allocate権限を持つユーザは無制限、その他のユーザは5)
-
ゲストごとの保護バックアップの最大数。無制限には-1を使用します。
- -マックスファイル <整数> (0 - N)
-
非推奨: 代わりにprune-backups を使用してください。VMごとのバックアップファイルの最大数。無制限の場合は0を使用します。
- --mkdir <ブール値>(デフォルト = yes)
-
ディレクトリが存在しない場合は作成し、デフォルトのサブディレクトリを設定します。注意: 非推奨。代わりにcreate-base-pathおよびcreate-subdirsオプションを使用してください。
- --monhost <文字列
-
モニターのIPアドレス(外部クラスタの場合)。
- --マウントポイント <文字列
-
マウントポイント
- --名前空間 <文字列
-
名前空間。
- --nocow <ブール値>(デフォルト = 0)
-
ファイルに NOCOW フラグを設定します。データのチェックサムを無効にし、直接I/Oを許可しながらデータエラーを回復できなくします。このフラグを使用するのは、基礎となるレイドシステムがない単一の ext4 フォーマットディスク上よりもデータを安全にする必要がない場合だけです。
- --ノード <文字列
-
ストレージ構成が適用されるノードのリスト。
- --nowritecache <ブール値
-
ターゲットの書き込みキャッシュを無効にします。
- --オプション <文字列
-
NFS/CIFS マウントオプション (man nfsまたはman mount.cifs を参照)
- --パスワード <password
-
共有/データストアにアクセスするためのパスワード。
- --パス <文字列
-
ファイルシステムのパス。
- --プール <文字列
-
プール。
- --ポート <整数> (1 - 65535)
-
デフォルトのポートの代わりにこのポートを使用してストレージに接続します(PBS や ESXi など)。NFS および CIFS の場合は、optionsオプションを使用して、マウントオプションでポートを設定します。
- --portal <文字列
-
iSCSIポータル(IPまたはDNS名とオプションのポート)。
- --preallocation <falloc | full | metadata | off>(デフォルト = メタデータ)
-
raw および qcow2 画像のプリアロケーションモード。raw 画像でメタデータを使用すると、preallocation=off になります。
- --prune-backups [keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>].
-
間隔が短い保持オプションが最初に処理され、--keep-lastが一番最初に処理されます。各オプションは特定の期間をカバーします。この期間内のバックアップはこのオプションの対象となります。次のオプションは、すでにカバーされているバックアップを考慮せず、古いバックアップのみを考慮します。
- --セーフリムーブ <ブール値
-
LVを削除するとデータがゼロになります。
- -saferemove_throughput <文字列
-
ワイプスループット(cstream -tパラメータ値)。
- --サーバ <文字列
-
サーバーIPまたはDNS名。
- --サーバー2 <文字列
-
バックアップファイルサーバーのIPまたはDNS名。
必要なオプション:server - --共有 <文字列
-
CIFS 共有。
- --共有 <ブール値
-
すべてのノード(またはnodesオプションにリストされているすべて)で同じ内容を持つ単一のストレージであることを示します。ローカルストレージの内容が自動的に他のノードからアクセスできるようになるわけではなく、すでに共有されているストレージをそのようにマークするだけです!
- -skip-cert-verification <boolean>(デフォルト = false)
-
TLS証明書の検証を無効にし、完全に信頼できるネットワークでのみ有効にします!
- --smbversion <2.0 | 2.1 | 3 | 3.0 | 3.11 | default>(default = デフォルト)
-
SMBプロトコルのバージョン。デフォルトでは、設定されていない場合、クライアントとサーバーの両方でサポートされている最高のSMB2+バージョンをネゴシエートします。
- -スパース <ブール値
-
スパースボリュームを使用
- --サブディレクトリ <文字列
-
マウントするサブディレクトリ。
- --タグ付きのみ <ブール値
-
pve-vm-ID でタグ付けされた論理ボリュームのみを使用します。
- --ターゲット <文字列
-
iSCSI ターゲット。
- --シンプール <文字列
-
LVMシンプールLV名。
- --トランスポート <rdma | tcp | unix>.
-
クラスタ・トランスポート:tcpまたはrdma
- --ユーザー名 <文字列
-
RBD Id.
- --vgname <文字列
-
ボリュームグループ名。
- --ボリューム <文字列
-
Glusterfsボリューム。
pvesm alloc <storage> <vmid> <filename> <size> [OPTIONS].
ディスクイメージを割り当てます。
- <ストレージ>: <ストレージID
-
ストレージ識別子。
- <vmid>: <整数> (100 - 999999999)
-
オーナーVMの指定
- <ファイル名>: <文字列
-
作成するファイル名。
- <サイズ>です: \d+[MG]?
-
キロバイト(1024バイト)単位のサイズ。オプションの接尾辞M(メガバイト、1024K)およびG(ギガバイト、1024M)。
- --format <qcow2 | raw | subvol>.
-
説明なし
必要なオプション:サイズ
pvesm apiinfo
APIVERとAPIAGEを返します。
pvesm cifsscan
pvesm scan cifs のエイリアス。
pvesm export <ボリューム> <フォーマット> <ファイル名> [OPTIONS].
ボリュームのエクスポートに内部的に使用されます。
- <ボリューム>: <文字列
-
ボリューム識別子
- <format>: <btrfs | qcow2+size | raw+size | tar+size | vmdk+size | zfs>.
-
ストリーム形式のエクスポート
- <ファイル名>: <文字列
-
保存先ファイル名
- --ベース (?^i:[a-z0-9_-]{1,40})
-
から増分ストリームを開始するスナップショット。
- --snapshot (?^i:[a-z0-9_\-]{1,40})
-
エクスポートするスナップショット
- --スナップショットリスト <文字列
-
転送するスナップショットの順序付きリスト
- --with-snapshots <boolean>(デフォルト = 0)
-
中間スナップショットをストリームに含めるかどうか
pvesm extractconfig <ボリューム>。
vzdumpバックアップアーカイブから設定を抽出します。
- <ボリューム>: <文字列
-
ボリューム識別子
pvesm free <ボリューム> [オプション].
ボリュームの削除
- <ボリューム>: <文字列
-
ボリューム識別子
- --ディレイ <整数> (1 - 30)
-
タスクが終了するまでの待ち時間。その時間内にタスクが終了した場合はnull を返します。
- --ストレージ ID
-
ストレージ識別子。
pvesm glusterfsscan
pvesm scan glusterfs のエイリアス。
pvesm help [OPTIONS]
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pvesm import <volume> <format> <filename> [OPTIONS].
ボリュームのインポートに内部的に使用されます。
- <ボリューム>: <文字列
-
ボリューム識別子
- <format>: <btrfs | qcow2+size | raw+size | tar+size | vmdk+size | zfs>.
-
インポートストリーム形式
- <ファイル名>: <文字列
-
ソースファイル名。stdinが使用される場合、tcp://<IPまたはCIDR>フォーマットはTCP接続を、unix://PATH-TO-SOCKETフォーマットはUNIXソケットを入力として使用できます。
- --allow-rename <boolean>(デフォルト = 0)
-
要求されたボリュームIDがすでに存在する場合は、エラーをスローする代わりに新しいボリュームIDを選択します。
- --ベース (?^i:[a-z0-9_-]{1,40})
-
増分ストリームの基本スナップショット
- --delete-snapshot (?^i:[a-z0-9_\-]{1,80})
-
成功時に削除するスナップショット
- --snapshot (?^i:[a-z0-9_\-]{1,40})
-
ストリームにスナップショットが含まれている場合は、現在の状態のスナップショット
- --with-snapshots <boolean>(デフォルト = 0)
-
ストリームが中間スナップショットを含むかどうか
pvesm iscsiscan
pvesm scan iscsi のエイリアス。
pvesm list <storage> [OPTIONS].
ストレージの内容を一覧表示します。
- <ストレージ>: <ストレージID
-
ストレージ識別子。
- --内容 <文字列
-
このタイプのコンテンツのみをリストアップします。
- --vmid <整数> (100 - 999999999)
-
このVMのイメージのみを表示
pvesm lvmscan
pvesm scan lvm のエイリアス。
pvesm lvmthinscan
pvesm scan lvmthin のエイリアス。
pvesm nfsscan
pvesm scan nfs のエイリアス。
pvesm パス <ボリューム
指定されたボリュームのファイルシステムのパスを取得します。
- <ボリューム>: <文字列
-
ボリューム識別子
pvesm prune-backups <storage> [OPTIONS].
バックアップを削除します。標準の命名スキームを使用しているもののみが考慮されます。 keepオプションが指定されていない場合は、ストレージ構成のものが使用されます。
- <ストレージ>: <ストレージID
-
ストレージ識別子。
- -ドライラン <ブール値
-
刈り込まれるものだけを表示し、何も削除しないでください。
- --keep-all <ブール値
-
すべてのバックアップを保持します。trueの場合、他のオプションと競合します。
- --キープ・デイリー <N>
-
過去<N>日分のバックアップを保持します。1日に複数のバックアップがある場合は、最新のものだけが保持されます。
- --キープ・アワー <N
-
最後の<N>異なる時間のバックアップを保持します。1時間に複数のバックアップがある場合、最新のものだけが保持されます。
- --keep-last <N>
-
最後の<N>個のバックアップを保持します。
- --キープマンスリー <N
-
過去<N>の異なる月のバックアップを保持します。1つの月に複数のバックアップがある場合、最新のものだけが保持されます。
- --キープウィークリー <N>
-
過去<N>週間分のバックアップを保持します。1週間に複数のバックアップがある場合、最新のものだけが保持されます。
- --キープ・イヤー・リー <N
-
過去<N>年分のバックアップを保持します。一つの年に複数のバックアップがある場合、最新のものだけが保持されます。
- --タイプ <lxc | qemu>
-
qemuまたはlxcのいずれか。このタイプのゲストのバックアップのみを考慮してください。
- --vmid <整数> (100 - 999999999)
-
このゲストのバックアップのみを考慮してください。
pvesm remove <ストレージ
ストレージ構成を削除します。
- <ストレージ>: <ストレージID
-
ストレージ識別子。
pvesm scan cifs <server> [OPTIONS].
リモート CIFS サーバーをスキャンします。
- <サーバー>: <文字列
-
サーバーアドレス(名前またはIP)。
- --ドメイン <文字列
-
SMBドメイン(ワークグループ)。
- --パスワード <password
-
ユーザーパスワード
- --ユーザー名 <文字列
-
ユーザー名
pvesm scan glusterfs <server>
リモートのGlusterFSサーバをスキャンします。
- <サーバー>: <文字列
-
サーバーアドレス(名前またはIP)。
pvesm scan iscsi <portal>
リモートiSCSIサーバーをスキャンします。
- <ポータル>: <文字列
-
iSCSIポータル(IPまたはDNS名とオプションのポート)。
pvesm scan lvm
ローカルLVMボリュームグループを一覧表示します。
pvesmスキャン lvmthin <vg>
ローカル LVM シンプールをリストします。
- <vg>: [a-zA-Z0-9\.\+\_][a-zA-Z0-9\.\+\_\-]+
-
説明なし
pvesm scan nfs <server>
リモート NFS サーバーをスキャンします。
- <サーバー>: <文字列
-
サーバーのアドレス(名前またはIP)。
pvesm scan pbs <server> <username> --password <string> [OPTIONS] [FORMAT_OPTIONS].
リモートのProxmoxバックアップサーバをスキャンします。
- <サーバー>: <文字列
-
サーバーのアドレス(名前またはIP)。
- <ユーザー名>: <文字列
-
ユーザー名またはAPIトークンID。
- --fingerprint ([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}
-
証明書 SHA 256 フィンガープリント。
- --パスワード <文字列
-
ユーザーパスワードまたはAPIトークンの秘密。
- --ポート <整数> (1 - 65535)(デフォルト = 8007)
-
オプションのポート。
pvesm scan zfs
ローカルノードのzfsプールリストをスキャンします。
pvesm set <storage> [OPTIONS].
ストレージ構成を更新します。
- <ストレージ>: <ストレージID
-
ストレージ識別子。
- --ブロックサイズ <文字列
-
ブロックサイズ
- --bwlimit [clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>] となります。
-
各種操作のI/O帯域幅制限を設定(単位:KiB/s)。
- --コムスター_hg <文字列
-
コムスタービューのホストグループ
- --comstar_tg <文字列
-
コムスター・ビューの対象者
- --内容 <文字列
-
許可されるコンテンツタイプ
コンテナにはrootdir が、VM にはimagesが使用されます。 - --コンテンツディレクトリ <文字列
-
デフォルトのコンテンツタイプのディレクトリを上書きします。
- --ベースパス作成 <ブール値>(デフォルト = yes)
-
ベース・ディレクトリが存在しない場合は作成します。
- --サブディレクトリの作成 <論理値>(デフォルト = yes)
-
ディレクトリにデフォルトの構造を入力します。
- --データプール <文字列
-
データプール(消去符号化専用)
- --削除 <文字列
-
削除したい設定のリスト。
- -ダイジェスト <文字列
-
現在のコンフィギュレーション・ファイルのダイジェストが異なる場合、変更を防止します。これは同時修正を防ぐために使用できます。
- --無効 <ブール値
-
ストレージを無効にするフラグ。
- --ドメイン <文字列
-
CIFS ドメイン。
- --encryption-key 暗号化キーを含むファイル、または特別な値 "autogen"
-
暗号化キー。パスフレーズなしで自動生成するにはautogenを使用します。
- --fingerprint ([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}
-
証明書 SHA 256 フィンガープリント。
- --format <文字列
-
デフォルトの画像フォーマット。
- -fs-name <文字列
-
Cephファイルシステム名。
- --ヒューズ <ブール値
-
FUSEを使用してCephFSをマウントします。
- --is_mountpoint <string>(デフォルト = no)
-
指定されたパスが外部で管理されているマウントポイントであると仮定し、マウントされていない場合はストレージをオフラインと見なします。ブーリアン(yes/no)値を使用すると、このフィールドでターゲットパスを使用するショートカットとして機能します。
- -- Cephクラスタで認証するためのキーリングを含むkeyring ファイル
-
クライアントのキーリングの内容(外部クラスタ用)。
- --krbd <ブール値
-
常にkrbdカーネルモジュールを通してrbdにアクセスしてください。
- --lio_tpg <文字列
-
Linux LIOターゲット用ターゲットポータルグループ
- --PEM 形式のマスター公開鍵を含むファイル。
-
Base64 エンコードされた PEM 形式の RSA 公開鍵。暗号化された各バックアップに追加される暗号化キーのコピーを暗号化するために使用します。
- --max-protected-backups <integer> (-1 - N)(デフォルト = Datastore.Allocate権限を持つユーザは無制限、その他のユーザは5)
-
ゲストごとの保護バックアップの最大数。無制限には-1を使用します。
- -マックスファイル <整数> (0 - N)
-
非推奨: 代わりにprune-backups を使用してください。VMごとのバックアップファイルの最大数。無制限の場合は0を使用します。
- --mkdir <ブール値>(デフォルト = yes)
-
ディレクトリが存在しない場合は作成し、デフォルトのサブディレクトリを設定します。注意: 非推奨。代わりにcreate-base-pathおよびcreate-subdirsオプションを使用してください。
- --monhost <文字列
-
モニターのIPアドレス(外部クラスタの場合)。
- --マウントポイント <文字列
-
マウントポイント
- --名前空間 <文字列
-
名前空間。
- --nocow <ブール値>(デフォルト = 0)
-
ファイルに NOCOW フラグを設定します。データのチェックサムを無効にし、直接I/Oを許可しながらデータエラーを回復できなくします。このフラグを使用するのは、基礎となるレイドシステムがない単一の ext4 フォーマットディスク上よりもデータを安全にする必要がない場合だけです。
- --ノード <文字列
-
ストレージ構成が適用されるノードのリスト。
- --nowritecache <ブール値
-
ターゲットの書き込みキャッシュを無効にします。
- --オプション <文字列
-
NFS/CIFS マウントオプション (man nfsまたはman mount.cifs を参照)
- --パスワード <password
-
共有/データストアにアクセスするためのパスワード。
- --プール <文字列
-
プール。
- --ポート <整数> (1 - 65535)
-
デフォルトのポートの代わりにこのポートを使用してストレージに接続します(PBS や ESXi など)。NFS および CIFS の場合は、optionsオプションを使用して、マウントオプションでポートを設定します。
- --preallocation <falloc | full | metadata | off>(デフォルト = メタデータ)
-
raw および qcow2 画像のプリアロケーションモード。raw 画像でメタデータを使用すると、preallocation=off になります。
- --prune-backups [keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>].
-
間隔が短い保持オプションが最初に処理され、--keep-lastが一番最初に処理されます。各オプションは特定の期間をカバーします。この期間内のバックアップはこのオプションの対象となります。次のオプションは、すでにカバーされているバックアップを考慮せず、古いバックアップのみを考慮します。
- --セーフリムーブ <ブール値
-
LVを削除するとデータがゼロになります。
- -saferemove_throughput <文字列
-
ワイプスループット(cstream -tパラメータ値)。
- --サーバ <文字列
-
サーバーIPまたはDNS名。
- --サーバー2 <文字列
-
バックアップファイルサーバーのIPまたはDNS名。
必要なオプション:server - --共有 <ブール値
-
すべてのノード(またはnodesオプションにリストされているすべて)で同じ内容を持つ単一のストレージであることを示します。ローカルストレージの内容が自動的に他のノードからアクセスできるようになるわけではなく、すでに共有されているストレージをそのようにマークするだけです!
- -skip-cert-verification <boolean>(デフォルト = false)
-
TLS証明書の検証を無効にし、完全に信頼できるネットワークでのみ有効にします!
- --smbversion <2.0 | 2.1 | 3 | 3.0 | 3.11 | default>(default = デフォルト)
-
SMBプロトコルのバージョン。デフォルトでは、設定されていない場合、クライアントとサーバーの両方でサポートされている最高のSMB2+バージョンをネゴシエートします。
- -スパース <ブール値
-
スパースボリュームを使用
- --サブディレクトリ <文字列
-
マウントするサブディレクトリ。
- --タグ付きのみ <ブール値
-
pve-vm-ID でタグ付けされた論理ボリュームのみを使用します。
- --トランスポート <rdma | tcp | unix>.
-
クラスタ・トランスポート:tcpまたはrdma
- --ユーザー名 <文字列
-
RBD Id.
pvesm status [OPTIONS]
すべてのデータストアのステータスを取得します。
- --内容 <文字列
-
このコンテンツタイプをサポートするストアのみをリストします。
- --有効 <ブール値>(デフォルト = 0)
-
有効になっている (設定で無効になっていない) ストアのみをリストします。
- --format <boolean>(デフォルト = 0)
-
フォーマットに関する情報
- --ストレージ ID
-
指定したストレージのステータスのみを一覧表示
- --ターゲット <文字列
-
ターゲットがノードと異なる場合、このノードと指定されたターゲットノードでアクセス可能な共有ストレージのみがリストされます。
pvesm zfsscan
pvesm scan zfs のエイリアス。
22.4.pvesubscription- Proxmox VE サブスクリプションマネージャ
pvesubscription <COMMAND> [ARGS] [OPTIONS] です。
pvesubscriptionの削除
このノードの購読キーを削除します。
サブスクリプション取得
購読情報を読む
pvesubscriptionヘルプ [オプション].
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pvesubscriptionセット <キー
購読キーを設定します。
- <key>: \s*pve([1248])([cbsp])-[0-9a-f]{10}\s*
-
Proxmox VEサブスクリプションキー
pvesubscription set-offline-key <data>を設定します。
内部使用のみです!オフラインキーを設定するには、代わりに proxmox-offline-mirror-helper パッケージを使ってください。
- <データ>: <文字列
-
署名された購読情報の塊
pvesubscription update [OPTIONS]を実行します。
購読情報を更新しました。
- --force <ブール値>(デフォルト = 0)
-
ローカルのキャッシュがまだ有効であっても、常にサーバーに接続します。
22.6.pveceph- Proxmox VE ノードで CEPH サービスを管理
pveceph <COMMAND> [ARGS] [OPTIONS] です。
pveceph createmgr
pveceph mgr create のエイリアス。
ヴェセフ・クリエイトモン
pveceph mon create のエイリアス。
プベケフ・クリエイト・オスド
pveceph osd create のエイリアス。
pvecephはプールを作成します。
pveceph pool create のエイリアス。
ヴェーセフ・デストロイムグ
pveceph mgr destroy のエイリアス。
プヴェセフ・デストロイモン
pveceph mon destroy のエイリアス。
ヴェセフ・デストロエスディー
pveceph osd destroy のエイリアス。
プベセフ・デストロイプール
pveceph pool destroy のエイリアス。
pveceph fs create [OPTIONS](pveceph fs create [OPTIONS])
Cephファイルシステムの作成
- --add-storage <boolean>(デフォルト = 0)
-
作成されたCephFSをこのクラスタのストレージとして構成します。
- --name <文字列>(デフォルト = cephfs)
-
cephファイルシステム名。
- --pg_num <整数> (8 - 32768)(デフォルト = 128)
-
バッキング・データ・プールの配置グループ数。メタデータ・プールはこの4分の1を使用します。
pveceph fs destroy <name> [OPTIONS].
Cephファイルシステムの破棄
- <名前>: <文字列
-
cephファイルシステム名。
- --remove-pools <boolean>(デフォルト = 0)
-
この fs に設定されているデータとメタデータのプールを削除します。
- --remove-storages <boolean>(デフォルト = 0)
-
この fs 用に構成された pveceph 管理ストレージをすべて削除します。
pveceph help [OPTIONS] (オプション)
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pveceph init [OPTIONS] です。
cephの初期デフォルト構成を作成し、シンボリックリンクを設定します。
- --cluster-network <文字列
-
独立したクラスタネットワークを宣言し、OSDはハートビート、オブジェクトレプリケーション、リカバリのトラフィックをルーティングします。
必要なオプション:ネットワーク - --disable_cephx <boolean>(デフォルト = 0)
-
cephx認証を無効にします。
cephxは中間者攻撃から保護するセキュリティ機能です。ネットワークがプライベートな場合にのみ、cephxの無効化を検討してください! - --min_size <整数> (1 - 7)(デフォルト = 2)
-
I/Oを許可するために、オブジェクトごとに利用可能なレプリカの最小数
- --ネットワーク <文字列
-
すべてのceph関連トラフィックに特定のネットワークを使用します。
- --pg_bits <整数> (6 - 14)(デフォルト = 6)
-
配置グループのデフォルト数を指定するために使用します。
非推奨。この設定は、最近のCephバージョンで非推奨になりました。
- --サイズ <整数> (1 - 7)(デフォルト = 3)
-
オブジェクトあたりの目標レプリカ数
pveceph install [OPTIONS] (オプション)
ceph関連パッケージをインストールします。
- --allow-experimental <boolean>(デフォルト = 0)
-
実験的バージョンを許可します。注意して使用してください!
- --リポジトリ <enterprise | no-subscription | test>(デフォルト = enterprise)
-
使用するCephリポジトリ。
- --バージョン <quincy | reef | squid>(デフォルト = quincy)
-
インストールするCephのバージョン。
鞭打ち鞭打ち鞭打ち鞭打ち鞭打ち鞭打ち鞭打ち鞭打ち鞭打ち鞭打ち鞭打ち
pveceph pool ls のエイリアス。
pveceph mds create [OPTIONS] [オプション]。
Cephメタデータサーバ(MDS)の作成
- --hotstandby <boolean>(デフォルト = 0)
-
ceph-mdsデーモンがアクティブなデータシートのログをポーリングして再生するかどうかを決定します。データシートの障害時の切り替えが高速化されますが、アイドルリソースがより多く必要になります。
- --name [a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(default = nodename)
-
省略時はノード名と同じ。
pveceph mds destroy <名前>。
Cephメタデータサーバの破棄
- <name>: [a-zA-Z0-9]([a-zA-Z0-9\-]*[a-zA-Z0-9])?
-
mdsの名前(ID)
pveceph mgr create [OPTIONS] [オプション]。
Ceph Managerの作成
- --id [a-zA-Z0-9]([a-zA-Z0-9\-]*[a-zA-Z0-9])?
-
省略時はノード名と同じ。
pveceph mgr destroy <id>
Ceph Managerを破棄します。
- <id>: [a-zA-Z0-9]([a-zA-Z0-9\-]*[a-zA-Z0-9])?
-
マネージャーのID
pveceph mon create [OPTIONS]を作成します。
Cephモニタとマネージャの作成
- --モン・アドレス <文字列
-
自動検出されたモニタIPアドレスを上書きします。Cephのパブリックネットワーク内にある必要があります。
- --monid [a-zA-Z0-9]([a-zA-Z0-9\-]*[a-zA-Z0-9])?
-
省略時はノード名と同じ。
pveceph モンを破壊する <monid
Ceph MonitorとManagerを破棄します。
- <monid>: [a-zA-Z0-9]([a-zA-Z0-9\-]*[a-zA-Z0-9])?
-
モニターID
pveceph osd create <dev> [OPTIONS].
OSDの作成
- <dev>: <文字列
-
ブロックデバイス名。
- -crush-device-class <文字列>。
-
OSDのデバイスクラスをクラッシュで設定します。
- --db_dev <文字列
-
block.db のブロックデバイス名。
- --db_dev_size <number> (1 - N)(デフォルト = bluestore_block_db_size または OSD サイズの 10%)
-
block.dbのGiB単位のサイズ。
必要なオプション:db_dev - --暗号化 <ブール値>(デフォルト = 0)
-
OSDの暗号化を有効にします。
- --osds-per-device <整数> (1 - N)
-
物理デバイスごとのOSDサービス。高速な NVMe デバイスにのみ有効です。
- --wal_dev <文字列
-
block.walのブロックデバイス名。
- --wal_dev_size <number> (0.5 - N)(デフォルト = bluestore_block_wal_size または OSD サイズの 1%)
-
block.walのGiBサイズ。
必要なオプション:wal_dev
pveceph osd destroy <osdid> [OPTIONS].
OSDの破棄
- <osdid>: <整数
-
OSD ID
- --クリーンアップ <ブール値>(デフォルト = 0)
-
もしセットされていれば、パーティションテーブルのエントリーを削除します。
pveceph osd details <osdid> [OPTIONS] [FORMAT_OPTIONS].
OSDの詳細を取得します。
- <osdid>: <文字列
-
OSDのID
- --verbose <boolean>(デフォルト = 0)
-
json-pretty 出力形式と同じです。
pveceph pool create <name> [OPTIONS] [オプション].
Cephプールの作成
- <名前>: <文字列
-
プールの名前。一意でなければなりません。
- --add_storages <boolean>(デフォルト = 0; データ消去プールの場合: 1)
-
新しいプールを使用してVMとCTストレージを構成します。
- --アプリケーション <cephfs | rbd | rgw>(デフォルト = rbd)
-
プールの応用。
- -crush_rule(クラッシュルール) <文字列
-
クラスタ内のオブジェクト配置のマッピングに使用するルール。
- --erasure-coding k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]。
-
RBD用の消去コード化プールと、それに付随するメタデータストレージ用の複製プールを作成します。ECでは、共通のcephオプションsize、min_size、crush_ruleパラメータがメタデータプールに適用されます。
- --min_size <整数> (1 - 7)(デフォルト = 2)
-
オブジェクトあたりの最小レプリカ数
- --pg_autoscale_mode <off | on | warn>(デフォルト = warn)
-
プールの自動PGスケーリングモード。
- --pg_num <整数> (1 - 32768)(デフォルト = 128)
-
配置グループの数。
- --pg_num_min <整数> (-N - 32768)
-
配置グループの最小数。
- --サイズ <整数> (1 - 7)(デフォルト = 3)
-
オブジェクトごとのレプリカ数
- --target_size ^(¬d+(¬d+)?)([KMGT])?$?
-
PGオートスケーラのプールの推定目標サイズ。
- --target_size_ratio <数値> を指定します。
-
PGオートスケーラのプールの推定目標比率。
pveceph pool destroy <name> [OPTIONS] [オプション].
プールを破壊
- <名前>: <文字列
-
プールの名前。一意でなければなりません。
- --force <ブール値>(デフォルト = 0)
-
trueの場合、使用中であってもプールを破棄します。
- --remove_ecprofile <boolean>(デフォルト = 1)
-
消去コード・プロファイルを削除します。該当する場合、デフォルトは true です。
- --remove_storages <boolean>(デフォルト = 0)
-
このプールに設定されているすべての pveceph 管理ストレージを削除します。
pveceph pool get <name> [OPTIONS] [FORMAT_OPTIONS] です。
現在のプールの状態を表示します。
- <名前>: <文字列
-
プールの名前。一意でなければなりません。
- --verbose <boolean>(デフォルト = 0)
-
有効にすると、追加データ(統計など)が表示されます。
pveceph pool ls [FORMAT_OPTIONS] です。
すべてのプールとその設定 (POST/PUT エンドポイントで設定可能) を一覧表示します。
pveceph pool set <name> [OPTIONS].
POOL設定の変更
- <名前>: <文字列
-
プールの名前。一意でなければなりません。
- --application <cephfs | rbd | rgw>.
-
プールの応用。
- -crush_rule(クラッシュルール) <文字列
-
クラスタ内のオブジェクト配置のマッピングに使用するルール。
- --最小サイズ <整数> (1 - 7)
-
オブジェクトあたりの最小レプリカ数
- --pg_autoscale_mode <off | on | warn> です。
-
プールの自動PGスケーリングモード。
- --pg_num <整数> (1 - 32768)
-
配置グループの数。
- --pg_num_min <整数> (-N - 32768)
-
配置グループの最小数。
- --サイズ <整数> (1 - 7)
-
オブジェクトごとのレプリカ数
- --target_size ^(¬d+(¬d+)?)([KMGT])?$?
-
PGオートスケーラのプールの推定目標サイズ。
- --target_size_ratio <数値> を指定します。
-
PGオートスケーラのプールの推定目標比率。
pveceph purge [OPTIONS] (パージ・ オプション)
ceph関連のデータと構成ファイルを破棄します。
- --クラッシュ <ブール値
-
さらに、/var/lib/ceph/crashのCephクラッシュログをパージします。
- --ログ <ブール値
-
さらに、/var/log/cephのCephログをパージします。
pveceph start [OPTIONS] です。
cephサービスを開始します。
- --service (ceph|mon|mds|osd|mgr)(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)(default = ceph.target )?
-
Cephサービス名。
pvecephステータス
Cephのステータスを取得します。
pveceph stop [OPTIONS] [オプション].
cephサービスを停止します。
- --service (ceph|mon|mds|osd|mgr)(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)(default = ceph.target )?
-
Cephサービス名。
22.7.pvenode- Proxmox VE ノード管理
pvenode <COMMAND> [ARGS] [OPTIONS] です。
pvenode acme account deactivate [<name>](アクメアカウントの無効化)
CAで既存のACMEアカウントを停止します。
- <name>: <名前>(デフォルト = デフォルト)
-
ACMEアカウント設定ファイル名。
pvenode acme account info [<name>] [FORMAT_OPTIONS].
既存のACMEアカウント情報を返します。
- <name>: <名前>(デフォルト = デフォルト)
-
ACMEアカウント設定ファイル名。
pvenode acmeアカウントリスト
ACMEAccount インデックス。
pvenode acme account register [<name>] {<contact>} [OPTIONS].
互換性のあるCAに新しいACMEアカウントを登録します。
- <name>: <名前>(デフォルト = デフォルト)
-
ACMEアカウント設定ファイル名。
- <連絡先>: <文字列
-
連絡先メールアドレス
- -ディレクトリ ^https?://.*.
-
ACME CA ディレクトリエンドポイントの URL。
pvenode acme account update [<name>] [OPTIONS].
既存の ACME アカウント情報を CA で更新します。注意:新しいアカウント情報を指定しないと、更新がトリガされます。
- <name>: <名前>(デフォルト = デフォルト)
-
ACMEアカウント設定ファイル名。
- --連絡先 <文字列
-
連絡先メールアドレス
pvenode acme cert order [OPTIONS](アクメ証明書注文 )
ACME 互換の CA に新しい証明書を注文します。
- --force <ブール値>(デフォルト = 0)
-
既存のカスタム証明書を上書きします。
pvenode acme cert renew [OPTIONS](アクメ証明書の更新 )
CA から既存の証明書を更新します。
- --force <ブール値>(デフォルト = 0)
-
有効期限が30日以上先の場合でも、強制的に更新されます。
pvenode acme 認証取り消し
CA から既存の証明書を失効させます。
pvenode acme plugin add <type> <id> [OPTIONS].
ACMEプラグインの設定を追加します。
- <タイプ>: <dns | standalone>.
-
ACMEのチャレンジタイプ。
- <id>: <文字列
-
ACMEプラグインID名
- --api <1984hosting | acmedns | acmeproxy | active24 | ad | ali | anx | artfiles | arvan | aurora | autodns | aws | azion | azure | bookmyname | bunny | cf | clouddns | cloudns| cn|conoha|constellix|cpanel|curanet|cyon|da|ddnss|desec|df|dgon|dnsexit|dnshome|dnsimple|dnsservices|do|doapi|domeneshop|dp|dpi| dreamhost | duckdns | durabledns | dyn | dynu | dynv6 | easydns | edgedns | euserv | exoscale | fornex | freedns | gandi_livedns | gcloud | gcore | gd | geoscaling| googledomains | he | hetzner | hexonet | hostingde | huaweicloud | infoblox | infomaniak | internetbs | inwx | ionos | ipv64 | ispconfig | jd | joker | kappernet | kas| kinghost|knot|la| leaseweb|lexicon|linode|linode_v4|loopia|lua|maradns|me|miab|misaka|myapi|mydevil|mydnsjp|mythic_beasts|namecheap| namecom | namesilo | nanelo | nederhost | neodigit | netcup | netlify | nic | njalla | nm | nsd | nsone | nsupdate | nw | oci | one | online | openprovider | openstack| opnsense|ovh|pdns|pleskxml|pointhq|porkbun|rackcorp|rackspace|rage4|rcode0|regru|scaleway|schlundtech|selectel|selfhost|servercow|simply|tele3|tencent|transip|udr|ultra|unoeuro|variomedia|veesp|vercel|vscale|vultr|websupport|world4you|yandex|yc|zilore|zone|zonomi>。
-
APIプラグイン名
- --data 1行に1つのキーと値のペアを持つファイルで、プラグイン設定に保存するためにbase64urlエンコードされます。
-
DNSプラグインのデータ。(base64 エンコード)
- --無効 <ブール値
-
設定を無効にするフラグ。
- --ノード <文字列
-
クラスタ・ノード名のリスト。
- --validation-delay <integer> (0 - 172800)(デフォルト = 30)
-
検証を要求する前に待つ、秒単位の追加遅延。DNS レコードの TTL が長い場合に対応できるようにします。
pvenode acme plugin config <id> [FORMAT_OPTIONS]です。
ACMEプラグインの設定を取得します。
- <id>: <文字列
-
ACMEプラグインインスタンスの一意な識別子。
pvenode acmeプラグインリスト [OPTIONS] [FORMAT_OPTIONS]
ACMEプラグインインデックス
- --タイプ <dns | standalone>
-
特定のタイプのACMEプラグインのみをリストアップします。
pvenode acme プラグイン remove <id
ACMEプラグインの設定を削除します。
- <id>: <文字列
-
ACMEプラグインインスタンスの一意な識別子。
pvenode acme plugin set <id> [OPTIONS] [オプション]。
ACMEプラグインの設定を更新します。
- <id>: <文字列
-
ACMEプラグインID名
- --api <1984hosting | acmedns | acmeproxy | active24 | ad | ali | anx | artfiles | arvan | aurora | autodns | aws | azion | azure | bookmyname | bunny | cf | clouddns | cloudns| cn|conoha|constellix|cpanel|curanet|cyon|da|ddnss|desec|df|dgon|dnsexit|dnshome|dnsimple|dnsservices|do|doapi|domeneshop|dp|dpi| dreamhost | duckdns | durabledns | dyn | dynu | dynv6 | easydns | edgedns | euserv | exoscale | fornex | freedns | gandi_livedns | gcloud | gcore | gd | geoscaling| googledomains | he | hetzner | hexonet | hostingde | huaweicloud | infoblox | infomaniak | internetbs | inwx | ionos | ipv64 | ispconfig | jd | joker | kappernet | kas| kinghost|knot|la| leaseweb|lexicon|linode|linode_v4|loopia|lua|maradns|me|miab|misaka|myapi|mydevil|mydnsjp|mythic_beasts|namecheap| namecom | namesilo | nanelo | nederhost | neodigit | netcup | netlify | nic | njalla | nm | nsd | nsone | nsupdate | nw | oci | one | online | openprovider | openstack| opnsense|ovh|pdns|pleskxml|pointhq|porkbun|rackcorp|rackspace|rage4|rcode0|regru|scaleway|schlundtech|selectel|selfhost|servercow|simply|tele3|tencent|transip|udr|ultra|unoeuro|variomedia|veesp|vercel|vscale|vultr|websupport|world4you|yandex|yc|zilore|zone|zonomi>。
-
APIプラグイン名
- --data 1行に1つのキーと値のペアを持つファイルで、プラグイン設定に保存するためにbase64urlエンコードされます。
-
DNSプラグインのデータ。(base64 エンコード)
- --削除 <文字列
-
削除したい設定のリスト。
- -ダイジェスト <文字列
-
現在のコンフィギュレーション・ファイルのダイジェストが異なる場合、変更を防止します。これは同時修正を防ぐために使用できます。
- --無効 <ブール値
-
設定を無効にするフラグ。
- --ノード <文字列
-
クラスタ・ノード名のリスト。
- --validation-delay <integer> (0 - 172800)(デフォルト = 30)
-
検証を要求する前に待つ、秒単位の追加遅延。DNS レコードの TTL が長い場合に対応できるようにします。
pvenode cert delete [<restart>]。
カスタム証明書チェーンとキーを削除します。
- <restart>: <ブール値>(デフォルト = 0)
-
pveproxyを再起動します。
pvenode証明書情報 [FORMAT_OPTIONS]。
ノードの証明書に関する情報を取得します。
pvenode cert set <ertificates> [<key>] [OPTIONS] [FORMAT_OPTIONS] .
カスタム証明書チェーンとキーをアップロードまたは更新します。
- <証明書>: <文字列
-
PEM エンコードされた証明書(チェーン)。
- <キー>: <文字列
-
PEM エンコードされた秘密鍵。
- --force <ブール値>(デフォルト = 0)
-
既存のカスタムまたは ACME 証明書ファイルを上書きします。
- --restart <boolean>(デフォルト = 0)
-
pveproxyを再起動します。
pvenode config get [OPTIONS] [OPTIONS]を取得します。
ノード設定オプションを取得します。
- --プロパティ <acme | acmedomain0 | acmedomain1 | acmedomain2 | acmedomain3 | acmedomain4 | acmedomain5 | description | startall-onboot-delay | wakeonlan>(デフォルト = all)
-
ノード構成から特定のプロパティのみを返します。
pvenode config set [OPTIONS]を設定 します。
ノード設定オプションを設定します。
- --acme [アカウント=<名前>] [,ドメイン=<ドメイン[;ドメイン;...]>]]。
-
ノード固有のACME設定。
- --acmedomain[n] [domain=]<domain> [,alias=<ドメイン>] [,plugin=<プラグイン設定名>]]。
-
ACMEドメインとバリデーションプラグイン
- --削除 <文字列
-
削除したい設定のリスト。
- --説明 <文字列
-
ノードの説明。ウェブインターフェースのノードノートパネルに表示されます。これは設定ファイル内にコメントとして保存されます。
- -ダイジェスト <文字列
-
現在の設定ファイルの SHA1 ダイジェストが異なる場合に変更を防止します。これは同時変更を防ぐために使用できます。
- --startall-onboot-delay <integer> (0 - 300)(デフォルト = 0)
-
オンブートが有効なすべての仮想ゲストを開始するまでの初期遅延時間 (秒)。
- --wakeonlan [mac=]<MACアドレス> [,bind-interface=<バインドインターフェース>] [,broadcast-address=<IPv4ブロードキャストアドレス>]。
-
ノード固有のウェイクオンLAN設定。
pvenodeヘルプ [オプション]
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pvenode migrateall <ターゲット> [オプション].
すべてのVMとコンテナを移行します。
- <ターゲット>: <文字列
-
対象ノード
- -最大労働者数 <整数> (1 - N)
-
並列マイグレーションジョブの最大数。設定されていない場合は、datacenter.cfgの'max_workers'を使用します。両方を設定する必要があります!
- --vms <文字列
-
これらのIDをお持ちのお客様のみご検討ください。
- --ローカルディスクあり <ブール値
-
ローカルディスクのライブストレージ移行を有効にします。
pvenode startall [OPTIONS] [OPTIONS]。
このノードにあるすべてのVMとコンテナ(デフォルトではonboot=1のもののみ)を起動します。
- --force <ブール値>(デフォルト = オフ)
-
仮想ゲストのonbootが設定されていない、またはoffに設定されていてもstartコマンドを発行します。
- --vms <文字列
-
コンマで区切られたVMIDのリストからのゲストのみを考慮します。
pvenode stopall [OPTIONS](プベノード・ストップオール)
すべてのVMとコンテナを停止します。
- -強制停止 <ブール値>(デフォルト = 1)
-
タイムアウト後の強引なストップ。
- --タイムアウト <整数> (0 - 7200)(デフォルト = 180)
-
各ゲストシャットダウンタスクのタイムアウト。強制停止に応じて、シャットダウンは単に中止されるか、ハード停止が強制されます。
- --vms <文字列
-
これらのIDをお持ちのお客様のみご検討ください。
pvenodeタスクリスト [OPTIONS] [FORMAT_OPTIONS]
1つのノードのタスクリスト(終了したタスク)を読み取ります。
- --エラー <ブール値>(デフォルト = 0)
-
ステータスが ERROR のタスクのみをリストします。
- --リミット <整数> (0 - N)(デフォルト = 50)
-
この量のタスクだけをリストアップしてください。
- --以降 <整数
-
この UNIX エポック以降のタスクのみをリストします。
- --ソース <アクティブ | すべて | アーカイブ>(デフォルト = アーカイブ)
-
アーカイブされたタスク、アクティブなタスク、すべてのタスクを一覧表示します。
- --start <整数> (0 - N)(デフォルト = 0)
-
このオフセットから始まるタスクをリストします。
- --statusfilter <文字列
-
返されるべきタスク状態のリスト。
- --typefilter <文字列
-
このタイプのタスク(例:vzstart、vzdump)のみをリストアップします。
- <integer> まで
-
このUNIXエポックまでのタスクだけをリストアップします。
- --userfilter <文字列
-
このユーザーのタスクのみをリストアップします。
- --vmid <整数> (100 - 999999999)
-
この VM のタスクのみをリストします。
pvenode タスクログ <upid> [OPTIONS].
タスクログを読む
- <upid>: <文字列
-
タスク固有のID。
- --ダウンロード <ブール値
-
タスクログファイルをダウンロードするかどうか。このパラメータは他のパラメータと併用することはできません。
- --start <整数> (0 - N)(デフォルト = 0)
-
タスクログを読むときは、この行から始めます。
pvenode タスクステータス <upid> [FORMAT_OPTIONS].
タスクのステータスを読み取ります。
- <upid>: <文字列
-
タスク固有のID。
pvenode wakeonlan <ノード>。
wake on LANネットワークパケットでノードをウェイクアップします。
- <ノード>: <文字列
-
ウェイクオンLANパケットのターゲットノード
22.8.pvesh- Proxmox VE API 用シェルインターフェース
pvesh <COMMAND> [ARGS] [OPTIONS].
pvesh create <api_path> [OPTIONS] [FORMAT_OPTIONS] です。
<api_path>でAPI POSTを呼び出します。
- <api_path>: <文字列
-
APIパス。
- --noproxy <ブール値
-
自動プロキシを無効にします。
pvesh delete <api_path> [OPTIONS] [FORMAT_OPTIONS].
<api_path>でAPI DELETEを呼び出します。
- <api_path>: <文字列
-
APIパス。
- --noproxy <ブール値
-
自動プロキシを無効にします。
pvesh get <api_path> [OPTIONS] [FORMAT_OPTIONS].
<api_path>でAPI GETを呼び出します。
- <api_path>: <文字列
-
APIパス。
- --noproxy <ブール値
-
自動プロキシを無効にします。
pvesh help [OPTIONS]
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pvesh ls <api_path> [OPTIONS] [FORMAT_OPTIONS].
<api_path>上の子オブジェクトを一覧表示します。
- <api_path>: <文字列
-
APIパス。
- --noproxy <ブール値
-
自動プロキシを無効にします。
pvesh set <api_path> [OPTIONS] [FORMAT_OPTIONS].
<api_path>でAPI PUTを呼び出します。
- <api_path>: <文字列
-
APIパス。
- --noproxy <ブール値
-
自動プロキシを無効にします。
pvesh usage <api_path> [OPTIONS]を使用します。
<api_path> の API 使用情報を表示します。
- <api_path>: <文字列
-
APIパス。
- --コマンド <create | delete | get | set>.
-
APIコマンド。
- <boolean>を返します。
-
返されたデータのスキーマを含みます。
- --verbose <ブール値
-
冗長出力フォーマット。
22.9.qm- QEMU/KVM 仮想マシンマネージャ
qm <COMMAND> [ARGS] [OPTIONS] です。
qmエージェント
qm guest cmd のエイリアス。
qm cleanup <vmid> <clean-shutdown> <guest-requested>.
タップデバイスやvgpusなどのリソースをクリーンアップします。vm のシャットダウンやクラッシュなどの後に呼び出されます。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <クリーンシャットダウン>: <ブール値
-
qemuがクリーンにシャットダウンしたかどうかを示します。
- <ゲストリクエスト>: <ブール値
-
シャットダウンがゲストによって要求されたか、qmp を介して要求されたかを示します。
qm clone <vmid> <newid> [OPTIONS].
仮想マシン/テンプレートのコピーを作成します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <newid>: <整数> (100 - 999999999)
-
クローンの VMID。
- --bwlimit <integer> (0 - N)(デフォルト = データセンターまたはストレージ設定からのクローン制限)
-
I/O帯域幅制限のオーバーライド(単位:KiB/s)。
- --説明 <文字列
-
新しいVMの説明。
- --format <qcow2 | raw | vmdk>.
-
ファイルストレージのターゲットフォーマット。フルクローンの場合のみ有効です。
- --full <ブール値
-
すべてのディスクの完全コピーを作成します。これは通常のVMをクローンするときに必ず行われます。VMテンプレートでは、デフォルトでリンクされたクローンを作成しようとします。
- --name <文字列
-
新しいVMの名前を設定します。
- --プール <文字列
-
新しいVMを指定したプールに追加します。
- --スナップネーム <文字列
-
スナップショットの名前。
- --ストレージ ID
-
フルクローンの対象ストレージ。
- --ターゲット <文字列
-
ターゲット・ノード。元のVMが共有ストレージ上にある場合にのみ許可されます。
qm cloudinit dump <vmid> <type>です。
自動生成された cloudinit 設定を取得します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <type>: <meta | network | user> です。
-
コンフィグタイプ。
qm cloudinit pending <vmid>です。
cloudinitコンフィギュレーションを現在の値と保留中の値の両方で取得します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
qm cloudinit update <vmid>です。
cloudinit設定ドライブを再生成して変更します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
qm config <vmid> [OPTIONS].
保留中の構成変更を適用した仮想マシン構成を取得します。現在のコンフィギュレーションを取得するには、currentパラメータを設定します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --カレント <ブール値>(デフォルト = 0)
-
保留値ではなく)現在の値を取得します。
- --スナップショット <文字列
-
指定されたスナップショットから設定値を取得します。
qm create <vmid> [OPTIONS]。
仮想マシンを作成またはリストアします。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --acpi <ブール値>(デフォルト = 1)
-
ACPI を有効/無効にします。
- --アフィニティ <文字列
-
ゲストプロセスの実行に使用されるホストコアのリスト(例:0,5,8-11
- --agent [enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>].
-
QEMU ゲストエージェントとそのプロパティとの通信を有効/無効にします。
- --amd-sev [type=]<sev-type>[,kernel-hashes=<1|0>][,no-debug=<1|0>][,no-key-sharing=<1|0>]。
-
AMD CPUによるセキュア暗号化仮想化(SEV)機能
- --arch <aarch64 | x86_64>.
-
仮想プロセッサ・アーキテクチャ。デフォルトはホスト。
- --アーカイブ <文字列
-
バックアップアーカイブ。.tarまたは.vmaファイルへのファイルシステムのパス(標準入力からデータをパイプする場合は-を使用)、またはproxmoxストレージのバックアップボリューム識別子。
- --args <文字列
-
kvm に渡される任意の引数。
- --audio0 device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>].
-
QXL/Spiceと組み合わせると便利です。
- --autostart <boolean>(デフォルト = 0)
-
クラッシュ後の自動再起動(現在は無視)。
- --バルーン <整数> (0 - N)
-
VM のターゲット RAM の量 (MiB 単位)。ゼロを使用すると、バロンドライバが無効になります。
- --bios <ovmf | seabios>(デフォルト = seabios)
-
BIOSの実装を選択します。
- --boot [[legacy=]<[acdn]{1,4}>][,order=<デバイス[;デバイス...]>]]。
-
ゲストの起動順序を指定します。order=サブプロパティを使用してください。
- --ブートディスク (ide|sata|scsi|virtio)◆d+.
-
指定したディスクからの起動を有効にします。非推奨:代わりにboot: order=foo;barを使用してください。
- --bwlimit <integer> (0 - N)(デフォルト = データセンターまたはストレージ設定から制限を復元)
-
I/O帯域幅制限のオーバーライド(単位:KiB/s)。
- --CDROM <ボリューム
-
これは -ide2 オプションのエイリアスです。
- --cicustom [meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>].
-
cloud-init:開始時に自動生成されるファイルを置き換えるカスタムファイルを指定します。
- --パスワード
-
cloud-init:ユーザーに割り当てるパスワード。一般的に、これを使うことは推奨されません。代わりに ssh 鍵を使います。また、古いバージョンの cloud-init はハッシュ化されたパスワードをサポートしていないことに注意しましょう。
- --citype <configdrive2 | nocloud | opennebula>.
-
cloud-init設定フォーマットを指定します。デフォルトは、設定されているオペレーティングシステムの種類(ostype.Linuxではnocloud形式、Windowsではconfigdrive2を使用します。
- --ciupgrade <ブール値>(デフォルト = 1)
-
cloud-init: 最初の起動後にパッケージの自動アップグレードを行います。
- --ciuser <文字列
-
cloud-init:イメージに設定されているデフォルトユーザーの代わりに、sshキーとパスワードを変更するユーザー名。
- --コア数 <整数> (1 - N)(デフォルト = 1)
-
ソケットあたりのコア数。
- --cpu [[cputype=]<string>] ]。[,フラグ=<+FLAG[;-FLAG...]>] ]を指定します。[,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]。
-
エミュレートされたCPUタイプ。
- --cpulimit <number> (0 - 128)(デフォルト = 0)
-
CPU使用量の上限。
- --cpuunits <integer> (1 - 262144)(デフォルト = cgroup v1: 1024, cgroup v2: 100)
-
VM の CPU ウェイトは、cgroup v2 では [1, 10000] にクランプされます。
- --説明 <文字列
-
VM の説明。WebインターフェイスのVMのサマリーに表示されます。コンフィギュレーション・ファイルのコメントとして保存されます。
- --efidisk0 [file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<ソースボリューム>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>].
-
EFIバーを格納するディスクを設定します。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。SIZE_IN_GiBはここでは無視され、代わりにデフォルトのEFIバーがボリュームにコピーされることに注意してください。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。
- --force <ブール値
-
既存のVMの上書きを許可します。
必要なオプション:archive - --フリーズ <ブール値
-
起動時にCPUをフリーズ(cmonitorコマンドで実行開始)。
- --hookscript <文字列
-
vmsのライフタイムの様々なステップで実行されるスクリプト。
- --hostpci[n] [[host=]<HOSTPCIID[;HOSTPCIID2...]>][,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0> ] [,romfile=<string>] [,sub-devpci=<1|0>] [[host=]<HOSTPCIID[;HOSTPCIID2...]>]。] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>] となります。
-
ホストのPCIデバイスをゲストにマッピングします。
- --hotplug <string>(デフォルト = ネットワーク,ディスク,USB)
-
ホットプラグ機能を選択的に有効にします。これはカンマ区切りのホットプラグ機能のリストです:ネットワーク、ディスク、CPU、メモリ、USB、cloudinit。ホットプラグを完全に無効にするには0を使用します。値として1 を使用すると、デフォルトのnetwork、disk、usb のエイリアスになります。USB ホットプラグは、マシンのバージョンが >= 7.1 で、ostype l26 または Windows > 7 のゲストで可能です。
- --hugepages <1024 | 2 | any>.
-
hugepagesメモリの有効/無効。
- --ide[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソース・ボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<CDROM|DISK] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>] となります。
-
ボリュームをIDEハードディスクまたはCD-ROMとして使用します(nは0~3)。新しいボリュームを割り当てるには、特別な構文STORAGE_ID:SIZE_IN_GiBを使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。
- --import-working-storage <ストレージID>.
-
インポート時に中間抽出ストレージとして使用されます。デフォルトはソースストレージです。
- --ipconfig[n] [gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>].
-
cloud-init:対応するインターフェースのIPアドレスとゲートウェイを指定します。
IPアドレスはCIDR表記を使用し、ゲートウェイはオプションですが、同じタイプのIPを指定する必要があります。
特別な文字列dhcpは、DHCPを使用するIPアドレスに使用することができ、その場合、明示的なゲートウェイを提供する必要はありません。 IPv6の場合、特別な文字列autoは、ステートレス自動設定を使用するために使用することができます。これにはcloud-init 19.4以降が必要です。
cloud-initが有効で、IPv4アドレスもIPv6アドレスも指定されていない場合、デフォルトでIPv4のdhcpを使用します。
- --ivshmem size=<整数> [,name=<文字列>] です。
-
VM間共有メモリ。VM間やホストとの直接通信に便利。
- --keephugepages <boolean>(デフォルト = 0)
-
hugepagesと一緒に使用します。有効にすると、hugepagesはVMシャットダウン後も削除されず、その後の起動に使用できます。
- --keyboard <da | de | de-ch | en-gb | en-us | es | fi | fr | fr-be | fr-ca | fr-ch | hu | is | it | ja | lt | mk | nl | no | pl | pt | pt-br | sl | sv | tr>.
-
VNC サーバーのキーボードレイアウト。このオプションは一般的には必要なく、ゲストOS内で処理した方が良い場合が多いです。
- --kvm <論理値>(デフォルト = 1)
-
KVMハードウェア仮想化の有効/無効を設定します。
- --ライブリストア <ブール値
-
バックグラウンドでインポートまたはリストアしている間、VMを直ちに起動します。
- --ローカルタイム <ブール値
-
リアルタイムクロック(RTC)をローカルタイムに設定します。ostypeがMicrosoft Windows OSの場合、デフォルトで有効になります。
- --lock <バックアップ|クローン|作成|マイグレーション|ロールバック|スナップショット|スナップショット削除|サスペンド|一時停止>。
-
VMをロック/アンロックします。
- --マシン [[タイプ=]<マシンタイプ>]] [,viommu=<intel|virtio>]]。 [viommu=<intel|virtio>]です。
-
QEMUマシンを指定します。
- --メモリ [current=]<整数
-
メモリ特性。
- --migrate_downtime <number> (0 - N)(デフォルト = 0.1)
-
マイグレーションの最大許容ダウンタイム(秒)を設定します。新しく汚れたRAMを転送する必要があるため、マイグレーションが最後まで収束しない場合、マイグレーションが収束するまで、この上限は自動的に段階的に増加します。
- --migrate_speed <integer> (0 - N)(デフォルト = 0)
-
マイグレーションの最大速度(MB/s)を設定します。値 0 は制限なしです。
- --name <文字列
-
VM の名前を設定します。コンフィギュレーションWebインターフェイスでのみ使用します。
- --ネームサーバー <文字列
-
cloud-init:コンテナの DNS サーバー IP アドレスを設定します。searchdomain も nameserver も設定されていない場合、Create は自動的にホストからの設定を使用します。
- --net[n] [model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>][,<model>=<macaddr>] [,<model>=<macaddr>] [,<model>=<macaddr
-
ネットワーク機器を指定します。
- --numa <boolean>(デフォルト = 0)
-
NUMAの有効/無効。
- --numa[n] cpus=<id[-id];...> [,hostnodes=<id[-id];...>]を指定します。[,memory=<number>] [,policy=<preferred|bind|interleave>]となります。
-
NUMAトポロジー。
- --onboot <boolean>(デフォルト = 0)
-
システム起動時に VM を起動するかどうかを指定します。
- --ostype <l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win11 | win7 | win8 | wvista | wxp>.
-
ゲストオペレーティングシステムを指定します。
- --parallel[n] /dev/parportd+|/dev/usb/lpd+
-
ホスト・パラレル・デバイスをマップします(nは0~2)。
- --プール <文字列
-
VMを指定したプールに追加します。
- --プロテクション <ブール値>(デフォルト = 0)
-
VM の保護フラグを設定します。これにより、VM の削除とディスクの削除操作が無効になります。
- --reboot <boolean>(デフォルト = 1)
-
再起動を許可。0に設定すると、VM は再起動時に終了します。
- --rng0 [source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>].
-
VirtIO ベースの乱数ジェネレータを設定します。
- --sata[n] [file=]<volume> [,aio=<native|threads|io_uring>>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソース・ボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0> ]。] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]。
-
ボリュームをSATAハードディスクまたはCD-ROMとして使用します(nは0~5)。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。
- --scsi[n] [[file=]<volume> [,aio=<native|threads|io_uring>>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソースボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0> ]。] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>] となります。
-
ボリュームをSCSIハードディスクまたはCD-ROMとして使用します(nは0~30)。新しいボリュームを割り当てるには、特別な構文STORAGE_ID:SIZE_IN_GiBを使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。
- --scihw <lsi | lsi53c810 | megasas | pvscsi | virtio-scsi-pci | virtio-scsi-single>(デフォルト = lsi)
-
SCSIコントローラモデル
- --検索ドメイン <文字列
-
cloud-init:コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定されていない場合、Createはホストからの設定を自動的に使用します。
- -シリアル[n] (/dev/.+|socket)
-
VM内にシリアル・デバイスを作成(nは0~3)
- --shares <integer> (0 - 50000)(デフォルト = 1000)
-
オート・バルーニングのメモリ・シェア量。この数値が大きいほど、このVMはより多くのメモリを取得します。数値は、他のすべての実行中のVMの重みに対する相対値です。ゼロを使用すると、オートバルーニングは無効になります。オートバルーニングはpvestatdによって実行されます。
- --smbios1 [base64=<1|0>] [,family=<Base64エンコードされた文字列>] [,manufacturer=<Base64エンコードされた文字列>] [,product=<Base64エンコードされた文字列] [,serial=<Base64エンコードされた文字列>] [,sku=<Base64エンコードされた文字列>] [,uuid=<UUID>] [,version=<Base64エンコードされた文字列>] となります。
-
SMBIOSタイプ1のフィールドを指定します。
- --smp <整数> (1 - N)(デフォルト = 1)
-
CPU数。代わりに -sockets オプションを使用してください。
- --ソケット <整数> (1 - N)(デフォルト = 1)
-
CPUソケットの数。
- --spice_enhancements [foldersharing=<1|0>] [,videostreaming=<off|all|filter>]。
-
SPICE の追加機能拡張を設定します。
- --sshkeys <ファイルパス
-
cloud-init:公開 SSH 鍵を設定します (1 行に 1 つの鍵、OpenSSH 形式)。
- --start <boolean>(デフォルト = 0)
-
VMの作成に成功したら、VMを起動します。
- --startdate (now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)(default = now)
-
リアルタイムクロックの初期日付を設定します。有効な日付のフォーマットは'now'または2006-06-17T16:01:21または2006-06-17です。
- --startup`[[order=]\d+] [,up=d+] [,down=d+] `.
-
スタートアップとシャットダウンの動作。Orderは一般的な起動順序を定義する非負の数値です。シャットダウンは逆の順序で行われます。さらに、次のVMが起動または停止するまでの待ち時間を秒単位で設定できます。
- --ストレージ ID
-
デフォルトのストレージ。
- --tablet <ブール値>(デフォルト = 1)
-
USBタブレットデバイスを有効/無効にします。
- --タグ <文字列
-
VM のタグ。これは単なるメタ情報です。
- --tdf <ブール値>(デフォルト = 0)
-
時間ドリフト修正の有効/無効。
- --テンプレート <ブール値>(デフォルト = 0)
-
テンプレートの有効/無効。
- --tpmstate0 [ファイル=]<ボリューム> [,インポート元=<ソースボリューム>] [,サイズ=<ディスクサイズ>] [,バージョン=<v1.2|v2.0>]。
-
TPMの状態を保存するDiskを設定します。フォーマットはrawに固定されています。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。SIZE_IN_GiBはここでは無視され、代わりに4MiBが使用されることに注意してください。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。
- --unique <ブール値
-
一意のランダムなイーサネットアドレスを割り当てます。
必要なオプション:archive - --unused[n] [file=]<volume>
-
未使用ボリュームへの参照。これは内部的に使用されるので、手動で変更しないでください。
- --usb[n] [[host=]<HOSTUSBDEVICE|spice>]の場合[,マッピング=<マッピングID>] [,usb3=<1|0]
-
USBデバイスを設定します(nは0~4、マシンのバージョンが7.1以上、かつostype l26またはwindows > 7の場合、nは最大14まで)。
- --vcpus <整数> (1 - N)(デフォルト = 0)
-
ホットプラグされたvcpusの数。
- --vga [[タイプ=]<enum>]] [[クリップボード=<vnc[クリップボード=<vnc>] [,メモリ=<整数]
-
VGAハードウェアを設定します。
- --virtio[n] [file=]<volume> [,aio=<native|threads|io_uring>>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソース・ボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer> ] [,serial=<serial] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,secs=<integer>>のように指定します。
-
ボリュームをVIRTIOハードディスクとして使用します(nは0~15)。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。
- --vmgenid <UUID>(デフォルト = 1 (自動生成))
-
VM生成IDを設定します。作成または更新時に自動生成する場合は1 を使用し、明示的に無効にする場合は0 を渡します。
- --vmstatestorage <ストレージID>。
-
VM 状態ボリューム/ファイルのデフォルトストレージ。
- --watchdog [[model=]<i6300esb|ib700>][アクション]
-
仮想ハードウェア・ウォッチドッグ・デバイスを作成します。
qm delsnapshot <vmid> <snapname> [OPTIONS].
VMスナップショットを削除します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <スナップ名>: <文字列
-
スナップショットの名前。
- --force <ブール値
-
ディスクスナップショットの削除に失敗した場合でも、設定ファイルから削除できます。
qm destroy <vmid> [OPTIONS].
VM とすべての使用済み/所有ボリュームを破棄します。VM固有の権限とファイアウォールルールを削除します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --destroy-unreferenced-disks <boolean>(デフォルト = 0)
-
設定されている場合、有効になっているすべてのストレージから、VMIDが一致し、設定内で参照されていないすべてのディスクを追加で破棄します。
- --パージ <ブール値
-
バックアップ&レプリケーションジョブやHAなどの構成からVMIDを削除します。
- --スキップロック <ブール値
-
Ignore locks - rootのみがこのオプションを使用できます。
qm disk import <vmid> <source> <storage> [OPTIONS] .
VM の未使用ディスクとして外部ディスクイメージをインポート。イメージフォーマットは qemu-img(1) でサポートされている必要があります。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ソース>: <文字列
-
インポートするディスクイメージへのパス
- <ストレージ>: <ストレージID
-
対象ストレージID
- --format <qcow2 | raw | vmdk>.
-
対象フォーマット
- -ターゲットディスク <efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 | scsi13 | scsi14 | scsi15 | scsi16 | scsi17 | scsi18 | scsi19 | scsi2 | scsi20 | scsi21| scsi22|scsi23|scsi24|scsi25|scsi26|scsi27|scsi28|scsi29|scsi3|scsi30|scsi4|scsi5|scsi6|scsi7|scsi8|scsi9|tpmstate0|unused0|unused1|unused10|unused100|unused101|unused102|unused未使用103|未使用104|未使用105|未使用106|未使用107|未使用108|未使用109|未使用11|未使用110|未使用111|未使用112|未使用113|未使用114|未使用115|未使用116|未使用117|未使用118|未使用119|未使用119未使用12|未使用120|未使用121|未使用122|未使用123|未使用124|未使用125|未使用126|未使用127|未使用128|未使用129|未使用13|未使用130|未使用131|未使用132|未使用133|未使用134|未使用135|未使用136| 未使用137|未使用138|未使用139|未使用14|未使用140|未使用141|未使用142|未使用143|未使用144|未使用145|未使用146|未使用147|未使用148|未使用149|未使用15|未使用150|未使用151|未使用152| 未使用153|未使用154|未使用155|未使用156|未使用157|未使用158|未使用159|未使用16|未使用160|未使用161|未使用162|未使用163|未使用164|未使用165|未使用166|未使用167|未使用168|未使用169未使用17|未使用170|未使用171|未使用172|未使用173|未使用174|未使用175|未使用176|未使用177|未使用178|未使用179|未使用18|未使用180|未使用181|未使用182|未使用183|未使用184|未使用185未使用186名|未使用187名|未使用188名|未使用189名|未使用189名|未使用191名|未使用192名|未使用193名|未使用194名|未使用195名|未使用196名|未使用197名|未使用198名|未使用199名|未使用2名|未使用20名|未使用200名|未使用201名未使用202|未使用203|未使用204|未使用205|未使用206|未使用207|未使用208|未使用209|未使用21|未使用210|未使用211|未使用212|未使用213|未使用214|未使用215|未使用216|未使用217|未使用218未使用219|未使用22|未使用220|未使用221|未使用222|未使用223|未使用224|未使用225|未使用226|未使用227|未使用228|未使用229|未使用23|未使用230|未使用231|未使用232|未使用233|未使用234|未使用235| 未使用236|未使用237|未使用238|未使用239|未使用24|未使用240|未使用241|未使用242|未使用243|未使用244|未使用245|未使用246|未使用247|未使用248|未使用249|未使用25|未使用250|未使用251未使用252|未使用253|未使用254|未使用255|未使用26|未使用27|未使用28|未使用29|未使用3|未使用30|未使用31|未使用32|未使用33|未使用34|未使用35|未使用36|未使用37|未使用38|未使用39|未使用4|未使用未使用40|未使用41|未使用42|未使用43|未使用44|未使用45|未使用46|未使用47|未使用48|未使用49|未使用5|未使用50|未使用51|未使用52|未使用53|未使用54|未使用55|未使用56|未使用57|未使用58| 未使用6|未使用60|未使用61|未使用62|未使用63|未使用64|未使用65|未使用66|未使用67|未使用68|未使用69|未使用7|未使用70|未使用71|未使用72|未使用73|未使用74|未使用75|未使用76|未使用76未使用77|未使用78|未使用79|未使用8|未使用80|未使用81|未使用82|未使用83|未使用84|未使用85|未使用86|未使用87|未使用88|未使用89|未使用9|未使用90|未使用91|未使用92|未使用93|未使用94|未使用未使用95|未使用96|未使用97|未使用98|未使用99|virtio0|virtio1|virtio10|virtio11|virtio12|virtio13|virtio14|virtio15|virtio2|virtio3|virtio4|virtio5|virtio6|virtio7|virtio8|virtio9>。
-
ボリュームのインポート先のディスク名(例:scsi1)。
qm disk move <vmid> <disk> [<storage>] [OPTIONS].
ボリュームを別のストレージまたは別のVMに移動します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ディスク>: <efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 | scsi13 | scsi14 | scsi15 | scsi16 | scsi17 | scsi18 | scsi19 | scsi2 | scsi20 | scsi21| scsi22|scsi23|scsi24|scsi25|scsi26|scsi27|scsi28|scsi29|scsi3|scsi30|scsi4|scsi5|scsi6|scsi7|scsi8|scsi9|tpmstate0|unused0|unused1|unused10|unused100|unused101|unused102|unused未使用103|未使用104|未使用105|未使用106|未使用107|未使用108|未使用109|未使用11|未使用110|未使用111|未使用112|未使用113|未使用114|未使用115|未使用116|未使用117|未使用118|未使用119|未使用119未使用12|未使用120|未使用121|未使用122|未使用123|未使用124|未使用125|未使用126|未使用127|未使用128|未使用129|未使用13|未使用130|未使用131|未使用132|未使用133|未使用134|未使用135|未使用136| 未使用137|未使用138|未使用139|未使用14|未使用140|未使用141|未使用142|未使用143|未使用144|未使用145|未使用146|未使用147|未使用148|未使用149|未使用15|未使用150|未使用151|未使用152| 未使用153|未使用154|未使用155|未使用156|未使用157|未使用158|未使用159|未使用16|未使用160|未使用161|未使用162|未使用163|未使用164|未使用165|未使用166|未使用167|未使用168|未使用169未使用17|未使用170|未使用171|未使用172|未使用173|未使用174|未使用175|未使用176|未使用177|未使用178|未使用179|未使用18|未使用180|未使用181|未使用182|未使用183|未使用184|未使用185未使用186名|未使用187名|未使用188名|未使用189名|未使用189名|未使用191名|未使用192名|未使用193名|未使用194名|未使用195名|未使用196名|未使用197名|未使用198名|未使用199名|未使用2名|未使用20名|未使用200名|未使用201名未使用202|未使用203|未使用204|未使用205|未使用206|未使用207|未使用208|未使用209|未使用21|未使用210|未使用211|未使用212|未使用213|未使用214|未使用215|未使用216|未使用217|未使用218未使用219|未使用22|未使用220|未使用221|未使用222|未使用223|未使用224|未使用225|未使用226|未使用227|未使用228|未使用229|未使用23|未使用230|未使用231|未使用232|未使用233|未使用234|未使用235| 未使用236|未使用237|未使用238|未使用239|未使用24|未使用240|未使用241|未使用242|未使用243|未使用244|未使用245|未使用246|未使用247|未使用248|未使用249|未使用25|未使用250|未使用251未使用252|未使用253|未使用254|未使用255|未使用26|未使用27|未使用28|未使用29|未使用3|未使用30|未使用31|未使用32|未使用33|未使用34|未使用35|未使用36|未使用37|未使用38|未使用39|未使用4|未使用未使用40|未使用41|未使用42|未使用43|未使用44|未使用45|未使用46|未使用47|未使用48|未使用49|未使用5|未使用50|未使用51|未使用52|未使用53|未使用54|未使用55|未使用56|未使用57|未使用58| 未使用6|未使用60|未使用61|未使用62|未使用63|未使用64|未使用65|未使用66|未使用67|未使用68|未使用69|未使用7|未使用70|未使用71|未使用72|未使用73|未使用74|未使用75|未使用76|未使用76未使用77|未使用78|未使用79|未使用8|未使用80|未使用81|未使用82|未使用83|未使用84|未使用85|未使用86|未使用87|未使用88|未使用89|未使用9|未使用90|未使用91|未使用92|未使用93|未使用94|未使用未使用95|未使用96|未使用97|未使用98|未使用99|virtio0|virtio1|virtio10|virtio11|virtio12|virtio13|virtio14|virtio15|virtio2|virtio3|virtio4|virtio5|virtio6|virtio7|virtio8|virtio9>。
-
移動したいディスク。
- <ストレージ>: <ストレージID
-
対象のストレージ
- --bwlimit <integer> (0 - N)(デフォルト = データセンターまたはストレージ設定から制限を移動)
-
I/O帯域幅制限のオーバーライド(単位:KiB/s)。
- --delete <boolean>(デフォルト = 0)
-
コピー成功後、元のディスクを削除します。デフォルトでは、元のディスクは未使用ディスクとして保持されます。
- -ダイジェスト <文字列
-
現在の設定ファイルのSHA1" . "ダイジェストが異なる場合、変更を防止します。これは、同時変更を防ぐために使用できます。
- --format <qcow2 | raw | vmdk>.
-
対象フォーマット
- -ターゲット・ダイジェスト <文字列
-
ターゲットVMの現在のコンフィグファイルのSHA1ダイジェストが" . "異なる場合、変更を防止します。これは、同時変更を検出するために使用できます。
- -ターゲットディスク <efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 | scsi13 | scsi14 | scsi15 | scsi16 | scsi17 | scsi18 | scsi19 | scsi2 | scsi20 | scsi21| scsi22|scsi23|scsi24|scsi25|scsi26|scsi27|scsi28|scsi29|scsi3|scsi30|scsi4|scsi5|scsi6|scsi7|scsi8|scsi9|tpmstate0|unused0|unused1|unused10|unused100|unused101|unused102|unused未使用103|未使用104|未使用105|未使用106|未使用107|未使用108|未使用109|未使用11|未使用110|未使用111|未使用112|未使用113|未使用114|未使用115|未使用116|未使用117|未使用118|未使用119|未使用119未使用12|未使用120|未使用121|未使用122|未使用123|未使用124|未使用125|未使用126|未使用127|未使用128|未使用129|未使用13|未使用130|未使用131|未使用132|未使用133|未使用134|未使用135|未使用136| 未使用137|未使用138|未使用139|未使用14|未使用140|未使用141|未使用142|未使用143|未使用144|未使用145|未使用146|未使用147|未使用148|未使用149|未使用15|未使用150|未使用151|未使用152| 未使用153|未使用154|未使用155|未使用156|未使用157|未使用158|未使用159|未使用16|未使用160|未使用161|未使用162|未使用163|未使用164|未使用165|未使用166|未使用167|未使用168|未使用169未使用17|未使用170|未使用171|未使用172|未使用173|未使用174|未使用175|未使用176|未使用177|未使用178|未使用179|未使用18|未使用180|未使用181|未使用182|未使用183|未使用184|未使用185未使用186名|未使用187名|未使用188名|未使用189名|未使用189名|未使用191名|未使用192名|未使用193名|未使用194名|未使用195名|未使用196名|未使用197名|未使用198名|未使用199名|未使用2名|未使用20名|未使用200名|未使用201名未使用202|未使用203|未使用204|未使用205|未使用206|未使用207|未使用208|未使用209|未使用21|未使用210|未使用211|未使用212|未使用213|未使用214|未使用215|未使用216|未使用217|未使用218未使用219|未使用22|未使用220|未使用221|未使用222|未使用223|未使用224|未使用225|未使用226|未使用227|未使用228|未使用229|未使用23|未使用230|未使用231|未使用232|未使用233|未使用234|未使用235| 未使用236|未使用237|未使用238|未使用239|未使用24|未使用240|未使用241|未使用242|未使用243|未使用244|未使用245|未使用246|未使用247|未使用248|未使用249|未使用25|未使用250|未使用251|未使用252|未使用253|未使用252|未使用253|未使用254|未使用245|未使用246|未使用247|未使用248|未使用249|未使用25|未使用250|未使用251未使用252|未使用253|未使用254|未使用255|未使用26|未使用27|未使用28|未使用29|未使用3|未使用30|未使用31|未使用32|未使用33|未使用34|未使用35|未使用36|未使用37|未使用38|未使用39|未使用4|未使用未使用40|未使用41|未使用42|未使用43|未使用44|未使用45|未使用46|未使用47|未使用48|未使用49|未使用5|未使用50|未使用51|未使用52|未使用53|未使用54|未使用55|未使用56|未使用57|未使用58| 未使用6|未使用60|未使用61|未使用62|未使用63|未使用64|未使用65|未使用66|未使用67|未使用68|未使用69|未使用7|未使用70|未使用71|未使用72|未使用73|未使用74|未使用75|未使用76|未使用76未使用77|未使用78|未使用79|未使用8|未使用80|未使用81|未使用82|未使用83|未使用84|未使用85|未使用86|未使用87|未使用88|未使用89|未使用9|未使用90|未使用91|未使用92|未使用93|未使用94|未使用未使用95|未使用96|未使用97|未使用98|未使用99|virtio0|virtio1|virtio10|virtio11|virtio12|virtio13|virtio14|virtio15|virtio2|virtio3|virtio4|virtio5|virtio6|virtio7|virtio8|virtio9>。
-
ターゲット VM 上でディスクが移動される設定キー (例えば、ide0 または scsi1)。デフォルトはソースディスクキーです。
- --ターゲット-vmid <整数> (100 - 999999999)
-
VMの(一意の)ID。
qm disk rescan [OPTIONS] (ディスク再スキャン)
すべてのストレージを再スキャンし、ディスクサイズと未使用ディスクイメージを更新します。
- --ドライラン <ブール値>(デフォルト = 0)
-
VM config(s)に実際に変更を書き出さないようにします。
- --vmid <整数> (100 - 999999999)
-
VMの(一意の)ID。
qm disk resize <vmid> <disk> <size> [OPTIONS].
ボリュームサイズを拡張します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ディスク>: <efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 |Scsi13 | Scsi14 | Scsi15 | Scsi16 | Scsi17 | Scsi18 | Scsi19 | Scsi2 | Scsi20 | Scsi21 | Scsi22 | Scsi23 | Scsi24 | Scsi25 | Scsi26 |scsi27|scsi28|scsi29|scsi3|scsi30|scsi4|scsi5|scsi6|scsi7|scsi8|scsi9|tpmstate0|virtio0|virtio1|virtio10|virtio11|virtio12|virtio13|virtio14|virtio15|virtio2|virtio3|virtio4|virtio5|virtio6|virtio7|virtio8|virtio9
-
サイズを変更したいディスク。
- <サイズ>です: \+?\d+(\.\d+)?[KMGT]?
-
新しいサイズ。記号を付けると、その値はボリュームの実際のサイズに加算され、付けない場合は絶対値となります。ディスク・サイズの縮小はサポートされていません。
- -ダイジェスト <文字列
-
現在の設定ファイルの SHA1 ダイジェストが異なる場合に変更を防止します。これは同時変更を防ぐために使用できます。
- --スキップロック <ブール値
-
Ignore locks - rootのみがこのオプションを使用できます。
qm disk unlink <vmid> --idlist <string> [OPTIONS].
ディスクイメージのリンク解除/削除
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --force <ブール値
-
物理的な削除を強制します。これがないと、単純に設定ファイルからディスクを削除し、ボリュームIDを含むunused[n]という追加の設定エントリを作成します。unused[n]のリンク解除は、常に物理的な削除を引き起こします。
- --idlist <文字列
-
削除したいディスク ID のリスト。
qm guest cmd <vmid> <command
QEMU Guest Agentのコマンドを実行します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <command>: <fsfreeze-freeze|fsfreeze-status|fsfreeze-thaw|fstrim|get-fsinfo|get-host-name|get-memory-block-info|get-memory-blocks|get-osinfo|get-time|get-timezone|get-users|get-vcpus|info|network-get-interfaces|ping|shutdown|suspend-disk|suspend-hybrid|suspend-ram>。
-
QGAコマンド。
qm guest exec <vmid> [<extra-args>] [OPTIONS].
ゲストエージェント経由で指定されたコマンドを実行します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <extra-args>: <array> です。
-
配列としての追加引数
- --pass-stdin <ブール値>(デフォルト = 0)
-
設定されると、EOF まで STDIN を読み込み、input-data経由でゲストエージェントに転送します (通常、ゲストエージェントによって起動されるプロセスの STDIN として扱われます)。最大 1MiB を許可します。
- --同期 <ブール値>(デフォルト = 1)
-
off に設定すると、コマンドの終了やタイムアウトを待たずに、即座に pid を返します。
- --タイムアウト <整数> (0 - N)(デフォルト = 30)
-
コマンドが終了するまで同期的に待つ最大時間。到達した場合、pidが返されます。無効にするには0を設定します。
qm guest exec-status <vmid> <pid>.
ゲストエージェントによって開始された指定された pid のステータスを取得します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <pid>: <整数
-
問い合わせるPID
qm guest passwd <vmid> <username> [OPTIONS].
指定されたユーザのパスワードを指定されたパスワードに設定します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ユーザー名>: <文字列
-
パスワードを設定するユーザー。
- --暗号化 <ブール値>(デフォルト = 0)
-
パスワードがすでに crypt() を通過している場合は 1 を設定します。
qm help [OPTIONS]
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
qm import <vmid> <source> --storage <string> [OPTIONS] .
ESXi ストレージなど、サポートされているインポートソースから外国の仮想ゲストをインポートします。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ソース>: <文字列
-
インポート元のボリューム ID。
- --acpi <ブール値>(デフォルト = 1)
-
ACPI を有効/無効にします。
- --アフィニティ <文字列
-
ゲストプロセスの実行に使用されるホストコアのリスト(例:0,5,8-11
- --agent [enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>].
-
QEMU ゲストエージェントとそのプロパティとの通信を有効/無効にします。
- --amd-sev [type=]<sev-type>[,kernel-hashes=<1|0>][,no-debug=<1|0>][,no-key-sharing=<1|0>]。
-
AMD CPUによるセキュア暗号化仮想化(SEV)機能
- --arch <aarch64 | x86_64>.
-
仮想プロセッサ・アーキテクチャ。デフォルトはホスト。
- --args <文字列
-
kvm に渡される任意の引数。
- --audio0 device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>].
-
QXL/Spiceと組み合わせると便利です。
- --autostart <boolean>(デフォルト = 0)
-
クラッシュ後の自動再起動(現在は無視されています)。
- --バルーン <整数> (0 - N)
-
VM のターゲット RAM の量 (MiB 単位)。ゼロを使用すると、バロンドライバが無効になります。
- --bios <ovmf | seabios>(デフォルト = seabios)
-
BIOSの実装を選択します。
- --boot [[legacy=]<[acdn]{1,4}>][,order=<デバイス[;デバイス...]>]]。
-
ゲストの起動順序を指定します。order=サブプロパティを使用してください。
- --ブートディスク (ide|sata|scsi|virtio)◆d+.
-
指定したディスクからの起動を有効にします。非推奨:代わりにboot: order=foo;barを使用してください。
- --CDROM <ボリューム
-
これは -ide2 オプションのエイリアスです。
- --cicustom [meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>].
-
cloud-init:開始時に自動生成されるファイルを置き換えるカスタムファイルを指定します。
- -パスワード <文字列
-
cloud-init:ユーザーに割り当てるパスワード。一般的に、これを使うことは推奨されません。代わりに ssh 鍵を使います。また、古いバージョンの cloud-init はハッシュ化されたパスワードをサポートしていないことに注意しましょう。
- --citype <configdrive2 | nocloud | opennebula>.
-
cloud-init設定フォーマットを指定します。デフォルトは、設定されているオペレーティングシステムの種類(ostype.Linuxではnocloud形式、Windowsではconfigdrive2を使用します。
- --ciupgrade <ブール値>(デフォルト = 1)
-
cloud-init: 最初の起動後にパッケージの自動アップグレードを行います。
- --ciuser <文字列
-
cloud-init:イメージに設定されているデフォルトユーザーの代わりに、sshキーとパスワードを変更するユーザー名。
- --コア数 <整数> (1 - N)(デフォルト = 1)
-
ソケットあたりのコア数。
- --cpu [[cputype=]<string>] ]。[,フラグ=<+FLAG[;-FLAG...]>] ]を指定します。[,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]。
-
エミュレートされたCPUタイプ。
- --cpulimit <number> (0 - 128)(デフォルト = 0)
-
CPU使用量の上限。
- --cpuunits <integer> (1 - 262144)(デフォルト = cgroup v1: 1024, cgroup v2: 100)
-
VM の CPU ウェイトは、cgroup v2 では [1, 10000] にクランプされます。
- --削除 <文字列
-
削除したい設定のリスト。
- --説明 <文字列
-
VM の説明。WebインターフェイスのVMのサマリーに表示されます。コンフィギュレーション・ファイルのコメントとして保存されます。
- --ドライラン <ブール値>(デフォルト = 0)
-
createコマンドを表示し、何もせずに終了します。
- --efidisk0 [file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>].
-
EFIバーを保存するディスクを設定します。
- --format <qcow2 | raw | vmdk>.
-
対象フォーマット
- --フリーズ <ブール値
-
起動時にCPUをフリーズ(cmonitorコマンドで実行開始)。
- --hookscript <文字列
-
vmsのライフタイムの様々なステップで実行されるスクリプト。
- --hostpci[n] [[host=]<HOSTPCIID[;HOSTPCIID2...]>][,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0> ] [,romfile=<string>] [,sub-devpci=<1|0>] [[host=]<HOSTPCIID[;HOSTPCIID2...]>]。] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>] となります。
-
ホストのPCIデバイスをゲストにマッピングします。
- --hotplug <string>(デフォルト = ネットワーク,ディスク,USB)
-
ホットプラグ機能を選択的に有効にします。これはカンマ区切りのホットプラグ機能のリストです:ネットワーク、ディスク、CPU、メモリ、USB、cloudinit。ホットプラグを完全に無効にするには0を使用します。値として1 を使用すると、デフォルトのnetwork、disk、usb のエイリアスになります。USB ホットプラグは、マシンのバージョンが >= 7.1 で、ostype l26 または Windows > 7 のゲストで可能です。
- --hugepages <1024 | 2 | any>.
-
hugepagesメモリの有効/無効。
- --ide[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<秒>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0> ] [,size=<Disk] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]。
-
ボリュームをIDEハードディスクまたはCD-ROMとして使用します(nは0~3)。
- --ipconfig[n] [gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>].
-
cloud-init:対応するインターフェースのIPアドレスとゲートウェイを指定します。
IPアドレスはCIDR表記を使用し、ゲートウェイはオプションですが、同じタイプのIPを指定する必要があります。
特別な文字列dhcpは、DHCPを使用するIPアドレスに使用することができ、その場合、明示的なゲートウェイを提供する必要はありません。 IPv6の場合、特別な文字列autoは、ステートレス自動設定を使用するために使用することができます。これにはcloud-init 19.4以降が必要です。
cloud-initが有効で、IPv4アドレスもIPv6アドレスも指定されていない場合、デフォルトでIPv4のdhcpを使用します。
- --ivshmem size=<整数> [,name=<文字列>] です。
-
VM間共有メモリ。VM間やホストとの直接通信に便利。
- --keephugepages <boolean>(デフォルト = 0)
-
hugepagesと一緒に使用します。有効にすると、hugepagesはVMシャットダウン後も削除されず、その後の起動に使用できます。
- --keyboard <da | de | de-ch | en-gb | en-us | es | fi | fr | fr-be | fr-ca | fr-ch | hu | is | it | ja | lt | mk | nl | no | pl | pt | pt-br | sl | sv | tr>.
-
VNC サーバーのキーボードレイアウト。このオプションは一般的には必要なく、ゲストOS内で処理した方が良い場合が多いです。
- --kvm <論理値>(デフォルト = 1)
-
KVMハードウェア仮想化の有効/無効を設定します。
- --live-import <boolean>(デフォルト = 0)
-
すぐにVMを起動し、バックグラウンドでデータをコピーします。
- --ローカルタイム <ブール値
-
リアルタイムクロック(RTC)をローカルタイムに設定します。ostypeがMicrosoft Windows OSの場合、デフォルトで有効になります。
- --lock <バックアップ|クローン|作成|マイグレーション|ロールバック|スナップショット|スナップショット削除|サスペンド|一時停止>。
-
VMをロック/アンロックします。
- --マシン [[タイプ=]<マシンタイプ>]] [,viommu=<intel|virtio>]]。 [viommu=<intel|virtio>]です。
-
QEMUマシンを指定します。
- --メモリ [current=]<整数
-
メモリ特性。
- --migrate_downtime <number> (0 - N)(デフォルト = 0.1)
-
マイグレーションの最大許容ダウンタイム(秒)を設定します。新しく汚れたRAMを転送する必要があるため、マイグレーションが最後まで収束しない場合、マイグレーションが収束するまで、この上限は自動的に段階的に増加します。
- --migrate_speed <integer> (0 - N)(デフォルト = 0)
-
マイグレーションの最大速度(MB/s)を設定します。値 0 は制限なしです。
- --name <文字列
-
VM の名前を設定します。コンフィギュレーションWebインターフェイスでのみ使用します。
- --ネームサーバー <文字列
-
cloud-init:コンテナの DNS サーバー IP アドレスを設定します。searchdomain も nameserver も設定されていない場合、Create は自動的にホストからの設定を使用します。
- --net[n] [model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>][,<model>=<macaddr>] [,<model>=<macaddr>] [,<model>=<macaddr
-
ネットワーク機器を指定します。
- --numa <boolean>(デフォルト = 0)
-
NUMAの有効/無効。
- --numa[n] cpus=<id[-id];...> [,hostnodes=<id[-id];...>]を指定します。[,memory=<number>] [,policy=<preferred|bind|interleave>]となります。
-
NUMAトポロジー。
- --onboot <boolean>(デフォルト = 0)
-
システム起動時に VM を起動するかどうかを指定します。
- --ostype <l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win11 | win7 | win8 | wvista | wxp>.
-
ゲストオペレーティングシステムを指定します。
- --parallel[n] /dev/parportd+|/dev/usb/lpd+
-
ホスト・パラレル・デバイスをマップします(nは0~2)。
- --プロテクション <ブール値>(デフォルト = 0)
-
VM の保護フラグを設定します。これにより、VM の削除とディスクの削除操作が無効になります。
- --reboot <boolean>(デフォルト = 1)
-
再起動を許可。0に設定すると、VM は再起動時に終了します。
- --rng0 [source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>].
-
VirtIO ベースの乱数ジェネレータを設定します。
- --sata[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<秒>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]。
-
ボリュームをSATAハードディスクまたはCD-ROMとして使用します(nは0~5)。
- --scsi[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps> ]。] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>] となります。
-
ボリュームをSCSIハードディスクまたはCD-ROMとして使用します(nは0~30)。
- --scihw <lsi | lsi53c810 | megasas | pvscsi | virtio-scsi-pci | virtio-scsi-single>(デフォルト = lsi)
-
SCSIコントローラモデル
- --検索ドメイン <文字列
-
cloud-init:コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定されていない場合、Createはホストからの設定を自動的に使用します。
- -シリアル[n] (/dev/.+|socket)
-
VM内にシリアル・デバイスを作成(nは0~3)
- --shares <integer> (0 - 50000)(デフォルト = 1000)
-
オート・バルーニングのメモリ・シェア量。この数値が大きいほど、このVMはより多くのメモリを取得します。数値は、他のすべての実行中のVMの重みに対する相対値です。ゼロを使用すると、オートバルーニングは無効になります。オートバルーニングはpvestatdによって実行されます。
- --smbios1 [base64=<1|0>] [,family=<Base64エンコードされた文字列>] [,manufacturer=<Base64エンコードされた文字列>] [,product=<Base64エンコードされた文字列] [,serial=<Base64エンコードされた文字列>] [,sku=<Base64エンコードされた文字列>] [,uuid=<UUID>] [,version=<Base64エンコードされた文字列>] となります。
-
SMBIOSタイプ1のフィールドを指定します。
- --smp <整数> (1 - N)(デフォルト = 1)
-
CPU数。代わりに -sockets オプションを使用してください。
- --ソケット <整数> (1 - N)(デフォルト = 1)
-
CPUソケットの数。
- --spice_enhancements [foldersharing=<1|0>] [,videostreaming=<off|all|filter>]。
-
SPICE の追加機能拡張を設定します。
- --sshkeys <文字列
-
cloud-init:公開 SSH 鍵を設定します (1 行に 1 つの鍵、OpenSSH 形式)。
- --startdate (now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)(default = now)
-
リアルタイムクロックの初期日付を設定します。有効な日付のフォーマットは'now'または2006-06-17T16:01:21または2006-06-17です。
- --startup`[[order=]\d+] [,up=d+] [,down=d+] `.
-
スタートアップとシャットダウンの動作。Orderは一般的な起動順序を定義する非負の数値です。シャットダウンは逆の順序で行われます。さらに、次のVMが起動または停止するまでの待ち時間を秒単位で設定できます。
- --ストレージ ID
-
デフォルトのストレージ。
- --tablet <ブール値>(デフォルト = 1)
-
USBタブレットデバイスを有効/無効にします。
- --タグ <文字列
-
VM のタグ。これは単なるメタ情報です。
- --tdf <ブール値>(デフォルト = 0)
-
時間ドリフト修正の有効/無効。
- --テンプレート <ブール値>(デフォルト = 0)
-
テンプレートの有効/無効。
- --tpmstate0 [file=]<volume> [,size=<DiskSize>] [,version=<v1.2|v2.0>].
-
TPMの状態を保存するDiskを設定します。フォーマットはraw固定。
- --unused[n] [file=]<volume>
-
未使用ボリュームへの参照。これは内部的に使用されるので、手動で変更しないでください。
- --usb[n] [[host=]<HOSTUSBDEVICE|spice>]の場合[,マッピング=<マッピングID>] [,usb3=<1|0]
-
USBデバイスを設定します(nは0~4、マシンのバージョンが7.1以上、かつostype l26またはwindows > 7の場合、nは最大14まで)。
- --vcpus <整数> (1 - N)(デフォルト = 0)
-
ホットプラグされたvcpusの数。
- --vga [[タイプ=]<enum>]] [[クリップボード=<vnc[クリップボード=<vnc>] [,メモリ=<整数]
-
VGAハードウェアを設定します。
- --virtio[n] [file=]<volume> [,aio=<native|threads|io_uring>>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<秒>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps> ]。] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] となります。
-
ボリュームを VIRTIO ハード ディスクとして使用します (n は 0 ~ 15)。
- --vmgenid <UUID>(デフォルト = 1 (自動生成))
-
VM生成IDを設定します。作成または更新時に自動生成する場合は1 を使用し、明示的に無効にする場合は0 を渡します。
- --vmstatestorage <ストレージID>。
-
VM 状態ボリューム/ファイルのデフォルトストレージ。
- --watchdog [[model=]<i6300esb|ib700>][アクション]
-
仮想ハードウェア・ウォッチドッグ・デバイスを作成します。
qmインポートディスク
qm disk import のエイリアス。
qm importovf <vmid> <manifest> <storage> [OPTIONS].
OVFマニフェストから読み込んだパラメータを使用して新しいVMを作成します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <マニフェスト>: <文字列
-
ovfファイルへのパス
- <ストレージ>: <ストレージID
-
対象ストレージID
- --ドライラン <ブール値
-
抽出されたOVFパラメータの解析済み表現を出力しますが、VMは作成しません。
- --format <qcow2 | raw | vmdk>.
-
対象フォーマット
qmリスト [オプション]
仮想マシンのインデックス(ノードごと)。
- --full <ブール値
-
アクティブなVMの完全なステータスを決定します。
qm listsnapshot <vmid>です。
すべてのスナップショットを一覧表示します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
qm migrate <vmid> <target> [OPTIONS].
仮想マシンを移行します。新しい移行タスクを作成します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ターゲット>: <文字列
-
対象ノード
- --bwlimit <integer> (0 - N)(デフォルト = データセンターまたはストレージ設定からのマイグレーション制限)
-
I/O帯域幅制限のオーバーライド(単位:KiB/s)。
- --force <ブール値
-
ローカルデバイスを使用するVMのマイグレーションを許可します。このオプションはrootのみが使用できます。
- --マイグレーションネットワーク <文字列
-
移行に使用する(サブ)ネットワークのCIDR。
- --マイグレーションタイプ <insecure | secure>
-
マイグレーショントラフィックはデフォルトでSSHトンネルを使用して暗号化されます。安全で完全にプライベートなネットワークでは、パフォーマンスを上げるためにこれを無効にすることができます。
- --オンライン <ブール値
-
VM が実行中の場合、オンライン/ライブマイグレーションを使用。VM が停止している場合は無視されます。
- -ターゲットストレージ <文字列
-
ソースストレージからターゲットストレージへのマッピング。単一のストレージIDのみを指定すると、すべてのソース・ストレージがそのストレージにマッピングされます。特別な値1を指定すると、各ソース・ストレージはそれ自体にマッピングされます。
- --ローカルディスクあり <ブール値
-
ローカルディスクのライブストレージ移行を有効にします。
qm モニタ <vmid
QEMU Monitorインターフェイスに入ります。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
qm ディスク移動
qm disk move のエイリアス。
qm move_disk
qm disk move のエイリアス。
qm mtunnel
qmigrate によって使用されます - 手動で使用しないでください。
qm nbdstop <vmid>です。
組み込み nbd サーバーを停止します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
qm pending <vmid>
現在の値と保留中の値の両方を含む仮想マシン設定を取得します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
qm reboot <vmid> [OPTIONS].
VMをシャットダウンして再起動します。保留中の変更を適用します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --タイムアウト <整数> (0 - N)
-
シャットダウンまで最大タイムアウト秒数待ちます。
qm remote-migrate <vmid> [<target-vmid>] <target-endpoint> --target-bridge <string> --target-storage <string> [OPTIONS].
仮想マシンをリモートクラスタに移行します。新しい移行タスクを作成します。 EXPERIMENTAL 機能!
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ターゲット-vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ターゲットエンドポイント>: apitoken=<PVEAPIToken=user@realm!token=SECRET> ,host=<ADDRESS> [,fingerprint=<FINGERPRINT>] [,port=<PORT>].
-
リモートターゲットエンドポイント
- --bwlimit <integer> (0 - N)(デフォルト = データセンターまたはストレージ設定からのマイグレーション制限)
-
I/O帯域幅制限のオーバーライド(単位:KiB/s)。
- --delete <boolean>(デフォルト = 0)
-
移行成功後に元のVMと関連データを削除します。デフォルトでは、元のVMは停止した状態で移行元クラスタに保持されます。
- --オンライン <ブール値
-
VM が実行中の場合、オンライン/ライブマイグレーションを使用。VM が停止している場合は無視されます。
- --ターゲットブリッジ <文字列
-
ソース・ブリッジからターゲット・ブリッジへのマッピング。単一のブリッジ ID だけを指定すると、すべてのソース・ブリッジがそのブリッジにマッピングされます。特別な値1を指定すると、各ソース・ブリッジはそれ自身にマッピングされます。
- -ターゲットストレージ <文字列
-
ソースストレージからターゲットストレージへのマッピング。単一のストレージIDのみを指定すると、すべてのソース・ストレージがそのストレージにマッピングされます。特別な値1を指定すると、各ソース・ストレージはそれ自体にマッピングされます。
qm再スキャン
qm disk rescan のエイリアス。
qm reset <vmid> [OPTIONS].
仮想マシンをリセットします。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --スキップロック <ブール値
-
Ignore locks - rootのみがこのオプションを使用できます。
qm リサイズ
qm disk resize のエイリアス。
qm resume <vmid> [OPTIONS] [オプション].
仮想マシンを再開します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --nocheck <ブール値
-
説明なし
- --スキップロック <ブール値
-
Ignore locks - rootのみがこのオプションを使用できます。
qm rollback <vmid> <スナップ名> [オプション].
VMの状態を指定したスナップショットにロールバックします。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <スナップ名>: <文字列
-
スナップショットの名前。
- --start <boolean>(デフォルト = 0)
-
ロールバック成功後にVMを起動するかどうか。(注意: スナップショットにRAMが含まれている場合、VMは自動的に起動します)
qm sendkey <vmid> <key> [OPTIONS].
仮想マシンにキーイベントを送信します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <キー>: <文字列
-
キー(qemuモニターエンコーディング)。
- --スキップロック <ブール値
-
Ignore locks - rootのみがこのオプションを使用できます。
qm set <vmid> [OPTIONS].
仮想マシン・オプションの設定(同期API) - ホットプラグまたはストレージ割り当てを含むアクションでは、代わりにPOSTメソッドの使用を検討する必要があります。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --acpi <ブール値>(デフォルト = 1)
-
ACPI を有効/無効にします。
- --アフィニティ <文字列
-
ゲストプロセスの実行に使用されるホストコアのリスト(例:0,5,8-11
- --agent [enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>].
-
QEMU ゲストエージェントとそのプロパティとの通信を有効/無効にします。
- --amd-sev [type=]<sev-type>[,kernel-hashes=<1|0>][,no-debug=<1|0>][,no-key-sharing=<1|0>]。
-
AMD CPUによるセキュア暗号化仮想化(SEV)機能
- --arch <aarch64 | x86_64>.
-
仮想プロセッサ・アーキテクチャ。デフォルトはホスト。
- --args <文字列
-
kvm に渡される任意の引数。
- --audio0 device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>].
-
QXL/Spiceと組み合わせると便利です。
- --autostart <boolean>(デフォルト = 0)
-
クラッシュ後の自動再起動(現在は無視)。
- --バルーン <整数> (0 - N)
-
VM のターゲット RAM の量 (MiB 単位)。ゼロを使用すると、バロンドライバが無効になります。
- --bios <ovmf | seabios>(デフォルト = seabios)
-
BIOSの実装を選択します。
- --boot [[legacy=]<[acdn]{1,4}>][,order=<デバイス[;デバイス...]>]]。
-
ゲストの起動順序を指定します。order=サブプロパティを使用してください。
- --ブートディスク (ide|sata|scsi|virtio)◆d+.
-
指定したディスクからの起動を有効にします。非推奨:代わりにboot: order=foo;barを使用してください。
- --CDROM <ボリューム
-
これは -ide2 オプションのエイリアスです。
- --cicustom [meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>].
-
cloud-init:開始時に自動生成されるファイルを置き換えるカスタムファイルを指定します。
- --パスワード
-
cloud-init:ユーザーに割り当てるパスワード。一般的に、これを使うことは推奨されません。代わりに ssh 鍵を使います。また、古いバージョンの cloud-init はハッシュ化されたパスワードをサポートしていないことに注意しましょう。
- --citype <configdrive2 | nocloud | opennebula>.
-
cloud-init設定フォーマットを指定します。デフォルトは、設定されているオペレーティングシステムの種類(ostype.Linuxではnocloud形式、Windowsではconfigdrive2を使用します。
- --ciupgrade <ブール値>(デフォルト = 1)
-
cloud-init: 最初の起動後にパッケージの自動アップグレードを行います。
- --ciuser <文字列
-
cloud-init:イメージに設定されているデフォルトユーザーの代わりに、sshキーとパスワードを変更するユーザー名。
- --コア数 <整数> (1 - N)(デフォルト = 1)
-
ソケットあたりのコア数。
- --cpu [[cputype=]<string>] ]。[,フラグ=<+FLAG[;-FLAG...]>] ]を指定します。[,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]。
-
エミュレートされたCPUタイプ。
- --cpulimit <number> (0 - 128)(デフォルト = 0)
-
CPU使用量の上限。
- --cpuunits <integer> (1 - 262144)(デフォルト = cgroup v1: 1024, cgroup v2: 100)
-
VM の CPU ウェイトは、cgroup v2 では [1, 10000] にクランプされます。
- --削除 <文字列
-
削除したい設定のリスト。
- --説明 <文字列
-
VM の説明。WebインターフェイスのVMのサマリーに表示されます。コンフィギュレーション・ファイルのコメントとして保存されます。
- -ダイジェスト <文字列
-
現在の設定ファイルの SHA1 ダイジェストが異なる場合に変更を防止します。これは同時変更を防ぐために使用できます。
- --efidisk0 [file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<ソースボリューム>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>].
-
EFIバーを格納するディスクを設定します。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。SIZE_IN_GiBはここでは無視され、代わりにデフォルトのEFIバーがボリュームにコピーされることに注意してください。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。
- --force <ブール値
-
物理的な削除を強制します。これがないと、単純に設定ファイルからディスクを削除し、ボリュームIDを含むunused[n]という追加の設定エントリを作成します。unused[n]のリンク解除は、常に物理的な削除を引き起こします。
必要なオプション:削除 - --フリーズ <ブール値
-
起動時にCPUをフリーズ(cmonitorコマンドで実行開始)。
- --hookscript <文字列
-
vmsのライフタイムの様々なステップで実行されるスクリプト。
- --hostpci[n] [[host=]<HOSTPCIID[;HOSTPCIID2...]>][,device-id=<hex id>] [,legacy-igd=<1|0>] [,mapping=<mapping-id>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0> ] [,romfile=<string>] [,sub-devpci=<1|0>] [[host=]<HOSTPCIID[;HOSTPCIID2...]>]。] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>] となります。
-
ホストのPCIデバイスをゲストにマッピングします。
- --hotplug <string>(デフォルト = ネットワーク,ディスク,USB)
-
ホットプラグ機能を選択的に有効にします。これはカンマ区切りのホットプラグ機能のリストです:ネットワーク、ディスク、CPU、メモリ、USB、cloudinit。ホットプラグを完全に無効にするには0を使用します。値として1 を使用すると、デフォルトのnetwork、disk、usb のエイリアスになります。USB ホットプラグは、マシンのバージョンが >= 7.1 で、ostype l26 または windows > 7 のゲストで可能です。
- --hugepages <1024 | 2 | any>.
-
hugepagesメモリの有効/無効。
- --ide[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソース・ボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<CDROM|DISK] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>] となります。
-
ボリュームをIDEハードディスクまたはCD-ROMとして使用します(nは0~3)。新しいボリュームを割り当てるには、特別な構文STORAGE_ID:SIZE_IN_GiBを使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。
- --ipconfig[n] [gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>].
-
cloud-init:対応するインターフェースのIPアドレスとゲートウェイを指定します。
IPアドレスはCIDR表記を使用し、ゲートウェイはオプションですが、同じタイプのIPを指定する必要があります。
特別な文字列dhcpは、DHCPを使用するIPアドレスに使用することができ、その場合、明示的なゲートウェイを提供する必要はありません。 IPv6の場合、特別な文字列autoは、ステートレス自動設定を使用するために使用することができます。これにはcloud-init 19.4以降が必要です。
cloud-initが有効で、IPv4アドレスもIPv6アドレスも指定されていない場合、デフォルトでIPv4のdhcpを使用します。
- --ivshmem size=<整数> [,name=<文字列>] です。
-
VM間共有メモリ。VM間やホストとの直接通信に便利。
- --keephugepages <boolean>(デフォルト = 0)
-
hugepagesと一緒に使用します。有効にすると、hugepagesはVMシャットダウン後も削除されず、その後の起動に使用できます。
- --keyboard <da | de | de-ch | en-gb | en-us | es | fi | fr | fr-be | fr-ca | fr-ch | hu | is | it | ja | lt | mk | nl | no | pl | pt | pt-br | sl | sv | tr>.
-
VNC サーバーのキーボードレイアウト。このオプションは一般的には必要なく、ゲストOS内で処理した方が良い場合が多いです。
- --kvm <論理値>(デフォルト = 1)
-
KVMハードウェア仮想化の有効/無効を設定します。
- --ローカルタイム <ブール値
-
リアルタイムクロック(RTC)をローカルタイムに設定します。ostypeがMicrosoft Windows OSの場合、デフォルトで有効になります。
- --lock <バックアップ|クローン|作成|マイグレーション|ロールバック|スナップショット|スナップショット削除|サスペンド|一時停止>。
-
VMをロック/アンロックします。
- --マシン [[タイプ=]<マシンタイプ>]] [,viommu=<intel|virtio>]]。 [viommu=<intel|virtio>]です。
-
QEMUマシンを指定します。
- --メモリ [current=]<整数
-
メモリ特性。
- --migrate_downtime <number> (0 - N)(デフォルト = 0.1)
-
マイグレーションの最大許容ダウンタイム(秒)を設定します。新しく汚れたRAMを転送する必要があるため、マイグレーションが最後まで収束しない場合、マイグレーションが収束するまで、この上限は自動的に段階的に増加します。
- --migrate_speed <integer> (0 - N)(デフォルト = 0)
-
マイグレーションの最大速度(MB/s)を設定します。値 0 は制限なしです。
- --name <文字列
-
VM の名前を設定します。コンフィギュレーションWebインターフェイスでのみ使用します。
- --ネームサーバー <文字列
-
cloud-init:コンテナの DNS サーバー IP アドレスを設定します。searchdomain も nameserver も設定されていない場合、Create は自動的にホストからの設定を使用します。
- --net[n] [model=]<enum> [,bridge=<bridge>] [,firewall=<1|0>] [,link_down=<1|0>] [,macaddr=<XX:XX:XX:XX:XX:XX>] [,mtu=<integer>] [,queues=<integer>] [,rate=<number>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>][,<model>=<macaddr>] [,<model>=<macaddr>] [,<model>=<macaddr
-
ネットワーク機器を指定します。
- --numa <boolean>(デフォルト = 0)
-
NUMAの有効/無効。
- --numa[n] cpus=<id[-id];...> [,hostnodes=<id[-id];...>]を指定します。[,memory=<number>] [,policy=<preferred|bind|interleave>]となります。
-
NUMAトポロジー。
- --onboot <boolean>(デフォルト = 0)
-
システム起動時に VM を起動するかどうかを指定します。
- --ostype <l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win11 | win7 | win8 | wvista | wxp>.
-
ゲストオペレーティングシステムを指定します。
- --parallel[n] /dev/parportd+|/dev/usb/lpd+
-
ホスト・パラレル・デバイスをマップします(nは0~2)。
- --プロテクション <ブール値>(デフォルト = 0)
-
VM の保護フラグを設定します。これにより、VM の削除とディスクの削除操作が無効になります。
- --reboot <boolean>(デフォルト = 1)
-
再起動を許可。0に設定すると、VM は再起動時に終了します。
- --復帰 <文字列
-
保留中の変更を元に戻します。
- --rng0 [source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>].
-
VirtIO ベースの乱数ジェネレータを設定します。
- --sata[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソース・ボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0> ]。] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]。
-
ボリュームをSATAハードディスクまたはCD-ROMとして使用します(nは0~5)。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。
- --scsi[n] [[file=]<volume> [,aio=<native|threads|io_uring>>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソースボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,product=<product>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0> ]。] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,vendor=<vendor>] [,werror=<enum>] [,wwn=<wwn>] となります。
-
ボリュームをSCSIハードディスクまたはCD-ROMとして使用します(nは0~30)。新しいボリュームを割り当てるには、特別な構文STORAGE_ID:SIZE_IN_GiBを使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。
- --scihw <lsi | lsi53c810 | megasas | pvscsi | virtio-scsi-pci | virtio-scsi-single>(デフォルト = lsi)
-
SCSIコントローラモデル
- --検索ドメイン <文字列
-
cloud-init:コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定されていない場合、Createはホストからの設定を自動的に使用します。
- -シリアル[n] (/dev/.+|socket)
-
VM内にシリアル・デバイスを作成(nは0~3)
- --shares <integer> (0 - 50000)(デフォルト = 1000)
-
オート・バルーニングのメモリ・シェア量。この数値が大きいほど、このVMはより多くのメモリを取得します。数値は、他のすべての実行中のVMの重みに対する相対値です。ゼロを使用すると、オートバルーニングは無効になります。オートバルーニングはpvestatdによって実行されます。
- --スキップロック <ブール値
-
Ignore locks - rootのみがこのオプションを使用できます。
- --smbios1 [base64=<1|0>] [,family=<Base64エンコードされた文字列>] [,manufacturer=<Base64エンコードされた文字列>] [,product=<Base64エンコードされた文字列] [,serial=<Base64エンコードされた文字列>] [,sku=<Base64エンコードされた文字列>] [,uuid=<UUID>] [,version=<Base64エンコードされた文字列>] となります。
-
SMBIOSタイプ1のフィールドを指定します。
- --smp <整数> (1 - N)(デフォルト = 1)
-
CPU数。代わりに -sockets オプションを使用してください。
- --ソケット <整数> (1 - N)(デフォルト = 1)
-
CPUソケットの数。
- --spice_enhancements [foldersharing=<1|0>] [,videostreaming=<off|all|filter>]。
-
SPICE の追加機能拡張を設定します。
- --sshkeys <ファイルパス
-
cloud-init:公開 SSH 鍵を設定します (1 行に 1 つの鍵、OpenSSH 形式)。
- --startdate (now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)(default = now)
-
リアルタイムクロックの初期日付を設定します。有効な日付のフォーマットは'now'または2006-06-17T16:01:21または2006-06-17です。
- --startup`[[order=]\d+] [,up=d+] [,down=d+] `.
-
スタートアップとシャットダウンの動作。Orderは一般的な起動順序を定義する非負の数値です。シャットダウンは逆の順序で行われます。さらに、次のVMが起動または停止するまでの待ち時間を秒単位で設定できます。
- --tablet <ブール値>(デフォルト = 1)
-
USBタブレットデバイスを有効/無効にします。
- --タグ <文字列
-
VM のタグ。これは単なるメタ情報です。
- --tdf <ブール値>(デフォルト = 0)
-
時間ドリフト修正の有効/無効。
- --テンプレート <ブール値>(デフォルト = 0)
-
テンプレートの有効/無効。
- --tpmstate0 [ファイル=]<ボリューム> [,インポート元=<ソースボリューム>] [,サイズ=<ディスクサイズ>] [,バージョン=<v1.2|v2.0>]。
-
TPMの状態を保存するDiskを設定します。フォーマットはrawに固定されています。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。SIZE_IN_GiBはここでは無視され、代わりに4MiBが使用されることに注意してください。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。
- --unused[n] [file=]<volume>
-
未使用ボリュームへの参照。これは内部的に使用されるので、手動で変更しないでください。
- --usb[n] [[host=]<HOSTUSBDEVICE|spice>]の場合[,マッピング=<マッピングID>] [,usb3=<1|0]
-
USBデバイスを設定します(nは0~4、マシンのバージョンが7.1以上、かつostype l26またはwindows > 7の場合、nは最大14まで)。
- --vcpus <整数> (1 - N)(デフォルト = 0)
-
ホットプラグされたvcpusの数。
- --vga [[タイプ=]<enum>]] [[クリップボード=<vnc[クリップボード=<vnc>] [,メモリ=<整数]
-
VGAハードウェアを設定します。
- --virtio[n] [file=]<volume> [,aio=<native|threads|io_uring>>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<ソース・ボリューム>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer> ] [,serial=<serial] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,secs=<integer>>のように指定します。
-
ボリュームをVIRTIOハードディスクとして使用します(nは0~15)。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。既存のボリュームからインポートするには、STORAGE_ID:0とimport-fromパラメータを使用します。
- --vmgenid <UUID>(デフォルト = 1 (自動生成))
-
VM生成IDを設定します。作成または更新時に自動生成する場合は1 を使用し、明示的に無効にする場合は0 を渡します。
- --vmstatestorage <ストレージID>。
-
VM 状態ボリューム/ファイルのデフォルトストレージ。
- --watchdog [[model=]<i6300esb|ib700>][アクション]
-
仮想ハードウェア・ウォッチドッグ・デバイスを作成します。
qm showcmd <vmid> [OPTIONS].
VMの起動に使用されるコマンドラインを表示します(デバッグ情報)。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --pretty <ブール値>(デフォルト = 0)
-
各オプションを改行し、可読性を高めます。
- --スナップショット <文字列
-
指定されたスナップショットから設定値を取得します。
qm shutdown <vmid> [OPTIONS].
仮想マシンをシャットダウンします。これは、物理マシンの電源ボタンを押すのと似ています。これにより、ゲスト OS に ACPI イベントが送信され、クリーンシャットダウンに進むはずです。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --forceStop <boolean>(デフォルト = 0)
-
VMが停止していることを確認してください。
- --keepActive <boolean>(デフォルト = 0)
-
ストレージボリュームを停止しないでください。
- --スキップロック <ブール値
-
Ignore locks - rootのみがこのオプションを使用できます。
- --タイムアウト <整数> (0 - N)
-
最大タイムアウト秒数まで待ちます。
qm snapshot <vmid> <snapname> [OPTIONS].
VMをスナップショットします。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <スナップ名>: <文字列
-
スナップショットの名前。
- --説明 <文字列
-
テキストによる説明やコメント。
- --vmstate <ブール値
-
vmstateの保存
qm start <vmid> [OPTIONS].
仮想マシンを起動します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --force-cpu <文字列
-
QEMUの-cpu引数を与えられた文字列でオーバーライドします。
- --マシン [[タイプ=]<マシンタイプ>]] [,viommu=<intel|virtio>]]。 [viommu=<intel|virtio>]です。
-
QEMUマシンを指定します。
- -migratedfrom <文字列>。
-
クラスタ・ノード名。
- --マイグレーションネットワーク <文字列
-
移行に使用する(サブ)ネットワークのCIDR。
- --マイグレーションタイプ <insecure | secure>
-
マイグレーショントラフィックはデフォルトでSSHトンネルを使用して暗号化されます。安全で完全にプライベートなネットワークでは、パフォーマンスを上げるためにこれを無効にすることができます。
- --スキップロック <ブール値
-
Ignore locks - rootのみがこのオプションを使用できます。
- --stateuri <文字列
-
いくつかのコマンドは、この場所から状態を保存/復元します。
- -ターゲットストレージ <文字列
-
ソースストレージからターゲットストレージへのマッピング。単一のストレージIDのみを指定すると、すべてのソース・ストレージがそのストレージにマッピングされます。特別な値1を指定すると、各ソース・ストレージはそれ自体にマッピングされます。
- --timeout <integer> (0 - N)(デフォルト = max(30, vmのメモリはGiB))
-
最大タイムアウト秒数まで待ちます。
qm status <vmid> [OPTIONS].
VMのステータスを表示します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --verbose <ブール値
-
冗長出力フォーマット
qm stop <vmid> [OPTIONS].
仮想マシンを停止します。qemuプロセスは直ちに終了します。これは実行中のコンピュータの電源プラグを抜くようなもので、仮想マシンのデータを損傷する可能性があります。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --keepActive <boolean>(デフォルト = 0)
-
ストレージボリュームを停止しないでください。
- -migratedfrom <文字列
-
クラスタ・ノード名。
- --overrule-shutdown <boolean>(デフォルト = 0)
-
停止する前に、アクティブなqmshutdownタスクを中止してください。
- --スキップロック <ブール値
-
Ignore locks - rootのみがこのオプションを使用できます。
- --タイムアウト <整数> (0 - N)
-
最大タイムアウト秒数まで待ちます。
qm suspend <vmid> [OPTIONS].
仮想マシンを一時停止します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --スキップロック <ブール値
-
Ignore locks - rootのみがこのオプションを使用できます。
- --ストレージ ID
-
VMの状態を保存するストレージ
必要なオプション:todisk - -todisk <ブール値>(デフォルト = 0)
-
設定されている場合、VMをディスクにサスペンドします。次回のVM起動時に再開されます。
qm テンプレート <vmid> [OPTIONS].
テンプレートを作成します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --ディスク <efidisk0 | ide0 | ide1 | ide2 | ide3 | sata0 | sata1 | sata2 | sata3 | sata4 | sata5 | scsi0 | scsi1 | scsi10 | scsi11 | scsi12 |Scsi13 | Scsi14 | Scsi15 | Scsi16 | Scsi17 | Scsi18 | Scsi19 | Scsi2 | Scsi20 | Scsi21 | Scsi22 | Scsi23 | Scsi24 | Scsi25 | Scsi26 |scsi27|scsi28|scsi29|scsi3|scsi30|scsi4|scsi5|scsi6|scsi7|scsi8|scsi9|tpmstate0|virtio0|virtio1|virtio10|virtio11|virtio12|virtio13|virtio14|virtio15|virtio2|virtio3|virtio4|virtio5|virtio6|virtio7|virtio8|virtio9
-
1つのディスクだけをベースイメージに変換したい場合。
qm terminal <vmid> [OPTIONS].
シリアル・デバイスを使用してターミナルを開きます(VMにはシリアル・デバイスが設定されている必要があります。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --escape <文字列>(デフォルト = ^O)
-
エスケープ文字。
- --iface <シリアル0 | シリアル1 | シリアル2 | シリアル3>。
-
シリアル・デバイスを選択します。デフォルトでは、単に最初の適切なデバイスを使用します。
qmアンリンク
qm disk unlink のエイリアス。
qm アンロック <vmid
VMのロックを解除します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
qm vncproxy <vmid>です。
VMのVNCトラフィックを標準入力/標準出力にプロキシ
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
qm wait <vmid> [OPTIONS].
VMが停止するまで待ちます。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --タイムアウト <整数> (1 - N)
-
秒単位のタイムアウト。デフォルトは永久に待ちます。
22.10.qmrestore- QemuServervzdumpバックアップのリストア
qmrestore ヘルプ
qmrestore <archive> <vmid> [OPTIONS].
QemuServer vzdumpバックアップのリストア。
- <アーカイブ>: <文字列
-
バックアップ・ファイル。標準入力から読み込む場合は- を渡します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- -bwlimit <数値> (0 - N)
-
I/O帯域幅制限のオーバーライド(単位:KiB/s)。
- --force <ブール値
-
既存のVMの上書きを許可します。
- --ライブリストア <ブール値
-
バックアップから直ちにVMを起動し、バックグラウンドでリストアします。PBSのみ。
- --プール <文字列
-
VMを指定したプールに追加します。
- --ストレージ ID
-
デフォルトのストレージ。
- --unique <ブール値
-
一意のランダムなイーサネットアドレスを割り当てます。
22.11.pct- Proxmox Container Toolkit
pct <COMMAND> [ARGS] [OPTIONS] です。
pct clone <vmid> <newid> [OPTIONS].
コンテナのクローン/コピーの作成
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <newid>: <整数> (100 - 999999999)
-
クローンの VMID。
- --bwlimit <number> (0 - N)(デフォルト = データセンターまたはストレージ設定からのクローン制限)
-
I/O帯域幅制限のオーバーライド(単位:KiB/s)。
- --説明 <文字列
-
新しいCTの説明。
- --full <ブール値
-
すべてのディスクの完全コピーを作成します。これは通常のCTをクローンするときに必ず行われます。CTテンプレートでは、デフォルトでリンクされたクローンを作成しようとします。
- --ホスト名 <文字列
-
新しいCTのホスト名を設定します。
- --プール <文字列
-
新しいCTを指定されたプールに追加します。
- --スナップネーム <文字列
-
スナップショットの名前。
- --ストレージ ID
-
フルクローンの対象ストレージ。
- --ターゲット <文字列
-
ターゲット・ノード。元のVMが共有ストレージ上にある場合にのみ許可されます。
pct config <vmid> [OPTIONS].
コンテナ構成を取得します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --カレント <ブール値>(デフォルト = 0)
-
保留値ではなく)現在の値を取得します。
- --スナップショット <文字列
-
指定されたスナップショットから設定値を取得します。
pct コンソール <vmid> [OPTIONS].
指定したコンテナのコンソールを起動します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --escape \^?[a-z](default = ^a)
-
エスケープシーケンスの接頭辞。例えば、<Ctrl+b q> をエスケープシーケンスとして使うには^b を渡します。
pct cpusets
割り当てられたCPUセットのリストを印刷します。
pct create <vmid> <ostemplate> [OPTIONS]を作成します。
コンテナを作成または復元します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ostemplate>: <文字列
-
OSテンプレートまたはバックアップファイル。
- --arch <amd64 | arm64 | armhf | i386 | riscv32 | riscv64>(デフォルト = amd64)
-
OSアーキテクチャの種類。
- --bwlimit <number> (0 - N)(デフォルト = データセンターまたはストレージ設定から制限を復元)
-
I/O帯域幅制限のオーバーライド(単位:KiB/s)。
- --cmode <コンソール | シェル | tty>(デフォルト = tty)
-
コンソールモード。デフォルトでは、consoleコマンドは利用可能なttyデバイスの1つに接続を開こうとします。cmode をconsoleに設定すると、代わりに /dev/console にアタッチしようとします。cmode をshell に設定すると、コンテナ内で単にシェルを起動します(ログインはしません)。
- --コンソール <ブール値>(デフォルト = 1)
-
コンテナにコンソールデバイス(/dev/console)をアタッチします。
- --コア数 <整数> (1 - 8192)
-
コンテナに割り当てられたコアの数。コンテナは、デフォルトで使用可能なすべてのコアを使用できます。
- --cpulimit <number> (0 - 8192)(デフォルト = 0)
-
CPU使用量の上限。
コンピュータに2つのCPUがある場合、合計2つのCPU時間があります。値0はCPU制限なしを示します。 - --cpuunits <integer> (0 - 500000)(デフォルト = cgroup v1: 1024, cgroup v2: 100)
-
コンテナの CPU 重量は、cgroup v2 では [1, 10000] にクランプされます。
- --debug <boolean>(デフォルト = 0)
-
もっと冗長にしてみてください。今のところ、これは起動時にデバッグログレベルを有効にするだけです。
- --説明 <文字列
-
コンテナの説明。WebインターフェイスCTのサマリーに表示されます。これは設定ファイルのコメントとして保存されます。
- --dev[n] [[path=]<パス][,deny-write=<1|0>] [,gid=<integer>] [,mode=<オクタルアクセスモード>] [,uid=<integer>][,n
-
コンテナへの通過装置
- --features [force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>] となります。
-
コンテナが高度な機能にアクセスできるようにします。
- --force <ブール値
-
既存のコンテナの上書きを許可します。
- --hookscript <文字列
-
コンテナのライフタイムのさまざまなステップで実行されるスクリプト。
- --ホスト名 <文字列
-
コンテナのホスト名を設定します。
- --ignore-unpack-errors <ブール値
-
テンプレートの抽出時にエラーを無視します。
- --lock <バックアップ|作成|破壊|ディスク|fstrim|マイグレーション|マウント|ロールバック|スナップショット|スナップショット-削除>。
-
コンテナのロック/アンロック
- --メモリ <整数> (16 - N)(デフォルト = 512)
-
コンテナのRAM容量(MB)。
- --mp[n] [volume=]<ボリューム> ,mp=< パス> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskS[quota=<1|0>][,replicate=<1|0>][,ro=<1|0>][,shared=<1|0>][,size=<DiskSize>]。
-
ボリュームをコンテナ・マウント・ポイントとして使用します。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。
- --ネームサーバー <文字列
-
コンテナの DNS サーバー IP アドレスを設定します。searchdomainもnameserverも設定しない場合、Createは自動的にホストの設定を使用します。
- --net[n] name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>][,type=<veth>]
-
コンテナのネットワーク・インタフェースを指定します。
- --onboot <boolean>(デフォルト = 0)
-
システム起動時にコンテナを起動するかどうかを指定します。
- --ostype <alpine | archlinux | centos | debian | devuan | fedora | gentoo | nixos | opensuse |ubuntu | unmanaged>.
-
OS タイプ。これは、コンテナ内の設定を行うために使用され、/usr/share/lxc/config/<ostype>.common.conf 内の lxc 設定スクリプトに対応します。値unmanagedは、OS 固有のセットアップをスキップするために使用できます。
- --パスワード <password
-
コンテナ内の root パスワードを設定します。
- --プール <文字列
-
VMを指定したプールに追加します。
- --プロテクション <ブール値>(デフォルト = 0)
-
コンテナの保護フラグを設定します。これにより、CT または CT のディスクの削除/更新操作を防止します。
- --restore <ブール値
-
これを復元タスクとしてマークします。
- --rootfs [ボリューム=]<ボリューム> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>][,ro=<1|0>] [,shared=<1|0>] [,size=<DiskS[quota=<1|0>][,replicate=<1|0>][,ro=<1|0>][,shared=<1|0>][,size=<DiskSize>]。
-
ボリュームをコンテナのルートとして使用します。
- --検索ドメイン <文字列
-
コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定しない場合、Createはホストからの設定を自動的に使用します。
- -ssh-公開鍵 <ファイルパス
-
公開SSH鍵を設定します(1行に1つの鍵、OpenSSH形式)。
- --start <boolean>(デフォルト = 0)
-
CTの作成が正常に終了したら、CTを開始します。
- --startup`[[order=]\d+] [,up=d+] [,down=d+] `.
-
スタートアップとシャットダウンの動作。Orderは一般的な起動順序を定義する非負の数値です。シャットダウンは逆の順序で行われます。さらに、次のVMが起動または停止するまでの待ち時間を秒単位で設定できます。
- --storage <ストレージID>(デフォルト = ローカル)
-
デフォルトのストレージ。
- --スワップ <整数> (0 - N)(デフォルト = 512)
-
MB単位のコンテナのSWAP量。
- --タグ <文字列
-
コンテナのタグ。これは単なるメタ情報です。
- --テンプレート <ブール値>(デフォルト = 0)
-
テンプレートの有効/無効。
- --タイムゾーン <文字列
-
コンテナで使用するタイムゾーン。オプションが設定されていない場合は、何も行われません。ホストのタイムゾーンに合わせるためにhostを設定するか、/usr/share/zoneinfo/zone.tab から任意のタイムゾーンオプションを設定することができます。
- --tty <整数> (0 - 6)(デフォルト = 2)
-
コンテナで利用可能なttyの数を指定
- --unique <ブール値
-
一意のランダムなイーサネットアドレスを割り当てます。
必要なオプション:リストア - --unprivileged <boolean>(デフォルト = 0)
-
コンテナを非特権ユーザーとして実行します。(手動で変更してはいけません)。
- --未使用[n] [ボリューム=]<ボリューム
-
未使用ボリュームへの参照。これは内部的に使用されるので、手動で変更しないでください。
pct delsnapshot <vmid> <snapname> [OPTIONS].
LXCスナップショットを削除します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <スナップ名>: <文字列
-
スナップショットの名前。
- --force <ブール値
-
ディスクスナップショットの削除に失敗した場合でも、設定ファイルから削除できます。
pct destroy <vmid> [OPTIONS].
コンテナを破棄します(使用中のファイルもすべて削除します)。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- -destroy-unreferenced-disks <boolean>。
-
設定されている場合、設定内で参照されていないすべての有効なストレージから、VMIDを持つすべてのディスクを追加で破棄します。
- --force <ブール値>(デフォルト = 0)
-
走っていても強制破壊。
- --パージ <ブール値>(デフォルト = 0)
-
関連するすべての構成からコンテナを削除します。たとえば、バックアップジョブ、レプリケーションジョブ、HAなどです。関連するACLとファイアウォールのエントリは常に削除されます。
pct df <vmid>
コンテナの現在のディスク使用量を取得します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
pct enter <vmid> [OPTIONS].
指定したコンテナのシェルを起動します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --keep-env <boolean>(デフォルト = 1)
-
現在の環境を維持します。このオプションは PVE 9 ではデフォルトで無効になります。保存された環境に依存している場合は、将来を見越してこのオプションを使用してください。
pct exec <vmid> [<extra-args>] [OPTIONS].
指定したコンテナ内でコマンドを起動します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <extra-args>: <array> です。
-
配列としての追加引数
- --keep-env <boolean>(デフォルト = 1)
-
現在の環境を維持します。このオプションは PVE 9 ではデフォルトで無効になります。保存された環境に依存している場合は、将来を見越してこのオプションを使用してください。
pct fsck <vmid> [OPTIONS].
コンテナ・ボリュームでファイルシステム・チェック(fsck)を実行します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --device <mp0 | mp1 | mp10 | mp100 | mp101 | mp102 | mp103 | mp104 | mp105 | mp106 | mp107 | mp108 | mp109 | mp11 | mp110 | mp111| mp112 | mp113 | mp114 | mp115 | mp116 | mp117 | mp118 | mp119 | mp12 | mp120 | mp121 | mp122 | mp123 | mp124 | mp125 | mp126 | mp127 | mp127 | mp127mp126|mp127|mp128|mp129|mp13|mp130|mp131|mp132|mp133|mp134|mp135|mp136|mp137|mp138|mp139|mp14| MP140|MP141|MP142|MP143|MP144|MP145|MP146|MP147|MP148|MP149|MP15|MP150|MP151|MP152|MP153|MP154|MP155|MP151|MP152|MP153|MP154|MP155|MP155|MP156|MP157|MP158|MP159|MP15mp154 | mp155 | mp156 | mp157 | mp158 | mp159 | mp16 | mp160 | mp161 | mp162 | mp163 | mp164 | mp165 | mp166 | mp167 |MP168|MP169|MP17|MP170|MP171|MP172|MP173|MP174|MP175|MP176|MP177|MP178|MP179|MP18|MP180|MP181| mp181||mp182||mp183||mp184||mp185||mp186||mp187||mp188||mp189||mp19||mp190||mp191||mp192||mp193||mp194||mp195||mp196||mp197|||mp197mp196|mp197|mp198|mp199|mp2|mp20|mp200|mp201|mp202|mp203|mp204|mp205|mp206|mp207|mp208|mp209| mp21|mp210|mp211|mp212|mp213|mp214|mp215|mp216|mp217|mp218|mp219|mp22|mp220|mp221|mp222| mp223|mp224|mp225|mp226|mp227|mp228|mp229|mp23|mp230|mp231|mp232|mp233|mp234|mp235|mp236|mp237|mp238|mp236|mp236mp237|mp238|mp239|mp24|mp240|mp241|mp242|mp243|mp244|mp245|mp246|mp247|mp248|mp249|mp25|mp250| mp251|mp252|mp253|mp254|mp255|mp26|mp27|mp28|mp29|mp3|mp30|mp31|mp32|mp33|mp34|mp35|mp36| mp37 | mp38 | mp39 | mp4 | mp40 | mp41 | mp42 | mp43 | mp44 | mp45 | mp46 | mp47 | mp48 | mp49 | mp5 | mp50 | mp51 |mp52 | mp53 | mp54 | mp55 | mp56 | mp57 | mp58 | mp59 | mp6 | mp60 | mp61 | mp62 | mp63 | mp64 | mp65 | mp66 | mp67 | mp68 |mp69 | mp7 | mp70 | mp71 | mp72 | mp73 | mp74 | mp75 | mp76 | mp77 | mp78 | mp79 | mp8 | mp80 | mp81 | mp82 | mp83 | mp84| mp85|mp86|mp87|mp88|mp89|mp9|mp90|mp91|mp92|mp93|mp94|mp95|mp96|mp97|mp98|mp99|rootfs
-
ファイルシステム・チェックを実行するボリューム。
- --force <ブール値>(デフォルト = 0)
-
ファイルシステムがクリーンであるように見えても強制チェック
pct fstrim <vmid> [OPTIONS].
選択したCTとそのマウントポイント(バインドまたは読み取り専用マウントポイントを除く)に対してfstrimを実行します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --ignore-mountpoints <boolean>。
-
すべてのマウントポイントをスキップし、コンテナルート上のfstrimのみを実行します。
pct help [OPTIONS]
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
パーセントリスト
LXC コンテナのインデックス(ノードごと)。
pct listsnapshot <vmid>です。
すべてのスナップショットを一覧表示します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
pct migrate <vmid> <target> [OPTIONS] (マイグレート <vmid> <ターゲット> [オプション])
コンテナを別のノードに移行します。新しいマイグレーションタスクを作成します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ターゲット>: <文字列
-
対象ノード
- --bwlimit <number> (0 - N)(デフォルト = データセンターまたはストレージ設定からのマイグレーション制限)
-
I/O帯域幅制限のオーバーライド(単位:KiB/s)。
- --オンライン <ブール値
-
オンライン/ライブマイグレーションを使用します。
- --restart <ブール値
-
リスタートマイグレーションを使用
- -ターゲットストレージ <文字列
-
ソースストレージからターゲットストレージへのマッピング。単一のストレージIDのみを指定すると、すべてのソース・ストレージがそのストレージにマッピングされます。特別な値1を指定すると、各ソース・ストレージはそれ自体にマッピングされます。
- --タイムアウト <整数>(デフォルト = 180)
-
再移行のためのシャットダウンのタイムアウト時間(秒
pct マウント <vmid
コンテナのファイルシステムをホストにマウントします。これはコンテナに対するロックを保持し、コンテナに対する起動と停止以外の操作を防止するため、緊急メンテナンスのみを目的としています。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
pct move-volume <vmid> <volume> [<storage>] [<target-vmid>] [<target-volume>] [OPTIONS].
rootfs-/mp-ボリュームを別のストレージまたは別のコンテナに移動します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ボリューム>: <mp0 | mp1 | mp10 | mp100 | mp101 | mp102 | mp103 | mp104 | mp105 | mp106 | mp107 | mp108 | mp109 | mp11 | mp110 | mp111 | mp112 | mp113 | mp114 | mp115| mp116 | mp117 | mp118 | mp119 | mp12 | mp120 | mp121 | mp122 | mp123 | mp124 | mp125 | mp126 | mp127 | mp128 | mp129 | mp13 | mp130 | mp131 | mp132MP133|MP134|MP135|MP136|MP137|MP138|MP139|MP14|MP140|MP141|MP142|MP143|MP144|MP145|MP146|MP147|MP148|MP149|MP15|MP150|MP151|MP151|MP152|MP146|MP147|MP148|MP149|MP15|MP15MP150|MP151|MP152|MP153|MP154|MP155|MP156|MP157|MP158|MP159|MP16|MP160|MP161|MP162|MP163|MP164|MP165|MP166|MP167|MP168| MP169|MP17|MP170|MP171|MP172|MP173|MP174|MP175|MP176|MP177|MP178|MP179|MP18|MP180|MP181|MP182|MP183|MP184|MP185|MP186|MP187|MP185mp186|mp187|mp188|mp189|mp19|mp190|mp191|mp192|mp193|mp194|mp195|mp196|mp197|mp198|mp199|mp2|mp20|mp200|mp201|mp202| mp203 | mp204 | mp205 | mp206 | mp207 | mp208 | mp209 | mp21 | mp210 | mp211 | mp212 | mp213 | mp214 | mp215 | mp216 | mp217 | mp218 | mp219 | mp22 |mp220|mp221|mp222|mp223|mp224|mp225|mp226|mp227|mp228|mp229|mp23|mp230|mp231|mp232|mp233|mp234|mp235|mp236|mp237|mp238| MP239|MP24|MP240|MP241|MP242|MP243|MP244|MP245|MP246|MP247|MP248|MP249|MP25|MP250|MP251|MP252|MP253|MP254|MP255| mp26 | mp27 | mp28 | mp29 | mp3 | mp30 | mp31 | mp32 | mp33 | mp34 | mp35 | mp36 | mp37 | mp38 | mp39 | mp4 | mp40 | mp41 | mp42 | mp43 | mp44 | mp45 |mp46|mp47|mp48|mp49|mp5|mp50|mp51|mp52|mp53|mp54|mp55|mp56|mp57|mp58|mp59|mp6|mp60|mp61|mp62|mp63|mp64|mp65|MP66|MP67|MP68|MP68mp66|mp67|mp68|mp69|mp7|mp70|mp71|mp72|mp73|mp74|mp75|mp76|mp77|mp78|mp79|mp8|mp80|mp81|mp82|mp83|mp84|mp85|mp86| mp87|mp88|mp89|mp9|mp90|mp91|mp92|mp93|mp94|mp95|mp96|mp97|mp98|mp99|rootfs|unused0|unused1|unused10|unused100|unused101|unused10|unused100|unused100unused101|unused102|unused103|unused104|unused105|unused106|unused107|unused108|unused109|unused11|unused110|unused111|unused112|未使用未使用113号|未使用114号|未使用115号|未使用116号|未使用117号|未使用118号|未使用119号|未使用120号|未使用121号|未使用122号|未使用123号|未使用124号|未使用125号|未使用126号|未使用127号|未使用128号|未使用129号|未使用13号|未使用130号|未使用131号|未使用132号|未使用133号|未使用134号|未使用135号|未使用136号|未使用未使用137|未使用138|未使用139|未使用14|未使用140|未使用141|未使用142|未使用143|未使用144|未使用145|未使用146|未使用147|未使用148|未使用149|未使用15|未使用150|未使用151|未使用152|未使用153|未使用154|未使用155|未使用156|未使用157|未使用158|未使用159|未使用16| 未使用160|未使用161|未使用162|未使用163|未使用164|未使用165|未使用166|未使用167|未使用168|未使用169|未使用17|未使用170|未使用171|未使用172|未使用173|未使用174|未使用175|未使用176|未使用177|未使用178|未使用179|未使用18|未使用180|未使用181|未使用182未使用183号|未使用184号|未使用185号|未使用186号|未使用187号|未使用188号|未使用189号|未使用190号|未使用191号|未使用192号|未使用193号|未使用194号|未使用195号|未使用196号|未使用197号|未使用198号|未使用199号|未使用2号|未使用20号|未使用200号|未使用201号|未使用202号|未使用203号|未使用204号|未使用205号未使用206号|未使用207号|未使用208号|未使用209号|未使用21号|未使用210号|未使用211号|未使用212号|未使用213号|未使用214号|未使用215号|未使用216号|未使用217号|未使用218号|未使用219号|未使用221号|未使用222号|未使用223号|未使用224号|未使用225号|未使用226号|未使用227号|未使用228号|未使用229号|未使用229号未使用23|未使用230|未使用231|未使用232|未使用233|未使用234|未使用235|未使用236|未使用237|未使用238|未使用239|未使用24|未使用240|未使用241|未使用242|未使用243|未使用244|未使用245|未使用246|未使用247|未使用248|未使用249|未使用25|未使用250|未使用251|未使用252| 未使用253|未使用254|未使用255|未使用26|未使用27|未使用28|未使用29|未使用3|未使用30|未使用31|未使用32|未使用33|未使用34|未使用35|未使用36|未使用37|未使用38|未使用39|未使用4|未使用40|未使用41|未使用42|未使用43|未使用44|未使用45|未使用46|未使用47|未使用48| 未使用5:未使用50:未使用51:未使用52:未使用53:未使用54:未使用55:未使用56:未使用57:未使用58:未使用59:未使用6:未使用60:未使用61:未使用62:未使用63:未使用64:未使用65:未使用66:未使用67:未使用68:未使用69:未使用7:未使用70:未使用71:未使用72:未使用73:未使用73未使用74|未使用75|未使用76|未使用77|未使用78|未使用79|未使用8|未使用80|未使用81|未使用82|未使用83|未使用84|未使用85|未使用86|未使用87|未使用88|未使用89|未使用9|未使用90|未使用91|未使用92|未使用93|未使用94|未使用95|未使用96|未使用97|未使用98|未使用99>。
-
移動するボリューム。
- <ストレージ>: <ストレージID
-
対象ストレージ
- <ターゲット-vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ターゲットボリューム>: <mp0 | mp1 | mp10 | mp100 | mp101 | mp102 | mp103 | mp104 | mp105 | mp106 | mp107 | mp108 | mp109 | mp11 | mp110 | mp111 | mp112 | mp113 | mp114 | mp115| mp116 | mp117 | mp118 | mp119 | mp12 | mp120 | mp121 | mp122 | mp123 | mp124 | mp125 | mp126 | mp127 | mp128 | mp129 | mp13 | mp130 | mp131 | mp132MP133|MP134|MP135|MP136|MP137|MP138|MP139|MP14|MP140|MP141|MP142|MP143|MP144|MP145|MP146|MP147|MP148|MP149|MP15|MP150|MP151|MP151|MP152|MP146|MP147|MP148|MP149|MP15|MP15MP150|MP151|MP152|MP153|MP154|MP155|MP156|MP157|MP158|MP159|MP16|MP160|MP161|MP162|MP163|MP164|MP165|MP166|MP167|MP168| MP169|MP17|MP170|MP171|MP172|MP173|MP174|MP175|MP176|MP177|MP178|MP179|MP18|MP180|MP181|MP182|MP183|MP184|MP185|MP186|MP187|MP185mp186|mp187|mp188|mp189|mp19|mp190|mp191|mp192|mp193|mp194|mp195|mp196|mp197|mp198|mp199|mp2|mp20|mp200|mp201|mp202| mp203 | mp204 | mp205 | mp206 | mp207 | mp208 | mp209 | mp21 | mp210 | mp211 | mp212 | mp213 | mp214 | mp215 | mp216 | mp217 | mp218 | mp219 | mp22 |mp220|mp221|mp222|mp223|mp224|mp225|mp226|mp227|mp228|mp229|mp23|mp230|mp231|mp232|mp233|mp234|mp235|mp236|mp237|mp238| MP239|MP24|MP240|MP241|MP242|MP243|MP244|MP245|MP246|MP247|MP248|MP249|MP25|MP250|MP251|MP252|MP253|MP254|MP255| mp26 | mp27 | mp28 | mp29 | mp3 | mp30 | mp31 | mp32 | mp33 | mp34 | mp35 | mp36 | mp37 | mp38 | mp39 | mp4 | mp40 | mp41 | mp42 | mp43 | mp44 | mp45 |mp46|mp47|mp48|mp49|mp5|mp50|mp51|mp52|mp53|mp54|mp55|mp56|mp57|mp58|mp59|mp6|mp60|mp61|mp62|mp63|mp64|mp65|MP66|MP67|MP68|MP68mp66|mp67|mp68|mp69|mp7|mp70|mp71|mp72|mp73|mp74|mp75|mp76|mp77|mp78|mp79|mp8|mp80|mp81|mp82|mp83|mp84|mp85|mp86| mp87|mp88|mp89|mp9|mp90|mp91|mp92|mp93|mp94|mp95|mp96|mp97|mp98|mp99|rootfs|unused0|unused1|unused10|unused100|unused101|unused10|unused100|unused100unused101|unused102|unused103|unused104|unused105|unused106|unused107|unused108|unused109|unused11|unused110|unused111|unused112|未使用未使用113号|未使用114号|未使用115号|未使用116号|未使用117号|未使用118号|未使用119号|未使用120号|未使用121号|未使用122号|未使用123号|未使用124号|未使用125号|未使用126号|未使用127号|未使用128号|未使用129号|未使用13号|未使用130号|未使用131号|未使用132号|未使用133号|未使用134号|未使用135号|未使用136号|未使用未使用137|未使用138|未使用139|未使用14|未使用140|未使用141|未使用142|未使用143|未使用144|未使用145|未使用146|未使用147|未使用148|未使用149|未使用15|未使用150|未使用151|未使用152|未使用153|未使用154|未使用155|未使用156|未使用157|未使用158|未使用159|未使用16| 未使用160|未使用161|未使用162|未使用163|未使用164|未使用165|未使用166|未使用167|未使用168|未使用169|未使用17|未使用170|未使用171|未使用172|未使用173|未使用174|未使用175|未使用176|未使用177|未使用178|未使用179|未使用18|未使用180|未使用181|未使用182未使用183号|未使用184号|未使用185号|未使用186号|未使用187号|未使用188号|未使用189号|未使用190号|未使用191号|未使用192号|未使用193号|未使用194号|未使用195号|未使用196号|未使用197号|未使用198号|未使用199号|未使用2号|未使用20号|未使用200号|未使用201号|未使用202号|未使用203号|未使用204号|未使用205号未使用206号|未使用207号|未使用208号|未使用209号|未使用21号|未使用210号|未使用211号|未使用212号|未使用213号|未使用214号|未使用215号|未使用216号|未使用217号|未使用218号|未使用219号|未使用221号|未使用222号|未使用223号|未使用224号|未使用225号|未使用226号|未使用227号|未使用228号|未使用229号|未使用229号未使用23|未使用230|未使用231|未使用232|未使用233|未使用234|未使用235|未使用236|未使用237|未使用238|未使用239|未使用24|未使用240|未使用241|未使用242|未使用243|未使用244|未使用245|未使用246|未使用247|未使用248|未使用249|未使用25|未使用250|未使用251|未使用252| 未使用253|未使用254|未使用255|未使用26|未使用27|未使用28|未使用29|未使用3|未使用30|未使用31|未使用32|未使用33|未使用34|未使用35|未使用36|未使用37|未使用38|未使用39|未使用4|未使用40|未使用41|未使用42|未使用43|未使用44|未使用45|未使用46|未使用47|未使用48| 未使用5:未使用50:未使用51:未使用52:未使用53:未使用54:未使用55:未使用56:未使用57:未使用58:未使用59:未使用6:未使用60:未使用61:未使用62:未使用63:未使用64:未使用65:未使用66:未使用67:未使用68:未使用69:未使用7:未使用70:未使用71:未使用72:未使用73:未使用73未使用74|未使用75|未使用76|未使用77|未使用78|未使用79|未使用8|未使用80|未使用81|未使用82|未使用83|未使用84|未使用85|未使用86|未使用87|未使用88|未使用89|未使用9|未使用90|未使用91|未使用92|未使用93|未使用94|未使用95|未使用96|未使用97|未使用98|未使用99>。
-
ボリュームの移動先のコンフィグキー。デフォルトは移動元のボリュームキーです。
- --bwlimit <number> (0 - N)(デフォルト = データセンターまたはストレージ設定からのクローン制限)
-
I/O帯域幅制限のオーバーライド(単位:KiB/s)。
- --delete <boolean>(デフォルト = 0)
-
コピー成功後、元のボリュームを削除します。デフォルトでは、オリジナルは未使用のボリューム・エントリとして保持されます。
- -ダイジェスト <文字列
-
現在の設定ファイルのSHA1" . "ダイジェストが異なる場合、変更を防止します。これは同時変更を防ぐために使用できます。
- -ターゲット・ダイジェスト <文字列
-
ターゲット" . "コンテナの現在の設定ファイルが異なる SHA1 ダイジェストを持つ場合、変更を防止。これは同時変更を防ぐために" .
pct 移動量
pct move-volumeのエイリアス。
pct 保留中 <vmid
保留中の変更を含むコンテナ構成を取得します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
pct pull <vmid> <path> <destination> [OPTIONS].
コンテナからローカルシステムにファイルをコピー。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <path>: <文字列
-
プルするコンテナ内のファイルへのパス。
- <目的地>: <文字列
-
目的地
- --グループ <文字列
-
所有者のグループ名または ID。
- --perms <文字列
-
使用するファイルパーミッション(デフォルトは8進数、16進数の場合は先頭に0xを付けます)。
- --ユーザー <文字列
-
所有者のユーザー名またはID。
pct push <vmid> <file> <destination> [OPTIONS].
ローカルファイルをコンテナにコピー。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ファイル>: <文字列
-
ローカルファイルへのパス。
- <目的地>: <文字列
-
コンテナ内の書き込み先。
- --グループ <文字列
-
オーナー・グループ名または ID。名前を使用する場合は、コンテナ内に存在する必要があります。
- --perms <文字列
-
使用するファイルパーミッション(デフォルトは8進数、16進数の場合は先頭に0xを付けます)。
- --ユーザー <文字列
-
所有者のユーザー名または ID。名前を使用する場合は、コンテナ内に存在する必要があります。
pct reboot <vmid> [OPTIONS].
コンテナをシャットダウンして再起動します。保留中の変更を適用します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --タイムアウト <整数> (0 - N)
-
シャットダウンまで最大タイムアウト秒数待ちます。
pct remote-migrate <vmid> [<target-vmid>] <target-endpoint> --target-bridge <string> --target-storage <string> [OPTIONS].
コンテナをリモートクラスタに移行します。新しいマイグレーションタスクを作成します。 EXPERIMENTAL 機能!
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ターゲット-vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ターゲットエンドポイント>: apitoken=<PVEAPIToken=user@realm!token=SECRET> ,host=<ADDRESS> [,fingerprint=<FINGERPRINT>] [,port=<PORT>].
-
リモートターゲットエンドポイント
- --bwlimit <integer> (0 - N)(デフォルト = データセンターまたはストレージ設定からのマイグレーション制限)
-
I/O帯域幅制限のオーバーライド(単位:KiB/s)。
- --delete <boolean>(デフォルト = 0)
-
移行成功後、元のCTと関連データを削除します。デフォルトでは、元のCTは停止状態で移行元クラスタに保持されます。
- --オンライン <ブール値
-
オンライン/ライブマイグレーションを使用します。
- --restart <ブール値
-
リスタートマイグレーションを使用
- --ターゲットブリッジ <文字列
-
ソース・ブリッジからターゲット・ブリッジへのマッピング。単一のブリッジ ID だけを指定すると、すべてのソース・ブリッジがそのブリッジにマッピングされます。特別な値1を指定すると、各ソース・ブリッジはそれ自身にマッピングされます。
- -ターゲットストレージ <文字列
-
ソースストレージからターゲットストレージへのマッピング。単一のストレージIDのみを指定すると、すべてのソース・ストレージがそのストレージにマッピングされます。特別な値1を指定すると、各ソース・ストレージはそれ自体にマッピングされます。
- --タイムアウト <整数>(デフォルト = 180)
-
再移行のためのシャットダウンのタイムアウト時間(秒
pct rescan [OPTIONS]
すべてのストレージを再スキャンし、ディスクサイズと未使用ディスクイメージを更新します。
- --ドライラン <ブール値>(デフォルト = 0)
-
実際にコンフィギュレーションに変更を書き込まないでください。
- --vmid <整数> (100 - 999999999)
-
VMの(一意の)ID。
pct resize <vmid> <disk> <size> [OPTIONS].
コンテナマウントポイントのサイズを変更します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ディスク>: <mp0 | mp1 | mp10 | mp100 | mp101 | mp102 | mp103 | mp104 | mp105 | mp106 | mp107 | mp108 | mp109 | mp11 | mp110 | mp111| mp112 | mp113 | mp114 | mp115 | mp116 | mp117 | mp118 | mp119 | mp12 | mp120 | mp121 | mp122 | mp123 | mp124 | mp125 | mp126 | mp127 | mp127 | mp127mp126|mp127|mp128|mp129|mp13|mp130|mp131|mp132|mp133|mp134|mp135|mp136|mp137|mp138|mp139|mp14| MP140|MP141|MP142|MP143|MP144|MP145|MP146|MP147|MP148|MP149|MP15|MP150|MP151|MP152|MP153|MP154|MP155|MP151|MP152|MP153|MP154|MP155|MP155|MP156|MP157|MP158|MP159|MP15mp154 | mp155 | mp156 | mp157 | mp158 | mp159 | mp16 | mp160 | mp161 | mp162 | mp163 | mp164 | mp165 | mp166 | mp167 |MP168|MP169|MP17|MP170|MP171|MP172|MP173|MP174|MP175|MP176|MP177|MP178|MP179|MP18|MP180|MP181| mp181|mp182|mp183|mp184|mp185|mp186|mp187|mp188|mp189|mp19|mp190|mp191|mp192|mp193|mp194|mp195|mp196|mp197|mp197mp196|mp197|mp198|mp199|mp2|mp20|mp200|mp201|mp202|mp203|mp204|mp205|mp206|mp207|mp208|mp209| mp21|mp210|mp211|mp212|mp213|mp214|mp215|mp216|mp217|mp218|mp219|mp22|mp220|mp221|mp222| mp223|mp224|mp225|mp226|mp227|mp228|mp229|mp23|mp230|mp231|mp232|mp233|mp234|mp235|mp236|mp237|mp238|mp236|mp236mp237|mp238|mp239|mp24|mp240|mp241|mp242|mp243|mp244|mp245|mp246|mp247|mp248|mp249|mp25|mp250| mp251|mp252|mp253|mp254|mp255|mp26|mp27|mp28|mp29|mp3|mp30|mp31|mp32|mp33|mp34|mp35|mp36| mp37 | mp38 | mp39 | mp4 | mp40 | mp41 | mp42 | mp43 | mp44 | mp45 | mp46 | mp47 | mp48 | mp49 | mp5 | mp50 | mp51 |mp52 | mp53 | mp54 | mp55 | mp56 | mp57 | mp58 | mp59 | mp6 | mp60 | mp61 | mp62 | mp63 | mp64 | mp65 | mp66 | mp67 | mp68 |mp69 | mp7 | mp70 | mp71 | mp72 | mp73 | mp74 | mp75 | mp76 | mp77 | mp78 | mp79 | mp8 | mp80 | mp81 | mp82 | mp83 | mp84| mp85|mp86|mp87|mp88|mp89|mp9|mp90|mp91|mp92|mp93|mp94|mp95|mp96|mp97|mp98|mp99|rootfs
-
サイズを変更したいディスク。
- <サイズ>です: \+?\d+(\.\d+)?[KMGT]?
-
新しいサイズ。記号を付けると、その値はボリュームの実際のサイズに加算され、付けない場合は絶対値となります。ディスク・サイズの縮小はサポートされていません。
- -ダイジェスト <文字列
-
現在の設定ファイルの SHA1 ダイジェストが異なる場合に変更を防止します。これは、同時変更を防ぐために使用できます。
pct restore <vmid> <ostemplate> [OPTIONS].
コンテナを作成または復元します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <ostemplate>: <文字列
-
OSテンプレートまたはバックアップファイル。
- --arch <amd64 | arm64 | armhf | i386 | riscv32 | riscv64>(デフォルト = amd64)
-
OSアーキテクチャの種類。
- --bwlimit <number> (0 - N)(デフォルト = データセンターまたはストレージ設定から制限を復元)
-
I/O帯域幅制限のオーバーライド(単位:KiB/s)。
- --cmode <コンソール | シェル | tty>(デフォルト = tty)
-
コンソールモード。デフォルトでは、consoleコマンドは利用可能なttyデバイスの1つに接続を開こうとします。cmode をconsoleに設定すると、代わりに /dev/console にアタッチしようとします。cmode をshell に設定すると、コンテナ内で単にシェルを起動します(ログインはしません)。
- --コンソール <ブール値>(デフォルト = 1)
-
コンテナにコンソールデバイス(/dev/console)をアタッチします。
- --コア数 <整数> (1 - 8192)
-
コンテナに割り当てられたコアの数。コンテナは、デフォルトで使用可能なすべてのコアを使用できます。
- --cpulimit <number> (0 - 8192)(デフォルト = 0)
-
CPU使用量の上限。
コンピュータに2つのCPUがある場合、合計2つのCPU時間があります。値0はCPU制限なしを示します。 - --cpuunits <integer> (0 - 500000)(デフォルト = cgroup v1: 1024, cgroup v2: 100)
-
コンテナの CPU 重量は、cgroup v2 では [1, 10000] にクランプされます。
- --debug <boolean>(デフォルト = 0)
-
もっと冗長にしてみてください。今のところ、これは起動時にデバッグログレベルを有効にするだけです。
- --説明 <文字列
-
コンテナの説明。WebインターフェイスCTのサマリーに表示されます。これは設定ファイルのコメントとして保存されます。
- --dev[n] [[path=]<パス][,deny-write=<1|0>] [,gid=<integer>] [,mode=<オクタルアクセスモード>] [,uid=<integer>][,n
-
コンテナへの通過装置
- --features [force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>] となります。
-
コンテナが高度な機能にアクセスできるようにします。
- --force <ブール値
-
既存のコンテナの上書きを許可します。
- --hookscript <文字列
-
コンテナのライフタイムのさまざまなステップで実行されるスクリプト。
- --ホスト名 <文字列
-
コンテナのホスト名を設定します。
- --ignore-unpack-errors <ブール値
-
テンプレートの抽出時にエラーを無視します。
- --lock <バックアップ|作成|破壊|ディスク|fstrim|マイグレーション|マウント|ロールバック|スナップショット|スナップショット-削除>。
-
コンテナのロック/アンロック
- --メモリ <整数> (16 - N)(デフォルト = 512)
-
コンテナのRAM容量(MB)。
- --mp[n] [volume=]<ボリューム> ,mp=< パス> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskS[quota=<1|0>][,replicate=<1|0>][,ro=<1|0>][,shared=<1|0>][,size=<DiskSize>]。
-
ボリュームをコンテナ・マウント・ポイントとして使用します。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。
- --ネームサーバー <文字列
-
コンテナの DNS サーバー IP アドレスを設定します。searchdomainもnameserverも設定しない場合、Createは自動的にホストの設定を使用します。
- --net[n] name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>][,type=<veth>]
-
コンテナのネットワーク・インタフェースを指定します。
- --onboot <boolean>(デフォルト = 0)
-
システム起動時にコンテナを起動するかどうかを指定します。
- --ostype <alpine | archlinux | centos | debian | devuan | fedora | gentoo | nixos | opensuse |ubuntu | unmanaged>.
-
OS タイプ。これは、コンテナ内の設定を行うために使用され、/usr/share/lxc/config/<ostype>.common.conf 内の lxc 設定スクリプトに対応します。値unmanagedは、OS 固有のセットアップをスキップするために使用できます。
- --パスワード <password
-
コンテナ内の root パスワードを設定します。
- --プール <文字列
-
VMを指定したプールに追加します。
- --プロテクション <ブール値>(デフォルト = 0)
-
コンテナの保護フラグを設定します。これにより、CT または CT のディスクの削除/更新操作を防止します。
- --rootfs [ボリューム=]<ボリューム> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>][,ro=<1|0>] [,shared=<1|0>] [,size=<DiskS[quota=<1|0>][,replicate=<1|0>][,ro=<1|0>][,shared=<1|0>][,size=<DiskSize>]。
-
ボリュームをコンテナのルートとして使用します。
- --検索ドメイン <文字列
-
コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定しない場合、Createはホストからの設定を自動的に使用します。
- -ssh-公開鍵 <ファイルパス
-
公開SSH鍵を設定します(1行に1つの鍵、OpenSSH形式)。
- --start <boolean>(デフォルト = 0)
-
CTの作成が正常に終了したら、CTを開始します。
- --startup`[[order=]\d+] [,up=d+] [,down=d+] `.
-
スタートアップとシャットダウンの動作。Orderは一般的な起動順序を定義する非負の数値です。シャットダウンは逆の順序で行われます。さらに、次のVMが起動または停止するまでの待ち時間を秒単位で設定できます。
- --storage <ストレージID>(デフォルト = ローカル)
-
デフォルトのストレージ。
- --スワップ <整数> (0 - N)(デフォルト = 512)
-
MB単位のコンテナのSWAP量。
- --タグ <文字列
-
コンテナのタグ。これは単なるメタ情報です。
- --テンプレート <ブール値>(デフォルト = 0)
-
テンプレートの有効/無効。
- --タイムゾーン <文字列
-
コンテナで使用するタイムゾーン。オプションが設定されていない場合は、何も行われません。ホストのタイムゾーンに合わせるためにhostを設定するか、/usr/share/zoneinfo/zone.tab から任意のタイムゾーンオプションを設定することができます。
- --tty <整数> (0 - 6)(デフォルト = 2)
-
コンテナで利用可能なttyの数を指定
- --unique <ブール値
-
一意のランダムなイーサネットアドレスを割り当てます。
必要なオプション:リストア - --unprivileged <boolean>(デフォルト = 0)
-
コンテナを非特権ユーザーとして実行します。(手動で変更してはいけません)。
- --未使用[n] [ボリューム=]<ボリューム
-
未使用ボリュームへの参照。これは内部的に使用されるので、手動で変更しないでください。
pct レジューム <vmid
コンテナを再開します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
pct rollback <vmid> <スナップ名> [オプション].
LXCの状態を指定したスナップショットにロールバックします。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <スナップ名>: <文字列
-
スナップショットの名前。
- --start <boolean>(デフォルト = 0)
-
ロールバック成功後にコンテナを起動するかどうか
pct set <vmid> [OPTIONS].
コンテナのオプションを設定します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --arch <amd64 | arm64 | armhf | i386 | riscv32 | riscv64>(デフォルト = amd64)
-
OSアーキテクチャの種類。
- --cmode <コンソール | シェル | tty>(デフォルト = tty)
-
コンソールモード。デフォルトでは、consoleコマンドは利用可能なttyデバイスの1つに接続を開こうとします。cmode をconsoleに設定すると、代わりに /dev/console にアタッチしようとします。cmode をshell に設定すると、コンテナ内で単にシェルを起動します(ログインはしません)。
- --コンソール <ブール値>(デフォルト = 1)
-
コンテナにコンソールデバイス(/dev/console)をアタッチします。
- --コア数 <整数> (1 - 8192)
-
コンテナに割り当てられたコアの数。コンテナは、デフォルトで使用可能なすべてのコアを使用できます。
- --cpulimit <number> (0 - 8192)(デフォルト = 0)
-
CPU使用量の上限。
コンピュータに2つのCPUがある場合、合計2つのCPU時間があります。値0はCPU制限なしを示します。 - --cpuunits <integer> (0 - 500000)(デフォルト = cgroup v1: 1024, cgroup v2: 100)
-
コンテナの CPU 重量は、cgroup v2 では [1, 10000] にクランプされます。
- --debug <boolean>(デフォルト = 0)
-
もっと冗長にしてみてください。今のところ、これは起動時にデバッグログレベルを有効にするだけです。
- --削除 <文字列
-
削除したい設定のリスト。
- --説明 <文字列
-
コンテナの説明。WebインターフェイスCTのサマリーに表示されます。これは設定ファイルのコメントとして保存されます。
- --dev[n] [[path=]<パス][,deny-write=<1|0>] [,gid=<integer>] [,mode=<オクタルアクセスモード>] [,uid=<integer>][,n
-
コンテナへの通過装置
- -ダイジェスト <文字列
-
現在の設定ファイルの SHA1 ダイジェストが異なる場合に変更を防止します。これは同時変更を防ぐために使用できます。
- --features [force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>] となります。
-
コンテナが高度な機能にアクセスできるようにします。
- --hookscript <文字列
-
コンテナのライフタイムのさまざまなステップで実行されるスクリプト。
- --ホスト名 <文字列
-
コンテナのホスト名を設定します。
- --lock <バックアップ|作成|破壊|ディスク|fstrim|マイグレーション|マウント|ロールバック|スナップショット|スナップショット-削除>。
-
コンテナのロック/アンロック
- --メモリ <整数> (16 - N)(デフォルト = 512)
-
コンテナのRAM容量(MB)。
- --mp[n] [volume=]<ボリューム> ,mp=< パス> [,acl=<1|0>] [,backup=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskS[quota=<1|0>][,replicate=<1|0>][,ro=<1|0>][,shared=<1|0>][,size=<DiskSize>]。
-
ボリュームをコンテナ・マウント・ポイントとして使用します。新しいボリュームを割り当てるには、特別な構文 STORAGE_ID:SIZE_IN_GiB を使用します。
- --ネームサーバー <文字列
-
コンテナの DNS サーバー IP アドレスを設定します。searchdomainもnameserverも設定しない場合、Createは自動的にホストの設定を使用します。
- --net[n] name=<string> [,bridge=<bridge>] [,firewall=<1|0>] [,gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,hwaddr=<XX:XX:XX:XX:XX:XX>] [,ip=<(IPv4/CIDR|dhcp|manual)>] [,ip6=<(IPv6/CIDR|auto|dhcp|manual)>] [,link_down=<1|0>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>][,type=<veth>]
-
コンテナのネットワーク・インタフェースを指定します。
- --onboot <boolean>(デフォルト = 0)
-
システム起動時にコンテナを起動するかどうかを指定します。
- --ostype <alpine | archlinux | centos | debian | devuan | fedora | gentoo | nixos | opensuse |ubuntu | unmanaged>.
-
OS タイプ。これは、コンテナ内の設定を行うために使用され、/usr/share/lxc/config/<ostype>.common.conf 内の lxc 設定スクリプトに対応します。値unmanagedは、OS 固有のセットアップをスキップするために使用できます。
- --プロテクション <ブール値>(デフォルト = 0)
-
コンテナの保護フラグを設定します。これにより、CT または CT のディスクの削除/更新操作を防止します。
- --復帰 <文字列
-
保留中の変更を元に戻します。
- --rootfs [ボリューム=]<ボリューム> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>][,ro=<1|0>] [,shared=<1|0>] [,size=<DiskS[quota=<1|0>][,replicate=<1|0>][,ro=<1|0>][,shared=<1|0>][,size=<DiskSize>]。
-
ボリュームをコンテナのルートとして使用します。
- --検索ドメイン <文字列
-
コンテナのDNS検索ドメインを設定します。searchdomainもnameserverも設定しない場合、Createはホストからの設定を自動的に使用します。
- --startup`[[order=]\d+] [,up=d+] [,down=d+] `.
-
スタートアップとシャットダウンの動作。Orderは一般的な起動順序を定義する非負の数値です。シャットダウンは逆の順序で行われます。さらに、次のVMが起動または停止するまでの待ち時間を秒単位で設定できます。
- --スワップ <整数> (0 - N)(デフォルト = 512)
-
MB単位のコンテナのSWAP量。
- --タグ <文字列
-
コンテナのタグ。これは単なるメタ情報です。
- --テンプレート <ブール値>(デフォルト = 0)
-
テンプレートの有効/無効。
- --タイムゾーン <文字列
-
コンテナで使用するタイムゾーン。オプションが設定されていない場合は、何も行われません。ホストのタイムゾーンに合わせるためにhostを設定するか、/usr/share/zoneinfo/zone.tab から任意のタイムゾーンオプションを設定することができます。
- --tty <整数> (0 - 6)(デフォルト = 2)
-
コンテナで利用可能なttyの数を指定
- --unprivileged <boolean>(デフォルト = 0)
-
コンテナを非特権ユーザーとして実行します。(手動で変更してはいけません)。
- --未使用[n] [ボリューム=]<ボリューム
-
未使用ボリュームへの参照。これは内部的に使用されるので、手動で変更しないでください。
pct shutdown <vmid> [OPTIONS].
コンテナをシャットダウンします。詳細は lxc-stop(1) を参照。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --forceStop <boolean>(デフォルト = 0)
-
コンテナが停止していることを確認してください。
- --タイムアウト <整数> (0 - N)(デフォルト = 60)
-
最大タイムアウト秒数まで待ちます。
pct snapshot <vmid> <snapname> [OPTIONS].
コンテナをスナップショットします。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <スナップ名>: <文字列
-
スナップショットの名前。
- --説明 <文字列
-
テキストによる説明やコメント。
pct start <vmid> [OPTIONS].
コンテナを起動します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --debug <boolean>(デフォルト = 0)
-
設定すると、起動時に非常に冗長なデバッグ・ログ・レベルを有効にします。
- --スキップロック <ブール値
-
Ignore locks - rootのみがこのオプションを使用できます。
pct status <vmid> [OPTIONS] [オプション].
CTステータスを表示します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --verbose <ブール値
-
冗長出力フォーマット
pct stop <vmid> [OPTIONS].
コンテナを停止します。これにより、コンテナ内で実行されているすべてのプロセスが突然停止します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- --overrule-shutdown <boolean>(デフォルト = 0)
-
停止する前に、アクティブなvzshutdownタスクを中止してみてください。
- --スキップロック <ブール値
-
Ignore locks - rootのみがこのオプションを使用できます。
pct サスペンド <vmid
コンテナを一時停止します。これは実験的なものです。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
pct テンプレート <vmid
テンプレートを作成します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
pct アンロック <vmid
VMのロックを解除します。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
pct アンマウント <vmid
コンテナのファイルシステムをアンマウントします。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
22.12.pveam- Proxmox VE アプライアンスマネージャ
pveam <COMMAND> [ARGS] [OPTIONS] です。
pveamあり [OPTIONS]
利用可能なテンプレートを一覧表示します。
- --section <メール | システム | turnkeylinux>
-
リストを指定したセクションに制限します。
pveam ダウンロード <ストレージ> <テンプレート
アプライアンスのテンプレートをダウンロード
- <ストレージ>: <ストレージID
-
テンプレートが保存されるストレージ
- <テンプレート>: <文字列
-
ダウンロードされるテンプレート
pveam help [OPTIONS]
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pveam リスト <ストレージ
ストレージ上の全テンプレートのリストを取得
- <ストレージ>: <ストレージID
-
指定したストレージ上のテンプレートのみをリストアップ
pveam remove <template_path>です。
テンプレートを削除します。
- <template_path>: <文字列
-
削除するテンプレート。
pveamアップデート
コンテナテンプレートデータベースの更新
22.13.pvecm- Proxmox VE Cluster Manager
pvecm <COMMAND> [ARGS] [OPTIONS] です。
pvecm add <ホスト名> [OPTIONS].
現在のノードを既存のクラスタに追加します。
- <ホスト名>: <文字列
-
既存のクラスタ・メンバーのホスト名(またはIP)。
- --fingerprint ([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}
-
証明書の SHA 256 フィンガープリント。
- --force <ブール値
-
ノードが既に存在する場合はエラーをスローしません。
- -リンク[n] [アドレス=]<IP> [,優先度=<整数>]。
-
1つのコロシンク・リンクのアドレスとプライオリティ情報。(最大8リンクまでサポート; link0..link7)
- --nodeid <整数> (1 - N)
-
このノードのノード ID。
- --use_ssh <ブール値
-
相手がAPI経由で参加する場合でも、常にSSHを使用してください。
- --votes <整数> (0 - N)
-
このノードの投票数
pvecm addnode <node> [OPTIONS].
クラスタ構成にノードを追加します。この呼び出しは内部用です。
- <ノード>: <文字列
-
クラスタ・ノード名。
- --apiversion <整数
-
新しいノードの JOIN_API_VERSION。
- --force <ブール値
-
ノードが既に存在する場合はエラーをスローしません。
- -リンク[n] [アドレス=]<IP> [,優先度=<整数>]。
-
1つのコロシンク・リンクのアドレスとプライオリティ情報。(最大8リンクまでサポート; link0..link7)
- --new_node_ip <文字列
-
追加するノードのIPアドレス。リンクがない場合のフォールバックとして使用されます。
- --nodeid <整数> (1 - N)
-
このノードのノード ID。
- --votes <整数> (0 - N)
-
このノードの投票数
pvecm アピバー
このノードで利用可能なクラスタ結合 API のバージョンを返します。
pvecm create <clustername> [OPTIONS] [オプション].
新しいクラスタ構成を生成します。リンクが指定されていない場合、デフォルトでローカルIPアドレスがlink0になります。
- <クラスタ名>: <文字列
-
クラスタの名前。
- -リンク[n] [アドレス=]<IP> [,優先度=<整数>]。
-
1つのコロシンク・リンクのアドレスとプライオリティ情報。(最大8リンクまでサポート; link0..link7)
- --nodeid <整数> (1 - N)
-
このノードのノード ID。
- --投票数 <整数> (1 - N)
-
このノードの投票数。
pvecm delnode <ノード>。
クラスタ構成からノードを削除します。
- <ノード>: <文字列
-
クラスタ・ノード名。
pvecm 予想 <予想
corosyncに期待される投票数の新しい値を伝えます。
- <予想>: <整数> (1 - N)
-
予想得票数
pvecm help [OPTIONS]
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pvecm keygen <ファイル名>.
corosync用の新しい暗号鍵を生成します。
- <ファイル名>: <文字列
-
出力ファイル名
pvecm mtunnel [<extra-args>] [OPTIONS].
VM/CTマイグレーションで使用します。
- <extra-args>: <array> です。
-
配列としての追加引数
- --get_migration_ip <boolean>(デフォルト = 0)
-
設定されている場合、マイグレーション IP を返します
- --マイグレーションネットワーク <文字列
-
ローカルマイグレーションIPの検出に使用されるマイグレーションネットワーク
- --run-command <ブール値
-
tcpソケットを標準入力としてコマンドを実行します。IPアドレスとポートは、まずこのコマンドの標準出力から、それぞれ別の行に出力されます。
pvecmノード
クラスタノードのローカルビューを表示します。
pvecm qdevice remove
設定されたQDeviceの削除
pvecm qdevice setup <アドレス> [オプション].
QDeviceの使用設定
- <アドレス>: <文字列
-
外部corosync QDeviceのネットワークアドレスを指定します。
- --force <ブール値
-
危険な可能性のある操作でエラーを投げないでください。
- --ネットワーク <文字列
-
外部qdeviceへの接続に使用するネットワーク。
pvecmステータス
クラスタステータスのローカルビューを表示します。
pvecm updatecerts [OPTIONS](証明書の更新)
ノード証明書を更新します(必要なファイル/ディレクトリをすべて生成します)。
- --force <ブール値
-
新しいSSL証明書を強制的に生成します。
- --サイレント <ブール値
-
エラーを無視します(クラスタに定足数がない場合など)。
- --unmerge-known-hosts <boolean>(デフォルト = 0)
-
レガシーSSH既知のホストをアンマージします。
22.14.pvesr- Proxmox VE Storage Replication
pvesr <COMMAND> [ARGS] [OPTIONS] です。
pvesr create-local-job <id> <target> [OPTIONS].
新しいレプリケーション・ジョブの作成
- <id>: [1-9][0-9]{2,8}-\d{1,9}
-
レプリケーション・ジョブID。IDはゲストIDとジョブ番号で構成され、ハイフンで区切られます(<GUEST>-<JOBNUM>)。
- <ターゲット>: <文字列
-
対象ノード
- --コメント <文字列
-
説明
- --無効 <ブール値
-
エントリーを無効化/非活性化するフラグ。
- --レート <数値> (1 - N)
-
mbps(メガバイト/秒)単位のレート制限を浮動小数点数で指定します。
- --remove_job <full | local>.
-
レプリケーション・ジョブを削除するようにマークします。このジョブはすべてのローカルレプリケーションスナップショットを削除します。フルに設定すると、ターゲット上のレプリケートされたボリュームも削除しようとします。その後、ジョブは構成ファイルから自身を削除します。
- --スケジュール <文字列>(デフォルト = */15)
-
ストレージのレプリケーションスケジュール。このフォーマットはsystemdカレンダーイベントのサブセットです。
- --ソース <文字列
-
ゲストが盗まれたかどうかを検出するための内部使用。
pvesr delete <id> [OPTIONS].
削除するレプリケーション・ジョブをマークします。
- <id>: [1-9][0-9]{2,8}-\d{1,9}
-
レプリケーション・ジョブID。IDはゲストIDとジョブ番号で構成され、ハイフンで区切られます(<GUEST>-<JOBNUM>)。
- --force <ブール値>(デフォルト = 0)
-
jobconfig エントリを削除しますが、クリーンアップはしません。
- --keep <boolean>(デフォルト = 0)
-
レプリケートされたデータをターゲットに保持します(削除しないでください)。
pvesr disable <id
レプリケーション・ジョブを無効にします。
- <id>: [1-9][0-9]{2,8}-\d{1,9}
-
レプリケーション・ジョブID。IDはゲストIDとジョブ番号で構成され、ハイフンで区切られます(<GUEST>-<JOBNUM>)。
pvesr enable <id>
レプリケーション・ジョブを有効にします。
- <id>: [1-9][0-9]{2,8}-\d{1,9}
-
レプリケーション・ジョブID。IDはゲストIDとジョブ番号で構成され、ハイフンで区切られます(<GUEST>-<JOBNUM>)。
pvesr finalize-local-job <id> [<extra-args>] [OPTIONS].
レプリケーション・ジョブを確定します。これにより、<last_sync>と異なるタイムスタンプを持つすべてのレプリケーション・スナップショットが削除されます。
- <id>: [1-9][0-9]{2,8}-\d{1,9}
-
レプリケーション・ジョブID。IDはゲストIDとジョブ番号で構成され、ハイフンで区切られます(<GUEST>-<JOBNUM>)。
- <extra-args>: <array> です。
-
検討するボリュームIDのリスト。
- --last_sync <整数> (0 - N)
-
最後に同期に成功した時刻(UNIXエポック)。指定しない場合は、すべてのレプリケーションスナップショットが削除されます。
pvesr help [OPTIONS]
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pvesrリスト
レプリケーション・ジョブを一覧表示します。
pvesr prepare-local-job <id> [<extra-args>] [OPTIONS].
レプリケーション・ジョブの開始準備。これはレプリケーション開始前にターゲットノードで呼び出されます。この呼び出しは内部用で、標準出力にJSONオブジェクトを返します。このメソッドは、まず VM <vmid> がローカルノードに存在するかどうかをテストします。存在する場合は直ちに停止します。その後、このメソッドはスナップショットについてすべてのボリュームIDをスキャンし、<last_sync>と異なるタイムスタンプを持つすべてのレプリケーション・スナップショットを削除します。また、未使用のボリュームも削除します。既存のレプリケーション・スナップショットを持つすべてのボリュームのブール値マーカーを持つハッシュを返します。
- <id>: [1-9][0-9]{2,8}-\d{1,9}
-
レプリケーション・ジョブID。IDはゲストIDとジョブ番号で構成され、ハイフンで区切られます(<GUEST>-<JOBNUM>)。
- <extra-args>: <array> です。
-
検討するボリュームIDのリスト。
- --force <ブール値>(デフォルト = 0)
-
既存のボリュームをすべて削除できます(空のボリュームリスト)。
- --last_sync <整数> (0 - N)
-
最後に同期に成功した時刻(UNIXエポック)。指定しない場合は、すべてのレプリケーション・スナップショットが削除されます。
- -親スナップ名 <文字列
-
スナップショットの名前。
- --スキャン <文字列
-
古くなったボリュームをスキャンするストレージIDのリスト。
pvesr read <id>
レプリケーション・ジョブの設定を読み取ります。
- <id>: [1-9][0-9]{2,8}-\d{1,9}
-
レプリケーション・ジョブID。IDはゲストIDとジョブ番号で構成され、ハイフンで区切られます(<GUEST>-<JOBNUM>)。
pvesr run [OPTIONS]
このメソッドは systemd-timer によって呼び出され、すべての(または特定の)同期ジョブを実行します。
- --id [1-9][0-9]{2,8}-d{1,9}
-
レプリケーション・ジョブID。IDはゲストIDとジョブ番号で構成され、ハイフンで区切られます(<GUEST>-<JOBNUM>)。
- --メール <ブール値>(デフォルト = 0)
-
障害発生時にメール通知を送信します。
- --verbose <boolean>(デフォルト = 0)
-
標準出力に詳細なログを出力します。
pvesr schedule-now <id>
レプリケーション・ジョブをできるだけ早く開始するようにスケジュールします。
- <id>: [1-9][0-9]{2,8}-\d{1,9}
-
レプリケーション・ジョブID。IDはゲストIDとジョブ番号で構成され、ハイフンで区切られます(<GUEST>-<JOBNUM>)。
pvesr set-state <vmid> <state>です。
マイグレーション時にジョブのレプリケーション状態を設定します。この呼び出しは内部用で、ja JSON objとしてジョブ状態を受け取ります。
- <vmid>: <整数> (100 - 999999999)
-
VMの(一意の)ID。
- <状態>: <文字列
-
JSON デコードされた文字列としてのジョブ状態。
pvesr status [OPTIONS]
このノードのすべてのレプリケーション・ジョブのステータスを一覧表示します。
- --ゲスト <整数> (100 - 999999999)
-
このゲストのレプリケーションジョブのみをリストします。
pvesr update <id> [OPTIONS].
レプリケーション・ジョブ構成を更新します。
- <id>: [1-9][0-9]{2,8}-\d{1,9}
-
レプリケーション・ジョブID。IDはゲストIDとジョブ番号で構成され、ハイフンで区切られます(<GUEST>-<JOBNUM>)。
- --コメント <文字列
-
説明
- --削除 <文字列
-
削除したい設定のリスト。
- -ダイジェスト <文字列
-
現在のコンフィギュレーション・ファイルのダイジェストが異なる場合、変更を防止します。これは同時修正を防ぐために使用できます。
- --無効 <ブール値
-
エントリーを無効化/非活性化するフラグ。
- --レート <数値> (1 - N)
-
mbps(メガバイト/秒)単位のレート制限を浮動小数点数で指定します。
- --remove_job <full | local>.
-
レプリケーション・ジョブを削除するようにマークします。このジョブはすべてのローカルレプリケーションスナップショットを削除します。フルに設定すると、ターゲット上のレプリケートされたボリュームも削除しようとします。その後、ジョブは構成ファイルから自身を削除します。
- --スケジュール <文字列>(デフォルト = */15)
-
ストレージのレプリケーションスケジュール。このフォーマットはsystemdカレンダーイベントのサブセットです。
- --ソース <文字列
-
ゲストが盗まれたかどうかを検出するための内部使用。
22.15.pveum- Proxmox VE User Manager
pveum <COMMAND> [ARGS] [OPTIONS] です。
pveum acl delete <path> --roles <string> [OPTIONS].
アクセスコントロールリストの更新(権限の追加または削除)。
- <path>: <文字列
-
アクセス制御パス
- --グループ <文字列
-
グループ一覧。
- --プロパゲート <ブール値>(デフォルト = 1)
-
パーミッションの伝搬(継承)を許可します。
- --roles <文字列
-
役割の一覧。
- --トークン <文字列
-
APIトークンのリスト。
- --users <文字列
-
ユーザー一覧。
pveum acl list [FORMAT_OPTIONS]。
アクセス制御リスト(ACL)を取得します。
pveum acl modify <path> --roles <string> [OPTIONS].
アクセスコントロールリストの更新(権限の追加または削除)。
- <path>: <文字列
-
アクセス制御パス
- --グループ <文字列
-
グループ一覧。
- --プロパゲート <ブール値>(デフォルト = 1)
-
パーミッションの伝搬(継承)を許可します。
- --roles <文字列
-
役割の一覧。
- --トークン <文字列
-
APIトークンのリスト。
- --users <文字列
-
ユーザー一覧。
プベウム・アクデル
pveum acl delete のエイリアス。
pveum aclmod
pveum acl modify のエイリアス。
pveum group add <groupid> [OPTIONS](グループ追加 <グループID >[オプション])
新しいグループを作成します。
- <groupid>: <文字列
-
説明なし
- --コメント <文字列
-
説明なし
pveum グループ削除 <グループID
グループを削除します。
- <groupid>: <文字列
-
説明なし
pveum グループ・リスト [FORMAT_OPTIONS].
グループインデックス
pveum group modify <groupid> [OPTIONS] [オプション].
グループデータを更新します。
- <groupid>: <文字列
-
説明なし
- --コメント <文字列
-
説明なし
グループ追加
pveum group add のエイリアス。
プベウム・グループデル
pveum group delete のエイリアス。
プベウム・グループモッド
pveum group modify のエイリアス。
pveum help [OPTIONS]
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pveum passwd <ユーザーID> [OPTIONS].
ユーザーパスワードを変更します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- --確認パスワード <文字列
-
変更を実行するユーザーの現在のパスワード。
pveum pool add <poolid> [OPTIONS](プール追加 <プール) [オプション])
新しいプールを作成します。
- <プール>: <文字列
-
説明なし
- --コメント <文字列
-
説明なし
プール削除 <プール
プールを削除します。
- <プール>: <文字列
-
説明なし
pveum プールリスト [OPTIONS] [FORMAT_OPTIONS].
プールの一覧表示またはプール設定の取得
- --プール <文字列
-
説明なし
- --タイプ <lxc | qemu | storage>
-
説明なし
必要なオプション:poolid
pveum pool modify <poolid> [OPTIONS] [オプション].
プールを更新。
- <プール>: <文字列
-
説明なし
- --allow-move <boolean>(デフォルト = 0)
-
すでに別のプールにいる場合でも、ゲストを追加できるようにします。ゲストは現在のプールから削除され、このプールに追加されます。
- --コメント <文字列
-
説明なし
- --delete <boolean>(デフォルト = 0)
-
渡されたVMIDやストレージIDを追加する代わりに削除します。
- --ストレージ <文字列
-
このプールから追加または削除するストレージ ID のリスト。
- --vms <文字列
-
このプールから追加または削除するゲスト VMID のリスト。
pveum realm add <realm> --type <string> [OPTIONS] です。
認証サーバーを追加します。
- <realm>: <文字列
-
認証ドメインID
- --acr-values ^[^x00-xxx1F <>#"]*$.
-
認証サーバが認証要求に使用するよう要求される認証コンテキスト・クラス参照値 を指定します。
- --autocreate <boolean>(デフォルト = 0)
-
ユーザーが存在しない場合、自動的にユーザーを作成します。
- --base_dn <文字列
-
LDAPベースドメイン名
- --bind_dn <文字列
-
LDAPバインドドメイン名
- --capath <文字列>(デフォルト = /etc/ssl/certs)
-
CA 証明書ストアへのパス
- --大文字小文字を区別 <ブール値>(デフォルト = 1)
-
ユーザー名は大文字と小文字を区別します。
- --証明書 <文字列
-
クライアント証明書へのパス
- --認証キー <文字列
-
クライアント証明書キーへのパス
- --check-connection <boolean>(デフォルト = 0)
-
サーバーへのバインド接続を確認します。
- --クライアントID <文字列
-
OpenIDクライアントID
- --client-key <文字列
-
OpenIDクライアント・キー
- --コメント <文字列
-
説明
- --default <ブール値
-
デフォルトのレルムとして使用します。
- --ドメイン
-
ADドメイン名
- --フィルタ <文字列
-
ユーザー同期用のLDAPフィルター。
- --group_classes <string>(default = groupOfNames, group, univentionGroup, ipausergroup)
-
グループのオブジェクトクラス。
- --group_dn <文字列
-
グループ同期用のLDAPベース・ドメイン名。設定されていない場合は、base_dnが使用されます。
- --グループフィルター <文字列
-
グループ同期用のLDAPフィルタ。
- --group_name_attr <文字列
-
グループ名を表すLDAP属性。設定されていない場合、または見つかった場合は、DN の最初の値が name として使用されます。
- --issuer-url <文字列
-
OpenID発行者URL
- --モード <ldap | ldap+starttls | ldaps>(デフォルト = ldap)
-
LDAPプロトコルモード。
- --パスワード <文字列
-
LDAP バインドパスワード。etc/pve/priv/realm/<REALM>.pw に格納されます。
- --ポート <整数> (1 - 65535)
-
サーバーポート
- --プロンプト (?:none|login|consent|select_account|S+)
-
認証サーバがエンドユーザに再認証と同意を求めるかどうかを指定します。
- --スコープ <文字列>(デフォルト = 電子メールプロファイル)
-
認可され返されるべきスコープ (ユーザの詳細) を指定します。
- --secure <ブール値
-
安全な LDAPS プロトコルを使用します。廃止: 代わりにmodeを使用してください。
- --サーバ1 <文字列
-
サーバーIPアドレス(またはDNS名)
- --サーバー2 <文字列
-
フォールバックサーバーのIPアドレス(またはDNS名)
- -sslバージョン <tlsv1 | tlsv1_1 | tlsv1_2 | tlsv1_3>.
-
LDAPS TLS/SSLのバージョン。1.2より古いバージョンを使用することはお勧めしません!
- -sync-defaults-options [enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>] となります。
-
同期の動作に関するデフォルトのオプション。
- --sync_attributes \w+=[^,]+(,\s*\w+=[^,]+)*
-
どの LDAP 属性をどの PVE ユーザーフィールドにマッピングするかを指定するための key=value ペアのカンマ区切りリスト。例えば、LDAP 属性のmailを PVE のemail にマッピングするには、email=mail と記述します。デフォルトでは、各 PVE ユーザーフィールドは同じ名前の LDAP 属性で表されます。
- --tfa type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>].
-
二要素認証を使用してください。
- --type <ad | ldap | openid | pam | pve>.
-
レルムタイプ。
- --user_attr \S{2,}.
-
LDAPユーザー属性名
- --user_classes <string>(デフォルト = inetorgperson, posixaccount, person, user)
-
ユーザーのオブジェクトクラス。
- --username-claim <string>
-
一意のユーザー名を生成するために使用されるOpenIDクレーム。
- --verify <boolean>(デフォルト = 0)
-
サーバーのSSL証明書の確認
pveum realm delete <realm>
認証サーバーを削除します。
- <realm>: <文字列
-
認証ドメインID
pveum realm list [FORMAT_OPTIONS]。
認証ドメインインデックス。
pveum realm modify <realm> [OPTIONS] [オプション].
認証サーバーの設定を更新します。
- <realm>: <文字列
-
認証ドメインID
- --acr-values ^[^x00-xxx1F <>#"]*$.
-
認証サーバが認証要求に使用するよう要求される認証コンテキスト・クラス参照値 を指定します。
- --autocreate <boolean>(デフォルト = 0)
-
ユーザーが存在しない場合、自動的にユーザーを作成します。
- --base_dn <文字列
-
LDAPベースドメイン名
- --bind_dn <文字列
-
LDAPバインドドメイン名
- --capath <文字列>(デフォルト = /etc/ssl/certs)
-
CA 証明書ストアへのパス
- --大文字小文字を区別 <ブール値>(デフォルト = 1)
-
ユーザー名は大文字と小文字を区別します。
- --証明書 <文字列
-
クライアント証明書へのパス
- --認証キー <文字列
-
クライアント証明書キーへのパス
- --check-connection <boolean>(デフォルト = 0)
-
サーバーへのバインド接続を確認します。
- --クライアントID <文字列
-
OpenIDクライアントID
- --client-key <文字列
-
OpenIDクライアント・キー
- --コメント <文字列
-
説明
- --default <ブール値
-
デフォルトのレルムとして使用します。
- --削除 <文字列
-
削除したい設定のリスト。
- -ダイジェスト <文字列
-
現在のコンフィギュレーション・ファイルのダイジェストが異なる場合、変更を防止します。これは同時修正を防ぐために使用できます。
- --ドメイン
-
ADドメイン名
- --フィルタ <文字列
-
ユーザー同期用のLDAPフィルター。
- --group_classes <string>(default = groupOfNames, group, univentionGroup, ipausergroup)
-
グループのオブジェクトクラス。
- --group_dn <文字列
-
グループ同期用のLDAPベース・ドメイン名。設定されていない場合は、base_dnが使用されます。
- --グループフィルター <文字列
-
グループ同期用のLDAPフィルタ。
- --group_name_attr <文字列
-
グループ名を表すLDAP属性。設定されていない場合、または見つかった場合は、DN の最初の値が name として使用されます。
- --issuer-url <文字列
-
OpenID発行者URL
- --モード <ldap | ldap+starttls | ldaps>(デフォルト = ldap)
-
LDAPプロトコルモード。
- --パスワード <文字列
-
LDAP バインドパスワード。etc/pve/priv/realm/<REALM>.pw に格納されます。
- --ポート <整数> (1 - 65535)
-
サーバーポート
- --プロンプト (?:none|login|consent|select_account|S+)
-
認証サーバがエンドユーザに再認証と同意を求めるかどうかを指定します。
- --スコープ <文字列>(デフォルト = 電子メールプロファイル)
-
認可され返されるべきスコープ (ユーザの詳細) を指定します。
- --secure <ブール値
-
安全な LDAPS プロトコルを使用します。廃止: 代わりにmodeを使用してください。
- --サーバ1 <文字列
-
サーバーIPアドレス(またはDNS名)
- --サーバー2 <文字列
-
フォールバックサーバーのIPアドレス(またはDNS名)
- -sslバージョン <tlsv1 | tlsv1_1 | tlsv1_2 | tlsv1_3>.
-
LDAPS TLS/SSLのバージョン。1.2より古いバージョンを使用することはお勧めしません!
- -sync-defaults-options [enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>] となります。
-
同期の動作に関するデフォルトのオプション。
- --sync_attributes \w+=[^,]+(,\s*\w+=[^,]+)*
-
どの LDAP 属性をどの PVE ユーザーフィールドにマッピングするかを指定するための key=value ペアのカンマ区切りリスト。例えば、LDAP 属性のmailを PVE のemail にマッピングするには、email=mail と記述します。デフォルトでは、各 PVE ユーザーフィールドは同じ名前の LDAP 属性で表されます。
- --tfa type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>].
-
二要素認証を使用してください。
- --user_attr \S{2,}.
-
LDAPユーザー属性名
- --user_classes <string>(デフォルト = inetorgperson, posixaccount, person, user)
-
ユーザーのオブジェクトクラス。
- --verify <boolean>(デフォルト = 0)
-
サーバーのSSL証明書の確認
pveum realm sync <realm> [OPTIONS] [オプション].
設定されたLDAPからuser.cfgにユーザまたはグループを同期します。注意: 同期されたグループはname-$realm という名前を持つので、上書きを防ぐためにそれらのグループが存在しないことを確認してください。
- <realm>: <文字列
-
認証ドメインID
- --ドライラン <ブール値>(デフォルト = 0)
-
設定されている場合、何も書きません。
- --enable-new <ブール値>(デフォルト = 1)
-
新しく同期されたユーザーをすぐに有効にします。
- --full <ブール値
-
廃止: 代わりにremove-vanishedを使用してください。設定されている場合、真実のソースとしてLDAPディレクトリを使用し、同期から返されなかったユーザまたはグループを削除し、同期されたユーザのローカルで変更されたすべてのプロパティを削除します。設定されていない場合、同期されたデータに存在する情報のみが同期され、それ以外のものは削除または変更されません。
- --パージ <ブール値
-
廃止: 代わりにremove-vanishedを使用してください。同期中に設定から削除されたユーザまたはグループの ACL を削除します。
- --remove-vanished ([acl];[properties];[entry])|none(default = none)
-
セミコロンで区切られたリストで、同期中にユーザーやグループが消えたときに削除します。aclは、ユーザー/グループが同期から返されなかったときにaclsを削除します。リストの代わりにnone(デフォルト)を指定することもできます。
- --スコープ <両方 | グループ | ユーザー
-
同期するものを選択します。
pveum role add <roleid> [OPTIONS] [オプション].
新しいロールを作成します。
- <roleid>: <文字列
-
説明なし
- --privs <文字列
-
説明なし
pveumロール削除 <ロールID
役割を削除します。
- <roleid>: <文字列
-
説明なし
pveumロールリスト [FORMAT_OPTIONS]。
役割インデックス
pveum role modify <roleid> [オプション].
既存のロールを更新します。
- <roleid>: <文字列
-
説明なし
- --append <ブール値
-
説明なし
必要なオプション:privs - --privs <文字列
-
説明なし
プベウム・ロールアド
pveum role addのエイリアス。
プベウム・ローデル
pveum role deleteのエイリアスです。
pveumロールモッド
pveum role modifyのエイリアス。
pveum ticket <ユーザー名> [オプション].
認証チケットを作成または検証します。
- <ユーザー名>: <文字列
-
ユーザー名
- --new-format <boolean>(デフォルト = 1)
-
このパラメータは無視され、1とみなされます。
- --otp <文字列
-
二要素認証用のワンタイムパスワード。
- --パス <文字列
-
チケットを確認し、ユーザがパスにアクセス権限を持っているかチェックします。
必要なオプション:privs - --privs <文字列
-
チケットを確認し、ユーザがパスにアクセス権限を持っているかチェックします。
必要なオプション:path - --realm <文字列
-
オプションで、このパラメータに realm を渡すことができます。通常、レルムは単にユーザ名 <username>@<relam> に追加されます。
- -tfa-チャレンジ <文字列
-
ユーザーが応答したい署名済みTFAチャレンジ文字列。
pveum user add <userid> [OPTIONS] [オプション].
新しいユーザーを作成します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- --コメント <文字列
-
説明なし
- --電子メール <文字列
-
説明なし
- --有効 <ブール値>(デフォルト = 1)
-
アカウントを有効にします(デフォルト)。アカウントを無効にするには、これを0に設定します。
- --expire <整数> (0 - N)
-
アカウントの有効期限 (エポックからの秒数)。0は有効期限がないことを意味します。
- --名 <文字列
-
説明なし
- --グループ <文字列
-
説明なし
- --keys [0-9a-zA-Z!=]{0,4096}。
-
二要素認証(yubico)用のキー。
- --ラストネーム <文字列
-
説明なし
- --パスワード <文字列
-
初期パスワード
pveum ユーザー削除 <ユーザーID
ユーザーを削除します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
pveum ユーザーリスト [OPTIONS] [FORMAT_OPTIONS].
ユーザーインデックス
- --有効 <ブール値
-
enableプロパティのオプションフィルタ。
- --full <ブール値>(デフォルト = 0)
-
グループおよびトークン情報を含みます。
pveum user modify <userid> [OPTIONS] [オプション].
ユーザー設定を更新します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- --append <ブール値
-
説明なし
必要なオプション:グループ - --コメント <文字列
-
説明なし
- --電子メール <文字列
-
説明なし
- --有効 <ブール値>(デフォルト = 1)
-
アカウントを有効にします(デフォルト)。アカウントを無効にするには、これを0に設定します。
- --expire <整数> (0 - N)
-
アカウントの有効期限 (エポックからの秒数)。0は有効期限がないことを意味します。
- --名 <文字列
-
説明なし
- --グループ <文字列
-
説明なし
- --keys [0-9a-zA-Z!=]{0,4096}。
-
二要素認証(yubico)用のキー。
- --ラストネーム <文字列
-
説明なし
pveum user permissions [<userid>] [OPTIONS] [FORMAT_OPTIONS].
指定されたユーザ/トークンの有効なパーミッションを取得します。
- <userid>: (?^:^(?^:[^\s:/]+)\@(?^:[A-Za-z][A-Za-z0-9\.\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\.\-_]+))?$)
-
ユーザーIDまたは完全なAPIトークンID
- --パス <文字列
-
ツリー全体ではなく、特定のパスだけをダンプします。
pveum user tfa delete <userid> [OPTIONS] [オプション].
ユーザーから TFA エントリを削除します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- --id <文字列
-
TFA ID。指定がない場合は、すべての TFA エントリが削除されます。
pveumユーザーtfaリスト [<ユーザーID>]。
TFAエントリー一覧。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
pveumユーザーtfaロック解除 <ユーザーID
ユーザーのTFA認証を解除します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
pveum user token add <userid> <tokenid> [OPTIONS] [FORMAT_OPTIONS].
特定のユーザー用に新しいAPIトークンを生成します。注意: APIトークンの値を返します。この値は後から取得できないため、保存しておく必要があります!
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- <tokenid>: (?^:[A-Za-z][A-Za-z0-9\.\-_]+)
-
ユーザー固有のトークン識別子。
- --コメント <文字列
-
説明なし
- --expire <integer> (0 - N)(デフォルト = user と同じ)
-
APIトークンの有効期限(エポックからの秒数)。0は有効期限なしを意味します。
- --privsep <ブール値>(デフォルト = 1)
-
個別のACLでAPIトークンの権限を制限するか(デフォルト)、対応するユーザーの全権限を与えます。
pveum user token delete <userid> <tokenid> [FORMAT_OPTIONS]。
特定のユーザーのAPIトークンを削除します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- <tokenid>: (?^:[A-Za-z][A-Za-z0-9\.\-_]+)
-
ユーザー固有のトークン識別子。
pveum ユーザー・トークン・リスト <ユーザーID> [FORMAT_OPTIONS].
ユーザー API トークンを取得します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
pveum user token modify <userid> <tokenid> [OPTIONS] [FORMAT_OPTIONS].
特定のユーザーのAPIトークンを更新します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- <tokenid>: (?^:[A-Za-z][A-Za-z0-9\.\-_]+)
-
ユーザー固有のトークン識別子。
- --コメント <文字列
-
説明なし
- --expire <integer> (0 - N)(デフォルト = user と同じ)
-
APIトークンの有効期限(エポックからの秒数)。0は有効期限なしを意味します。
- --privsep <ブール値>(デフォルト = 1)
-
個別のACLでAPIトークンの権限を制限するか(デフォルト)、対応するユーザーの全権限を与えます。
pveum user token permissions <userid> <tokenid> [OPTIONS] [FORMAT_OPTIONS].
与えられたトークンの有効なパーミッションを取得します。
- <ユーザーID>: <文字列
-
name@realm形式の完全なユーザーID。
- <tokenid>: (?^:[A-Za-z][A-Za-z0-9\.\-_]+)
-
ユーザー固有のトークン識別子。
- --パス <文字列
-
ツリー全体ではなく、特定のパスだけをダンプします。
pveum ユーザートークンの削除
pveum user token delete のエイリアス。
ユーザー追加
pveum user add のエイリアス。
ユーザー削除
pveum user delete のエイリアス。
pveum usermod
pveum user modify のエイリアス。
22.16.vzdump- VM とコンテナのバックアップユーティリティ
vzdump ヘルプ
vzdump {<vmid>} [OPTIONS].
バックアップを作成します。
- <vmid>: <文字列
-
バックアップするゲストシステムのID。
- --all <boolean>(デフォルト = 0)
-
このホスト上のすべての既知のゲストシステムをバックアップします。
- --bwlimit <整数> (0 - N)(デフォルト = 0)
-
I/Oバンド幅の制限(単位:KiB/s)。
- --圧縮 <0 | 1 | gzip | lzo | zstd>(デフォルト = 0)
-
ダンプファイルを圧縮します。
- --dumpdir <文字列
-
結果のファイルを指定したディレクトリに保存します。
- --除外 <文字列
-
指定したゲストシステムを除外 (--all を想定)
- --除外パス <配列
-
特定のファイル/ディレクトリ(シェル・グロブ)を除外します。で始まるパスはコンテナのルートに固定され、その他のパスは各サブディレクトリに相対的に一致します。
- --フリーク [[enabled=]<1|0>]。[,ストレージ=<ストレージID>]]。
-
バックアップフリートのオプション(VMのみ)。
- --ionice <整数> (0 - 8)(デフォルト = 7)
-
BFQスケジューラ使用時のIO優先度を設定します。VMのスナップショットとサスペンドモードのバックアップでは、これはコンプレッサにのみ影響します。値が8の場合はアイドル優先度が使用され、それ以外の場合は指定した値でベストエフォート優先度が使用されます。
- --ジョブID
-
バックアップジョブのID。設定されると、バックアップ通知のbackup-jobメタデータフィールドにこの値が設定されます。root@pamのみがこのパラメータを設定できます。
- --ロックウェイト <整数> (0 - N)(デフォルト = 180)
-
グローバルロックの最大待機時間(分)。
- --メール通知 <常に|失敗>(デフォルト = 常に)
-
非推奨: 代わりに通知ターゲット/マッチャーを使用してください。通知メールを送るタイミングを指定
- --宛先 <文字列
-
非推奨:代わりに通知先/通知先を使用してください。メール通知を受け取るメールアドレスまたはユーザのカンマ区切りリスト。
- -マックスファイル <整数> (1 - N)
-
非推奨: 代わりにprune-backups を使用してください。ゲストシステムごとのバックアップファイルの最大数。
- --モード <スナップショット | 停止 | サスペンド>(デフォルト = スナップショット)
-
バックアップモード。
- --ノード <文字列
-
このノードで実行された場合のみ実行されます。
- --notes-template <文字列
-
バックアップのメモを生成するためのテンプレート文字列。値で置き換えられる変数を含むことができます。現在サポートされているのは{{cluster}}, {{guestname}}, {{node}}, {{vmid}}ですが、今後追加されるかもしれません。改行とバックスラッシュは、それぞれ「˶n」と「˶n」としてエスケープする必要があります。
必要なオプション:ストレージ - --notification-mode <auto | legacy-sendmail | notification-system>(デフォルト = auto)
-
使用する通知システムを決定します。legacy-sendmail に設定すると、vzdump は mailto/mailnotification パラメータを考慮し、sendmailコマンドで指定したアドレスにメールを送信します。notification-systemに設定すると、PVEの通知システム経由で通知が送信され、mailtoとmailnotificationは無視されます。auto(デフォルト設定) に設定すると、mailto が設定されていればメールが送信され、設定されていなければ通知システムが使用されます。
- --notification-policy <always | failure | never>(デフォルト = always)
-
非推奨:を使用しないでください。
- --通知先 <文字列
-
非推奨:を使用しないでください。
- --pbs-change-detection-mode <data | legacy | metadata>.
-
ファイルの変更を検出し、コンテナバックアップのエンコード形式を切り替えるために使用されるPBSモード。
- --performance [max-workers=<integer>] [,pbs-entries-max=<integer>].
-
その他のパフォーマンス関連の設定。
- --pigz <整数>(デフォルト = 0)
-
N>0の場合はgzipの代わりにpigzを使用。N=1 はコアの半分を使用し、N>1 は N をスレッド数として使用します。
- --プール <文字列
-
指定されたプールに含まれるすべての既知のゲストシステムをバックアップします。
- --プロテクト <ブール
-
trueの場合、バックアップに保護マークを付けます。
必要なオプション:ストレージ - --prune-backups [keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>](default = keep-all=1)
-
ストレージ構成の保持オプションの代わりに、これらの保持オプションを使用します。
- --quiet <ブール値>(デフォルト = 0)
-
静かにしてください。
- --remove <boolean>(デフォルト = 1)
-
prune-backupsに従って古いバックアップを削除します。
- --スクリプト <文字列
-
指定されたフックスクリプトを使用します。
- --stdexcludes <boolean>(デフォルト = 1)
-
一時ファイルとログを除外します。
- --stdout <ブール値
-
tar をファイルではなく標準出力に書き込みます。
- --stop <ブール値>(デフォルト = 0)
-
このホストでのバックアップジョブの実行を停止します。
- --stopwait <整数> (0 - N)(デフォルト = 10)
-
ゲストシステムが停止するまでの最大待機時間 (分)。
- --ストレージ ID
-
結果のファイルをこのストレージに保存します。
- --tmpdir <文字列
-
指定したディレクトリに一時ファイルを保存します。
- --zstd <整数>(デフォルト = 1)
-
Zstdスレッド。N=0は利用可能なコアの半分を使用し、Nが0より大きな値に設定された場合、Nはスレッド数として使用されます。
22.17.ha-manager- Proxmox VE HA マネージャ
ha-manager <COMMAND> [ARGS] [OPTIONS].
ha-manager add <sid> [OPTIONS]を追加します。
新しいHAリソースを作成します。
- <sid >:<type>:<name>。
-
HAリソースID。これは、リソースの種類と、コロンで区切られたリソース固有の名前で構成されます(例:vm:100 / ct:100)。仮想マシンとコンテナの場合は、VMまたはCT IDをショートカットとして使用できます(例:100)。
- --コメント <文字列
-
説明
- --グループ <文字列
-
HAグループの識別子。
- --max_relocate <integer> (0 - N)(デフォルト = 1)
-
サービスの起動に失敗した場合のサービス再配置の最大試行回数。
- --max_restart <integer> (0 - N)(デフォルト = 1)
-
起動に失敗したノードでサービスを再起動する最大回数。
- --状態 <無効 | 有効 | 無視 | 開始 | 停止>(デフォルト = 開始)
-
要求されたリソースの状態。
- --タイプ <ct | vm>
-
リソースの種類
ha-manager config [OPTIONS]
HAのリソースをリストアップします。
- --タイプ <ct | vm>
-
特定のタイプのリソースのみをリストアップ
ha-manager crm-command migrate <sid> <node>
別のノードへのリソース移行(オンライン)を要求します。
- <sid >:<type>:<name>。
-
HAリソースID。これは、リソースの種類と、コロンで区切られたリソース固有の名前で構成されます(例:vm:100 / ct:100)。仮想マシンとコンテナの場合は、VMまたはCT IDをショートカットとして使用できます(例:100)。
- <ノード>: <文字列
-
対象ノード
ha-manager crm-command ノードメンテナンス無効化 <ノード
ノード保守要求の状態を変更します。
- <ノード>: <文字列
-
クラスタ・ノード名。
ha-manager crm-commandノードメンテナンスイネーブル <ノード
ノード保守要求の状態を変更します。
- <ノード>: <文字列
-
クラスタ・ノード名。
ha-manager crm-コマンド relocate <sid> <node
別のノードへのリソース再配置を要求します。これにより、古いノードでサービスが停止し、ターゲット・ノードでサービスが再起動します。
- <sid >:<type>:<name>。
-
HAリソースID。これは、リソースの種類と、コロンで区切られたリソース固有の名前で構成されます(例:vm:100 / ct:100)。仮想マシンとコンテナの場合は、VMまたはCT IDをショートカットとして使用できます(例:100)。
- <ノード>: <文字列
-
対象ノード
ha-manager crm-コマンド停止 <sid> <タイムアウト
サービスの停止を要求します。
- <sid >:<type>:<name>。
-
HAリソースID。これは、リソースの種類と、コロンで区切られたリソース固有の名前で構成されます(例:vm:100 / ct:100)。仮想マシンとコンテナの場合は、VMまたはCT IDをショートカットとして使用できます(例:100)。
- <タイムアウト>: <整数> (0 - N)
-
秒単位のタイムアウト。0 に設定するとハードストップが実行されます。
ha-manager groupadd <group> --nodes <string> [OPTIONS].
新しいHAグループを作成します。
- <グループ>: <文字列
-
HAグループの識別子。
- --コメント <文字列
-
説明
- --nodes <node>[:<pri>]{,<node>[:<pri>]}*.
-
任意の優先度を持つクラスタ・ノード名のリスト。
- --nofailback <boolean>(デフォルト = 0)
-
CRM は最も優先度の高いノードでサービスを実行しようとします。より優先度の高いノードがオンラインになると、CRM はサービスをそのノードに移行します。nofailback を有効にすると、この動作が防止されます。
- --restricted <boolean>(デフォルト = 0)
-
制限付きグループにバインドされたリソースは、グループによって定義されたノード上でのみ実行できます。
- --タイプ <グループ
-
グループタイプ。
ha-manager groupconfig
HAグループを取得します。
ha-manager groupremove <グループ削除
haグループの設定を削除します。
- <グループ>: <文字列
-
HAグループの識別子。
ha-manager groupset <group> [OPTIONS].
ha グループの設定を更新します。
- <グループ>: <文字列
-
HAグループの識別子。
- --コメント <文字列
-
説明
- --削除 <文字列
-
削除したい設定のリスト。
- -ダイジェスト <文字列
-
現在のコンフィギュレーション・ファイルのダイジェストが異なる場合、変更を防止します。これは同時修正を防ぐために使用できます。
- --nodes <node>[:<pri>]{,<node>[:<pri>]}*.
-
任意の優先度を持つクラスタ・ノード名のリスト。
- --nofailback <boolean>(デフォルト = 0)
-
CRM は最も優先度の高いノードでサービスを実行しようとします。より優先度の高いノードがオンラインになると、CRM はサービスをそのノードに移行します。nofailback を有効にすると、この動作が防止されます。
- --restricted <boolean>(デフォルト = 0)
-
制限付きグループにバインドされたリソースは、グループによって定義されたノード上でのみ実行できます。
ha-manager help [OPTIONS]
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
ha-manager migrate
ha-manager crm-command migrate のエイリアス。
HAマネージャー移転
ha-manager crm-command relocateのエイリアス。
ha-manager remove <sid>
リソース構成を削除します。
- <sid >:<type>:<name>。
-
HAリソースID。これは、リソースの種類と、コロンで区切られたリソース固有の名前で構成されます(例:vm:100 / ct:100)。仮想マシンとコンテナの場合は、VMまたはCT IDをショートカットとして使用できます(例:100)。
ha-manager set <sid> [OPTIONS].
リソース構成を更新します。
- <sid >:<type>:<name>。
-
HAリソースID。これは、リソースの種類と、コロンで区切られたリソース固有の名前で構成されます(例:vm:100 / ct:100)。仮想マシンとコンテナの場合は、VMまたはCT IDをショートカットとして使用できます(例:100)。
- --コメント <文字列
-
説明
- --削除 <文字列
-
削除したい設定のリスト。
- -ダイジェスト <文字列
-
現在のコンフィギュレーション・ファイルのダイジェストが異なる場合、変更を防止します。これは同時修正を防ぐために使用できます。
- --グループ <文字列
-
HAグループの識別子。
- --max_relocate <integer> (0 - N)(デフォルト = 1)
-
サービスの起動に失敗した場合のサービス再配置の最大試行回数。
- --max_restart <integer> (0 - N)(デフォルト = 1)
-
起動に失敗したノードでサービスを再起動する最大回数。
- --状態 <無効 | 有効 | 無視 | 開始 | 停止>(デフォルト = 開始)
-
要求されたリソースの状態。
ha-manager status [OPTIONS]
HA 管理者のステータスを表示します。
- --verbose <boolean>(デフォルト = 0)
-
詳細出力。完全なCRMとLRMステータス(JSON)を含みます。
23.付録B:サービスデーモン
23.1.pve-firewall- Proxmox VE Firewall デーモン
pve-firewall <COMMAND> [ARGS] [OPTIONS].
pve-firewall コンパイル
ファイアウォールのルールをコンパイルして印刷します。これはテストに便利です。
pve-firewallヘルプ [オプション]。
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pve-ファイアウォール
ローカルネットワークの情報を印刷します。
pve-ファイアウォール再起動
Proxmox VEファイアウォールサービスを再起動します。
pve-firewall simulate [OPTIONS]をシミュレートします。
ファイアウォールルールをシミュレートします。これはカーネルのルーティングテーブルをシミュレートするのではなく、単にソースゾーンから宛先ゾーンへのルーティングが可能であると仮定します。
- --dest <文字列
-
宛先IPアドレス。
- --ポート <整数
-
宛先ポート
- --from (host|outside|vmd+|ctd+|([a-zA-Z][a-zA-Z0-9]{0,9})/(˶S+))(default = outside)
-
ソースゾーン。
- --プロトコル (tcp|udp)(デフォルト = tcp)
-
プロトコル
- --ソース <文字列
-
ソースIPアドレス。
- --スポーツ <整数
-
ソースポート
- --to (host|outside|vmd+|ctd+|([a-zA-Z][a-zA-Z0-9]{0,9})/(\S+))(default = host)
-
デスティネーションゾーン
- --verbose <boolean>(デフォルト = 0)
-
冗長出力。
pve-firewall start [OPTIONS] [オプション]。
Proxmox VEファイアウォールサービスを開始します。
- --debug <boolean>(デフォルト = 0)
-
デバッグモード - フォアグラウンドのまま
pve-ファイアウォールのステータス
ファイアウォールの状態を取得します。
pve-ファイアウォール停止
Proxmox VEファイアウォールサービスを停止します。停止すると、Proxmox VE関連のiptableルールがすべてアクティブに削除され、ホストが保護されなくなる可能性があることに注意してください。
23.2.pvedaemon- Proxmox VE API デーモン
pvedaemon <COMMAND> [ARGS] [OPTIONS].
pvedaemonヘルプ [オプション]
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pvedaemon再起動
デーモンを再起動します(起動していない場合は起動します)。
pvedaemonスタート [OPTIONS]
デーモンを起動します。
- --debug <boolean>(デフォルト = 0)
-
デバッグモード - フォアグラウンドのまま
pvedaemonステータス
デーモンの状態を取得します。
プベダエモンストップ
デーモンを停止します。
23.3.pveproxy- Proxmox VE API プロキシデーモン
pveproxy <COMMAND> [ARGS] [OPTIONS] です。
pveproxy help [OPTIONS].
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pveproxyの再起動
デーモンを再起動します(起動していない場合は起動します)。
pveproxy start [OPTIONS].
デーモンを起動します。
- --debug <boolean>(デフォルト = 0)
-
デバッグモード - フォアグラウンドのまま
pveproxyステータス
デーモンの状態を取得します。
pveproxy 停止
デーモンを停止します。
23.4.pvestatd- Proxmox VE ステータスデーモン
pvestatd <COMMAND> [ARGS] [OPTIONS].
pvestatdヘルプ [オプション]。
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pvestatd再起動
デーモンを再起動します(起動していない場合は起動します)。
pvestatd start [OPTIONS].
デーモンを起動します。
- --debug <boolean>(デフォルト = 0)
-
デバッグモード - フォアグラウンドのまま
pvestatdステータス
デーモンの状態を取得します。
pvestatdストップ
デーモンを停止します。
23.5.spiceproxy- SPICE プロキシ・サービス
spiceproxy <COMMAND> [ARGS] [OPTIONS].
spiceproxy help [OPTIONS].
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
spiceproxy の再起動
デーモンを再起動します(起動していない場合は起動します)。
spiceproxy start [OPTIONS].
デーモンを起動します。
- --debug <boolean>(デフォルト = 0)
-
デバッグモード - フォアグラウンドのまま
スパイクプロキシーのステータス
デーモンの状態を取得します。
スピセプロキシー停止
デーモンを停止します。
23.6.pmxcfs- Proxmox クラスタファイルシステム
pmxcfs [OPTIONS]
ヘルプオプション:
- -h,--help
-
ヘルプオプションの表示
アプリケーションオプション:
- -d,--debug
-
デバッグメッセージをオンにします。
- -f,--foreground
-
サーバーをデーモン化しない
- -l,--local
-
ローカルモードを強制 (corosync.conf を無視し、クォーラムを強制)
このサービスは通常 systemd ツールセットを使って起動・管理されます。このサービスはpve-cluster と呼ばれます。
systemctl start pve-cluster
systemctl stop pve-cluster
systemctl status pve-cluster
23.7.pve-ha-crm- クラスタリソースマネージャデーモン
pve-ha-crm <COMMAND> [ARGS] [OPTIONS] です。
pve-ha-crmヘルプ [オプション]。
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pve-ha-crm start [OPTIONS] [オプション]。
デーモンを起動します。
- --debug <boolean>(デフォルト = 0)
-
デバッグモード - フォアグラウンドのまま
pve-ha-crmステータス
デーモンの状態を取得します。
pve-ha-crmストップ
デーモンを停止します。
23.8.pve-ha-lrm- ローカルリソースマネージャーデーモン
pve-ha-lrm <COMMAND> [ARGS] [OPTIONS] です。
pve-ha-lrm help [OPTIONS] [オプション].
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pve-ha-lrm start [OPTIONS] [オプション].
デーモンを起動します。
- --debug <boolean>(デフォルト = 0)
-
デバッグモード - フォアグラウンドのまま
pve-ha-lrmステータス
デーモンの状態を取得します。
プベ・ハ・ルム・ストップ
デーモンを停止します。
23.9.pvescheduler- Proxmox VE スケジューラデーモン
pvescheduler <COMMAND> [ARGS] [OPTIONS].
pveschedulerヘルプ [オプション]。
指定したコマンドに関するヘルプを表示します。
- --extra-args <array> です。
-
特定のコマンドのヘルプを表示します。
- --verbose <ブール値
-
冗長出力フォーマット。
pveschedulerの再起動
デーモンを再起動します(起動していない場合は起動します)。
pvescheduler start [OPTIONS](プベスケジューラ・スタート) 。
デーモンを起動します。
- --debug <boolean>(デフォルト = 0)
-
デバッグモード - フォアグラウンドのまま
pveschedulerステータス
デーモンの状態を取得します。
pveschedulerストップ
デーモンを停止します。
24.付録 C: 設定ファイル
24.1.一般
Proxmox VEのほとんどの設定ファイルは、/etc/pveにマウントされた共有クラスタファイルシステムに存在します。etc/vzdump.confにあるバックアップ用のノード固有の設定ファイルのような例外もあります。
通常、設定ファイルのプロパティは、関連するAPIエンドポイントにも使用されるJSONスキーマから派生します。
24.2.データセンター構成
etc/pve/datacenter.cfgファイルはProxmox VEの設定ファイルです。このファイルには、すべてのノードで使用されるクラスタ全体のデフォルト値が含まれています。
24.2.1.ファイルフォーマット
このファイルでは、コロンで区切られた単純なキー/値形式を使用します。各行の書式は以下の通りです:
オプション:値
ファイル内の空白行は無視され、#文字で始まる行はコメントとして扱われ、これも無視されます。
24.2.2.オプション
- bwlimit:[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>] です。
-
各種操作のI/O帯域幅制限を設定(単位:KiB/s)。
- クローン
-
クローン作成ディスクの帯域制限(KiB/s単位
- デフォルト=<LIMIT
-
デフォルトの帯域幅制限(単位:KiB/s
- マイグレーション=<リミット
-
ゲストの移行(ローカルディスクの移動を含む)の帯域幅制限(KiB/s単位
- move=<リミット
-
移動ディスクの帯域幅制限(KiB/s単位
- リストア=<リミット
-
バックアップからゲストをリストアする際の帯域幅の制限(KiB/s単位
- コンソール:<applet | html5 | vv | xtermjs>.
-
デフォルトの Console ビューアを選択します。ビルトインの Java アプレット (VNC。非推奨で html5 にマップされます)、外部の virt-viewer 互換アプリケーション (SPICE)、HTML5 ベースの vnc ビューア (noVNC)、または HTML5 ベースのコンソールクライアント (xtermjs) のいずれかを使用できます。選択したビューアが利用できない場合 (例えば、SPICE が VM に対して有効化されていない場合)、フォールバックは noVNC になります。
- crs:[ha=<基本|静的>] [,ha-rebalance-on-start=<1|0>]。
-
クラスタリソースのスケジューリング設定。
- ha=<basic| static>(デフォルト = basic)
-
HAマネージャがサービスを開始または回復するノードを選択する方法を設定します。basicでは、サービスの数のみが使用され、staticでは、サービスの静的なCPUとメモリ構成が考慮されます。
- ha-rebalance-on-start=<boolean>(デフォルト = 0)
-
HAサービスの要求状態が停止から開始へ変更された場合に、CRSを使用して対象ノードを選択するように設定します。
- 説明:<文字列
-
データセンターの説明。Webインターフェイスのデータセンター・ノート・パネルに表示されます。これは設定ファイル内のコメントとして保存されます。
- email_from:<文字列
-
通知を送信するメールアドレスを指定(デフォルトはroot@$hostname)
- fencing:<both | hardware | watchdog>(デフォルト = watchdog)
-
HA クラスタのフェンシング モードを設定します。ハードウェアモードでは、/etc/pve/ha/fence.cfgにフェンスデバイスの有効な設定が必要です。両方では、2つのモードがすべて使用されます。
ハードウェアは、どちらも実験的でWIPです。 - ha:shutdown_policy=<enum>です。
-
クラスタ全体のHA設定。
- shutdown_policy=<条件付き| フェイルオーバー | フリーズ | マイグレーション>(デフォルト = 条件付き)
-
ノードの電源オフまたは再起動時のHAサービスの処理ポリシーを記述します。Freezeは、シャットダウン時にノードに残っているサービスを常にフリーズします。フェイルオーバーは、シャットダウンしたノードがすぐに(1分未満で)復帰しない場合、サービスを凍結としてマークしないため、サービスは他のノードに回復されます。条件付きは、シャットダウンの種類に応じて自動的に選択されます。リブートまたはシャットダウンがトリガーされると、Migrateは実行中のサービスをすべて別のノードに移動しようとします。ノード上に実行中のサービスがなくなると、パワーオフプロセスが続行されます。ノードが再び起動した場合、少なくとも他のマイグレーション、リローアクション、リカバリが行われていなければ、サービスはパワーオフされたノードに戻されます。
- http_proxy:http://.*
-
ダウンロードに使用する外部 http プロキシを指定します (例: http://username:password@host:port/)
- キーボード:<da | de | de-ch | en-gb | en-us | es | fi | fr | fr-be | fr-ca | fr-ch | hu | is | it | ja | lt | mk | nl | no | pl | pt | pt-br | sl | sv | tr>.
-
vncサーバのデフォルトキーボードレイアウト。
- 言語:<ar | ca | da | de | en | es | eu | fa | fr | he | hr | it | ja | ka | kr | nb | nl | nn | pl | pt_BR | ru | sl | sv | tr | ukr | zh_CN | zh_TW>.
-
デフォルトのGUI言語。
- mac_prefix:<文字列>(デフォルト = BC:24:11)
-
仮想ゲストの自動生成 MAC アドレスのプレフィックス。デフォルトのBC:24:11は、MACアドレスブロック大(MA-L)のためにIEEEからProxmox Server Solutions GmbHに割り当てられた組織一意識別子(OUI)です。これはローカルネットワーク、つまり一般ユーザーから直接アクセスできないネットワーク(LANやNAT/マスカレードなど)で使用できます。
仮想ゲストのネットワークを(部分的に)共有する複数のクラスタを実行する場合は、デフォルトのMACプレフィックスを拡張するか、カスタムの(有効な)プレフィックスを生成して、MACの衝突の可能性を減らすことを強くお勧めします。たとえば、各クラスタのProxmox OUIに、1番目はBC:24:11:0、2番目はBC:24:11:1というように、個別の16進数を追加します。 また、VLANを使用するなどして、ゲストのネットワークを論理的に分離することもできます。
- max_workers:<整数> (1 - N)
-
ha-managerからのstopall VMやタスクのようなアクションで、(ノードあたり)最大何人のワーカーが起動するかを定義します。
- マイグレーションを使用します:[type=]<secure|insecure>[,network=<CIDR>]です。
-
クラスタ全体のマイグレーション設定
- ネットワーク=<CIDR
-
移行に使用する(サブ)ネットワークのCIDR。
- type=<insecure| secure>(デフォルト = secure)
-
マイグレーショントラフィックはデフォルトでSSHトンネルを使用して暗号化されます。安全で完全にプライベートなネットワークでは、パフォーマンスを上げるためにこれを無効にすることができます。
- migration_unsecure:<論理値
-
移行はデフォルトでSSHトンネルを使用して安全に行われます。安全なプライベートネットワークでは、マイグレーションを高速化するためにこれを無効にすることができます。非推奨。代わりにマイグレーションプロパティを使用してください!
- next-id:[lower=<整数>] [,upper=<整数>]。
-
フリーVMID自動選択プールの範囲を制御します。
- lower=<整数>(デフォルト = 100)
-
自由な next-id API 範囲の下限、包含境界。
- upper=<整数>(デフォルト = 1000000)
-
自由な next-id API 範囲の上限、排他的境界。
- を通知します:[fencing=<always|never>> [,package-updates=<auto|always|never>>] [,replication=<always|never>>] [,target-fencing=<TARGET>] [,target-package-updates=<TARGET>] [,target-replication=<TARGET>] となります。]
-
クラスタ全体の通知設定。
- フェンシング
-
UNUSED - 代わりにデータセンター通知設定を使用します。
- package-updates=<always| auto | never>(default = auto)
-
廃止されました:代わりにデータセンター通知設定を使用します。 毎日の更新ジョブが通知を送信する頻度を制御します:
-
有効なサブスクリプションを持つシステムについては、毎日自動更新されます。
-
新しい保留中の更新がある場合は、更新のたびに常に更新されます。
-
新しい保留中の更新の通知を送信することはありません。
-
- レプリケーション
-
UNUSED - 代わりにデータセンター通知設定を使用します。
- ターゲット・フェンシング=<ターゲット
-
UNUSED - 代わりにデータセンター通知設定を使用します。
- target-package-updates=<TARGET>を指定します。
-
UNUSED - 代わりにデータセンター通知設定を使用します。
- ターゲット-レプリケーション=<ターゲット
-
UNUSED - 代わりにデータセンター通知設定を使用します。
- 登録タグ:<tag>[;<tag>...].
-
設定および削除にSys.Modifyon/が必要なタグのリストです。ここで設定されたタグのうち、user-tag-accessにあるタグもSys.Modify が必要です。
- タグスタイル [case-sensitive=<1|0>] [,color-map=<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]][,ordering=<config|alphabetical>] [,shape=<enum>].
-
タグスタイルのオプション。
- case-sensitive=<boolean>(デフォルト = 0)
-
更新時の一意なタグのフィルタリングで、大文字小文字を区別してチェックするかどうかを制御します。
- color-map=<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]。
-
タグの手動カラーマッピング(セミコロン区切り)。
- ordering=<alphabetical| config>(デフォルト= アルファベット順)
-
ウェブインタフェースおよびAPIアップデートにおけるタグのソートを制御します。
- shape=<circle| dense | full | none>(デフォルト= circle)
-
fullはタグ全体を描画します。circleは背景色のある円のみを描画します。denseは小さな四角形のみを描画します(多くのタグがそれぞれのゲストに割り当てられている場合に便利です).noneはタグの表示を無効にします。
- u2fです:[appid=<APPID>] [,origin=<URL>] です。
-
u2f
- appid=<APPID>
-
U2F AppId URLのオーバーライド。デフォルトはオリジン。
- オリジン=<URL
-
U2F Originのオーバーライド。主に1つのURLを持つ1つのノードに便利です。
- user-tag-access:[user-allow=<enum>] [,user-allow-list=<tag>[;<tag>...]]。
-
ユーザー設定可能タグの特権オプション
- user-allow=<existing| free | list | none>(デフォルト = free)
-
ユーザが制御するリソース (ゲストなど) で設定または削除できるタグを制御します。Sys.Modify権限を持つユーザは、常に制限されません。
-
タグは使用できません。
-
user-allow-listのリストタグが使用可能です。
-
のような既存のリストも使えますが、すでにあるリソースのタグも使えます。
-
タグの制限はありません。
-
- user-allow-list=<タグ>[;<タグ>...]を指定します。
-
user-allow値listおよびexistingに対して、ユーザが設定および削除を許可されるタグのリスト(セミコロン区切り)。
- webauthn:[allow-subdomains=<1|0>] [,id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>] です。
-
webauthnの設定
- allow-subdomains=<boolean>(デフォルト = 1)
-
正確な URL ではなく、サブドメインのオリジンを許可するかどうか。
- id=<DOMAINNAME>
-
依拠当事者ID。プロトコル、ポート、場所を含まないドメイン名でなければなりません。これを変更すると、既存の認証情報が破壊されます。
- オリジン=<URL
-
サイトのオリジン。https://URL (またはhttp://localhost) でなければなりません。ウェブ・インターフェイスにアクセスするためにユーザーがブラウザに入力するアドレスが含まれていなければなりません。これを変更すると、既存の認証情報が壊れる可能性があります。
- rp=<RELYING_PARTY>です。
-
依拠当事者名。任意のテキスト識別子。これを変更すると、既存のクレデンシャルが壊れる可能性があります。
25.付録D:カレンダー・イベント
25.1.スケジュールフォーマット
Proxmox VEは非常に柔軟なスケジュール設定を持っています。
[詳しくはman 7 systemd.time を参照してください]
カレンダーイベントは1つの式で1つ以上の時点を参照するために使うことができます。
このようなカレンダーイベントは、次のような書式を使用します:
[平日] [[年-]月-日] [時:分[:秒]]です。
このフォーマットでは、ジョブを実行する日を設定することができます。 また、1つ以上の開始時間を設定することもできます。この情報を使って、毎日午後10時に実行するジョブを作成することができます:'月,火,水,木,金,22'と省略できます:ほとんどの合理的なスケジュールはこのように直感的に書くことができます。
|
|
時間は24時間表示です。 |
便利で短い設定を可能にするために、ゲストごとに1つ以上の繰り返し時間を設定できます。これらは、開始時刻そのものと開始時刻に繰り返し値の倍数を加えた時刻にレプリケーションが行われることを示します。午前8時にレプリケーションを開始し、午前9時まで15分ごとにレプリケーションを繰り返す場合、次のようになります:'8:00/15'
ここでは、時区切り (:) が使用されていない場合、値は分として解釈されることがわかります。このような区切りが使用された場合、左側の値は「時」を表し、右側の値は「分」を表します。 さらに、すべての可能な値にマッチさせるには* を使用します。
さらにアイデアを得るには、以下の例をご覧ください。
25.2.詳細仕様
- 平日
-
曜日は、sun、mon、tue、wed、thu、fri、sat のように省略された英語で指定します。複数の曜日をカンマ区切りで指定することもできます。開始日と終了日を「...」で区切って指定することで、日数の範囲を設定することもできます。これらの書式は混在させることができます。 省略された場合、'*'が仮定されます。
- タイムフォーマット
-
時刻の書式は、時間と分の区切りリストで構成されます。 時間と分は':' で区切られます。時」と「分」は、「日」と同じ書式で、リストや値の範囲を指定することができます。 最初に「時」を指定し、次に「分」を指定します。必要なければ時間は省略できます。この場合、時間の値は'*'とみなされます。 値の有効範囲は、時間が0~23、分が0~59です。
25.2.1.例:
特定の意味を持つ特別な値がいくつかあります:
| 価値 | 構文 |
|---|---|
ことこまかに |
*-*-* *:*:00 |
毎時 |
*-*-* *:00:00 |
デイリー |
*-*-* 00:00:00 |
ウィークリー |
月 *-*-* 00:00:00 |
毎月 |
*-*-01 00:00:00 |
毎年または毎年 |
*-01-01 00:00:00 |
クォータリー |
*-01,04,07,10-01 00:00:00 |
半年ごとまたは半期ごと |
*-01,07-01 00:00:00 |
| スケジュール文字列 | オルタナティブ | 意味 |
|---|---|---|
月、火、水、木、金 |
月・金 |
毎営業日0:00 |
土・日 |
日 |
週末のみ0:00 |
月、水、金 |
- |
月・水・金0:00のみ |
12:05 |
12:05 |
毎日午後12時5分 |
*/5 |
0/5 |
5分ごと |
10月30日(月 |
月、火、水 30/10 |
月・火・水 30分、40分、50分(毎正時後 |
月・金 8・17・22:0/15 |
- |
毎営業日、午前8時から午後6時までと午後10時から午後11時までの間の15分ごと |
12日(金)13:5/20 |
12,13日(金):5/20 |
金曜日12:05、12:25、12:45、13:05、13:25、13:45 |
12,14,16,18,20,22:5 |
12/2:5 |
毎日12:05から22:05まで2時間毎 |
* |
*/1 |
毎分(最小間隔) |
*-05 |
- |
毎月5日 |
土*-1.7 15:00 |
- |
毎月第一土曜日15:00 |
2015-10-21 |
- |
2015年10月21日 00:00 |
26.付録E: QEMU vCPUリスト
26.2.インテル CPU タイプ
-
ナヘレム:第1世代インテル・コア・プロセッサー
-
Nahelem-IBRS (v2): Spectre v1 保護の追加(+spec-ctrl)
-
Westmere:第1世代のインテル・コア・プロセッサー(Xeon E7-)。
-
Westmere-IBRS (v2): Spectre v1 プロテクションの追加(+spec-ctrl)
-
SandyBridge:第2世代インテル・コア・プロセッサー
-
SandyBridge-IBRS (v2): Spectre v1 プロテクションの追加(+spec-ctrl)
-
IvyBridge:第3世代インテル・コア・プロセッサー
-
IvyBridge-IBRS (v2): Spectre v1 保護の追加(+spec-ctrl)
-
Haswell:第4世代インテル・コア・プロセッサー
-
Haswell-noTSX (v2): TSX(-hle,-rtm) を無効にします。
-
Haswell-IBRS (v3): TSX の再追加、Spectre v1 保護の追加(+hle、+rtm、+spec-ctrl)
-
Haswell-noTSX-IBRS (v4): TSX(-hle,-rtm) を無効にします。
-
ブロードウェル:第5世代インテル・コア・プロセッサー
-
Skylake:第1世代Xeonスケーラブル・サーバー・プロセッサ
-
Skylake-IBRS (v2): Spectre v1プロテクションの追加、CLFLUSHOPTの無効化(+spec-ctrl,-clflushopt)
-
Skylake-noTSX-IBRS (v3): TSX(-hle,-rtm) を無効にします。
-
Skylake-v4:EPTスイッチングを追加(+vmx-eptp-switching)
-
Cascadelake:第2世代Xeonスケーラブル・プロセッサ
-
Cascadelake-v2: add arch_capabilities msr(+arch-capabilities,+rdctl-no,+ibrs-all,+skip-l1dfl-vmentry,+mds-no)
-
Cascadelake-v3: TSX(-hle,-rtm) を無効にします。
-
Cascadelake-v4: EPTスイッチングを追加(+vmx-eptp-switching)
-
Cascadelake-v5: XSAVESの追加(+xsaves,+vmx-xsaves)
-
Cooperlake:4ソケットおよび8ソケットサーバー用第3世代Xeonスケーラブル・プロセッサ
-
Cooperlake-v2: XSAVESの追加(+xsaves,+vmx-xsaves)
-
アイスレイク 第3世代Xeonスケーラブル・サーバ・プロセッサ
-
Icelake-v2: TSX(-hle,-rtm) を無効にします。
-
Icelake-v3: arch_capabilities msr(+arch-capabilities,+rdctl-no,+ibrs-all,+skip-l1dfl-vmentry,+mds-no,+pschange-mc-no,+taa-no) を追加。
-
Icelake-v4: 不足していたフラグを追加(+sha-ni,+avx512ifma,+rdpid,+fsrm,+vmx-rdseed-exit,+vmx-pml,+vmx-eptp-switching)
-
Icelake-v5: XSAVESの追加(+xsaves,+vmx-xsaves)
-
Icelake-v6: 「5レベルEPT」を追加(+vmx-page-walk-5)
-
SapphireRapids:第4世代Xeonスケーラブル・サーバ・プロセッサ
26.3.AMD CPU タイプ
-
Opteron_G3:K10
-
Opteron_G4:ブルドーザー
-
Opteron_G5:パイルドライバー
-
EPYC:Zenプロセッサの第1世代
-
EPYC-IBPB (v2): Spectre v1プロテクションを追加(+ibpb)
-
EPYC-v3: 不足していたフラグを追加(+perfctr-core,+clzero,+xsaveerptr,+xsaves)
-
EPYC-Rome:第2世代Zenプロセッサ
-
EPYC-Rome-v2: Spectre v2, v4プロテクションの追加(+ibrs,+amd-ssbd)
-
EPYC-Milan:第3世代のZenプロセッサ
-
EPYC-Milan-v2: 不足していたフラグを追加(+vaes,+vpclmulqdq,+stibp-always-on,+amd-psfd,+no-nested-data-bp,+lfence-always-serializing,+null-sel-clr-base)
27.付録 F: ファイアウォール・マクロの定義
|
アマンダ |
アマンダ・バックアップ |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
10080 |
|
パラム |
ティーシーピー |
10080 |
|
認証 |
認証(identd)トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
113 |
|
BGP |
ボーダー・ゲートウェイ・プロトコルのトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
179 |
|
ビットトレント |
BitTorrent 3.1 以前の BitTorrent トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
6881:6889 |
|
パラム |
udp |
6881 |
|
ビットトレント32 |
BitTorrent 3.2以降のBitTorrentトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
6881:6999 |
|
パラム |
udp |
6881 |
|
コンビニエンスストア |
同時バージョン システム pserver トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
2401 |
|
セフ |
Cephストレージクラスタトラフィック (Cephモニタ、OSD、MDSデーモン) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
6789 |
|
パラム |
ティーシーピー |
3300 |
|
パラム |
ティーシーピー |
6800:7300 |
|
シトリックス |
Citrix/ICAトラフィック(ICA、ICAブラウザ、CGP) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
1494 |
|
パラム |
udp |
1604 |
|
パラム |
ティーシーピー |
2598 |
|
ダエーピー |
デジタルオーディオアクセスプロトコルトラフィック(iTunes、Rythmboxデーモン) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
3689 |
|
パラム |
udp |
3689 |
|
DCC |
分散型チェックサム・クリアリングハウス・スパム・フィルタリング機構 |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
6277 |
|
DHCPfwd |
転送されたDHCPトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
67:68 |
67:68 |
|
ディーエイチシーピーブイ6 |
DHCPv6トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
546:547 |
546:547 |
|
DNS |
ドメインネームシステムのトラフィック(updおよびtcp) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
53 |
|
パラム |
ティーシーピー |
53 |
|
ディストック |
分散コンパイラサービス |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
3632 |
|
ファイル転送プロトコル |
ファイル転送プロトコル |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
21 |
|
指 |
フィンガープロトコル(RFC 742) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
79 |
|
グニューネット |
GNUnetセキュアなピアツーピアネットワーキングトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
2086 |
|
パラム |
udp |
2086 |
|
パラム |
ティーシーピー |
1080 |
|
パラム |
udp |
1080 |
|
GRE |
汎用ルーティング・カプセル化トンネリング・プロトコル |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
47 |
|
ギット |
Git 分散リビジョン管理トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
9418 |
|
HKP |
OpenPGP HTTP鍵サーバプロトコルトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
11371 |
|
HTTP |
ハイパーテキスト転送プロトコル(WWW) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
80 |
|
HTTPS |
SSL上のハイパーテキスト転送プロトコル(WWW) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
443 |
|
ICPV2 |
インターネット・キャッシュ・プロトコルV2(Squid)のトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
3130 |
|
アイシーキュー |
AOLインスタント・メッセンジャーのトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
5190 |
|
アイマップ |
インターネットメッセージアクセスプロトコル |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
143 |
|
アイマップス |
インターネット・メッセージ・アクセス・プロトコル・オーバーSSL |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
993 |
|
IPIP |
IPIPカプセレーション・トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
94 |
|
アイピーセック |
IPsecトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
500 |
500 |
パラム |
50 |
|
アイピーセカ |
IPsec認証(AH)トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
500 |
500 |
パラム |
51 |
|
IPsecnat |
IPsecトラフィックとNat-Traversal |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
500 |
|
パラム |
udp |
4500 |
|
パラム |
50 |
|
インターネットリレーチャット |
インターネット・リレー・チャットのトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
6667 |
|
ジェットダイレクト |
HP Jetdirectプリント |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
9100 |
|
L2TP |
レイヤー2トンネリングプロトコルのトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
1701 |
|
ライトウェイトディレクトリアクセスプロトコル |
ライトウェイトディレクトリアクセスプロトコルトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
389 |
|
LDAPS |
セキュアなLightweight Directory Access Protocolトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
636 |
|
MDNS |
マルチキャストDNS |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
5353 |
|
エムエスエヌピー |
マイクロソフト通知プロトコル |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
1863 |
|
エムエスエスキューエル |
マイクロソフト SQL サーバー |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
1433 |
|
メール |
メールトラフィック(SMTP、SMTPS、送信) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
25 |
|
パラム |
ティーシーピー |
465 |
|
パラム |
ティーシーピー |
587 |
|
ムニン |
ムニン・ネットワーク・リソース・モニタリング・トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
4949 |
|
MySQL |
MySQLサーバー |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
3306 |
|
エヌエヌティーピー |
NNTPトラフィック(ユースネット)。 |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
119 |
|
エヌエヌティーピーエス |
暗号化されたNNTPトラフィック(ユースネット) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
563 |
|
エヌティーピー |
ネットワークタイムプロトコル (ntpd) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
123 |
|
ネイバーディスカバリー |
IPv6ネイバー勧誘、ネイバー広告、ルーター広告 |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
アイシーエムピーブイシックス |
ルーター募集 |
|
パラム |
アイシーエムピーブイシックス |
ルーター広告 |
|
パラム |
アイシーエムピーブイシックス |
隣人募集 |
|
パラム |
アイシーエムピーブイシックス |
隣人広告 |
|
オープンさいたんパスファースト |
OSPFマルチキャストトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
89 |
|
オープンVPN |
OpenVPNトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
1194 |
|
主成分分析 |
シマンテックPCAnywere (tm) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
5632 |
|
パラム |
ティーシーピー |
5631 |
|
PMG |
Proxmox Mail Gatewayウェブインターフェース |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
8006 |
|
ポップスリー |
POP3トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
110 |
|
ポップスリー |
暗号化されたPOP3トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
995 |
|
ピーピーティーピー |
ポイント・ツー・ポイント・トンネル・プロトコル |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
47 |
||
パラム |
ティーシーピー |
1723 |
|
ピン |
ICMPエコーリクエスト |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
アイシーエムピー |
エコー要求 |
|
PostgreSQL |
PostgreSQLサーバー |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
5432 |
|
プリンター |
ラインプリンタープロトコル印刷 |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
515 |
|
アールディーピー |
マイクロソフトリモートデスクトッププロトコルトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
3389 |
|
リップ |
ルーティング情報プロトコル(双方向) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
520 |
|
総合資源開発センター |
BINDリモート管理プロトコル |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
953 |
|
カミソリ |
レイザーアンチスパムシステム |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
2703 |
|
Rdate |
リモート時刻検索(rdate) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
37 |
|
同期 |
Rsyncサーバー |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
873 |
|
サンエ |
SANEネットワーク・スキャン |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
6566 |
|
エスエムビー |
マイクロソフトSMBトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
135,445 |
|
パラム |
udp |
137:139 |
|
パラム |
udp |
1024:65535 |
137 |
パラム |
ティーシーピー |
135,139,445 |
|
SMBswat |
Sambaウェブ管理ツール |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
901 |
|
SMTP |
簡易メール転送プロトコル |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
25 |
|
エスエムティーピーエス |
暗号化メール転送プロトコル |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
465 |
|
SNMP |
簡易ネットワーク管理プロトコル |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
161:162 |
|
パラム |
ティーシーピー |
161 |
|
スパムド |
スパムアサシン SPAMD トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
783 |
|
SPICEproxy |
Proxmox VE SPICEによるプロキシトラフィックの表示 |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
3128 |
|
SSH |
安全なシェルトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
22 |
|
エスブイエヌ |
Subversion サーバー (svnserve) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
3690 |
|
シックスエックスエス |
SixXS IPv6の展開とトンネルブローカー |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
3874 |
|
パラム |
udp |
3740 |
|
パラム |
41 |
||
パラム |
udp |
5072,8374 |
|
イカ |
SquidのWebプロキシトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
3128 |
|
投稿 |
メール送信トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
587 |
|
シスログ |
Syslogプロトコル(RFC 5424)のトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
514 |
|
パラム |
ティーシーピー |
514 |
|
TFTP |
Trivial File Transfer Protocol トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
69 |
|
テルネット |
Telnetトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
23 |
|
テレネット |
Telnet over SSL |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
992 |
|
時間 |
RFC 868 タイムプロトコル |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
37 |
|
Trcrt |
トレースルート(30ホップまで)トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
udp |
33434:33524 |
|
パラム |
アイシーエムピー |
エコー要求 |
|
ブイエヌシー |
VNCディスプレイのVNCトラフィック0~99 |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
5900:5999 |
|
ブイエヌシーエル |
VncsサーバからVncviewerへのVNCトラフィック(リッスンモード |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
5500 |
|
ウェブ |
WWWトラフィック(HTTPおよびHTTPS) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
80 |
|
パラム |
ティーシーピー |
443 |
|
ウェブキャッシュ |
ウェブキャッシュ/プロキシトラフィック(ポート8080) |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
8080 |
|
ウェブミン |
ウェブミンのトラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
10000 |
|
フーイズ |
Whois(nicname、RFC 3912)トラフィック |
| アクション | プロト | ポート | スポーツ |
|---|---|---|---|
パラム |
ティーシーピー |
43 |
28.付録G:マークダウン入門
MarkdownはウェブライターのためのテキストからHTMLへの変換ツールです。Markdownを使えば、読みやすく、書きやすいプレーンテキスト形式を使って文章を書き、それを構造的に妥当なXHTML(またはHTML)に変換することができます。
- ジョン・グルーバー
Proxmox VEウェブインターフェースは、ノードおよび仮想ゲストノートのリッチテキストフォーマットをレンダリングするMarkdownの使用をサポートしています。
Proxmox VEは、テーブルやタスクリストのようなGFM(GitHub Flavoured Markdown)のほとんどの拡張機能でCommonMarkをサポートしています。
28.1.マークダウンの基本
ここでは基本的なことしか説明していませんので、例えばhttps://www.markdownguide.org/。
28.1.2.強調
強調したい場合は、*text*または_text_を使用してください。
太字、ヘビーウェイトのテキストには**text**または__text__を使用してください。
組み合わせも可能です:
"あなたはそれを組み合わせることができます
28.1.3.リンク
リンクの自動検出を使用することができます。例えば、https://forum.proxmox.com/、クリック可能なリンクに変換します。
例えば、リンクテキストをコントロールすることもできます:
では、[カッコ内がリンクテキストになります](https://forum.proxmox.com/)。
28.1.4.リスト
28.1.5.表
テーブルでは、パイプ記号|でカラムを区切り、-でテーブルのヘッダーと本文を区切ります。
| 左の列|右の列|いくつか|もっと|列。| 中央揃えも機能します:| 左のフー|右のフー|最初の|行|ここ|>center<|左のバー|右のバー|2番目の|行|ここ|12345|左のバズ|右のバズ|3番目の|行|ここ|テスト|左のザブ|右のザブ|4番目の|行|ここ|☁️☁️☁️|左のラヴ|右のラヴ|そして|最後の|ここ|終わり|||です。
列を空白できれいに揃える必要はありませんが、その方が表の編集が簡単になることに注意してください。
28.1.6.ブロッククォート
ブロック引用符は、プレーンテキストの電子メールと同様に、行の先頭に> を付けることで入力できます。
> Markdownは、プレーンテキストフォーマットの構文を持つ軽量のマークアップ言語で、 > > 2004年にJohn GruberとAaron Swartzによって作成されました。 >> Markdownは、readmeファイルのフォーマットや、オンラインディスカッションフォーラムでのメッセージの記述、 >> プレーンテキストエディタを使ったリッチテキストの作成によく使われます。
29.付録H: GNUフリー・ドキュメンテーション・ライセンス
バージョン1.3、2008年11月3日
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/> このライセンス文書の逐語的な複製と頒布は誰にでも許可されていますが、変更することは許可されていません。
本許諾書の目的は、マニュアルや教科書、あるいはその他の機能的で有用な 文書を、自由という意味で「自由」にすることです。つまり、商業的であれ非商業的であ ろうと、改変の有無に関わらず、誰もがそれを複製し再配布する実質的な自由 を保証することです。 第二に、本許諾書は、作者や出版者が自分たちの作品に 対する信用を得る方法を維持する一方で、他者による改変に対して責任を負 うとはみなされません。
このライセンスは一種の「コピーレフト」であり、この文書の派生物も同じ意味で自由でなければなりません。 これはGNU一般公衆ライセンス(GNU General Public License)を補完するもので、自由ソフトウェアのために設計されたコピーレフトのライセンスです。
なぜなら、自由ソフトウェアには自由な文書が必要だからです: 自由なプログラムには、ソフトウェアと同じ自由を提供するマニュアルが付属しているべきです。 しかし、本許諾書はソフトウェアのマニュアルに限定されるものではありません。題材や印刷された書籍として出版されるか否かに関わらず、あらゆるテキスト作品に利用することができます。 私たちは、この利用許諾契約書を、主に指導や参照を目的とした作品に推奨します。
本許諾書は、著作権者によって本許諾書の条項の下で頒布可能である旨の告知が 含まれた、あらゆる媒体のマニュアルやその他の作品に適用されます。 このような告知は、本許諾書に記載された条件の下で、その作品を使用するための、世界的な、期間無制限の、ロイヤリティフリーのライセンスを付与するものです。 以下の「文書」とは、そのようなマニュアルや作品を指します。 一般公衆はライセンシーであり、「あなた」として扱われます。 著作権法上の許可を必要とする方法で作品を複製、変更、頒布する場合、あなたはこのライセンスに同意するものとします。
本件文書の「改変版」とは、本件文書またはその一部をそのまま、あるいは改変を加えて、および/または他の言語に翻訳して複製した著作物を意味します。
二次的セクション(Secondary Section)」とは、その文書の出版者または著 者と、その文書全体の主題との関係(または関連事項)のみを扱い、その 文書全体の主題に直接含まれる可能性のあるものを含まない、名称の付 録または文書の前文セクションのことです。 (したがって、『文書』の一部が数学の教科書である場合、二次セクションでは数学について一切説明しないことができる)。 その関係とは、その主題や関連事項との歴史的な関係、あるいはそれらに関する法的、商業的、哲学的、倫理的、政治的な立場の問題である可能性があります。
変更不可セクション」とは、『文書』が本許諾書の下でリリースされたことを 示す告知において、そのタイトルが変更不可セクションであるとして指定され ている特定のセカンダリ・セクションのことです。 あるセクションが上記の「セカンダリ」の定義に当てはまらない場合、 そのセクションを「変更不可セクション」として指定することは認められません。 文書』には『変更不可セクション』がゼロであってもかまいません。 もし『文書』がいかなるInvariant Sectionも特定しない場合、それはInvariant Sectionが存在しないことを意味します。
表紙テキスト」とは、『文書』が本許諾書の下でリリースされることを示す告 知の中で、表紙テキストまたは裏表紙テキストとして列挙される特定の短い文 章のことです。 表表紙テキストは最大5語、裏表紙テキストは最大25語です。
透明な(Transparent)」『文書』のコピーとは、その仕様が一般公衆に利用可能な 形式で表現され、一般的なテキストエディタや(ピクセルで構成される画像については) 一般的なペイントプログラム、あるいは(図面については)広く利用可能な描画エディタを 用いて文書を直接修正するのに適しており、テキストフォーマッタへの入力や、 テキストフォーマッタへの入力に適した様々な形式への自動翻訳に適している、 機械可読なコピーを意味します。 そうでなければ「透過的」なファイルフォーマットで作成されたコピーで、そのマークアップが、あるいはマークアップがないことが、読者によるその後の改変を妨げたり、阻止したりするように配置されているものは、「透過的」ではありません。 画像フォーマットは、かなりの量のテキストに使われている場合、「透過的」ではありません。 透明」でないコピーは「不透明」と呼ばれます。
透過コピーに適したフォーマットの例としては、マークアップのないプレーンなASCII、Texinfo入力フォーマット、LaTeX入力フォーマット、一般に公開されているDTDを使ったSGMLやXML、人間が修正できるように設計された標準準拠のシンプルなHTML、PostScript、PDFなどがあります。 透過画像フォーマットの例としては、PNG、XCF、JPGがあります。 不透明なフォーマットには、プロプライエタリなワードプロセッサーによってのみ読み取りや編集が可能なプロプライエタリなフォーマット、DTDや処理ツールが一般に利用可能でないSGMLやXML、出力のみを目的として一部のワードプロセッサーによって生成される機械生成のHTML、PostScript、PDFなどがあります。
タイトルページ」とは、印刷された書籍の場合、タイトルページそれ自体と、 本許諾書がタイトルページに掲載することを要求する資料を読みやすく掲載 するために必要な次のページを加えたものを意味します。 そのようなタイトルページを持たない形式の著作物については、「タ イトルページ」とは、本文の冒頭に先立つ、著作物のタイトルが最も目立つ位置 にあるテキストを意味します。
発行者」とは、『文書』の複製物を公衆に頒布する個人または団体を意味します。
XYZと題された」セクションとは、そのタイトルが正確にXYZであるか、またはXYZを他 の言語で翻訳したテキストの後に括弧で括られたXYZを含む、『文書』の名前付きサブユニット を意味します。 (ここでXYZは、「謝辞」、「献辞」、「裏書」、「歴史」など、後述の特定のセクション名を表します)。 あなたが文書を変更するときに、そのようなセクションの「タイトルを保持する」ということは、この定義に従って、そのセクションが「XYZというタイトル」のままであることを意味します。
文書』には、本許諾書が『文書』に適用されることを示す告示の隣に、保証の否認が 含まれている場合があります。 これらの保証の否認は本許諾書に参考として含まれるものとみなされますが、それは保証の否認に関してのみです。
あなたは、本許諾書、著作権表示、および本許諾書が『文書』に適用され ることを示す使用許諾表示がすべての複製物に複製され、本許諾書の条件 にいかなる他の条件も付加されないことを条件として、営利・非営利を問わず、『文書』 をいかなる媒体にも複製・頒布することができます。 あなたは、あなたが作成または頒布した複製物の閲覧やさらなる複製を妨害または制 御する技術的手段を用いてはなりません。 ただし、あなたはコピーの対価として報酬を受け取ることができます。 あなたが十分な数の複製物を頒布する場合、あなたは第3項の条件にも従わなけれ ばなりません。
また、上記と同じ条件でコピーを貸与し、コピーを公に展示することもできます。
あなたが『文書』の印刷物(または一般的に印刷された表紙を持つ媒体の複製物)を100部以上発行し、『文書』のライセンス告知でカバー・テキストが要求されている場合、あなたはその複製物を、以下のカバー・テキストをすべて明瞭かつ読みやすく記載した表紙に封入しなければなりません:表表紙には「Front-Cover Texts」、裏表紙には「Back-Cover Texts」。 また、両表紙とも、あなたがこれらのコピーの発行者であることを明確かつ判読しやすいように表示してください。 表表紙は、タイトルの全単語を等しく目立たせ、見えるようにしなければなりません。 文書の題名を保持し、これらの条件を満たす限り、表紙に限定して変更を加えた複製は、その他の点ではそのままの複製として扱うことができます。
どちらの表紙にも必要な文章が多すぎて読みにくい場合は、最初に挙げたもの(無理のない範囲で)を実際の表紙に載せ、残りは隣のページに続けて載せます。
あなたが『文書』の『不透明な複製物』を100部以上発行または頒布する場合、 あなたは各『不透明な複製物』に機械可読の『透明な複製物』を同梱するか、または各 『不透明な複製物』に、一般的なネットワーク利用者が公衆標準ネットワーク・プロトコルを 用いて『文書』の完全な『透明な複製物』(追加的なものは含まれない)をダウンロードできるコンピ ュータ・ネットワーク上の場所を明記しなければなりません。 後者の選択肢を使用する場合、あなたは『不透明コピー』の配布を大量に開始する際に、この『透明コピー』が、あなたがその版の『不透明コピー』を(直接、あるいはあなたの代理人や小売業者を通じて)公衆に配布した最後の時点から少なくとも1年経過するまでは、記載された場所でこのようにアクセス可能であり続けることを保証するために、合理的に慎重な手段を講じなければなりません。
大量のコピーを再配布する前に、文書の作成者によく連絡し、最新版の 文書を提供する機会を与えることが要求されますが、必須ではありません。
あなたは、上記第2項および第3項の条件の下で、『文書』の改変された 版を複製し頒布することができます。ただし、改変された版をまさに本許諾書の下 でリリースし、改変された版が『文書』の役割を果たし、その結果、改変された版の 頒布と改変がそのコピーを所持する誰に対しても許諾されることを条件とします。 加えて、あなたは『改変されたバージョン』において以下のことを行わなけれ ばなりません:
-
タイトルページ(および表紙がある場合は表紙)には、『文書』のタイトルおよび旧版のタイトル(旧版がある場合は、『文書』の「歴史」の項に記載されているはずです)とは異なるタイトルを使用してください。 旧版の発行元が許可している場合は、旧版と同じタイトルを使用してもかまいません。
-
タイトル・ページには、改変された版における改変の著者に責任を負う一人以上の人物または団体を、その文書における主要な著者のうち少なくとも5人(主要な著者の数が5人未満の場合はその全員)とともに、著者として記載してください(ただし、彼らがこの要件からあなたを解放しない限り)。
-
タイトルページには、発行者として修正版の発行者名を明記してください。
-
文書のすべての著作権表示を保存してください。
-
他の著作権表示に隣接して、あなたの改変に対する適切な著作権表示を追加してください。
-
著作権表示の直後に、以下の補遺に示す形式で、本許諾書の条項の下で改変されたバージョンの利用を公衆に許可する利用許諾表示を含めてください。
-
そのライセンス通知には、『文書』のライセンス通知で指定されている、変更不可のセクションと必要なカバーテキストの完全なリストを保存してください。
-
本使用許諾の変更されていないコピーを同封してください。
-
History "と題されたセクションを保存し、そのタイトルを保存し、少なくともタイトルページに記載されている修正版のタイトル、年、新しい著者、出版社を記載した項目をそのセクションに追加してください。 もし『文書』に「歴史」と題されたセクションがない場合、『文書』のタイトルページに記載されているように、『文書』のタイトル、年、著者、出版社を記載したセクションを作成し、前文で述べたように、修正版について記述した項目を追加してください。
-
文書』の透過的な複製物への一般公開のために『文書』で指定された ネットワークの場所(もしあれば)を保存し、同様に『文書』の基になった旧版 のために『文書』で指定されたネットワークの場所も保存してください。 あなたは、『文書』自身より少なくとも4年前に出版された著作物、 あるいはその著作物が参照する版の原版発行者が許可した場合には、 ネットワークの場所を省略することができます。
-
謝辞」または「献辞」と題されたセクションについては、そのセクションのタイトルを保持し、そこに記載された各寄稿者の謝辞および/または献辞の内容および論調をすべて保持します。
-
文書のすべての不変セクションを、そのテキストもタイトルも変更せずに保存します。 セクション番号またはそれに相当するものは、セクションタイトルの一部とは見なされません。
-
裏書」と題されたセクションを削除してください。 このようなセクションは、修正版には含まれない場合があります。
-
既存のセクションのタイトルを「エンドースメント」に変更したり、不変のセクションのタイトルと矛盾させたりしないでください。
-
保証の免責事項を守ってください。
変更後のバージョン』に、セカンダリ・セクションとして適格であり、『文書』からコ ピーされた素材を含まない、新しいフロントマター・セクションや付録が含まれ る場合、あなたは任意でこれらのセクションの一部または全部を変更不可と指定するこ とができます。 そのためには、改変版のライセンス告知にある「変更不可のセクション」のリストに、それらのセクションのタイトルを追加してください。 これらのタイトルは、他のセクションのタイトルとは区別してください。
エンドースメント」というセクションを追加することができます。ただし、そのセクションには、さまざまな当事者による修正版のエンドースメント、たとえば、査読の記述や、ある標準の権威ある定義としてある組織によって承認されたという記述だけを含めることができます。
表紙テキストとして5語までの文章を、裏表紙テキストとして25語までの文章を、修正版の表紙テキストリストの最後に追加することができます。 表表紙テキストと裏表紙テキストは、それぞれ1つの主体によって(または主体による取り決めによって)1つの箇所のみ追加することができます。 もし『文書』に同じ表紙のカバーテキストが既に含まれており、それが以前にあなたによって追加されたものである場合、あるいはあなたが代行する同じ団体によって手配されたものである場合、あなたは別のカバーテキストを追加することはできません。
本許諾書によって、『文書』の著者および発行者は、その名前を宣伝のために使 用すること、あるいは改変された『文書』の支持を表明したり示唆したりするこ とを許可しないものとします。
あなたは、本許諾書の下でリリースされた他の文書と、改変されたバージョンについ て上記第4項で定義された条件の下で、『文書』を結合することができます。ただし、 その結合の中に、改変されていないすべてのオリジナル文書の変更不可部分をすべて含 み、それらをすべてあなたの結合著作物の変更不可部分としてライセンス告知に記載し、 かつそれらのすべての保証の否認を保持することを条件とします。
結合された著作物には本許諾書が一 部含まれていればよく、複数の同一の変更不可部分が一つのコピーで置き換えられても よい。 同じ名前で異なる内容の複数の変更不可部分が存在する場合、そのような部 分のタイトルの末尾に、そのセクションの原著作者または発行者の名前(既知 の場合)、あるいは一意の番号を括弧書きで追加して、そのようなセクションを一意にし てください。 結合著作物の使用許諾告知にある変更不可部分の一覧にあるセクションの タイトルにも、同じ調整を加えてください。
同様に、「謝辞」と題されたセクションと「献辞」と題されたセクションもすべて組み合わせてください。 裏書」と題されたセクションはすべて削除してください。
あなたは、『文書』と本許諾書に基づいてリリースされた他の文書から成る文 書集を作成し、様々な文書に含まれる本許諾書の個々のコピーを、その文 書集に含まれる単一のコピーに置き換えることができます。
あなたは、そのような文書集から一つの文書を抜き出し、本許諾書の下で個別に頒布することができます。ただし、抜き出した文書に本許諾書のコピーを挿入し、その文書の逐語的な複製に関する他のすべての点において本許諾書に従うことを条件とします。
文書』またはその派生物と、他の別個独立の文書または著作物とを、記憶媒体または頒布媒体の一巻の中に、あるいは一巻の上に編集したものは、その編集物から生じる著作権が、その編集物の利用者の法的権利を、個々の著作物が許容する範囲を超えて制限するために利用されない場合、「総体」と呼ばれる。 文書』が総体に含まれる場合、本許諾書は、総体に含まれる他の著作物のうち、それ自体が『文書』の派生物ではないものには適用されない。
第3項のカバーテキスト要件が当該文書のコピーに適用される場合、 当該文書が総体の2分の1未満であれば、当該文書のカバーテキストは、 総体内の当該文書を囲むカバー、または当該文書が電子形式である場合は カバーに相当する電子カバーに掲載することができる。 それ以外の場合は、総体全体を囲む印刷されたカバーに掲載しなければ ならない。
翻訳も一種の改変と見なされるため、あなたは第4項の条件に従って『文書』 の翻訳を頒布することができます。 変更不可条項を翻訳に置き換えるにはその著作権者から特別な許可を得 る必要がありますが、あなたはこれらの変更不可条項の原版に加えて、一部または全部の 変更不可条項の翻訳を含めることができます。 あなたは、本許諾書、『文書』中のすべてのライセンス表示、および保証の否認 の翻訳を含めることができます。ただし、本許諾書の英語原文、およびこれらの表示と否認 の原文も含めることが条件です。 翻訳と本許諾書の原版、または通知や免責事項の原版との間に不一致がある場合は、原版が優先されます。
文書のセクションのタイトルが「謝辞」、「献辞」、「歴史」である場合、そのタイトル(セクション1)を保持するための要件(セクション4)では、通常、実際のタイトルを変更する必要があります。
あなたは、本許諾書の下で明示的に規定されている場合を除き、『文書』を複製、変更、サブライセンス、または頒布することはできません。 それ以外の方法で複製、変更、サブライセンス、または頒布しようとする試みは無効であり、本使用許諾に基づくあなたの権利は自動的に消滅します。
ただし、あなたが本許諾書への違反をすべて止めた場合、特定の著作権者からのあなたのライセンスは、(a)著作権者が明示的かつ最終的にあなたのライセンスを終了させない限り、またそれまでは暫定的に、(b)著作権者が違反の停止後60日以前に何らかの合理的な手段であなたに違反を通知しなかった場合は、永久的に復活します。
さらに、著作権者が何らかの合理的な手段であなたに違反を通知し、あなたがその著作権者から本許諾書に対する違反の通知を(いかなる作品についても)初めて受け取り、あなたがその通知を受け取ってから30日以前に違反を是正した場合、特定の著作権者からのあなたのライセンスは永久に復活します。
本節に基づくあなたの権利の終了は、本許諾書に基づいてあなたから複製物や権利を受領した当事者のライセンスを終了させるものではありません。 あなたの権利が終了し、恒久的に復活しない場合、同じ資料の一部または全部の複製物を受け取ったとしても、それを使用する権利はあなたに与えられません。
フリーソフトウェアファウンデーションは、GNU自由文書利用許諾書の新しい改訂 版を随時発表することができます。 そのような新バージョンは、現在のバージョンと精神的には似ていますが、新たな問題や懸念に対処するために細部において異なるかもしれません。 http://www.gnu.org/copyleft/ をご覧ください。
本許諾書の各バージョンには、識別可能なバージョン番号が付されています。 文書』において、本許諾書の特定の番号の付いたバージョン「またはそれ以降のバージョ ン」が適用されると指定されている場合、あなたはその指定されたバージョンか、フリーソ フトウェア財団によって(草案としてではなく)発行されたそれ以降のバージョンのいず れかの条項と条件に従うことができます。 文書』に本許諾書のバージョン番号が明記されていない場合、あなたはフリーソフ トウェア財団によって(草案としてではなく)公表されたどのバージョンでも選ぶこ とができます。 文書』において、代理人が本許諾書の将来のどの版を使用できるかを決定で きると指定されている場合、その代理人がある版を受諾すると公言することで、あなたは 『文書』においてその版を選択することが永久に許可されることになります。
「大規模多作者コラボレーション・サイト」(あるいは「MMCサイト」)とは、著作権で保護される作品を公開し、誰でもそれらの作品を編集することができる著名な設備を提供するワールド・ワイド・ウェブ・サーバを意味します。 誰でも編集できる公開ウィキは、そのようなサーバの一例です。 MMCサイトに含まれる「大規模複数著者の共同作業」(Massive Multiauthor Collaboration)(あるいは「MMC」)とは、このようにしてMMCサイトで公表される、著作権で保護される著作物のあらゆる集合を意味します。
「CC-BY-SA」とは、カリフォルニア州サンフランシスコに主たる事業所を置く非営利法人であるクリエイティブ・コモンズ・コーポレーション(Creative Commons Corporation)が発行するクリエイティブ・コモンズ表示-継承3.0ライセンス、および同団体が発行する同ライセンスの将来のコピーレフト版を意味します。
「組込」とは、文書の全部または一部を他の文書の一部として発行または再出版することを意味します。
MMCは、それが本許諾書の下でライセンスされ、かつ、本許諾書の下で本MMC以外のどこかで最初に公表され、その後にそのMMCに全部または一部が組み込まれたすべての作品が、(1)カバーテキストや不変部分がなく、(2)こうして2008年11月1日より前に組み込まれた場合、「再ライセンスの対象」となります。
MMCサイトの運営者は、2009年8月1日以前であればいつでも、CC-BY-SAのもと、同サイトに含まれるMMCを再公開することができます。














































