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
のCreate
Host
pve1
同じ画面で 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 Limits
Datacenter
>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
の情報を元に送信