View
1.289
Download
5
Category
Preview:
DESCRIPTION
db tech showcase 大阪 2014 での講演資料です。
Citation preview
SE(SE One) をもっと有効活用しよう!
セントラル短資 FX 株式会社
清水 純
はじめに
今回いくつか製品を紹介させていただきますが、記載内容については私個人の感想ですので特定の企業や製品について宣伝するものではありません。
また、セントラル短資 FX 株式会社が内容を保証するものでもありません。
あくまでも参考資料としてご利用ください。
2
自己紹介
セントラル短資 FX 株式会社 (
http://www.central-tanshifx.com/)
清水 純( jun.shimizu@central-tanshifx.com) インフラ ( ネットワーク以外 ) 関連全般 ( ミドルウェ
ア含む ) の製品 選定から検証 / 導入 / 運用までほぼすべてを担当してい
ます。 最近は VMware Horizon View 関連の作業に忙殺され
ていま す。。。
3
会社紹介
• インターネット上での FX サービスを提供しています。
4
ここから本題です。
CPU の性能 ( コア数 ) が上がり、安価になったメモリや、 SSD や PCIe SSD の登場などサーバの全体の性能が向上しています。こういった前提からサーバのリプレイスやサービスの更改タイミングでダウンサイジングを検討されるかたもいらっしゃると思います。そこで、いくつか選択肢があると思います。
1.サーバの最新機種への入替え、上物はそのまま。2.EE→SE(SE One) への入替えを検討する。3.コスト削減を目標に OSS-DB への乗り換えを検
討する。
等々あるかと思いますが、どれを選択しますか?5
1. サーバを入替えてそのまま使用する場合
最小限のアプリの修正等で済むため、工数は最小限に抑えられる。ただし、最近は CPU コア数が飛躍的に増加しているので追加ライセンスを購入する必要があるかもしれません。この問題を回避するためには、
・ DB アプライアンスや仮想化を駆使してライセンスコストを下げる。
→ せっかく購入したハードの性能を生かしきれない。 性能が足りなければ結局追加ライセンスを購入する必要がある。
・ 複数の DB 環境を統合する → そもそも統合可能な DB 環境がそんなに存在するか? 12c のプラガブル DB 機能で比較的簡単に実装可能となったが、 Multitenant オプションが別途必要
6
2. EE→SE(SE One) への入替えを検討する場合EE の標準機能や Partitioning といったオプション製品を使用していた場合、当然使用できなくなりますのでその機能の補完や代替が必要となります。それでは、 SE と SE One のどちらを選択しますか?
・ SE を選択する理由 → RAC 化が必須の場合。おもにダウンタイムの短縮とリソースの有効活用 をしたいといった場合のみの選択肢だと思っています。 ( 普通に使う上で、 4CPU もの処理を必要とはしませんし、そこまで SE では なかなか使いこなせないです )
・ SE One を選択する理由 → RAC 化が必須ではない場合。 SE では足りない機能はサードパーティ製品 や OSS 製品で代用。今日はこの部分についてお話します。 7
3. コスト削減を目標に OSS-DB へ乗り換える場合3 つの選択肢では一番ハードルが高いと思っています。対応アプリの修正や移行計画、単体 / 結合テスト等を十分に練れていないと失敗しますし、工数が他のパターンに比べて大きくなりがちです。採用する OSS-DB にかなり詳しい人員がいないと中小企業においては自社内で完結させるのは無理があります。素直に、移行を手伝ってくれるパートナーを探しましょう。結果として、一時費用が膨らみ、 OSS-DB を採用したコスト削減が相殺される可能性があります。
もちろん、長期でみればコスト削減効果は期待できます。
8
SE One の活用方法 1( 可用性の担保 )
DB の冗長化方法として、 RAC/HA/ レプリケーション・ 2 フェーズコミット (2PC) 等々あるかと思います。・ RAC
- SE もしくは EE+RAC オプションが必要 (SE One不可 )
・ HA- 多少 ( 数分 ) のダウンタイムが許容できる。分散させ
るほど負荷 が高くない場合等々。
・レプリケーション・ 2PC- 更新頻度に比べて参照頻度が高い場合等々
ここでは、 HA 環境を安価に作る方法についてご紹介します。
9
HA 環境とは?
通常は Active/Standby構成のことを指します。共有ディスクを使用して、データはすべて共有ディスク上においてサーバ障害に対応するという構成です。
比較的シンプルな構成ですが、高可用性を担保するためには信頼性の高い共有ディスク (SAN/iSCSI/NAS) が必要であり、別途クラスタソフトも必要となります。
10
安価に構築する方法は?
共有ディスクDRBD(Distributed Replicated Block Device) を使用する
ことで、擬似的に共有ディスク環境を構築することがで
きます。- http://www.drbd.jp/
クラスタソフトPacemaker と Corosync/Heartbeat を利用す
ることで 商用製品にも劣らない管理 / 運用が可能です。
- http://linux-ha.sourceforge.jp/wp/
これらオープンソースのソフトウェアを組み合わせて安価に構築することが可能です。
11
デモ構成 (H/W イメージ )
12
bonding bondingInterConenct
&DRBD
bond
ing
bond
ing
192.168.1.11 192.168.1.12
10.0.1.11 10.0.1.12
VIP 10.0.1.10
dev1 dev2
/oradata /oradata
デモ構成 ( ソフトウェアイメージ )
13
Oracle Linux
Primary
xfs
Master
VIP
OS
Messaging
ResourceManager
DRBD
Filesystem
Oracle
ServiceAddress
Oracle Linux
Secondary
Slave
ClusterStack
Services
Corosync
Pacemaker
Sync
Pacemaker クラスタの構成要素
14
・ リソース:監視対象のアプリケーション単位- primitive リソース:制御対象のアプリケーション- group リソース:上記 primitive の集まり- clone リソース:両系で同じように稼働するリソース- master/slave リソース : DRBD や MySQL レプリケー
ション等
・ 制約条件:リソースの配置先や起動順序の制御- location:配置先ノードの制御- colocation:同居制御- order:起動・終了順序制御
※ group リソースは colocation + order を自動的に設定したもの
デモ構成 ( クラスタ依存関係 )
15
DRBD/Primary
clone
Slave
ping ping
vip_check
Slave
Slave
Slave
Slave
master/slave
primitive
primitive
primitive
primitive
primitive
リソース種別制約条件
DRBD/Secondary
xfs
vip
Oracle Instance
Oracle Listener
Ord
er/C
oloc
atio
n/gr
oup
デモ構成 (LCMC:GUI管理ツール )
16
デモ
17
SE One の活用方法 2(DR 、レプリケーション )Active Data Guard や Golden Gate を使用するためには EE が必須のオプション製品です。これらの機能を使いたい場合には EE が必要では?→ そんなことはありません。以下の製品で代用できます。・ Active Data Guard 代替製品
- Dbvisit Standby(http://www.insight-tec.com/products/dbvisit)
- Standby Express(http://www.ydc.co.jp/solution/standby/0.html)
- DRBD Proxy(
http://www.3ware.co.jp/product/linbit-cluster-support/drbd-proxy)ちょっと異なりますが、 DR への適用が可能。 DRBD の
WAN対応版。
18
SE One の活用方法 2(DR 、レプリケーション )・ Golden Gate 代替製品
- Attunity(
http://www.insight-tec.com/products/Attunity/index.html)
- SharePlex for Oracle(http://www.questsoftware.jp/shareplex-for-oracle/)(
http://www.bakbone.co.jp/support/lesson_quest_db/lsdb201111.html)
SharePlex は 6年ほど前から弊社でも使用しています。複数のソース DB から1つのターゲット DB へデータを集約し、 BIツールを活用するためであったり、社員が (許可された範囲内で ) 自由にデータにアクセスすることを目的とした参照専用 DB を構築 / 運用するために活用しています。
19
SE One の活用方法 3(監査 )
DBA監査や標準監査であれば SE でも使用可能ですが、ファイングレイン監査や Audit Vault を使用するのであれば EE が必要となります。個人的には上記はどれも使い勝手がいまいちなので、監査要件がある場合にはサードパーティ製品の採用をお勧めします。
- PISO( メモリキャプチャ型 )(
http://www.insight-tec.com/products/piso/index.html)
- Chakra( ネットワークキャプチャ型 )(http://www.jsys.co.jp/solution/chakra.html/)
- Audit Master(Oracle の監査証跡機能を活用 )(
http://www.aqua-systems.co.jp/products/auditmaster/)
- IPLocks(Oracle の監査証跡機能を活用 )(http://www.iplocks.co.jp/index.html)
20
SE One の活用方法 3(監査 )
- SecureSphere DAM( ネットワークキャプチャ&エージェント型 )
(http://www.imperva.jp/products/database_security.asp)
弊社で採用し、運用で活用している製品です。DAM(Database Activity Monitoring) 以外にも、 DBF(DataBase Firewall) や WAF(Web Application Firewall) 等の製品もあります。
アプライアンス製品とバーチャルアプライアンス製品があり、アプライアンス製品は性能が頭打ちになってしまった経験があるので、導入の敷居はちょっと上がりますが監査対象が多い、流れるパケット量が多いといった場合は VMawre 上で動作するバーチャルアプライアンスでの導入を個人的にはお薦めします。
21
デモで使用した DRBD設定ファイル
22
resource oradata { device /dev/drbd1; disk /dev/sdb1; meta-disk internal; handlers { split-brain "/usr/local/lib/drbd/notify-split-brain.sh root"; fence-peer "/usr/local/lib/drbd/crm-fence-peer.sh"; after-resync-target "/usr/local/lib/drbd/crm-unfence-peer.sh"; } net { data-integrity-alg md5; after-sb-0pri discard-zero-changes; after-sb-1pri discard-secondary; max-buffers 8000; max-epoch-size 8000; sndbuf-size 0; }
DRBD リソース用設定ファイル (/etc/drbd.d/oradata.res)
デモで使用した DRBD設定ファイル (続き )
23
syncer { verify-alg md5; csums-alg md5; } disk { on-io-error detach; no-disk-barrier; no-disk-flushes; fencing resource-only; } on dev1 { address 192.168.1.11:7789; } on dev2 { address 192.168.1.12:7789; }}
デモで使用した Pacemaker設定ファイル
24
node dev1node dev2primitive pingd ocf:pacemaker:ping \ params multiplier="100" host_list="10.0.1.254" \ operations $id="pingd-operations" \ op start interval="0" timeout="60" on-fail="restart" \ op stop interval="0" timeout="20" on-fail="block" \ op monitor interval="10" timeout="60" on-fail="restart" start-delay="0" \ op reload interval="0" timeout="100"primitive res_drbd ocf:linbit:drbd \ params drbd_resource="oradata" \ operations $id="drbd_oradata-operations" \ op start interval="0" timeout="240" \ op promote interval="0" timeout="90" \ op demote interval="0" timeout="90" \ op stop interval="0" timeout="100" \ op monitor interval="10" timeout="20" start-delay="0" \ op notify interval="0" timeout="90”
Pacemaker 用設定 (# crm configure show)
デモで使用した Pacemaker設定ファイル(続き )
25
primitive res_fs_oradata ocf:heartbeat:Filesystem \ params device="/dev/drbd1" directory="/opt/oracle" fstype="xfs" \ op start interval="0" timeout="60" \ op stop interval="0" timeout="60" \ op monitor interval="20" timeout="40" start-delay="0" \ op notify interval="0" timeout="60"primitive res_oracle ocf:heartbeat:oracle \ params sid="ora112" home="/opt/oracle/app/product/11.2.0/db" user="oracle" shutdown_method="immediate" \ operations $id="res_oracle-operations" \ op start interval="0" timeout="120" \ op stop interval="0" timeout="120" \ op monitor interval="20" timeout="60" start-delay="0" \ op methods interval="0" timeout="5"primitive res_oralsnr ocf:heartbeat:oralsnr \ params sid="ora112" home="/opt/oracle/app/product/11.2.0/db" user="oracle" listener="listener" \ operations $id="res_oralsnr-operations" \ op start interval="0" timeout="120" \ op stop interval="0" timeout="120" \ op monitor interval="10" timeout="30" start-delay="0" \ op methods interval="0" timeout="5"
デモで使用した Pacemaker設定ファイル(続き )
26
primitive res_vip ocf:heartbeat:IPaddr2 \ params ip="10.0.1.10" nic="bond0" cidr_netmask="24" broadcast="10.0.1.255" iflabel="1" \ op start interval="0" timeout="20" \ op stop interval="0" timeout="20" \ op monitor interval="0" timeout="20" start-delay="0"primitive vip_check ocf:heartbeat:VIPcheck \ params target_ip="10.0.1.10" \ operations $id="vip_check-operations" \ op start interval="0" timeout="60" \ op stop interval="0" timeout="60" \ op monitor interval="10" timeout="60" start-delay="0"group rg_oracle vip_check res_fs_oradata res_vip res_oracle res_oralsnr \ meta target-role="Started"ms ms_drbd res_drbd \ meta clone-max="2" notify="true" target-role="Started"clone cl_pingd pingd \ meta clone-max="2" target-role="Started"location master_location_oracle rg_oracle \ rule $id="master_location_oracle-rule" -inf: not_defined pingd or pingd lt 100colocation col_res_drbd-oracle inf: rg_oracle:Started ms_drbd:Masterorder ord_oracle_after_drbd inf: ms_drbd:promote rg_oracle:start
デモで使用した Pacemaker設定ファイル(続き )
27
property $id="cib-bootstrap-options" \ dc-version="1.0.13-30bb726" \ cluster-infrastructure="openais" \ expected-quorum-votes="2" \ stonith-enabled="false" \ no-quorum-policy="ignore" \ pe-error-series-max="100" \ pe-warn-series-max="100" \ pe-input-series-max="100" \ last-lrm-refresh="1402479513"rsc_defaults $id="rsc-options" \ resource-stickiness="INFINITY" \ migration-threshold="2"
参考:http://www.slideshare.net/jshimi777/case-study-of-high-availability-oracle-by-using-the-io-drive-and-drbd-16662472
Recommended