Softlayer+Pacemakerで構築するお手軽DR

41
SoftLayer+Pacemaker で構築するお手軽DR 2015/06/22 SoftLayer x Bluemix Girls Meetup Vol.1 1

Transcript of Softlayer+Pacemakerで構築するお手軽DR

Page 1: Softlayer+Pacemakerで構築するお手軽DR

SoftLayer+Pacemaker で構築するお手軽DR

2015/06/22 SoftLayer x Bluemix Girls Meetup Vol.1

1

Page 2: Softlayer+Pacemakerで構築するお手軽DR

今回のテーマのきっかけ 2

‣ SoftLayerは、「データセンター間通信無料」ぜひとも活用してみたい……けど、 複数データセンターを用いた構成のシステムって大型で作るのが大変なイメージ。

‣ OSS(Pacemaker)を使って、小型システムでも活用できる お手軽・低コストなDR環境を作れないか?と思いついたのが今回のテーマです

Page 3: Softlayer+Pacemakerで構築するお手軽DR

‣ オープンソースのHAクラスタソフトウェア

Pacemakerって? 3

‣ 「実際に、Pacemakerがどんなことをしてくれるのか」については、お話の中で説明します

※ 中身は硬派なソフトウェアです

Page 4: Softlayer+Pacemakerで構築するお手軽DR

今回作るもの 4

Webサーバ(東京)

Webサーバ(テキサス)

普段は東京がメインだけど、東京のサーバに問題が発生したら、 テキサス(Dallas)のほうが使えるようになる

めぇ~

常にお互いが 通信してる

Page 5: Softlayer+Pacemakerで構築するお手軽DR

今回作るもの 5

Webサーバ(東京)

Webサーバ(テキサス)

普段は東京がメインだけど、東京のサーバに問題が発生したら、 テキサス(Dallas)のほうが使えるようになる

めぇ~

常にお互いが 通信してる

Page 6: Softlayer+Pacemakerで構築するお手軽DR

今回作るもの 6

Webサーバ(東京)

Webサーバ(テキサス)

普段は東京がメインだけど、東京のサーバに問題が発生したら、 テキサス(Dallas)のほうが使えるようになる

めぇ~

俺は何度 でも蘇る!

常にお互いが 通信してる

Page 7: Softlayer+Pacemakerで構築するお手軽DR

今回作るもの 7

Webサーバ(東京)

Webサーバ(テキサス)

普段は東京がメインだけど、東京のサーバに問題が発生したら、 テキサス(Dallas)のほうが使えるようになる

SoftLayerとPacemakerがあればたぶんできる!! くらいの勢いでやってみました

めぇ~

俺は何度 でも蘇る!

常にお互いが 通信してる

Page 8: Softlayer+Pacemakerで構築するお手軽DR

構築手順書(キリッ8

‣ SoftLayerでサーバを作る

‣ DC間通信できるようにする

‣ 作ったサーバをWebサーバに仕立てあげる

‣ Pacemakerを入れて設定する

‣ 動作テストする

Page 9: Softlayer+Pacemakerで構築するお手軽DR

SoftLayerでサーバを作る

9

Page 10: Softlayer+Pacemakerで構築するお手軽DR

SoftLayerでサーバを作る 10

‣ SoftLayerでサーバ(Device)を作りますブラウザからアクセスして、注文するだけです

Page 11: Softlayer+Pacemakerで構築するお手軽DR

SoftLayerでサーバを作る 11

‣ 東京とテキサスに、それぞれサーバを作りました

OS CentOS 6.0

CPU 1core

MEMORY 1024MB

NIC2枚 (パブリックNW、 プライベートNW)

‣ 最小スペックで作っているため、1時間あたり$0.04です

<参考>

サーバ作成完了!

Page 12: Softlayer+Pacemakerで構築するお手軽DR

DC間通信できるようにする

12

Page 13: Softlayer+Pacemakerで構築するお手軽DR

DC間通信できるようにする 13

‣ SoftLayerのポータルから、VLAN Spanningをオンにするだけです

これで、2つの国に立てたサーバ同士が、 プライベートネットワークで通信できるように なった……はず!

Page 14: Softlayer+Pacemakerで構築するお手軽DR

DC間通信できるようにする 14

‣ 各Webサーバから、お互いのプライベートIPアドレスにpingを打って確かめてみました

DC間通信OK!!!

Page 15: Softlayer+Pacemakerで構築するお手軽DR

作ったサーバをWebサーバに 仕立てあげる

15

Page 16: Softlayer+Pacemakerで構築するお手軽DR

作ったサーバをWebサーバに仕立てあげる16

‣ 動作確認用に、適当なHTMLを準備します

Page 17: Softlayer+Pacemakerで構築するお手軽DR

作ったサーバをWebサーバに仕立てあげる17

‣ 動作確認用に、適当なHTMLを準備します

‣ CentOSにプリインストールされていたApacheをそのまま使用するため東京・テキサスの 両サーバそれぞれに/var/www/html/直下にHTMLを配置します

Page 18: Softlayer+Pacemakerで構築するお手軽DR

作ったサーバをWebサーバに仕立てあげる18

# service httpd start

‣ 両サーバのApache HTTP Serverを起動

Page 19: Softlayer+Pacemakerで構築するお手軽DR

作ったサーバをWebサーバに仕立てあげる19

# service httpd start

‣ 両サーバのパブリックIPに、ブラウザからアクセスしますどちらに繋いだかわかるように、画像変えてみました

‣ 両サーバのApache HTTP Serverを起動

<東京側:web01> <テキサス側:web02>

Page 20: Softlayer+Pacemakerで構築するお手軽DR

作ったサーバをWebサーバに仕立てあげる20

# service httpd start

‣ 両サーバのパブリックIPに、ブラウザからアクセスしますどちらに繋いだかわかるように、画像変えてみました

‣ 両サーバのApache HTTP Serverを起動

<東京側:web01> <テキサス側:web02>

テスト用Webサーバ準備完了!

Page 21: Softlayer+Pacemakerで構築するお手軽DR

Pacemakerを入れて設定する

21

Page 22: Softlayer+Pacemakerで構築するお手軽DR

Pacemakerを入れて設定する 22

‣ 一旦、SoftLayerを使って、2カ国それぞれにWebサーバができました

‣ ここから、「普段は東京だけで動いていて、 東京のWebサーバに障害があったときだけ テキサスにあるWebサーバが動き出す」ということを、Pacemakerで実現します

Page 23: Softlayer+Pacemakerで構築するお手軽DR

Pacemakerを入れて設定する 23

‣ Linux-HA Japan http://linux-ha.osdn.jp/wp/からダウンロードしたrpmを両サーバに送信 (ここでは、tmp直下に配置)

# rpm -ivh /tmp/pacemaker-repo-1.1.12-1.1.el6.x86_64.rpm # yum install pacemaker-all

‣ 下記のコマンドを両サーバで実行し、インストール完了

Page 24: Softlayer+Pacemakerで構築するお手軽DR

Pacemakerを入れて設定する 24

‣ 両サーバに、corosync(クラスタ制御機能)の設定を行います。東京とテキサスのサーバを、仲間同士だと認識させ、お互いの状態を確認し合います

Webサーバ(東京)

Webサーバ(テキサス)僕ら仲間だよーみんな元気ー?

Page 25: Softlayer+Pacemakerで構築するお手軽DR

Pacemakerを入れて設定する 25

‣ 両サーバに設定投入# vi /etc/corosync/corosync.conf

totem { version: 2 crypto_cipher: none crypto_hash: none interface { ringnumber: 0 bindnetaddr: <自身のプライベートIP> mcastport: 5405 ttl: 1 } transport: udpu } ~省略~ nodelist { node { ring0_addr: <NODE1のプライベートIP> nodeid: 1 } node { ring0_addr: <NODE2のプライベートIP> nodeid: 2 }

# corosync-keygen

‣ Webサーバ(東京)で認証キーを生成

‣ /etc/corosync/authkeyができるので、 Webサーバ(テキサス)に送付

Page 26: Softlayer+Pacemakerで構築するお手軽DR

Pacemakerを入れて設定する 26

‣ 続いて、Pacemaker(リソース制御機能)の設定を行いますここで、Webサーバ(東京)が、どうなったらなにするの?についてを設定します

Webサーバ(東京)

Webサーバ(テキサス)

めぇ~

めぇ~

東京でhttpdが停止したら、テキサスでhttpdを 立ち上げるよー

Page 27: Softlayer+Pacemakerで構築するお手軽DR

Pacemakerを入れて設定する 27

‣ crmコマンドで設定しますこの設定は、Webサーバ(東京)のみでOK!

# crm crm(live)# configure crm(live)configure#

# property stonith-enabled="false" \ no-quorum-policy="ignore" \ default-action-timeout="60" \ default-resource-stickiness="60" # rsc_defaults resource-stickiness="60" \ migration-threshold="1" # primitive res_httpd ocf:heartbeat:apache \ params configfile="/etc/httpd/conf/httpd.conf" port="80" \ op monitor interval="20s" # group rg_web res_httpd

# verify # commit # exit

‣ 入力後は、エラーがないか チェックしてからcommit

Page 28: Softlayer+Pacemakerで構築するお手軽DR

Pacemakerを入れて設定する 28

‣ 設定完了。両サーバで、正しく認識されているか確認してみよう

# crm_mon -rfA

Page 29: Softlayer+Pacemakerで構築するお手軽DR

Pacemakerを入れて設定する 29

‣ 設定完了。両サーバで、正しく認識されているか確認してみよう

# crm_mon -rfA

Page 30: Softlayer+Pacemakerで構築するお手軽DR

Pacemakerを入れて設定する 30

‣ 設定完了。両サーバで、正しく認識されているか確認してみよう

# crm_mon -rfA

Pacemaker設定完了!

Page 31: Softlayer+Pacemakerで構築するお手軽DR

動作テストする

31

Page 32: Softlayer+Pacemakerで構築するお手軽DR

動作テストする 32

‣ 東京のhttpdだけ起動した状態からスタート

<東京側:web01> <テキサス側:web02>

Page 33: Softlayer+Pacemakerで構築するお手軽DR

動作テストする 33

‣ 東京のhttpdを手動で停止させる

<東京側:web01> <テキサス側:web02>

Page 34: Softlayer+Pacemakerで構築するお手軽DR

動作テストする 34

‣ 東京のhttpdを手動で停止させる

<東京側:web01> <テキサス側:web02>

pacemakerが検知して、web02のhttpdを起動

Page 35: Softlayer+Pacemakerで構築するお手軽DR

動作テストする 35

‣ Webサーバ(テキサス)のhttpdが起動

<東京側:web01> <テキサス側:web02>

動作成功!!!

Page 36: Softlayer+Pacemakerで構築するお手軽DR

まとめと振り返り

36

Page 37: Softlayer+Pacemakerで構築するお手軽DR

まとめと振り返り 37

‣ 今回、SoftLayerのDC間通信を活用したい!Pacemakerを触ってみたい!という動機で検証してみました

‣ あっさりめに書いてはいるものの、初めて触った Pacemakerを動作するまでにもっていくまで、数時間かかりました……動いて良かった。(インストール方式が複数ある、 設定項目が多く複雑、別ネットワークでのクラスタ構成 の情報が少ない)

‣ サーバ作成からDC間通信までは30分程度で完了ひたすらに、サーバ側の設定だけを行えば良かったのはとても楽でした

Page 38: Softlayer+Pacemakerで構築するお手軽DR

まとめと振り返り 38

‣ SoftLayerのDC間通信は無料で使い放題。今回のような簡単なDR環境であれば、1時間あたり$0.08($0.04×2)で実現可能

‣ 今回は検証しなかったけれども、グローバルロードバランサを使えば、利用者に意識させずにアクセスの切り替えも可能?

‣ アプリサーバ、DBサーバを作って、DBレプリケーションやディスク同期も行えば、 本格的なWebアプリケーションでもDRできちゃう?

Page 39: Softlayer+Pacemakerで構築するお手軽DR

おしまい

39

Page 40: Softlayer+Pacemakerで構築するお手軽DR

参考にさせていただいたWebサイト40

‣ Linux-HA Japanhttp://linux-ha.osdn.jp/wp/

‣ プライベートネットワーク経由で異なるデータセンター間を接続する #softlayer http://www.creationline.com/lab/6134

‣ Pacemakerでかんたんクラスタリング体験してみよう! http://gihyo.jp/admin/serial/01/pacemaker

‣ OSSでLinuxサーバ構築 http://www.oss-d.net/drbd-pacemaker-corosync

‣ Qiita CentOS7 3台でクラスタ構築、仮想IPを体験 http://qiita.com/tukiyo3/items/3f8b99be73798df857fd

‣ Corosync と Pacemaker で作る HA 環境http://blog.cloudpack.jp/2014/07/14/corosync-pacemaker-ha/

Page 41: Softlayer+Pacemakerで構築するお手軽DR

パワーポイント素材 41

‣ シンプルなKeynoteのテーマ作った-OL兼任Pythonアイドルのブログ-ぴよぴよ.pyhttp://cocodrips.hateblo.jp/entry/2014/12/08/151222 https://github.com/cocodrips/keynote-themes