Softlayer+Pacemakerで構築するお手軽DR
Transcript of Softlayer+Pacemakerで構築するお手軽DR
SoftLayer+Pacemaker で構築するお手軽DR
2015/06/22 SoftLayer x Bluemix Girls Meetup Vol.1
1
今回のテーマのきっかけ 2
‣ SoftLayerは、「データセンター間通信無料」ぜひとも活用してみたい……けど、 複数データセンターを用いた構成のシステムって大型で作るのが大変なイメージ。
‣ OSS(Pacemaker)を使って、小型システムでも活用できる お手軽・低コストなDR環境を作れないか?と思いついたのが今回のテーマです
‣ オープンソースのHAクラスタソフトウェア
Pacemakerって? 3
‣ 「実際に、Pacemakerがどんなことをしてくれるのか」については、お話の中で説明します
※ 中身は硬派なソフトウェアです
今回作るもの 4
Webサーバ(東京)
Webサーバ(テキサス)
普段は東京がメインだけど、東京のサーバに問題が発生したら、 テキサス(Dallas)のほうが使えるようになる
めぇ~
常にお互いが 通信してる
今回作るもの 5
Webサーバ(東京)
Webサーバ(テキサス)
普段は東京がメインだけど、東京のサーバに問題が発生したら、 テキサス(Dallas)のほうが使えるようになる
めぇ~
常にお互いが 通信してる
今回作るもの 6
Webサーバ(東京)
Webサーバ(テキサス)
普段は東京がメインだけど、東京のサーバに問題が発生したら、 テキサス(Dallas)のほうが使えるようになる
めぇ~
俺は何度 でも蘇る!
常にお互いが 通信してる
今回作るもの 7
Webサーバ(東京)
Webサーバ(テキサス)
普段は東京がメインだけど、東京のサーバに問題が発生したら、 テキサス(Dallas)のほうが使えるようになる
SoftLayerとPacemakerがあればたぶんできる!! くらいの勢いでやってみました
めぇ~
俺は何度 でも蘇る!
常にお互いが 通信してる
構築手順書(キリッ8
‣ SoftLayerでサーバを作る
‣ DC間通信できるようにする
‣ 作ったサーバをWebサーバに仕立てあげる
‣ Pacemakerを入れて設定する
‣ 動作テストする
SoftLayerでサーバを作る
9
SoftLayerでサーバを作る 10
‣ SoftLayerでサーバ(Device)を作りますブラウザからアクセスして、注文するだけです
SoftLayerでサーバを作る 11
‣ 東京とテキサスに、それぞれサーバを作りました
OS CentOS 6.0
CPU 1core
MEMORY 1024MB
NIC2枚 (パブリックNW、 プライベートNW)
‣ 最小スペックで作っているため、1時間あたり$0.04です
<参考>
サーバ作成完了!
DC間通信できるようにする
12
DC間通信できるようにする 13
‣ SoftLayerのポータルから、VLAN Spanningをオンにするだけです
これで、2つの国に立てたサーバ同士が、 プライベートネットワークで通信できるように なった……はず!
DC間通信できるようにする 14
‣ 各Webサーバから、お互いのプライベートIPアドレスにpingを打って確かめてみました
DC間通信OK!!!
作ったサーバをWebサーバに 仕立てあげる
15
作ったサーバをWebサーバに仕立てあげる16
‣ 動作確認用に、適当なHTMLを準備します
作ったサーバをWebサーバに仕立てあげる17
‣ 動作確認用に、適当なHTMLを準備します
‣ CentOSにプリインストールされていたApacheをそのまま使用するため東京・テキサスの 両サーバそれぞれに/var/www/html/直下にHTMLを配置します
作ったサーバをWebサーバに仕立てあげる18
# service httpd start
‣ 両サーバのApache HTTP Serverを起動
作ったサーバをWebサーバに仕立てあげる19
# service httpd start
‣ 両サーバのパブリックIPに、ブラウザからアクセスしますどちらに繋いだかわかるように、画像変えてみました
‣ 両サーバのApache HTTP Serverを起動
<東京側:web01> <テキサス側:web02>
作ったサーバをWebサーバに仕立てあげる20
# service httpd start
‣ 両サーバのパブリックIPに、ブラウザからアクセスしますどちらに繋いだかわかるように、画像変えてみました
‣ 両サーバのApache HTTP Serverを起動
<東京側:web01> <テキサス側:web02>
テスト用Webサーバ準備完了!
Pacemakerを入れて設定する
21
Pacemakerを入れて設定する 22
‣ 一旦、SoftLayerを使って、2カ国それぞれにWebサーバができました
‣ ここから、「普段は東京だけで動いていて、 東京のWebサーバに障害があったときだけ テキサスにあるWebサーバが動き出す」ということを、Pacemakerで実現します
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
‣ 下記のコマンドを両サーバで実行し、インストール完了
Pacemakerを入れて設定する 24
‣ 両サーバに、corosync(クラスタ制御機能)の設定を行います。東京とテキサスのサーバを、仲間同士だと認識させ、お互いの状態を確認し合います
Webサーバ(東京)
Webサーバ(テキサス)僕ら仲間だよーみんな元気ー?
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サーバ(テキサス)に送付
Pacemakerを入れて設定する 26
‣ 続いて、Pacemaker(リソース制御機能)の設定を行いますここで、Webサーバ(東京)が、どうなったらなにするの?についてを設定します
Webサーバ(東京)
Webサーバ(テキサス)
めぇ~
めぇ~
東京でhttpdが停止したら、テキサスでhttpdを 立ち上げるよー
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
Pacemakerを入れて設定する 28
‣ 設定完了。両サーバで、正しく認識されているか確認してみよう
# crm_mon -rfA
Pacemakerを入れて設定する 29
‣ 設定完了。両サーバで、正しく認識されているか確認してみよう
# crm_mon -rfA
Pacemakerを入れて設定する 30
‣ 設定完了。両サーバで、正しく認識されているか確認してみよう
# crm_mon -rfA
Pacemaker設定完了!
動作テストする
31
動作テストする 32
‣ 東京のhttpdだけ起動した状態からスタート
<東京側:web01> <テキサス側:web02>
動作テストする 33
‣ 東京のhttpdを手動で停止させる
<東京側:web01> <テキサス側:web02>
動作テストする 34
‣ 東京のhttpdを手動で停止させる
<東京側:web01> <テキサス側:web02>
pacemakerが検知して、web02のhttpdを起動
動作テストする 35
‣ Webサーバ(テキサス)のhttpdが起動
<東京側:web01> <テキサス側:web02>
動作成功!!!
まとめと振り返り
36
まとめと振り返り 37
‣ 今回、SoftLayerのDC間通信を活用したい!Pacemakerを触ってみたい!という動機で検証してみました
‣ あっさりめに書いてはいるものの、初めて触った Pacemakerを動作するまでにもっていくまで、数時間かかりました……動いて良かった。(インストール方式が複数ある、 設定項目が多く複雑、別ネットワークでのクラスタ構成 の情報が少ない)
‣ サーバ作成からDC間通信までは30分程度で完了ひたすらに、サーバ側の設定だけを行えば良かったのはとても楽でした
まとめと振り返り 38
‣ SoftLayerのDC間通信は無料で使い放題。今回のような簡単なDR環境であれば、1時間あたり$0.08($0.04×2)で実現可能
‣ 今回は検証しなかったけれども、グローバルロードバランサを使えば、利用者に意識させずにアクセスの切り替えも可能?
‣ アプリサーバ、DBサーバを作って、DBレプリケーションやディスク同期も行えば、 本格的なWebアプリケーションでもDRできちゃう?
おしまい
39
参考にさせていただいた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/
パワーポイント素材 41
‣ シンプルなKeynoteのテーマ作った-OL兼任Pythonアイドルのブログ-ぴよぴよ.pyhttp://cocodrips.hateblo.jp/entry/2014/12/08/151222 https://github.com/cocodrips/keynote-themes