OpenStack では、分散キーのロック、構成の保存、サービスの稼働状況の追跡、その他のシナリオの追跡に、信頼性の高いキー値ストアである Etcd を使用します。このセクションでは、Etcd の導入について紹介します。

openstack-rocky の yum リポジトリ(CentOS-Openstack-rocky.repo)を使って、 Etcd のパッケージをインストールします。インストールは、コントローラーノードで実施します。

[root@controller ~]# yum --enablerepo=centos-openstack-rocky -y install etcd
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ etcd.x86_64 0:3.2.22-1.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package        アーキテクチャー バージョン              リポジトリー      容量
================================================================================
インストール中:
 etcd           x86_64           3.2.22-1.el7            extras           9.3 M

トランザクションの要約
================================================================================
インストール  1 パッケージ

総ダウンロード容量: 9.3 M
インストール容量: 42 M
Downloading packages:
etcd-3.2.22-1.el7.x86_64.rpm                               | 9.3 MB   00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : etcd-3.2.22-1.el7.x86_64                        1/1 
  検証中                  : etcd-3.2.22-1.el7.x86_64                        1/1 

インストール:
  etcd.x86_64 0:3.2.22-1.el7                                                    

完了しました!
[root@controller ~]# 

Etcd の設定ファイル( /etc/etcd/etcd.conf )を編集し、以下設定します。ETCD_LISTEN_PEER_URLS、ETCD_LISTEN_CLIENT_URLS、ETCD_INITIAL_ADVERTISE_PEER_URLS、ETCD_ADVERTISE_CLIENT_URLS、ETCD_INITIAL_CLUSTER をコントローラーノードの管理 IP アドレスにし、管理ネットワーク経由で他のノードにアクセスできるようにします。

[root@controller ~]# vi /etc/etcd/etcd.conf 
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.24.111:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.24.111:2379"
ETCD_NAME="controller"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.24.111:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.24.111:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.24.111:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"

Etcd の自動起動を有効化します。

■ 自動起動の有効化
[root@controller ~]# systemctl enable etcd
[root@controller ~]# 

■ 自動起動の状態確認
[root@controller ~]# systemctl is-enabled etcd
enabled
[root@controller ~]# 

Etcd を再起動します。

■ 再起動
[root@controller ~]# systemctl restart etcd
[root@controller ~]# 

■ 起動状態の確認
[root@controller ~]# systemctl status etcd
● etcd.service - Etcd Server
   Loaded: loaded (/usr/lib/systemd/system/etcd.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2018-10-21 03:21:32 JST; 7s ago
 Main PID: 10930 (etcd)
   CGroup: /system.slice/etcd.service
           └─10930 /usr/bin/etcd --name=controller --data-dir=/var/lib/etcd/default.etcd --listen-client-urls=http://192.168.24.111:2379

10月 21 03:21:30 controller etcd[10930]: enabled capabilities for version 3.2
10月 21 03:21:32 controller etcd[10930]: 6a3c1d99a300afa9 is starting a new election at term 2
10月 21 03:21:32 controller etcd[10930]: 6a3c1d99a300afa9 became candidate at term 3
10月 21 03:21:32 controller etcd[10930]: 6a3c1d99a300afa9 received MsgVoteResp from 6a3c1d99a300afa9 at term 3
10月 21 03:21:32 controller etcd[10930]: 6a3c1d99a300afa9 became leader at term 3
10月 21 03:21:32 controller etcd[10930]: raft.node: 6a3c1d99a300afa9 elected leader 6a3c1d99a300afa9 at term 3
10月 21 03:21:32 controller etcd[10930]: published {Name:controller ClientURLs:[http://192.168.24.111:2379]} to cluster 244c19a381c27c0
10月 21 03:21:32 controller etcd[10930]: ready to serve client requests
10月 21 03:21:32 controller etcd[10930]: serving insecure client requests on 192.168.24.111:2379, this is strongly discouraged!
10月 21 03:21:32 controller systemd[1]: Started Etcd Server.
[root@controller ~]#