さくらのVPSで実現する3拠点DR(ディザスタリカバリ)¶
前提条件¶
同一ゾーン内のサーバー同士の接続には「スイッチ」が必要です。
複数拠点にサーバーを設置するため、拠点間(リージョン間)の接続や広域負荷分散には、さくらのクラウドで提供中のオプションサービス「 ブリッジ接続 」「 GSLB(広域負荷分散) 」が必要です。
接続できる さくらのVPS はV3以降(2012年3月29日以降のプランにて申し込まれたサーバー)です。
構築作業¶
NFSの追加・設定
スイッチの追加・設定
ブリッジの追加・設定
DB(マスター)サーバーとNFSの疎通確認
GSLBアプライアンスの追加・設定
NFSの追加・設定¶
DB(マスター)サーバーのバックアップ保存先として、NFSを利用します。
NFSの追加¶
「新規追加」を選択し、「NFS」をクリックします。
お支払いパターン、NFSの容量、リージョンを選択します。
ネットワーク情報を設定します。
IPアドレス |
ローカルネットワークのIPアドレスを入力します。 |
---|---|
ネットマスク |
ローカルネットワークのネットマスクを選択します。 |
任意でNFSの名前を入力し、「お支払い方法選択へ」をクリックします。
「お支払方法」を選択し、その他の申込内容に誤りがないか確認します。
支払いパターン |
前の画面で選択した内容の確認および変更が可能です。 |
---|---|
支払い方法 |
「クレジットカード」でお支払いの場合のみ、2週間のお試し期間をご利用いただけます。 |
ご請求額 |
毎月または毎年のお支払い金額と初回請求金額をご確認ください。 |
約款を確認し、「同意する」にチェックを入れ、「お支払いを確定する」をクリックします。
スイッチの追加・設定¶
スイッチの追加¶
さくらのVPS のコントロールパネルにログイン、「新規追加」を選択し、「スイッチ」をクリックします。
必要な情報を選択、または入力して「スイッチを追加」をクリックします。
スイッチを追加するゾーン(※) |
スイッチを追加するゾーンを選択します。 |
---|---|
名前 |
スイッチの名前を入力します。 |
説明 |
スイッチの役割など、管理する際に分かりやすい説明を入力します。 |
サーバとスイッチの接続¶
「ネットワーク」タブ内の「ネットワークインターフェース」から「接続先を設定する」をクリックします。
スイッチと接続するネットワークインターフェースを選択し、表示された接続先スイッチを選択します。その後、「接続先を設定」をクリックします。
東京 / 大阪 / 石狩の対象サーバをすべてスイッチに接続してください。
ブリッジ接続の追加・設定¶
複数拠点間でサービスを接続するため、「ブリッジ接続」の追加や設定を行います。
ブリッジの追加¶
「さくらのクラウド」のログイン画面からさくらインターネット会員としてログインします。
「さくらのクラウド(IaaS)」のアイコンをクリックします。
「ネットワーク」から「ブリッジ」をクリックします。
「追加」をクリックします。
「名前」と「説明」を入力(どちらも任意)して、下部の「作成」をクリックします。
確認画面が表示されますので「作成」をクリックします。
ステータスが「成功」になれば、ブリッジの追加は完了です。「閉じる」をクリックして追加作業を終了します。
ブリッジにスイッチを接続する¶
ブリッジを追加したゾーンを選択します。
「ネットワーク」から「ブリッジ」をクリックします。
スイッチと接続するブリッジをダブルクリック、または選択してから「詳細」をクリックします。
「VPSスイッチ」をクリックします。
「接続」をクリックします。
VPS側のスイッチを「-▼」から選択して、「接続」をクリックします。
DB(マスター)サーバーとNFSの疎通確認¶
マウントするサーバーの設定¶
ネットワークインターフェースへのローカルIPアドレス設定¶
VNCコンソール等でDB(マスター)サーバーにログインし、コマンドによる編集や設定ファイルの編集・新規作成を行います。
DB(マスター)サーバー |
ローカルIPアドレス 192.168.1.1 / サブネットマスク 255.255.255.0 |
---|---|
NFS |
ローカルIPアドレス 192.168.1.2 |
[CentOS 6]
設定ファイルを編集(または新規作成)する
$ vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
IPADDR="192.168.1.1"
NETMASK="255.255.255.0"
ONBOOT="yes"
TYPE="Ethernet"
設定を反映させる
$ ifup eth1
反映後の確認方法
$ ifconfig eth1
eth1 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
$ ping 192.168.1.2
pingの応答がない場合、eth1に接続したスイッチがブリッジに接続されているか確認してください。
[CentOS 7]
NICの確認
$ nmcli device show eth1
GENERAL.DEVICE: eth1
GENERAL.TYPE: ethernet
GENERAL.HWADDR: XX:XX:XX:XX:XX:XX
GENERAL.MTU: 1500
GENERAL.STATE: 30 (disconnected) ←デバイスが切断された状態
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
WIRED-PROPERTIES.CARRIER: on
NICを接続する
$ nmcli connection add type ethernet ifname eth1 con-name eth1
NICにローカルIPアドレスを追加する
$ nmcli connection modify eth1 ipv4.method manual ipv4.addresses "192.168.1.1/24" ipv6.method "ignore"
追加後の確認方法
$ nmcli device show eth1
GENERAL.DEVICE: eth1
GENERAL.TYPE: ethernet
GENERAL.HWADDR: XX:XX:XX:XX:XX:XX
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected) ←デバイスが接続された状態
GENERAL.CONNECTION: eth1
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/XX
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.1.1/24 ←ローカルIPアドレスが設定されている
IP4.GATEWAY: --
IP6.GATEWAY: --
$ ping 192.168.1.2
pingの応答がない場合、eth1に接続したスイッチがブリッジに接続されているか確認してください。
[Ubuntu 16.04]
NICに割り当てられたインターフェース名称を確認する
$ ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 9c:a3:ba:01:ad:c4 brd ff:ff:ff:ff:ff:ff
inet XXX.XXX.XXX.XXX/23 brd 160.16.51.255 scope global ens3
valid_lft forever preferred_lft forever
3: ens4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 9c:a3:ba:03:34:64 brd ff:ff:ff:ff:ff:ff
4: ens5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 9c:a3:ba:04:bb:04 brd ff:ff:ff:ff:ff:ff
設定ファイルを編集する
$ sudo vi /etc/network/interfaces
auto ens4
iface ens4 inet static
address 192.168.1.1
netmask 255.255.255.0
設定を反映させる
$ sudo ifup ens4
反映後の確認方法
$ ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 9c:a3:ba:01:ad:c4 brd ff:ff:ff:ff:ff:ff
inet XXX.XXX.XXX.XXX/23 brd 160.16.51.255 scope global ens3
valid_lft forever preferred_lft forever
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 9c:a3:ba:03:34:64 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global ens4
valid_lft forever preferred_lft forever
4: ens5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 9c:a3:ba:04:bb:04 brd ff:ff:ff:ff:ff:ff
$ ping 192.168.1.2
pingの応答がない場合、ens4に接続したスイッチがブリッジに接続されているか確認してください。
サーバにNFSを認識させる¶
[CentOS 6]
$ yum -y install rpcbind nfs-utils
$ chkconfig netfs on
$ mount 192.168.1.2:/export /mnt
[CentOS 7]
$ yum -y install rpcbind nfs-utils
$ mount 192.168.1.2:/export /mnt
[Ubuntu 16.04]
$ sudo apt update
$ sudo apt -y install nfs-common
$ sudo mount -t nfs 192.168.1.2:/export /mnt
マウントの確認¶
マウントの状態は、dfコマンドやmountコマンドで確認できます。「192.168.1.2:/export 〜」のようにNFSのローカルIPアドレスが表示されていればマウント完了です。
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda3 18193828 1702472 15560492 10% /
tmpfs 250952 0 250952 0% /dev/shm
/dev/vda1 243823 66289 164734 29% /boot
192.168.1.2:/export 100762112 1727616 93909376 2% /mnt
$ mount
/dev/vda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/vda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.1.2:/export on /mnt type nfs (rw,vers=4,addr=192.168.1.2,clientaddr=192.168.1.1)
システム起動時にNFSを認識させる¶
サーバーを再起動した際、NFSを自動でマウントするように「/etc/fstab」ファイルを編集します。
[CentOS]
$ vi /etc/fstab
以下を追加する
192.168.1.2:/export /mnt nfs defaults 0 0
[Ubuntu]
$ sudo vi /etc/fstab
以下を追加する
192.168.1.2:/export /mnt nfs defaults 0 0
以上でNFSを利用するための設定は完了です。
GSLBアプライアンスの追加・設定¶
また、ヘルスチェックは以下のIPアドレス範囲より行います。登録した実サーバ側では、以下の各IPアドレス範囲から指定したヘルスチェック種類に対して正常に応答するよう設定を行ってください。
153.120.86.80/28
133.242.241.0/28
133.242.248.16/28
27.133.134.208/28
27.133.140.32/28
GSLBの料金や仕様については、さくらのクラウド ドキュメント「 GSLB(広域負荷分散) 」をご確認ください。
GSLBアプライアンスの追加¶
「さくらのクラウド」のログイン画面からさくらインターネット会員としてログインします。
「グローバル」のアイコンをクリックすると、ダッシュボードが表示されます。
左メニューの「GSLB」をクリックします。
「追加」をクリックします。
必要な情報を選択または入力して「作成」をクリックします。
監視方法(*) |
IPアドレス、ポート番号で指定したロードバランシング先のサーバーの監視方法を http、https、ping、tcp より設定します。
http、https を指定すると追加設定項目が表示され、Hostヘッダと監視対象のパスと正常時に返答されるレスポンスコードの設定ができます。
tcp を指定すると、監視対象ポート番号の追加設定項目が表示されます。
|
---|---|
チェック間隔(秒) (*) |
実サーバーの死活監視を実行する間隔を設定します。設定値は10~60の範囲の整数値となります。 |
重み付け応答 (*) |
実サーバーに設定したIPアドレスごとに、応答確率を調整可能な重み付け設定を行うかどうかを選択します。 |
ソーリーサーバー |
バランシング先が全てダウン状態となった場合に誘導する先を設定します。 |
名前/説明/タグ/アイコン |
サーバーやディスク、他のアプライアンスと同様に、わかりやすい名前設定やタグ、アイコン機能による分類が可能です。 |
左メニューの「GSLB」をクリックすると、作成済みのGSLB一覧が表示されます。作成と同時に生成されるFQDNもここで確認できます。
以上でGSLBアプライアンスの作成は完了です。
実サーバーの設定¶
「実サーバ」をクリックした後、「追加」をクリックします。
必要な情報を選択または入力して、「作成」をクリックすると実サーバーが追加されます。
IPアドレス |
ロードバランシング先サーバのIPアドレスを設定します。 |
---|---|
有効/無効 |
ロードバランシング対象とするかどうかを指定します。実サーバ設定時に「有効」に設定すると、追加操作直後にロードバランシング対象に含まれます。 |
重み値 |
実サーバに設定したIPアドレスごとの応答確率を、1~10000の範囲の整数値で指定します。 |
操作確認の画面で「はい」をクリックします。この操作によってGSLBアプライアンス側へ設定が反映されます。
以上で実サーバの設定は完了です。
FQDNのDNS登録¶
www.example.jp IN CNAME site-000000000000.gslbN.sakura.ne.jp
※ CNAMEにはGSLB作成時や詳細画面に表示されるFQDNを指定してください