Proxmox VE 8.1 Install Battle - Cluster&Ceph作成編(4/N)

Summary

企業のネットが星を被い、電子や光が駆け巡ってもハイパーバイザーやデータが消えてなくなるほど、情報化されていない近未来。

VMware の社内利用を禁じられた企業ネットでは新しい仮想化基盤を構築するべく自宅環境をクローンするのであった。


前回は Proxmox VE 単体の設定を進めました。今回はクラスターを作成していきます。

Cluster作成

今回の構成では、 ens18, ens19 を利用する ens19 は物理で構成する場合は LACP などで冗長化された状態になることが多いため Cluster 作成前に Network 設定を完了させる必要がある。 Linknum は 0-7 までのようなので専有の NIC が一番若番に設定します。

LinknumNetwork
ens18010.2.21.66
esn19110.2.22.66

Proxmox VE でクラスターを作成します。まずはどれか 1 台を選択。

  • Datacenter > Cluster へ移動
  • Create Cluster をクリック
  • Cluster Name を入力
  • Cluster Network を選択
  • Create をクリック

Create Cluster しばらく待つと完了する

完了したら pve2, pve3 をクラスターに所属させます。

  • Join Information をクリック
  • 表示された画面に Copy Information があるためこちらをクリックしてコピーする

Join Information

  • pve2 を開く
  • Datacenter > Cluster へ移動
  • Join Cluster をクリック
  • 表示された画面の Information に貼り付けると下記のようになるので必要事項を入力すれば Join できる

Join Cluster

pve3 も登録します。
すると下記のようになります。

Cluster Join

これでクラスター加入完了です。

Ceph

HCI(Hyper-Converged Infrastructure) として利用するには SDS か共有ストレージを用意する必要があります。
今回は Ceph をセットアップしました。

Ceph Install

  • Datacenter > Ceph へ移動
  • Install Ceph をクリック

Ceph Install

  • Ceph version to install: reef (18.2)
  • Repository: No-Subscription

Ceph Install: Setup

apt でパッケージインストール

  • Public Network: 10.2.22.66/24
  • Cluster Network: オプション OSD レプリケーション
  • Number of replicas: 3
  • Minimum replicas: 2

Configuration

Success

The configuration step includes the following settings:

  • Public Network: This network will be used for public storage communication (e.g., for virtual machines using a Ceph RBD backed disk, or a CephFS mount), and communication between the different Ceph services. This setting is required. Separating your Ceph traffic from the Proxmox VE cluster communication (corosync), and possible the front-facing (public) networks of your virtual guests, is highly recommended. Otherwise, Ceph’s high-bandwidth IO-traffic could cause interference with other low-latency dependent services.

ja: このネットワークは、パブリックストレージ通信(Ceph RBDバックアップディスクやCephFSマウントを使用する仮想マシンなど)、およびさまざまなCephサービス間の通信に使用されます。この設定は必須です。 CephのトラフィックをProxmox VEクラスタ通信(corosync)、および仮想ゲストの前面(パブリック)ネットワークから分離することを強くお勧めします。そうしないと、Cephの広帯域幅IOトラフィックが他の低レイテンシ依存サービスに干渉する可能性があります。

  • Cluster Network: Specify to separate the OSD replication and heartbeat traffic as well. This setting is optional. Using a physically separated network is recommended, as it will relieve the Ceph public and the virtual guests network, while also providing a significant Ceph performance improvements. The Ceph cluster network can be configured and moved to another physically separated network at a later time.

ja: クラスタネットワーク: OSDのレプリケーションとハートビートのトラフィックも分離するように指定します。この設定はオプションです。物理的に分離されたネットワークを使用すると、Cephパブリックと仮想ゲストのネットワークが緩和され、Cephのパフォーマンスも大幅に向上するため、推奨されます。Cephクラスタネットワークを構成し、後で別の物理的に分離されたネットワークに移動できます。

Deploy Hyper-Converged Ceph Cluster

pve2, pve3 へは下記で Ceph をインストールします。

  • Datacenter > ホスト > Ceph へ移動
  • Install Ceph をクリック

1台目以外: Install Ceph

1台目以外: Install Ceph version & Repository指定

Note
pve3 もインストールを実施する。

Monitor Install

Ceph Monitor を各 node にインストールします。

  • Datacenter > Host > Ceph > Monitor を開く
  • Monitor 欄の Create

Ceph: Monitor Install Create Ceph: Monitor Install host

Note
pve2, pve3 で実施します。

すべて Monitor を起動できると下記の状態になります。

Monitor 全台起動

Manager Install

  • Datacenter > Host > Ceph > Monitor を開く
  • Manager 欄の Create

Ceph: Manager Install Create

Ceph: Manager Install host

Note
pve2, pve3 で実施します。

すべて終わるとこのように鳴る。

Manager 全台インストール済み

OSD の設定

Ceph ではディスクのことを OSD といいます、そのため物理構成に存在するディスクを登録して分散ストレージを形成します。

  • Datacenter > Host > Ceph > OSD を開く
  • Create: OSD をクリック

Create: Ceph OSD

Create: Ceph OSD

下記のディスクを追加します。

  • pve1
    • /dev/sdb
    • /dev/sdc
  • pve2
    • /dev/sdb
    • /dev/sdc
  • pve3
    • /dev/sdb
    • /dev/sdc

OSD すべて登録できるこの状態になります

「Datacenter」>「Ceph」を確認するとすべて Green になっているはずです

CephFS

  • Datacenter > Host > Ceph > CephFS を開く
  • Metadata ServersCreate
  • Host pve1

CephFS: Metadata

同じ画面で Host; pve2, pve3

全台完了した場合こちらに

  • Datacenter > Host > Ceph > CephFS を開く
  • Create CephFS で Name cephfs01

Create CephFS

  • Name: cephfs01
  • Placement Groups: 128

Create CephFS: Option

Pools

CephRDB を作成する。これは VM ディスクを格納するストレージ。

  • Datacenter > Host > Ceph > Pools を開く
  • Name: cephrdb01

Create: Ceph Pools

完了後

Datacenter

Options

今回は、 Migration Settings, HA SettingsBandwidth Limits を設定することが目的です。

  • Migration Settings: ライブマイグレーションに利用するネットワークは標準では MGMT ネットワークですが、ここで選択したネットワークを利用させることが可能。

  • HA Settings: 通常の動作は conditional になり rebootshutdown の良い所取りになる

    • reboot の場合はリソース管理をフリーズし Node が上がってくるまで待つ。
      つまり、他の Node にマイグレーションせず、 Node と一緒に VM も再起動する。
    • shutdown の場合は、他の Node にマイグレーションしてから Node をシャットダウンする
    • migrate を選択した場合 Node のシャットダウン・再起動にかかわらず必ず他 Node へマイグレーションする
  • Bandwidth Limits

  • Datacenter > Options へ移動

    • Migration Settings で Ceph 作成で指定したネットワークを指定
    • HA Settings は弊宅では自動再起動を対応するので migrate を選択
    • Bandwidth Limits は LACP などを考慮した全帯域幅の 9 割程度を入力している

Datacenter > Options

HA/Groups

VM を HA 設定するためにはここで作成した HA Group に所属させる必要があります。

  • Datacenter > HA > Groups を開く
  • Restricted: ■
    • このグループに属する Node 上でのみ VM が実行される
  • Nofailback: ■
    • 障害発生した Node が回復すると、その Node に戻される
    • 障害回復時に大規模な VM マイグレーションを回避するには、この機能を有効にする

Datacenter > HA > Groups

Permissions/Realms

Proxmox VE では Realm として Microsoft Active Directory, LDAP, OpenID Connect を利用可能です。

SMTP relay

Proxmox VE では Postfix が起動しておりローカルメールは sendmail によって Postfix へ配信される。SMTP で外部のメールサーバーに設定されているわけでは無いので手元に届かないこれを解消する。

一般的には Postfix に SMTP relay の設定を仕込んでリレーするのが多いが、これは設定が複雑なのとクラスター台数分頑張らなくてはならないため Proxmox VE の Notifications 機能を使って設定する。

  • WebGUI でクラスターメンバーのどれかにログインする
  • Datacenter > Notifications を開く
  • Notifications Targets 横の Add から SMTP を選択
    • 後はお手持ちの SMTP relay 向けの設定をすれば良い
    • Server, Encryption, Port あたりはサービスにより大きく異なるので特に注意する
    • Recipient(s) には通常であれば root@pam を選択しておけば root 宛もメールがこの SMTP を使って送信される
  • Add をクリック

Notifications Targets

次にメールのルーティング設定をする
特に拘りがなければデフォルトで登録されている default-matcher に追加してしまうのが楽。

  • default-matcher をクリック
  • Targets to notify タブへ移動
  • 先ほど登録した Target に ■ を入れる
  • OK をクリック

Notifications Matcher

ここまで出来たら送信テストをしておこう。

WebGUI 上に Test ボタンがあるのでそれをクリックし指示に従うと Install 時に入力したメールアドレスにメールが届くはずだまた、これはあくまで SMTP のテストであったため CLI からも実施してみたところ問題なく受信した。 これでもう Postfix とバトラなくて済む。

Notifications Test

mail コマンドでやる場合
1
echo -e "Hi\n This is $(uname -n)\n $(date '+%Y-%m-%dT%H%M%S%z')" | mail -s "subject" root
Topic

調べた限りでは Proxmox VE のメール転送は下記で実施されているようだった。

  • root にメールする (これはアプリケーション側してくる)
  • /root/.forward にかかれている /usr/bin/proxmox-mail-forward に pipe
  • Datacenter > Permissions > Users で登録されいている Username の E-Mail を取得
  • Datacenter > Notifications に登録されている Notifications Targets の情報を元に送信

参考情報

Built with Hugo
テーマ StackJimmy によって設計されています。