ベアメタルサーバー構築手順¶
Smart Data Platform で提供しているオフィシャルテンプレートからインスタンス(ベアメタルサーバー)を作成する方法について説明します。 またオフィシャルテンプレートからサーバーインスタンスを作成した場合、ライセンスのアクティベーションを実施する必要があります。
ここでは、本サービスで提供しているオフィシャルテンプレート、CentOSを使用したインスタンス作成、ライセンスのアクティベーション、Webサーバの構築を行います。
本項では図中の赤枠部分を構築していきます。
図に使用される表記の凡例は 凡例一覧 を参照してください。
1. キーペアの作成¶
初めにサーバーインスタンスへのログイン時に使用するキーペアを作成します。
左ペインのメニューから「サーバーインスタンス」→「インスタンス」→「キーペア」を選択します。
「キーペア」画面から「キーペアの作成」をクリックします。
入力が必要な項目は下記の通りです。
項番 | 項目名 | 入力形式 | 入力値 | 注意事項 |
1-1 | キーペア名 | 手動 | baremetalkey | 英数字のみ入力してください |
入力が完了したら、右下の「キーペアの作成」をクリックし、キーペアの作成を実行します。
キーペアの作成を実行すると、.pemファイルのダウンロードが自動で行われます。
下記画面にて、「保存」を選択し「閉じる」をクリックします。
以上で、キーペアの作成が完了となります。
2. ベアメタルサーバーの作成¶
左ペインのメニューから「ベアメタルサーバー」→「サーバーリスト」を選択します。「サーバーの新規作成」画面で必要な項目は以下になります。 ベアメタルサーバーの作成にあたっては、下記の7つのタブでそれぞれ初期設定を入力することができます。
詳細 | ご利用になるサーバー名称やスペック(flavor)、サーバーの起動イメージ、サーバーを設置するゾーン/グループの設定 |
アクセスとセキュリティ | サーバー管理者のキーペアの登録およびSSHでアクセスする際の管理者パスワードの設定 |
ネットワーク | サーバーが属するネットワーク、およびIPアドレスの設定。事前にロジカルネットワークを作成しておく必要があります。 |
ディスク | サーバーのディスクパーティションの設定。自動で設定されるAutomaticと、お客様独自で設定するManualの2つが選べます。 |
Post-Install script | サーバーの初期設定において、お客様側でカスタマイズを実施したい場合にスクリプトをアップロードしておくことで、作成時にスクリプトを実行します |
メタデータ | メタデータの登録ができます。 |
パーソナリティー | ベアメタルサーバーのご利用開始前に、SSH Keyや設定ファイルなどをベアメタルサーバーのファイルシステムに入れることができます |
2.1. ベアメタルサーバーの作成 - 詳細タブ¶
ここでは、インスタンスのOS上ホスト名やスペック(flavor)、サーバーの起動イメージ、サーバーを設置するゾーンの設定を行います。
左ペインのメニューから「ベアメタルサーバー」→「サーバーリスト」→「サーバーの新規作成」を選択します。
入力が必要な項目は下記の通りです。
項番 | 項目名 | 入力形式 | 入力値 | 注意事項 |
2-1 | サーバー名 | 手動 | baremetal1 | 英数字のみ入力してください。 |
2-2 | フレーバー | 選択 | General Purpose 2(VCPUs:24,RAM:256GB,Size:550GB) | |
2-3 | イメージ名 | 選択 | CentOS-7.5-1804_64_baremetal-server_01 | |
2-4 | ゾーン/グループ | 選択 | zone1-groupa | 冗長化を図る為、1台目はzone1-groupaを選んでください。 |
2.2. ベアメタルサーバーの作成 - アクセスとセキュリティ¶
「アクセスとセキュリティ」をクリックします。
入力が必要な項目は下記の通りです。
項番 | 項目名 | 入力形式 | 入力値 | 注意事項 |
3-1 | キーペア名 | 選択 | baremetalkey | 作成したキーペアを選択してください。 |
3-2 | 管理者パスワード | 手動 | xxxxxxxx | 任意のパスワードを入力してください。 |
3-3 | 管理者パスワード(確認) | 手動 | xxxxxxxx | 2-2で入力したパスワードを入力してください。 |
2.3. ベアメタルサーバーの作成 - ネットワーク¶
「ネットワーク」クリックし、ベアメタルサーバーと接続するネットワークを設定します。
初めに、APネットワークの設定を行います。
入力が必要な項目は下記の通りです。
項番 | 項目名 | 入力形式 | 入力値 | 注意事項 |
4-1 | ロジカルネットワーク1 | 選択 | AP-DB_NW Plane:Data,(192.168.6.0/24) | |
4-2 | IPアドレス1 | 手動 | 192.168.6.253 | |
4-3 | ロジカルネットワーク2 | 選択 | DB-StrageA Plane:Storage,(192.168.10.0/24) | |
4-4 | IPアドレス2 | 手動 | 192.168.10.20 |
2.4. ベアメタルサーバーの作成 - ディスク¶
「ディスク」をクリックします。
ベアメタルサーバーに内蔵されるディスクパーティションの設定を行います。パーティションの設定に関しては、自動で設定されるAutomaticと、お客様独自で設定するManualの2つが選べます。
今回の構成では設定不要となります。
注釈
Automaticに設定された場合は、弊社側であらかじめ用意しているOS毎の設定値によって設定されます。詳しくは、詳細情報をご確認ください。
Manualでディスクパーティション設定を行う場合は、下記のようなJSONフォーマットでパラメーターを入力する必要があります。
パラメーターの詳細については、 (参考)ベアメタルサーバーの新規作成時のパラメーター設定 もしくは、ベアメタルサーバー APIリファレンス をご確認ください。
2.5. ベアメタルサーバーの作成 - Post-install script¶
「Post-install script」をクリックします。
サーバーの初期設定でスクリプトは利用しない為、今回の構成では設定不要となります。
2.6. ベアメタルサーバーの作成 - メタデータ¶
「メタデータ」をクリックします。
ベアメタルサーバーにメタデータを設定します。KEY=VALUE形式で設定可能です。
今回の構成ではメタデータは使用しない為、設定不要となります。
2.7. ベアメタルサーバーの作成 - パーソナリティ¶
「パーソナリティー」をクリックします。
ベアメタルサーバーのご利用開始前に、SSH Keyや設定ファイルなどをベアメタルサーバーのファイルシステムに入れることができます。
事前に設定したいConfigファイルやSSH Keyを直接入力、もしくはファイルでアップロードを実施し、ファイル配置場所のパスを指定します。
今回の構成では、パーソナリティは使用しない為、設定不要となります。
全ての設定が完了したら、右下の「サーバーの新規作成」をクリックし、ベアメタルサーバーの作成を実行します。
ベアメタルサーバーの作成が完了すると、一覧画面に作成されたベアメタルサーバーがリストに追加されて表示されます。
次に2台目のベアメタルサーバーの作成を行います。
2.8. ベアメタルサーバーの作成 - 詳細タブ¶
ここでは、インスタンスのOS上ホスト名やスペック(flavor)、サーバーの起動イメージ、サーバーを設置するゾーンの設定を行います。
左ペインのメニューから「ベアメタルサーバー」→「サーバーリスト」→「サーバーの新規作成」を選択します。
入力が必要な項目は下記の通りです。
項番 | 項目名 | 入力形式 | 入力値 | 注意事項 |
2-1 | サーバー名 | 手動 | baremetal2 | 英数字のみ入力してください。 |
2-2 | フレーバー | 選択 | General Purpose 2(VCPUs:24,RAM:256GB,Size:550GB) | |
2-3 | イメージ名 | 選択 | CentOS-7.5-1804_64_baremetal-server_01 | |
2-4 | ゾーン/グループ | 選択 | zone1-groupb | 冗長化を図る為、2台目はzone1-groupbを選んでください。 |
2.2. ベアメタルサーバーの作成 - アクセスとセキュリティ¶
「アクセスとセキュリティ」をクリックします。
入力が必要な項目は下記の通りです。
項番 | 項目名 | 入力形式 | 入力値 | 注意事項 |
3-1 | キーペア名 | 選択 | baremetalkey | 作成したキーペアを選択してください。 |
3-2 | 管理者パスワード | 手動 | xxxxxxxx | 任意のパスワードを入力してください。 |
3-3 | 管理者パスワード(確認) | 手動 | xxxxxxxx | 3-2で入力したパスワードを入力してください。 |
2.3. ベアメタルサーバーの作成 - ネットワーク¶
「ネットワーク」クリックし、ベアメタルサーバーと接続するネットワークを設定します。
初めに、APネットワークの設定を行います。
入力が必要な項目は下記の通りです。
項番 | 項目名 | 入力形式 | 入力値 | 注意事項 |
4-1 | ロジカルネットワーク1 | 選択 | AP-DB_NW Plane:Data,(192.168.6.0/24) | |
4-2 | IPアドレス1 | 手動 | 192.168.6.254 | |
4-3 | ロジカルネットワーク2 | 選択 | DB-StrageB Plane:Storage,(192.168.11.0/24) | |
4-4 | IPアドレス2 | 手動 | 192.168.11.30 |
2.4. ベアメタルサーバーの作成 - ディスク¶
「ディスク」をクリックします。
ベアメタルサーバーに内蔵されるディスクパーティションの設定を行います。パーティションの設定に関しては、自動で設定されるAutomaticと、お客様独自で設定するManualの2つが選べます。
今回の構成では設定不要となります。
注釈
Automaticに設定された場合は、弊社側であらかじめ用意しているOS毎の設定値によって設定されます。詳しくは、詳細情報をご確認ください。
Manualでディスクパーティション設定を行う場合は、下記のようなJSONフォーマットでパラメーターを入力する必要があります。
パラメーターの詳細については、 (参考)ベアメタルサーバーの新規作成時のパラメーター設定 もしくは、ベアメタルサーバー APIリファレンス をご確認ください。
2.5. ベアメタルサーバーの作成 - Post-install script¶
「Post-install script」をクリックします。
サーバーの初期設定でスクリプトは利用しない為、今回の構成では設定不要となります。
2.6. ベアメタルサーバーの作成 - メタデータ¶
「メタデータ」をクリックします。
ベアメタルサーバーにメタデータを設定します。KEY=VALUE形式で設定可能です。
今回の構成ではメタデータは使用しない為、設定不要となります。
2.7. ベアメタルサーバーの作成 - パーソナリティ¶
「パーソナリティー」をクリックします。
ベアメタルサーバーのご利用開始前に、SSH Keyや設定ファイルなどをベアメタルサーバーのファイルシステムに入れることができます。
事前に設定したいConfigファイルやSSH Keyを直接入力、もしくはファイルでアップロードを実施し、ファイル配置場所のパスを指定します。
今回の構成では、パーソナリティは使用しない為、設定不要となります。
全ての設定が完了したら、右下の「サーバーの新規作成」をクリックし、ベアメタルサーバーの作成を実行します。
ベアメタルサーバーの作成が完了すると、一覧画面に作成されたベアメタルサーバーがリストに追加されて表示されます。
3. ベアメタルサーバーへのログイン¶
作成されたベアメタルサーバーへアクセスする方法は、本サービスで提供するリモートコンソールアクセスもしくはSSHによる接続の2通りです。
ここでは、リモートコンソールアクセスの手順について説明いたします。
3.1. リモートコンソールアクセスの新規ユーザー作成¶
リモートコンソールアクセスを実行するために、リモートコンソールアクセス用のユーザー追加を実施します。
左ペインのメニューから「ベアメタルサーバー」→「リモートコンソールアクセス」へと進み、下図の画面で「ユーザーの新規追加」をクリックします。
入力が必要な項目は下記の通りです。
項番 | 項目名 | 入力形式 | 入力値 | 注意事項 |
5-1 | パスワード | 手動 | xxxxxxxx | 任意のパスワードを入力してください。 |
5-2 | パスワード | 手動 | xxxxxxxx | 5-1で入力したパスワードを入力してください。 |
3.2. コンソール情報の確認¶
「コンソール情報」では、SSL-VPNに関する情報、コンソールに関する情報が表示されます。
左ペインのメニューから「ベアメタルサーバー」→「サーバーリスト」へと進みます。
コンソールアクセスを実施したいサーバーのアクション一覧より、「コンソール情報」を選択します。
表示された画面から、「パスワードを表示」をチェックします。
3.3. SSL-VPNの構築¶
リモートコンソールアクセスを実行するにあたっては、SSL-VPNを構築しコンソールURLにアクセスする必要があります。
まず、先ほど表示された「コンソール情報」から、VPN URLをブラウザからアクセスします。
アクセスすると下図のようなSSL VPNのGatewayが表示されるので、「コンソール情報」で表示されたユーザー名と、本項最初の手順で作成したリモートコンソールアクセスのユーザーのパスワードを入力し、ログインを実施します。
注釈
SSL VPNの構築にあたっては、CITRIX社 NetScaler Gatewayのプラグインの追加が必要です。表示された画面に記載されている手順に沿って、インストーラーのダウンロード、プラグインのインストールを実施してください。
3.4. コンソールへのアクセス¶
SSL VPNの構築完了後、「コンソール情報」で表示された、「コンソールURL」にアクセスします。
コンソールに正常にアクセスができると、下図のようなベアメタルサーバーのIPMIへのログイン画面が表示されますので、「コンソール情報」で表示されているユーザーIDとパスワードを入力します。
コンソールへのログインが完了すると、下図のようなIPMIの設定画面が表示されます。
ベアメタルサーバーへのコンソール接続を実施するには、画面左側の”Remote Console”を選択し、ConsoleのLaunchを実行してください。
注釈
ご利用の環境より、「Launch」、「Web Start」からお選びください。IEがEdgeをご利用の場合は[Launch]を、それ以外のブラウザをご利用の場合は[Web Start]をご利用ください。
4. ベアメタルサーバーへの各種設定¶
ここでは、baremetal1へ以下の設定を行います。
- NTPサーバーへの接続
- OSライセンスのアクティベーション
- iSCSIイニシエータの設定
注釈
4.1. NTPサーバーへの接続¶
本サービスでは、サーバーインスタンスからアクセス可能な、NTPサーバを無償で提供しております。ライセンス認証やシステム時刻の同期にあたって必要となりますので、ご利用ください。
注釈
自社でNTPサーバ、DNSサーバをご用意されているお客様は、本操作は不要です。
4.1.1. 共通機能ゲートウェイへの接続¶
共通機能ゲートウェイで作成した共通機能ゲートウェイにインスタンスの接続を実施します。
「コントロールパネル」から「ベアメタルサーバー」→「サーバーリスト」へと進みます。
対象となるベアメタルサーバー(baremetal1)を選択します。
「物理NICポート」をクリックし、一番下に表示されているポートの「ポートをベアメタルサーバーに追加」をクリックします。
入力が必要な項目は下記の通りです。
項番 | 項目名 | 入力形式 | 入力値 | 注意事項 |
6-1 | ポート名 | 手動 | baremetal1-common-port | 英数字のみ入力してください。 |
6-4 | ロジカルネットワーク | 選択 | common_function_gw_access | |
6-7 | DHCPを用いてIPアドレスを割り当てる | 選択 | チェック有 |
これらの入力が完了したら、「ポートをベアメタルサーバーに追加」をクリックします。
注釈
この操作で物理NICに対して最初のロジカルネットワークを接続した場合、ベアメタルサーバーのOS上でそのNICに対してIPアドレスを手動で付与する必要があります。
4.1.2. IPアドレスの手動設定¶
リモートコンソールアクセスで、baremetal1へログインします。
コンソール画面から下記のコマンドを実施します。
vi /etc/sysconfig/network-scripts/ifcfg-enp00s0f3
viの入力モードにて「ONBOOT=yes」に変更し、下記内容を追加します。
BOOTPROTO=static
IPADDR0=169.254.0.9
PREFIX0=17
注釈
IPアドレスについては、DHCPにより割り振られたアドレスを追加してください。
ネットワークの再起動を実施します。
systemctl restart network
4.1.3. NTPサーバーへの疎通確認¶
コンソール画面から下記のようなpingを実行し疎通が出来ていることを確認します。
ping 169.254.127.1
169.254.127.1からReplyが返ってくることを確認します。
4.2. OSライセンスのアクティベーション¶
本サービスで提供しているオフィシャルイメージテンプレートからサーバーインスタンスを作成した場合、ライセンスのアクティベーションを実施する必要があります。 ライセンスのアクティベーションには、インスタンスを弊社側で用意しているライセンス認証サーバへ接続していただくことが必要です。 ここでは、その手順について説明します。
注釈
ライセンスをアクティベーションしていない場合でも、オフィシャルイメージテンプレートのご利用料金は発生いたします。
4.2.2. ライセンス認証サーバーへの疎通確認¶
上図に表示されているライセンス認証サーバーのアドレスに対して、コンソール画面から下記のようなpingを実行し疎通が出来ていることを確認します。
ping 169.254.127.17
169.254.127.17からReplyが返ってくることを確認します。
注釈
ライセンス認証については、自動的にKMSサーバーに認証を試行します。共通機能ゲートウェイへの接続以外に、お客様側で認証に関する操作を実施していただく必要はありません。
4.3. iSCSIイニシエータの設定¶
iSCSIイニシエータの設定を行います。
4.3.1. DNSの登録¶
コンソール画面から下記のコマンドを実施します。
vi /etc/sysconfig/network-scripts/ifcfg-enp00s0f0
viの入力モードにてTYPE=Ethernetの下に下記内容を追加します。
DNS1=8.8.8.8
入力が完了したら設定を保存し、ネットワークを再起動します。
systemctl restart network
その後下記を実施し、名前解決とインターネット接続ができていることを確認します。
ping ecl.ntt.com
4.3.2. iSCSIイニシエータ機能の追加¶
CentOSに「iscsi-initiator-utils」と「device-mapper-multipath」 をyumでインストールします。
システムの更新を行います。
yum -y update
コマンドの実行が完了して「Complete!」と表示されれば更新は完了です。
コンソール画面から下記コマンドを入力し、実行します。
yum -y install iscsi-initiator-utils device-mapper-multipath
コマンドの実行が完了して「Complete!」と表示されれば更新は完了です。
下記を実行し、ブロックストレージ作成時に入力するイニシエーターIQNをメモしておきます。
cat /etc/iscsi/initiatorname.iscsi
5. ベアメタルサーバーへの各種設定¶
ここでは、baremetal2へ以下の設定を行います。
- NTPサーバーへの接続
- OSライセンスのアクティベーション
- iSCSIイニシエータの設定
注釈
5.1. NTPサーバーへの接続¶
本サービスでは、サーバーインスタンスからアクセス可能な、NTPサーバを無償で提供しております。ライセンス認証やシステム時刻の同期にあたって必要となりますので、ご利用ください。
注釈
自社でNTPサーバ、DNSサーバをご用意されているお客様は、本操作は不要です。
5.1.1. 共通機能ゲートウェイへの接続¶
共通機能ゲートウェイで作成した共通機能ゲートウェイにインスタンスの接続を実施します。
左ペインのメニューから「ベアメタルサーバー」→「サーバーリスト」へと進みます。
対象となるベアメタルサーバー(baremetal2)を選択します。
「物理NICポート」をクリックし、一番下に表示されているポートの「ポートをベアメタルサーバーに追加」をクリックします。
入力が必要な項目は下記の通りです。
項番 | 項目名 | 入力形式 | 入力値 | 注意事項 |
6-1 | ポート名 | 手動 | baremetal2-common-port | 英数字のみ入力してください。 |
6-2 | ロジカルネットワーク | 選択 | common_function_gw_access | |
6-3 | DHCPを用いてIPアドレスを割り当てる | 選択 | チェック有 |
これらの入力が完了したら、「ポートをベアメタルサーバーに追加」をクリックします。
注釈
この操作で物理NICに対して最初のロジカルネットワークを接続した場合、ベアメタルサーバーのOS上でそのNICに対してIPアドレスを手動で付与する必要があります。
5.1.2. IPアドレスの手動設定¶
リモートコンソールアクセスで、baremetal1へログインします。
コンソール画面から下記のコマンドを実施します。
vi /etc/sysconfig/network-scripts/ifcfg-enp00s0f3
viの入力モードにて「ONBOOT=yes」に変更し、下記内容を追加します。
BOOTPROTO=static
IPADDR0=169.254.0.10
PREFIX0=17
注釈
IPアドレスについては、DHCPにより割り振られたアドレスを追加してください。
ネットワークの再起動を実施します。
systemctl restart network
5.1.3. NTPサーバーへの疎通確認¶
コンソール画面から下記のようなpingを実行し疎通が出来ていることを確認します。
ping 169.254.127.1
169.254.127.1からReplyが返ってくることを確認します。
5.2. OSライセンスのアクティベーション¶
本サービスで提供しているオフィシャルイメージテンプレートからサーバーインスタンスを作成した場合、ライセンスのアクティベーションを実施する必要があります。 ライセンスのアクティベーションには、インスタンスを弊社側で用意しているライセンス認証サーバへ接続していただくことが必要です。 ここでは、その手順について説明します。
注釈
ライセンスをアクティベーションしていない場合でも、オフィシャルイメージテンプレートのご利用料金は発生いたします。
5.2.2. ライセンス認証サーバーへの疎通確認¶
上図に表示されているライセンス認証サーバーのアドレスに対して、コンソール画面から下記のようなpingを実行し疎通が出来ていることを確認します。
ping 169.254.127.17
169.254.127.17からReplyが返ってくることを確認します。
注釈
ライセンス認証については、自動的にKMSサーバーに認証を試行します。共通機能ゲートウェイへの接続以外に、お客様側で認証に関する操作を実施していただく必要はありません。
5.3. iSCSIイニシエータの設定¶
iSCSIイニシエータの設定を行います。
5.3.1. DNSの登録¶
コンソール画面から下記のコマンドを実施します。
vi /etc/sysconfig/network-scripts/ifcfg-enp00s0f0
viの入力モードにてTYPE=Ethernetの下に下記内容を追加します。
DNS1=8.8.8.8
入力が完了したら設定を保存し、ネットワークを再起動します。
systemctl restart network
その後下記を実施し、名前解決とインターネット接続ができていることを確認します。
ping ecl.ntt.com
5.3.2. iSCSIイニシエータ機能の追加¶
CentOSに「iscsi-initiator-utils」と「device-mapper-multipath」 をyumでインストールします。
システムの更新を行います。
yum -y update
コマンドの実行が完了して「Complete!」と表示されれば更新は完了です。
コンソール画面から下記コマンドを入力し、実行します。
yum -y install iscsi-initiator-utils device-mapper-multipath
コマンドの実行が完了して「Complete!」と表示されれば更新は完了です。
下記を実行し、ブロックストレージ作成時に入力するイニシエーターIQNをメモしておきます。
cat /etc/iscsi/initiatorname.iscsi
6. PostgreSQLの設定¶
baremetal1にPostgreSQLをインストールします。
baremetal1にリモートコンソールアクセスし、下記コマンドを実行します。
yum install -y https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
yum install -y postgresql95
yum install -y postgresql95-server
コマンドの実行が完了して「Complete!」と表示されればインストールは完了です。
次に、PostgreSQLが利用するディレクトリ作成をブロックストレージ上に作成します。
mkdir -p /mnt/dbfp/pgdata /mnt/dbfp/pgxlog /mnt/dbfp/pgarch/arc1
/mnt/dbfp/pgdata | DBクラスタが作成されるディレクトリ |
/mnt/dbfp/pgxlog | WAL格納場所があるディレクトリ |
/mnt/dbfp/pgarch/arc1 | WALアーカイブ先ディレクトリ |
次に、postgresユーザの環境設定をします。
コンソール画面から下記コマンドを入力し、実行します。
#su - postgres
$vi .bash_profile
(以下を追記)
-----ここから
PGDATA=/mnt/dbfp/pgdata/data
export PGDATA
export PATH=/usr/pgsql-9.5/bin:$PATH
-----ここまで
$exit
#chown -R postgres:postgres /mnt/dbfp
次に、PostgreSQL初期化と設定投入を行います。
コンソール画面から下記コマンドを入力し、実行します。
# su - postgres
$ initdb -D /mnt/dbfp/pgdata/data -X /mnt/dbfp/pgxlog/pg_xlog --encoding=UTF8 --no-locale
$ vi /mnt/dbfp/pgdata/data/postgresql.conf
(以下を追記(一番下に追記で良い))
-----ここから
listen_addresses = '*'
wal_level = hot_standby
max_wal_senders = 8
wal_keep_segments = 32
hot_standby = on
max_standby_streaming_delay = -1
max_standby_archive_delay = -1
archive_mode = on
archive_command = '/bin/cp %p /mnt/dbfp/pgarch/arc1/%f'
#synchronous_standby_names = ''
synchronous_commit = on
restart_after_crash = off
wal_sender_timeout = 20s
wal_receiver_status_interval = 5s
hot_standby_feedback = on
-----ここまで
コンソール画面から下記コマンドを入力し、実行します。
$ vi /mnt/dbfp/pgdata/data/pg_hba.conf
(以下を追記(一番下に追記で良い))
-----ここから
host all all 0.0.0.0/0 md5
host replication repuser 0.0.0.0/0 md5
-----ここまで
PostgreSQLを起動し、レプリケーション用ユーザ作成します。
$ pg_ctl -w start
$ psql -c "CREATE ROLE repuser REPLICATION LOGIN PASSWORD 'reppassword'"
$ pg_ctl stop
次に、pgpassを作成します。
コンソール画面から下記コマンドを入力し、実行します。
$ vi ~/.pgpass
192.168.6.252:5432:replication:repuser:reppassword
192.168.6.254:5432:replication:repuser:reppassword
$ chmod 600 ~/.pgpass
次に、baremetal2にPostgreSQLをインストールします。
baremetal2にリモートコンソールアクセスし、下記コマンドを実行します。
yum install -y https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
yum install -y postgresql95
yum install -y postgresql95-server
コマンドの実行が完了して「Complete!」と表示されればインストールは完了です。
次に、PostgreSQLが利用するディレクトリ作成をブロックストレージ上に作成します。
mkdir -p /mnt/dbfp/pgdata /mnt/dbfp/pgxlog /mnt/dbfp/pgarch/arc1
/mnt/dbfp/pgdata | DBクラスタが作成されるディレクトリ |
/mnt/dbfp/pgxlog | WAL格納場所があるディレクトリ |
/mnt/dbfp/pgarch/arc1 | WALアーカイブ先ディレクトリ |
次に、postgresユーザの環境設定をします。
コンソール画面から下記コマンドを入力し、実行します。
#su - postgres
$vi .bash_profile
(以下を追記)
-----ここから
PGDATA=/mnt/dbfp/pgdata/data
export PGDATA
export PATH=/usr/pgsql-9.5/bin:$PATH
-----ここまで
$exit
#chown -R postgres:postgres /mnt/dbfp
次に、pgpassを作成します。
コンソール画面から下記コマンドを入力し、実行します。
$ vi ~/.pgpass
192.168.6.252:5432:replication:repuser:reppassword
192.168.6.253:5432:replication:repuser:reppassword
$ chmod 600 ~/.pgpass
PostgreSQLの起動を行います。
baremetal1にリモートコンソールアクセスし、下記コマンドを実行します。
pg_ctl -w start
baremetal1からデータ取得を実施し、レプリケーションを開始します。
baremetal2にリモートコンソールアクセスし、下記コマンドを実行します。
$ pg_basebackup -D /mnt/dbfp/pgdata/data --xlog -h 192.168.6.253 -U repuser --xlogdir=/mnt/dbfp/pgxlog/pg_xlog
$ vi /mnt/dbfp/pgdata/data/recovery.conf
-----(ここから)
standby_mode = 'on'
primary_conninfo = 'host=192.168.6.253 port=5432 user=repuser password=reppassword'
-----(ここまで)
$ pg_ctl -w start
注釈
アプリケーション用ユーザ、DB、テーブルを作成します。
baremetal1にリモートコンソールアクセスし、下記コマンドを実行します。
$ psql -c "CREATE USER appdbuser WITH PASSWORD 'appdbpassword'"
$ psql -c "CREATE DATABASE appdb WITH OWNER appdbuser ENCODING 'UTF8'"
$ psql -d appdb -U appdbuser -c "CREATE TABLE customer(id integer primary key, name text, comment text)"
PostgreSQLの停止を行います。
baremetal2にリモートコンソールアクセスし、下記コマンドを実行します。
$ pg_ctl stop
$ exit
PostgreSQLの停止を行います。
baremetal1にリモートコンソールアクセスし、下記コマンドを実行します。
$ pg_ctl stop
$ exit
7. Pacemakerの設定¶
baremetal1にリモートコンソールアクセスし、下記コマンドを実行します。
# vi /etc/yum.repos.d/CentOS-Base.repo
([base], [updates]セクションに追記)
-----(ここから)
[base]
…
exclude=pacemaker* corosync* resource-agents* crmsh* cluster-glue* libqb* fence-agents* pcs*
[updates]
…
exclude=pacemaker* corosync* resource-agents* crmsh* cluster-glue* libqb* fence-agents* pcs*
-----(ここまで)
# curl -L -O https://osdn.net/projects/linux-ha/downloads/67817/pacemaker-repo-1.1.16-1.1.el7.x86_64.rpm
# yum install -y pacemaker-repo-1.1.16-1.1.el7.x86_64.rpm
# yum install -y pacemaker-all
次に、corosyncの設定を行います。
# vi /etc/corosync/corosync.conf
(以下を記載)
-----(ここから)
totem {
version: 2
token: 5000
rrp_mode: active
interface {
ringnumber: 0
bindnetaddr: 192.168.6.0
mcastaddr: 239.255.1.1
mcastport: 5405
}
}
logging {
syslog_facility: daemon
debug: off
}
quorum {
provider: corosync_votequorum
expected_votes: 2
}
-----(ここまで)
baremetal2にリモートコンソールアクセスし、下記コマンドを実行します。
# vi /etc/yum.repos.d/CentOS-Base.repo
([base], [updates]セクションに追記)
-----(ここから)
[base]
…
exclude=pacemaker* corosync* resource-agents* crmsh* cluster-glue* libqb* fence-agents* pcs*
[updates]
…
exclude=pacemaker* corosync* resource-agents* crmsh* cluster-glue* libqb* fence-agents* pcs*
-----(ここまで)
# curl -L -O https://osdn.net/projects/linux-ha/downloads/67817/pacemaker-repo-1.1.16-1.1.el7.x86_64.rpm
# yum install -y pacemaker-repo-1.1.16-1.1.el7.x86_64.rpm
# yum install -y pacemaker-all
次に、corosyncの設定を行います。
# vi /etc/corosync/corosync.conf
(以下を記載)
-----(ここから)
totem {
version: 2
token: 5000
rrp_mode: active
interface {
ringnumber: 0
bindnetaddr: 192.168.6.0
mcastaddr: 239.255.1.1
mcastport: 5405
}
}
logging {
syslog_facility: daemon
debug: off
}
quorum {
provider: corosync_votequorum
expected_votes: 2
}
-----(ここまで)
baremetal1にリモートコンソールアクセスし、下記コマンドを実行します。
# corosync-keygen -l
# scp -p /etc/corosync/authkey root@192.168.6.254:/etc/corosync/authkey
# vi /etc/sysconfig/pacemaker
(以下を末尾に追記)
-----
PCMK_fail_fast=yes
-----
# cp -p /usr/lib/systemd/system/corosync.service /etc/systemd/system
# vi /etc/systemd/system/corosync.service
-----
#Restart=on-failure
Restart=on-failure
# Specify a period longer than soft_margin as RestartSec.
#RestartSec=70
RestartSec=70
# rewrite according to environment.
#ExecStartPre=/sbin/modprobe softdog soft_margin=60
ExecStartPre=/sbin/modprobe softdog
-----
# cp -p /usr/lib/systemd/system/pacemaker.service /etc/systemd/system
# vi /etc/systemd/system/pacemaker.service
-----
# ExecStopPost=/bin/sh -c 'pidof crmd || killall -TERM corosync'
ExecStopPost=/bin/sh -c 'pidof crmd || killall -TERM corosync'
-----
baremetal2にリモートコンソールアクセスし、下記コマンドを実行します。
# vi /etc/sysconfig/pacemaker
(以下を末尾に追記)
-----
PCMK_fail_fast=yes
-----
# cp -p /usr/lib/systemd/system/corosync.service /etc/systemd/system
# vi /etc/systemd/system/corosync.service
-----
#Restart=on-failure
Restart=on-failure
# Specify a period longer than soft_margin as RestartSec.
#RestartSec=70
RestartSec=70
# rewrite according to environment.
#ExecStartPre=/sbin/modprobe softdog soft_margin=60
ExecStartPre=/sbin/modprobe softdog
-----
# cp -p /usr/lib/systemd/system/pacemaker.service /etc/systemd/system
# vi /etc/systemd/system/pacemaker.service
-----
# ExecStopPost=/bin/sh -c 'pidof crmd || killall -TERM corosync'
ExecStopPost=/bin/sh -c 'pidof crmd || killall -TERM corosync'
-----
再起動し、動作確認を行います。
baremetal1にリモートコンソールアクセスし、下記コマンドを実行します。
# shutdown -r 0
# systemctl start pacemaker
# crm_mon -fArL -1
次に、ベアメタルサーバーの仮想アドレス宛通信の許可を行います。
左ペインのメニューから「クラウド/サーバー ローカルネットワーク」→「ロジカルネットワーク」へと進み、「AP-DB_NW」をクリックします。
表示された画面のポート一覧に記載されている「Fixed IP 192.168.6.253」の「ポートの編集」をクリックします。
「許可されたアドレスのペア」をクリックします。
入力が必要な項目は下記の通りです。
項番 | 項目名 | 入力形式 | 入力値 | 注意事項 |
7-1 | IPアドレス | 手動 | 192.168.6.252 |
上記を入力し、「ポートの編集」をクリックします。
次に、表示された画面のポート一覧に記載されている「Fixed IP 192.168.6.254」の「ポートの編集」をクリックします。
「許可されたアドレスのペア」をクリックします。
入力が必要な項目は下記の通りです。
項番 | 項目名 | 入力形式 | 入力値 | 注意事項 |
7-1 | IPアドレス | 手動 | 192.168.6.252 |
上記を入力し、「ポートの編集」をクリックします。
baremetal1にリモートコンソールアクセスし、下記コマンドを実行します。
# crm configure edit
-----
property \
no-quorum-policy="ignore" \
stonith-enabled="false" \
crmd-transition-delay="0s"
rsc_defaults \
resource-stickiness="INFINITY" \
migration-threshold="1"
primitive vipPostgreSQL ocf:heartbeat:IPaddr2 \
params \
ip="192.168.6.252" \
nic="enp00s0f0" \
cidr_netmask="24" \
op start timeout="60s" interval="0s" on-fail="restart" \
op monitor timeout="60s" interval="10s" on-fail="restart" \
op stop timeout="60s" interval="0s" on-fail="block"
primitive pgsql ocf:heartbeat:pgsql \
params \
pgctl="/usr/pgsql-9.5/bin/pg_ctl" \
psql="/usr/pgsql-9.5/bin/psql" \
pgdata="/mnt/dbfp/pgdata/data/" \
rep_mode="sync" \
node_list="baremetal1.localdomain baremetal2.localdomain" \
restore_command="/bin/cp /mnt/dbfp/pgarch/arc1/%f %p" \
primary_conninfo_opt="keepalives_idle=60 \
keepalives_interval=5 keepalives_count=5" \
master_ip="192.168.6.252" \
stop_escalate="0" \
repuser="repuser" \
op start timeout="30s" interval="0s" on-fail="restart" \
op stop timeout="30s" interval="0s" on-fail="block" \
op monitor timeout="30s" interval="11s" on-fail="restart" \
op monitor timeout="30s" interval="10s" on-fail="restart" role="Master" \
op promote timeout="30s" interval="0s" on-fail="restart" \
op demote timeout="30s" interval="0s" on-fail="restart" \
op notify timeout="60s" interval="0s"
primitive pingCheck ocf:pacemaker:ping \
params \
name="default_ping_set" \
host_list="192.168.6.252" \
multiplier="100" \
timeout="2" \
attempts="4" \
options="-i 1" \
dampen="90" \
op start interval="0s" timeout="60s" on-fail="restart" \
op monitor interval="10s" timeout="60s" on-fail="restart" \
op stop interval="0s" timeout="60s" on-fail="ignore"
clone clnPingd \
pingCheck
ms msPostgreSQL pgsql \
meta \
master-max="1" \
master-node-max="1" \
clone-max="2" \
clone-node-max="1" \
notify="true"
location location-1 msPostgreSQL \
rule -inf: not_defined default_ping_set or default_ping_set lt 100
colocation colocation-1 inf: msPostgreSQL clnPingd
colocation colocation-2 inf: vipPostgreSQL msPostgreSQL:Master
order order-1 0: clnPingd msPostgreSQL symmetrical=false
order order-2 inf: msPostgreSQL:promote vipPostgreSQL:start symmetrical=false
order order-3 0: msPostgreSQL:demote vipPostgreSQL:stop symmetrical=false
-----
再起動し、動作確認を行います。
baremetal2にリモートコンソールアクセスし、下記コマンドを実行します。
# systemctl stop pacemaker
# systemctl start pacemaker
baremetal1にリモートコンソールアクセスし、下記コマンドを実行します。
# systemctl stop pacemaker
# systemctl start pacemaker