Proxmox Virtual Environment(Proxmox VE, PVE)
Proxmox VEについて、最近の僕の知見考えを書くところ
Proxmoxの仕組み
公式Docs
https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_introduction
QEMU
kvm
https://www.google.com/search?client=safari&rls=en&q=kvm&ie=UTF-8&oe=UTF-8
ここら辺がキーワードっぽい
正直全くわからないけどいい感じによしなにやってくれてるらしい
Proxmox、VMのCPUTypeについて

CPUの設定をいじっているとCPUTypeを選べることに気がついた
(画面に写っているものだけで全種類の1/8くらい)
ベストプラクティスを調べてみた。
公式docsをガバ翻訳でまとめると、、、
QEMUは486から最新のXeonプロセッサまで様々なCPUタイプをエミュレートできます。新しい世代のプロセッサは新機能を追加し、マイクロコードのアップデートでバグやセキュリティ修正が行われます。通常、VMのCPUタイプはホストシステムのCPUに近いものを選ぶと、ホストCPUの機能がVMで利用可能になります。完全一致を望むなら、CPUタイプを「host」に設定します。
ただし、異なるホスト間でのライブマイグレーションでは、VMが異なるCPUタイプやマイクロコードバージョンのシステムに移動する可能性があり、CPUフラグが不足するとQEMUプロセスが停止します。このため、QEMUには独自の仮想CPUタイプもあります。デフォルトの「kvm64」はほぼ全てのx86_64ホストCPUで動作し、UIデフォルトの「x86-64-v2-AES」はWestmere以降のIntel CPUや第4世代以降のAMD Opteronを必要とします。
要約:
ライブマイグレーションを気にせず、同じCPUとマイクロコードバージョンのホストがある場合は、「host」を選ぶと最大のパフォーマンスを得られます。
ライブマイグレーションとセキュリティを重視し、Intel CPUまたはAMD CPUのみの場合は、クラスタ内の最も低い世代のCPUモデルを選びます。
セキュリティを気にせず、Intel/AMD混在クラスタの場合は、互換性のある最も低い仮想QEMU CPUタイプを選びます。
注意:IntelとAMDホストCPU間のライブマイグレーションは保証されていません。
詳細はQEMUで定義されているAMDおよびIntelのCPUタイプリストを参照してください。
らしいです。
しかし、フォーラムやユーザーコミュニティでの経験談が示すように、ベストプラクティスはベストではない結果が得られることもあるようです。
テストはベストプラクティスに勝る。
真に最適な設定を見つけるためには、独自のテストと評価が不可欠です。
参考
forum
https://forum.proxmox.com/threads/set-cpu-type-to-host-for-a-windows-vm-as-a-best-practice.136059/
公式docs
❌ Unsupported block (column_list)SCSIコントローラー(スカシーコントローラー)
どのscsiコントローラーが良いのか調べてみた
結論
何も考えずVirtIO SCSI singleを使う

SCSIコントローラの種類
- 特徴: Proxmoxのデフォルト設定で使用されるコントローラです。互換性が広く、多くのオペレーティングシステムでサポートされています。
- 適用シナリオ: 互換性が重要な場合や、特別なパフォーマンス要件がない場合に使用されます。
- 特徴: 安定したパフォーマンスと広範な互換性を提供する古典的なSCSIコントローラです。
- 適用シナリオ: レガシーシステムや広範な互換性が必要な場合に適しています。
- 特徴: もう一つの古典的なSCSIコントローラで、LSI 53C895Aに似ていますが、やや古いモデルです。
- 適用シナリオ: 特定のハードウェア互換性やレガシーサポートが必要な場合に使用されます。
- 特徴: 高性能なRAIDコントローラで、SAS(Serial Attached SCSI)デバイスをサポートします。ハードウェアRAID機能を提供します。
- 適用シナリオ: 高性能なストレージソリューションが必要な場合や、RAID構成が求められる場合に使用されます。
- 特徴: VirtIOベースのSCSIコントローラで、仮想化に特化しており、高速なパフォーマンスを提供します。
- 適用シナリオ: 最新のLinuxカーネルやVirtIOドライバをサポートするWindowsで使用すると、最も高いパフォーマンスを実現します。
- 特徴: 単一のIOスレッドを使用するVirtIOベースのSCSIコントローラです。IOスレッドを有効にすることで、メインスレッドの負荷を軽減します。
- 適用シナリオ: ディスクIOが多い環境で、パフォーマンス向上を図る場合に有効です。特にSSDを使用する場合に効果的です。
- 特徴: VMware互換の仮想SCSIコントローラで、特定のVMware環境からの移行や互換性を提供します。
- 適用シナリオ: VMware環境からProxmoxへの移行をスムーズに行いたい場合に使用されます。
各コントローラの選択基準
なぜVirtIO SCSI singleがいいのか
参考
forum
https://forum.proxmox.com/threads/proxmox-7-3-3-default-scsi-controller.120134/
Proxmox BIOSについて

結論
SeaBIOS一択です!
比較
SeaBIOS
OVMF (UEFI)
BIOSよりもUEFIが優っている点
- 大容量ディスクのサポート: UEFIはGUIDパーティションテーブル (GPT) をサポートしており、2TBを超える大容量ディスクの使用が可能です。これはMBR(マスターブートレコード)と比較して大きな利点です。
- セキュリティの向上: セキュアブート機能を使用することで、システムのブートプロセス中に不正なソフトウェアが実行されるのを防ぎます。これにより、マルウェアからの保護が強化されます。
- 高速ブート: UEFIはBIOSよりも高速なブートプロセスを提供します。UEFIブートマネージャーは、直接ブートローダーを起動するため、ブート時間が短縮されます。
- 複数のブートオプション: UEFIは、複数のOSブートエントリを管理できるため、マルチブート環境の設定が容易です。
- 最新技術の利用: UEFIは新しいハードウェア技術(例:NVMeドライブ、最新のグラフィックカードなど)をサポートしており、これらのデバイスを最大限に活用できます。
- モジュラーデザイン: UEFIはモジュラーデザインを採用しており、機能を追加したり、更新したりすることが容易です。これにより、将来的な機能拡張が可能です。
UEFIを選択するシナリオ
僕の意見
最新のオペレーティングシステムを使用して最新のセキュリティ機能や大容量ストレージのサポートが必要ではない場合、UEFIではなくBIOSを使用した方が良いと思います
なぜなら、EFIを管理しなくても良いからである
BIOSを使用するメリット
- 管理が容易: BIOSは設定がシンプルで、UEFIに比べて管理が容易です。特に小規模な環境や、複雑な設定が不要な場合には、BIOSを使用する方が手間がかかりません。
- 広範な互換性: 多くの古いオペレーティングシステムやアプリケーションは、BIOSモードでの動作を前提に設計されています。そのため、古いシステムや互換性の問題が発生しやすい環境ではBIOSが有利です。
- 既存のセットアップを維持: 既にBIOSを使用している環境では、UEFIに移行することで新たな学習コストや設定変更が必要になるため、現状のままBIOSを使用する方が効率的です。
- トラブルシューティングが簡単: BIOSは長い歴史があり、多くのトラブルシューティング手法が確立されています。これに対し、UEFIは新しい技術のため、特定の問題に対する解決策を見つけるのが難しい場合があります。
まとめ
Proxmox VEのような仮想化環境では、使用するオペレーティングシステムや特定の要件に基づいてBIOSかUEFIを選択することが重要です。最新のセキュリティ機能や大容量ストレージのサポートが不要で、管理の簡便さや既存インフラとの互換性が重視される場合、BIOSを使用するのが適切です。
このように、要件や環境に応じて適切なファームウェアを選択することで、システムの管理を最適化することができます。
Proxmox lxcメモリ?スワップ?違い
コンテナが物理メモリを使い果たした際に、ディスク上のスワップ領域を利用する機能
システムの安定性を保つためには有用な機能らしい
例
物理メモリ512,swap1024

物理メモリ512,swap0

僕調べ()ではswapはあった方が良い
参考
https://beyondjapan.com/blog/2022/01/mame_swap/← Go home