Summary ¶
企業のネットが星を被い、電子や光が駆け巡ってもハイパーバイザーやデータが消えてなくなるほど、情報化されていない近未来。
VMware の社内利用を禁じられた企業ネットでは新しい仮想化基盤を構築するべく自宅環境をクローンするのであった。
前回は Proxmox VE 単体の設定を進めました。今回はクラスターを作成していきます。
Cluster作成 ¶
今回の構成では、 ens18, ens19 を利用する ens19 は物理で構成する場合は LACP などで冗長化された状態になることが多いため Cluster 作成前に Network 設定を完了させる必要がある。
Linknum は 0-7 までのようなので専有の NIC が一番若番に設定します。
| Linknum | Network | |
|---|---|---|
ens18 | 0 | 10.2.21.66 |
esn19 | 1 | 10.2.22.66 |
Proxmox VE でクラスターを作成します。まずはどれか 1 台を選択。
Datacenter>Clusterへ移動Create ClusterをクリックCluster Nameを入力Cluster Networkを選択Createをクリック

完了したら pve2, pve3 をクラスターに所属させます。
Join Informationをクリック- 表示された画面に
Copy Informationがあるためこちらをクリックしてコピーする

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

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

これでクラスター加入完了です。
Ceph ¶
HCI(Hyper-Converged Infrastructure) として利用するには SDS か共有ストレージを用意する必要があります。
今回は Ceph をセットアップしました。
Ceph Install ¶
Datacenter>Cephへ移動Install Cephをクリック

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


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


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をクリック


Monitor Install ¶
Ceph Monitor を各 node にインストールします。
Datacenter> Host >Ceph>Monitorを開くMonitor欄のCreate

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

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


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

OSD の設定 ¶
Ceph ではディスクのことを OSD といいます、そのため物理構成に存在するディスクを登録して分散ストレージを形成します。
Datacenter> Host >Ceph>OSDを開くCreate: OSDをクリック


下記のディスクを追加します。
- pve1
- /dev/sdb
- /dev/sdc
- pve2
- /dev/sdb
- /dev/sdc
- pve3
- /dev/sdb
- /dev/sdc


CephFS ¶
Datacenter> Host >Ceph>CephFSを開くMetadata ServersのCreateHostpve1

同じ画面で Host; pve2, pve3

Datacenter> Host >Ceph>CephFSを開くCreate CephFSで Namecephfs01

- Name:
cephfs01 - Placement Groups:
128

Pools ¶
CephRDB を作成する。これは VM ディスクを格納するストレージ。
Datacenter> Host >Ceph>Poolsを開くName: cephrdb01


Datacenter ¶
Options ¶
今回は、 Migration Settings, HA Settings と Bandwidth Limits を設定することが目的です。
Migration Settings: ライブマイグレーションに利用するネットワークは標準では MGMT ネットワークですが、ここで選択したネットワークを利用させることが可能。HA Settings: 通常の動作はconditionalになりrebootとshutdownの良い所取りになるrebootの場合はリソース管理をフリーズし Node が上がってくるまで待つ。
つまり、他の Node にマイグレーションせず、 Node と一緒に VM も再起動する。shutdownの場合は、他の Node にマイグレーションしてから Node をシャットダウンするmigrateを選択した場合 Node のシャットダウン・再起動にかかわらず必ず他 Node へマイグレーションする
Bandwidth LimitsDatacenter>Optionsへ移動Migration Settingsで Ceph 作成で指定したネットワークを指定HA Settingsは弊宅では自動再起動を対応するのでmigrateを選択Bandwidth Limitsは LACP などを考慮した全帯域幅の 9 割程度を入力している

HA/Groups ¶
VM を HA 設定するためにはここで作成した HA Group に所属させる必要があります。
Datacenter>HA>Groupsを開くRestricted: ■- このグループに属する Node 上でのみ VM が実行される
Nofailback: ■- 障害発生した Node が回復すると、その Node に戻される
- 障害回復時に大規模な VM マイグレーションを回避するには、この機能を有効にする

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をクリック

次にメールのルーティング設定をする
特に拘りがなければデフォルトで登録されている default-matcher に追加してしまうのが楽。
default-matcherをクリックTargets to notifyタブへ移動- 先ほど登録した Target に ■ を入れる
OKをクリック

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

| |
調べた限りでは Proxmox VE のメール転送は下記で実施されているようだった。
rootにメールする (これはアプリケーション側してくる)- ↓
/root/.forwardにかかれている/usr/bin/proxmox-mail-forwardに pipe- ↓
Datacenter>Permissions>Usersで登録されいている Username のE-Mailを取得- ↓
Datacenter>Notificationsに登録されているNotifications Targetsの情報を元に送信




