内容をスキップ
ktcsp.net
  • ホーム
  • ドキュメント拡大
    • 仮想基盤の構築拡大
      • 仮想基盤について
      • HCI仮想基盤(XCP-ng+XOSTOR)
      • HCI仮想基盤(ProxmoxVE+Ceph)
    • サーバーの構築拡大
      • 基本サーバー(Rocky Linux)
      • Mailサーバー(Postfix/Dovecot)
      • Webサーバー(Apache)
      • リバースプロキシサーバー(Nginx)
      • 内向DNSサーバー(Dnsmasq)
      • Backupサーバー(Storware)
      • 監視サーバー(Zabbix)
    • ホームページの構築拡大
      • WordPressの導入と設定
      • ホームページの作成(Kadence)
      • ドキュメントページの作成(BetterDocs)
      • ギャラリーページの作成(NextGen Gallery)
      • 問い合わせページの作成(WPForms)
    • オンラインストレージの構築拡大
      • Nextcloudの導入と設定
  • ギャラリー拡大
    • ヨーロッパ拡大
      • イタリア
      • スペイン
      • ポルトガル
      • ギリシャ
      • フランス
      • イギリス
    • アジア拡大
      • 中国
      • 日本
    • その他拡大
      • オーストラリア
      • ハワイ
  • お知らせ
  • お問い合わせ
ktcsp.net

仮想基盤の構築

  • 仮想基盤について
    • まずは自己紹介から
    • システム環境について
    • HA仮想環境について
  • HCI仮想基盤(XCP-ng+XOSTOR)
    • XCP-ngの導入
    • Xen Orchestraの導入設定
    • XCP-ngの環境設定
    • HCI仮想環境の構築
    • 仮想マシンの操作方法
  • HCI仮想基盤(ProxmoxVE+Ceph)
    • ProxmoxVEの導入設定
    • クラスタ環境の構築
    • HCI仮想環境の構築
    • 仮想マシン・コンテナの操作方法

サーバーの構築

  • 基本サーバー(Rocky Linux)
    • 準備中
  • Mailサーバー(Postfix/Dovecot)
    • 準備中
  • Webサーバー(Apache)
    • 準備中
  • リバースプロキシサーバー(Nginx)
    • 準備中
  • 内向DNSサーバー(Dnsmasq)
    • 準備中
  • NFSサーバー
    • 準備中
  • Backupサーバー(Storware)
    • 準備中
  • 監視サーバー(Zabbix)
    • 準備中

ホームページの構築

  • WordPressの導入と設定
    • 準備中
  • ホームページの作成(Kadence)
    • 準備中
  • ドキュメントページの作成(BetterDocs)
    • 準備中
  • ギャラリーページの作成(NextGen Gallery)
    • 準備中
  • 問い合わせページの作成(WPForms)
    • 準備中

オンラインストレージの構築

  • Nextcloudの導入と設定
    • 準備中
View Categories
  • ドキュメント
  • 仮想基盤の構築
  • HCI仮想基盤(ProxmoxVE+Ceph)

ProxmoxVEの導入設定

当ページでは、ホストにProxmoxVE(PVE)を導入・設定する手順を紹介してゆきます。

 

1. システム構成要件 #

スペックは高いに越したことはないですが、予算も考慮した必要十分なシステム構成を見つける必要があります。ProxmoxVE公式のシステム要件はあまりにも低すぎてHCI仮想環境に必要な構成を導き出すのは難しいと思いますので、当方独自のサイジング方法と構成例を紹介させてもらいます。

 

1)サイジング方法 #

リソース公式システム要件
(推奨要件)
HCI仮想環境に必要なシステム構成
(当方独自のサイジング方法)
ホストの設置台数–3台以上かつ奇数台の設置が推奨(*1)
CPU(*2)64-bit x86 CPU
Intel VT/AMD-V
①Hyper-Threadingに対応していないCPUの場合
  1VM当りのvCPU数 x 同時稼働VM数(*4)÷(ホスト台数 – 1)(*5)
②Hyper-Threadingに対応しているCPUの場合
  1VM当りのvCPU数 ÷ 2 x 同時稼働VM数(*4)÷(ホスト台数 – 1)(*5)
メモリ(*3)2GB以上推奨要件+1VM当りの容量 x 同時稼働VM数(*4)÷(ホスト台数 – 1)(*5)
プライマリDISK8GB以上最低32GB以上できれば64GB以上(*6)
セカンダリDISK(*7)–Ceph RBD用:1VM当りの容量 x 最大保管VM数(*8)x 複製数(*9)÷ ホスト台数 ÷ 0.93(*10)
+
Ceph FS用: OSインストール用ISOファイルの保管に必要な容量 ÷ ホスト台数 ÷ 0.93(*10)
NIC(*11)1Gbps以上速度:最低1Gbps(Cephクラスタは10Gbps以上が推奨)
枚数:最低2枚(4枚が推奨)
  • ProxmoxVE+Cephではホスト間のクォーラム(多数決)により異常のあるホストを隔離(フェンシング)することでシステムの正常稼働(高可用性)を担保しているのですが、偶数台の場合、ネットワーク障害によっては多数決が効かずスプリットブレインを起こしてシステムの停止やデータの損失を招く危険性があるため、奇数台のホストの設置が強く推奨されています。なお、同スペックのホストを追加して奇数台にせずとも、QDeviceのような軽量ホストをタイブレーカーとして1台追加することで上記のリスクを回避することもできます。
  • HCI仮想環境のサイジングでは、CPUのオーバーコミットは考慮していません。
  • HCI仮想環境のサイジングでは、メモリのバルーニングは考慮していません。
  • 同時に稼働させる可能性のあるVMの最大数を指定します。
  • 1台故障しても残りのホストで全てのVMがカバーできるよう、1台少ない台数で割ります。
  • 公式の推奨要件(8GB)では流石に低すぎると感じたため、かなり余裕を持たせました。
  • HCI仮想環境では、共有ストレージ(Ceph)専用のセカンダリDISKが必須ですが、物理DISKの区画を分けて論理的に構成することも可能なため、読み書き速度の低下を許容できるのであれば、必ずしも物理DISKを増設する必要はありません。
  • 稼働/非稼働に関わらず共有ストレージに保管しておきたいVMの最大数を指定します。一時的にVMをコピーする際もDISK容量は消費するため最大数には余裕を持たせた方が良いです。
  • HCI環境構築時に設定する予定のデータのレプリケーション数(1~3)を指定します。
    なお、レプリケーション数=1はデータを複製しないという意味になるためお勧めしません。
  • 物理DISKの区画を分けて論理的なセカンダリDISKとする場合は適用する必要はありません。同係数は、実際に必要となる容量から物理DISKのカタログスペック容量(250GB/500GB/1TB等)を概算で算出するための係数となります。
  • テスト環境であれば1枚の物理NICでも構築は可能ですが、Cephはネットワーク依存が強いため、本番環境では「Cephクラスタ専用NICの追加」が必須とされています。推奨枚数は4枚(PVEアクセス、PVEクラスタ、Cephアクセス、Cephクラスタ)ですが、小規模環境であれば2枚(PVE+Cephアクセス、Cephクラスタ)でも稼働させることは可能です。なお、Cephクラスタ専用ネットワークはルーター不要のため、HUBを用意するだけでOKです。

 

2)構成例 #

当方のHCI仮想環境で稼働しているホストのシステム構成を紹介させてもらいます。

ホスト名機種CPURAM物理DISK(500GB HDD)NIC1NIC2
論理DISK1論理DISK2
pve01.ktcsp.localThinCentreM73Corei5-4570T16GB64GB401GB192.168.1.10110.0.0.1
pve02.ktcsp.localThinCentreM73Corei5-4570T16GB64GBD401GB192.168.1.10210.0.0.2
pve03.ktcsp.localThinCentreM73Corei5-4570T16GB64GB401GB192.168.1.10310.0.0.3

サーバー専用機ではなく省スペースパソコンを利用しているため、CPUは2コア/4スレッド(Hyper-Threading対応)で増設不可、メモリーは最大16GBまで、追加DISKやNICの内蔵も不可とチープな環境ですが、HCIの構成要件を満たすため、物理DISKのパーティションを切って論理的なセカンダリDISKを追加し、USB接続のセカンダリNICを追加しています。なお、当方では自宅で眠っていたHDDを勿体なさから再利用しましたが、SSDが用意できるのであればSSDにした方が良いと思います。

 

3)その他注意点 #

以下、セカンダリDISK/セカンダリNIC増設時における注意点です。

  • 増設時にDSIK名(sdx)やNIC名(nicx)が入れ替わることがあります。
  • すべてのホストのNIC名(nicx)は完全に一致している必要があります。

DISK名について
DISK名はBIOSの認識順で決まるため、PVE導入後に増設しても同じ結果となり後から変えることもできませんが、PVEはUUIDでDISKを識別するため支障はありません。

NIC名について
NIC名もBIOSの認識順で決まりますが、セカンダリNIC増設前にPVEを導入すればオンボードNICを「nic0」に固定することができます。また、PVE導入後でもpve-network-interface-pinningツールを使って後からCLIでNIC名を変更することもできます。

 

2. PVEの導入 #

それでは早速ホストへのProxmoxVE(PVE)の導入を進めてゆきます。

 

1)インストール用メディアの作成 #

まずは、インストール用メディア(USBメモリ)を作成します。

ProxmoxVEの公式ダウンロードサイトから最新版のISOファイルをダウンロードします。

ダウンロードしたISOファイルをRufusなどでUSBに書き込み、起動用USBメモリを作成します。
注)DDイメージモードでの書き込みが適用されますがそのまま進めて問題ありません。

2)インストール #

作成したインストール用メディアを使ってすべてのホストにPVEの導入を行ってゆきます。

起動用USBメモリから起動し、インストール画面が表示されたら、Enterキーを押します。

エンドユーザーライセンス許諾(EULA)に同意します。

プルダウンからPVEを導入する物理DISKを選択します。(注)
> セカンダリDISKを論理的に構成する場合は、「Options」ボタンをクリックします。

プライマリDISK名が「sda」であるとは限りません。
DISK情報などを元に正しいプライマリDISK(sda/sdb…)を選択する必要があります。

プライマリDISKのサイズを縮小し、論理的なセカンダリDISKの領域を確保します。(注)
※あくまでも例ですが、以下ではフルで32GBのサイズを16GBに減らしています。

確保した領域に論理的なセカンダリDISKを構成する手順は後述させてもらいます。

Diskの設定が完了したら「Next」ボタンをクリックして次の設定に進みます。

国名を選択すると自動的にタイムゾーンとキーボード配列が反映されます。
>「Next」ボタンをクリックして次の設定に進みます。

rootパスワードとメールアドレスを設定し、「Next」ボタンをクリックします。

ネットワーク関連情報を設定して、「Next」ボタンをクリックします。

ネットワーク関連情報
Management Interface:プルダウンからプライマリNICを指定します
Hostname(FQDN):ホスト名をFQDN形式で指定します
IP address(CIDR):固定IPアドレスをCIDR形式で指定します
Gateway:デフォルトゲートウェイ(ルーターのIPアドレス)を指定します
DNS Server:DNS参照アドレス(ルーターのIPアドレス)を指定します

設定した内容を確認し、問題なければ「Install」ボタンをクリックします。
注)修正が必要な場合は、「Previous」ボタンで戻って修正します。

導入が完了するまで待機します。

インストール成功画面が表示されれば導入は完了です。
> USBメモリを取り外し「Reboot」ボタンをクリックして再起動します。(注)

上記の画面は5秒しか表示されず、すぐに自動的に再起動されてしまいます。USBメモリから再起動してしまった場合は、USBメモリを取り外した上で起動し直して下さい。

再起動後は以下のコンソール画面が表示されますので、rootでホストにログインします。

起動に失敗しているサービスがないか念のため確認します。

# systemctl --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
0 loaded units listed. ← 起動に失敗しているサービスがないことを確認

NTPサーバーを自国内で公開されているサーバーに変更します。

# vim.tiny /etc/chrony/chrony.conf  ← chronyの設定編集(参)
------------------------------------------------------------------------
# Use Debian vendor zone.
#pool 2.debian.pool.ntp.org iburst ← コメントアウト
pool ntp.nict.jp iburst ← 追加
pool ntp.jst.mfeed.ad.jp iburst ← 追加
------------------------------------------------------------------------
# systemctl restart chrony ← chronyの再起動

DebianベースのPVEで設定ファイルを編集する際、viコマンドで編集しようとすると矢印キーやBackSpaceキーが効かなくなるため、vim.tinyまたはnanoコマンドを利用します。

 

3. PVEの初期設定 #

ここからはProxmoxVEの初期設定を各ホストで行ってゆきます。

 

1)管理用ブラウザへログイン #

初期設定はすべて管理用ブラウザにログインして行います。

ポート番号(8006)を指定してIPアドレスでホストにアクセスします。SSL対応されていないため警告画面が表示されますが、そのまま「詳細設定」ボタンをクリックします。

最下段の「xxx.xxx.xxx.xxx にアクセスする(安全ではありません)」をクリックします。

ログイン画面が表示されたらまずは言語の変更を行います。

管理者名とパスワードを入力 > ユーザー名を保存にチェック >「ログイン」をクリックします。

サブスクリプションの警告ダイアログが表示されますが、そのまま「OK」をクリックします。

管理画面が表示されたことを確認します。

 

2)サブスクリプションの変更 #

導入直後はEnterprise(有償)版のリポジトリが設定されており、このままではアップデートもできないため、無償版のリポジトリに変更します。

左メニューより「ホスト名」>「アップデート配下のリポジトリ」を選択します。
> PVEとCephで有効なサブスクリプションがないと警告が出ていることを確認します。
> PVEとCephのEnterpriseリポジトリが有効(✓)になっていることを確認します。
> 有効中のEnterpriseリポジトリをそれぞれ選択 し、「無効」ボタンをクリックします。

有効なリポジトリがないというエラーが出ていることを確認します。
> Enterpriseリポジトリが無効(-)になったことを確認し、「追加」ボタンをクリックします。

サブスクリプションの警告ダイアログが表示されますが、そのまま「OK」をクリックします。

プルダウンから「No-subscription」を選択し、「 追加」をクイックします。

PVEの無償リポジトリが追加されたことを確認します。
> 再度「追加」ボタンをクリックします。

サブスクリプションの警告ダイアログが表示されますが、そのまま「OK」をクリックします。

プルダウンから「Ceph リリース名 No-subscription」を選択し、「追加」をクリックします。

Cephの無償リポジトリが追加されたことを確認します。(注)

画面上部に「サブスクリプションなしリポジトリを本番環境で使用することはお勧めできません」という警告は出続けますが、エラーではないのでこちらは無視して下さい。

 

3)パッケージのアップデート #

ProxmoxVEは Debian OSがベースとなっているため、再表示ボタンでアップデート可能なパッケージのリストを更新(apt updateを実行)し、アップグレードボタン で実際にパッケージをアップデート(apt upgradeを実行)する流れとなります。

左メニューより「ホスト名」>「アップデート」を選択します。
> アップデート可能なパッケージリストを更新するため「再表示」ボタンをクリックします。

サブスクリプションの警告ダイアログが表示されますが、そのまま「OK」をクリックします。

タスクビューアが表示されますので「TASK OK」と表示されたらビューアを「X閉じ」します。

パッケージリストが更新されたら、「アップグレード」ボタンをクリックします。

コンソール画面が表示され、継続するか聞いてきますので「Y」で応答します。

アップグレードが完了するまで画面は閉じず待機します。(注)

完了したらコマンド入力が可能になりますので、 rebootコマンドで再起動します。(注)

Please consider rebooting・・・と表示されていなければ再起動は不要ですので、exitコマンドでログアウトしそのままコンソール画面を「X閉じ」してください。

再起動が始まるとコンソールは接続不可となるため同画面は「X閉じ」します。

再起動後、キーボードの「F5」キーを押してブラウザの表示を更新します。
> ProxmoxVEのバージョン(リビジョン)が上がっていることを確認します。
> パッケージリストに何も表示されていないことを確認します。

 

4)セカンダリNICの有効化 #

データ同期専用(Ceph専用)のセカンダリNICが機能するよう設定を行います。
具体的には、セカンダリNICの専用ブリッジを構成して同NICを有効化します。

左メニューより「ホスト名」>「システム配下のネットワーク」を選択します。
> プライマリNIC(nic0)と専用ブリッジ(vmbr0)が稼働中であることを確認します。
> セカンダリNIC(nic1)が非稼働でブリッジも構成されていないことを確認します。(注)

ProxmoxVEを導入した後にセカンダリNICを増設していた場合、セカンダリNIC名は「nicx」ではなく「enx+MACアドレス」と表記されます。

左上の「作成」ボタンをクリックし、プルダウンから「Linux Bridge」を選択します。

作成画面にて必要情報を入力し、「作成」をクリックします。

▼必要情報
名前:必要に応じてブリッジ名を変更します(デフォルト:vmbr1)
IPv4/CDIR:データ同期専用のIPアドレスをCIDR形式で指定します
ブリッジポート:セカンダリNIC名を指定します
ゲートウェイ:セカンダリNICはHUBのみで繋がっているため指定しません

セカンダリNICの専用ブリッジ(vmbr1)が追加されたことを確認します。
> セカンダリNICとともにまだ非稼働であることを確認します。
> 上部の「設定を適用」ボタンをクリックします。

確認ダイアログが表示されますので、「はい」をクリックします。

セカンダリNICと専用ブリッジが稼働中(はい)になったことを確認します。

セカンダリNICが繋がっているHUBでリンクアップ(緑点灯)していることも確認します。

ホストにターミナル接続し「ip address」コマンドを使って、セカンダリNIC(nic1)に紐づいたブリッジ(vmbr1)が作成されており、状態が稼働中(UP)になっていることも確認します。

# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: nic0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master vmbr0 state UP group default qlen 1000
link/ether d8:cb:8a:b3:83:f5 brd ff:ff:ff:ff:ff:ff
altname enp0s25
altname enxd8cb8ab383f5
3: nic1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master vmbr1 state UP group default qlen 1000
link/ether 58:27:8c:be:dd:e9 brd ff:ff:ff:ff:ff:ff

4: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether d8:cb:8a:b3:83:f5 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.101/24 scope global vmbr0
valid_lft forever preferred_lft forever
inet6 fe80::dacb:8aff:feb3:83f5/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
5: vmbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 58:27:8c:be:dd:e9 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.1/24 scope global vmbr1
valid_lft forever preferred_lft forever
inet6 fe80::5a27:8cff:febe:dde9/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever

全てのホストで設定が完了したら、各ホスト間でそれぞれPINGが通るか確認します。

# ping 10.0.0.1
# ping 10.0.0.2
# ping 10.0.0.3

 

5)論理DISKの作成 #

確保しておいた物理DISKの空領域に論理的なセカンダリDISKを作成します。
以下は500GB(利用可能領域465GB)の物理DISKにて、64GBをシステム領域として確保し、残り401GBを論理的なセカンダリDISK(分散ストレージ領域)にした場合の例となります。

  • 物理的なセカンダリDISKを増設している場合、当作業は必要ありません。
  • PVE導入時に「領域を確保する手順」を行っていない場合は、手動でパーティションを切り直してセカンダリDISK用の領域を確保してから当作業を進めてください。

物理DISK(/dev/sdx)の現時点でのパーティション構成を確認します。

# fdisk -l
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors ← 物理DISKの総容量の確認
Disk model: TOSHIBA MQ01ABD0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F8E51A19-9A12-470B-8401-64E5F13ED108

Device Start End Sectors Size Type
/dev/sda1 34 2047 2014 1007K BIOS boot
/dev/sda2 2048 2099199 2097152 1G EFI System
/dev/sda3 2099200 134217728 132118529 63G Linux LVM ← 総容量に達していない(空領域がある)ことを確認

<以下省略>

空領域にセカンダリDISK用のパーティションを作成します。

# fdisk /dev/sda

Welcome to fdisk (util-linux 2.41).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.


Command (m for help): n ← パーティションの作成
Partition number (4-128, default 4): ← 空エンター(sda4を選択)
First sector (134217729-976773134, default 134219776): ← 空エンター(空ブロックを作らない)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (134219776-976773134, default 976773119): ← 空エンター(残り全部を指定)

Created a new partition 4 of type 'Linux filesystem' and of size 401.8 GiB.

Command (m for help): p ← パーティション構成の確認
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: TOSHIBA MQ01ABD0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F8E51A19-9A12-470B-8401-64E5F13ED108

Device Start End Sectors Size Type
/dev/sda1 34 2047 2014 1007K BIOS boot
/dev/sda2 2048 2099199 2097152 1G EFI System
/dev/sda3 2099200 134217728 132118529 63G Linux LVM
/dev/sda4 134219776 976773119 842553344 401.8G Linux filesystem ← パーティションが作成されたことを確認

Partition 1 does not start on physical sector boundary.

Command (m for help): w ← 設定を保存して終了

The partition table has been altered.
Syncing disks.

 

6)サブスクリプション警告表示の無効化 #

無償版PVEでは、以下のようなサブスクリプション警告ダイアログが頻繁に表示されてしまいます。これは仕様のため標準の設定では非表示にすることはできませんが、同ダイアログを表示させているプログラムファイルを直接編集することで無効化することができます。(注)

  • 当作業は標準仕様をカスタマイズする形になりますので、注意してください。
  • 編集対象のファイルを管理しているパッケージ(proxmox-widget-toolkit)が更新されると標準仕様に戻ってしまうため、当作業は更新される度に行う必要があります。

警告ダイアログを表示させているプログラムファイル(※)を編集します。(注)
※編集対象ファイル:/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

# cd /usr/share/javascript/proxmox-widget-toolkit/	← ディレクトリの移動
# cp -p proxmoxlib.js proxmoxlib.js.org  ← 元ファイルをコピーして退避
# vim.tiny proxmoxlib.js ← ファイルの編集
------------------------------------------------------------------------
.
.
.
if (
res === null ||
res === undefined ||
!res ||
res.data.status.toLowerCase() !== 'active'  ← 変更前
↓
res.data.status.toLowerCase() == 'active'  ← 変更後(!マークを削除)
) {
.
.
.
------------------------------------------------------------------------
  • proxmox-widget-toolkit 5.1.8 の場合、変更箇所は614行目となりますが、パッケージが更新されると変更箇所の場所(行)は変わる可能性があります。
  • 同じ書式の記述(res.data.status.toLowerCase・・・)がもう一箇所(20,806行目)にもあるため、変更箇所を間違わないよう注意してください。

編集後、ブラウザのキャッシュをクリアします。
> キーボードの「F5」キーを押してブラウザの表示を更新します。
> 警告ダイアログが表示されなくなったことを確認します。

 

7)ルート証明書の登録 #

ブラウザでアクセスした際に以下のような警告画面が表示されますが、PVEホストに用意されているルート証明書をPCに登録すれば、警告は表示されなくなります。(注)

ルート証明書の有効期間は10年ですが、サーバー証明書の有効期間は2年と短いため、少なくとも2年毎にサーバー証明書を更新する必要があります(更新方法は後述します)

Windows PC 側にてコマンドプロンプトを起動します。
> 各ホストからルート証明書ファイル(※)をダウンロードします。
※ルート証明書ファイル:/etc/pve/pve-root-ca.pem

c:\>cd temp  ← 証明書ファイルを保存したいフォルダに移動
c:\temp>scp root@192.168.1.211:/etc/pve/pve-root-ca.pem pve-root-ca-pve01.pem  ← 証明書ファイルをダウンロード(参)
The authenticity of host '192.168.1.211 (192.168.1.211)' can't be established.
ED25519 key fingerprint is SHA256:ahJqz/lk34LQQ7Y6u9vVRgWb9h4pZi2nOFIrA5hZ62c.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?  ← 接続を許可(yesで応答)
Warning: Permanently added '192.168.1.211' (ED25519) to the list of known hosts.
root@192.168.1.211's password:  ← ホストのrootパスワードを入力しエンター
pve-root-ca.pem 100% 2074 2.0KB/s 00:00

c:\temp>dir  ← 保存先フォルダの中身を確認
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は xxxx-xxxx です

c:\temp のディレクトリ

2026/04/09 10:11 <DIR> .
2026/04/09 10:11 2,074 pve-root-ca-pve01.pem  ← 証明書ファイルが保存されていることを確認
1 個のファイル 2,074 バイト
1 個のディレクトリ 177,477,361,664 バイトの空き領域

c:\temp>exit  ← コマンドプロンプトを終了

すべてのホストの証明書を登録することになるため、ホストが判別しやすい名前でファイル保存しておくと登録時に迷わなくて済みます。

コントロールパネル > ネットワークとインターネット > インターネットオプションの順に辿り、「インターネットのプロパティ」画面を開きます。
> コンテンツタブにある「証明書」ボタンをクリックします。

信頼されたルート証明書機関タブにある「インポート」ボタンをクリックします。

証明書のインポートウィザード画面が表示されますので、「次へ」ボタンをクリックします。

ダウンロードしたルート証明書ファイルを指定して、「次へ」ボタンをクリックします。

証明書をすべて次のストアに配置するにチェックが入っていること、証明書ストアが「信頼されたルート証明書機関」となっていることを確認し、「次へ」ボタンをクリックします。

指定した内容を確認し、「完了」ボタンをクリックします。

セキュリティ警告画面が表示されますが、そのまま「はい」をクリックします。

正しくインポートされましたと表示されたことを確認し、「OK」ボタンをクリックします。

登録された証明書をダブルクリックします。

全般タブにて証明書の内容を確認します。(注)

詳細タブをクリックし、「プロパティの編集」ボタンをクリックします。

全般タブにてホストが識別しやすい「フレンドリ名」を入力し、「OK」をクリックします。

詳細タブにて「フレンドリ名」が登録されたことを確認し、「OK」ボタンをクリックします。

証明書にフレンドリ名が表示されていることを確認し、「閉じる」ボタンをクリックします。

ホストにアクセスし、警告が表示されずログイン画面が表示されたことを確認します。
> そのままログインします。

左メニューより「ホスト名」>「システム配下の証明書」を選択します。
> ルート証明書(pve-root-ca.pem)の有効期間が10年後になっていることを確認します。

 

8)サーバー証明書の更新方法 #

左メニューより「ホスト名」>「システム配下の証明書」を選択します。
> サーバー証明書(pve-ssl.pem)の有効期限(2年後)を確認します。

ターミナル接続して、サーバー証明書を手動で更新します。

# pvecm updatecerts --force

F5キーでブラウザを更新し、サーバー証明書の有効期限が延長されたことを確認します。

更新コマンドをcronに登録し、自動更新されるよう設定します。

# vim.tiny /etc/cron.monthly/update-server-certificate ← cron用ファイルの作成
---------------------------------------------------------
#!/bin/sh
/usr/bin/pvecm updatecerts --force
---------------------------------------------------------
# chmod +x /etc/cron.monthly/update-server-certificate ← 実行権限付与

当方では/etc/crontabの編集(@yearlyなどを追記)は避けたかったことと、同コマンド実行による負荷はほとんどかからないため、年単位ではなく月単位にしました。

 

以上でProxmoxVEの導入と初期設定は完了です。
続いて、各ホストを一つのグループに統合するクラスタ環境の構築を行ってゆきます。

Updated on 2026年6月15日
仮想マシン・コンテナの操作方法クラスタ環境の構築
目次
  • 1. システム構成要件
    • 1)サイジング方法
    • 2)構成例
    • 3)その他注意点
  • 2. PVEの導入
    • 1)インストール用メディアの作成
    • 2)インストール
  • 3. PVEの初期設定
    • 1)管理用ブラウザへログイン
    • 2)サブスクリプションの変更
    • 3)パッケージのアップデート
    • 4)セカンダリNICの有効化
    • 5)論理DISKの作成
    • 6)サブスクリプション警告表示の無効化
    • 7)ルート証明書の登録
    • 8)サーバー証明書の更新方法
  • ホーム
  • ドキュメント
  • ギャラリー
  • お知らせ
  • お問い合わせ

© 2026 ktcsp.net All rights reserved.

トップへ戻る
  • ホーム
  • ドキュメント
    • 仮想基盤の構築
      • 仮想基盤について
      • HCI仮想基盤(XCP-ng+XOSTOR)
      • HCI仮想基盤(ProxmoxVE+Ceph)
    • サーバーの構築
      • 基本サーバー(Rocky Linux)
      • Mailサーバー(Postfix/Dovecot)
      • Webサーバー(Apache)
      • リバースプロキシサーバー(Nginx)
      • 内向DNSサーバー(Dnsmasq)
      • Backupサーバー(Storware)
      • 監視サーバー(Zabbix)
    • ホームページの構築
      • WordPressの導入と設定
      • ホームページの作成(Kadence)
      • ドキュメントページの作成(BetterDocs)
      • ギャラリーページの作成(NextGen Gallery)
      • 問い合わせページの作成(WPForms)
    • オンラインストレージの構築
      • Nextcloudの導入と設定
  • ギャラリー
    • ヨーロッパ
      • イタリア
      • スペイン
      • ポルトガル
      • ギリシャ
      • フランス
      • イギリス
    • アジア
      • 中国
      • 日本
    • その他
      • オーストラリア
      • ハワイ
  • お知らせ
  • お問い合わせ