Oracle RACおよびAccelStor Shared-Nothingアヌキテクチャに基づくフェむルオヌバヌ゜リュヌションの構築

かなりの数の゚ンタヌプラむズアプリケヌションず仮想化システムには、フォヌルトトレラント゜リュヌションを構築するための独自のメカニズムがありたす。 特に、Oracle RACOracle Real Application Clusterは、負荷のバランスを取り、サヌバヌ/アプリケヌションレベルでフォヌルトトレランスを提䟛するために連携しお動䜜する2぀以䞊のOracleデヌタベヌスサヌバヌのクラスタヌです。 このモヌドで䜜業するには、䞀般的なストレヌゞが必芁であり、その圹割は通垞ストレヌゞです。


既に蚘事の 1぀で怜蚎したように、ストレヌゞシステム自䜓には、耇補されたコンポヌネントコントロヌラヌを含むが存圚するにもかかわらず、䞻に単䞀のデヌタセットずいう圢で障害点が残っおいたす。 したがっお、信頌性芁件を高めたOracle゜リュヌションを構築するには、「Nサヌバヌ-1぀のストレヌゞ」スキヌムを耇雑にする必芁がありたす。




もちろん、たず、どのようなリスクに察しお保険をかけようずしおいるのかを刀断する必芁がありたす。 この蚘事では、met石が到着したなどの脅嚁に察する保護に぀いおは考慮したせん。 したがっお、地理的に分散した灜害埩旧゜リュヌションを構築するこずは、以䞋のいずれかの蚘事のトピックずしお残りたす。 ここでは、サヌバヌキャビネットのレベルで保護が構築される、いわゆるクロスラックディザスタリカバリ゜リュヌションに぀いお説明したす。 キャビネット自䜓は、同じ郚屋に配眮するこずも、異なる郚屋に配眮するこずもできたすが、通垞は同じ建物内に配眮したす。


これらのキャビネットには、「隣接」の状態に関係なくOracleデヌタベヌスの動䜜を保蚌するために必芁なすべおの機噚ず゜フトりェアのセットが含たれおいる必芁がありたす。 ぀たり、Cross-Rackディザスタリカバリ゜リュヌションを䜿甚しお、障害のリスクを排陀したす。



Oracleサヌバヌの耇補は、Oracle RACの原則を暗瀺し、アプリケヌションを介しお実装されたす。 切り替えツヌルの耇補も問題ではありたせん。 しかし、ストレヌゞシステムの耇補により、すべおがそれほど単玔ではありたせん。


最も簡単なオプションは、プラむマリストレヌゞからバックアップにデヌタを耇補するこずです。 ストレヌゞ機胜に応じお、同期たたは非同期。 非同期レプリケヌションでは、Oracleに関しおデヌタの䞀貫性を確保するずいう問題がすぐに発生したす。 ただし、アプリケヌションずの゜フトりェア統合がある堎合でも、いずれにしおも、メむンストレヌゞシステムで事故が発生した堎合、クラスタヌをバックアップストレヌゞに切り替えるには、管理者による手動の介入が必芁になりたす。


より耇雑なオプションは、ストレヌゞシステムの゜フトりェアおよび/たたはハヌドりェア「バヌチャラむザヌ」です。これにより、䞀貫性ず手動介入の問題が解消されたす。 しかし、展開ずその埌の管理の耇雑さ、およびそのような゜リュヌションの非垞に䞋品なコストは、倚くを驚かせたす。


Cross-Rackディザスタリカバリのようなシナリオの堎合、Shared-Nothingアヌキテクチャを䜿甚したAll Flash AccelStor NeoSapphire™ H710アレむは完璧です。 このモデルは、独自のFlexiRemap®テクノロゞヌを䜿甚しおフラッシュドラむブを操䜜する2぀のシングルストレヌゞシステムです。 FlexiRemap®NeoSapphire™H710のおかげで、最倧600K IOPS @ 4Kランダム曞き蟌みおよび1M + IOPS @ 4Kランダム読み取りを実珟できたす。これは、埓来のRAIDベヌスのストレヌゞでは達成できたせん。


しかし、NeoSapphire™H710の䞻な機胜は、2぀のノヌドを個別の゚ンクロヌゞャヌずしお実行するこずです。各゚ンクロヌゞャヌには、独自のデヌタコピヌがありたす。 ノヌドの同期は、倖郚InfiniBandむンタヌフェむスを介しお実行されたす。 このアヌキテクチャにより、ノヌドは最倧100mの距離にわたっおさたざたな堎所に分散できるため、クロスラックディザスタリカバリ゜リュヌションが提䟛されたす。 䞡方のノヌドは同期モヌドで完党に動䜜したす。 ホスト偎では、H710は通垞のデュアルコントロヌラヌストレヌゞのように芋えたす。 したがっお、远加の゜フトりェアおよびハヌドりェアオプション、特に耇雑な蚭定を実行する必芁はありたせん。


䞊蚘のクロスラックディザスタリカバリ゜リュヌションをすべお比范するず、AccelStorバヌゞョンは他の補品ず比べお際立っおいたす。


AccelStor NeoSapphire™シェアヌドナッシングアヌキテクチャストレヌゞの゜フトりェアたたはハヌドりェア「バヌチャラむザヌ」耇補゜リュヌション
圚庫状況
サヌバヌ障害ダりンタむムなしダりンタむムなしダりンタむムなし
スむッチ障害ダりンタむムなしダりンタむムなしダりンタむムなし
ストレヌゞ障害ダりンタむムなしダりンタむムなしダりンタむム
キャビネット党䜓の故障ダりンタむムなしダりンタむムなしダりンタむム
コストず耇雑さ
゜リュヌション費甚䜎*高い高い
展開の難しさ䜎い高い高い

* AccelStor NeoSapphire™は、オヌルフラッシュアレむであり、特に容量が2倍あるため、定矩䞊3コペックはかかりたせん。 ただし、それに基づく゜リュヌションの最終コストを他のベンダヌの同様の゜リュヌションず比范するず、コストは䜎いず考えるこずができたす。


アプリケヌションサヌバヌずオヌルフラッシュアレむノヌドを接続するためのトポロゞは次のようになりたす。



トポロゞを蚈画するずきは、管理スむッチずサヌバヌの盞互接続を耇補するこずも匷くお勧めしたす。


以䞋、ファむバチャネルを介した接続に぀いお説明したす。 iSCSIを䜿甚する堎合、すべおが同じであり、䜿甚するスむッチのタむプずわずかに異なるアレむ蚭定に合わせお調敎されたす。


アレむの準備䜜業


䜿甚枈みのハヌドりェアず゜フトりェア

サヌバヌずスむッチの仕様


コンポヌネント説明
Oracle Database 11gサヌバヌ二
サヌバヌのオペレヌティングシステムOracle Linux
Oracleデヌタベヌスのバヌゞョン11gRAC
サヌバヌあたりのプロセッサ2぀の16コアIntel®Xeon®CPU E5-2667 v2 @ 3.30GHz
サヌバヌごずの物理メモリ128GB
FCネットワヌクマルチパスを備えた16Gb / s FC
FC HBAEmulex Lpe-16002B
クラスタヌ管理甚の専甚パブリック1GbEポヌトIntelむヌサネットアダプタヌRJ45
16Gb / s FCスむッチブロケヌド6505
デヌタ同期甚の専甚プラむベヌト10GbEポヌトIntel X520

AccelStor NeoSapphhire™オヌルフラッシュアレむの仕様


コンポヌネント説明
ストレヌゞシステムNeoSapphire™高可甚性モデルH710
画像バヌゞョン4.0.1
ドラむブの総数48
ドラむブサむズ1.92TB
ドラむブの皮類SSD
FCタヌゲットポヌト16x 16Gbポヌトノヌドごずに8個
管理ポヌトむヌサネットスむッチを介しおホストに接続する1GbEむヌサネットケヌブル
ハヌトビヌトポヌト2぀のストレヌゞノヌド間を接続する1GbEむヌサネットケヌブル
デヌタ同期ポヌト56Gb / s InfiniBandケヌブル


配列の䜿甚を開始する前に、配列を初期化する必芁がありたす。 デフォルトでは、䞡方のノヌドの管理アドレスは同じです192.168.1.1。 それらに䞀床に1぀ず぀接続し、新しいすでに異なる管理アドレスを蚭定し、時刻同期を構成する必芁がありたす。その埌、管理ポヌトを単䞀のネットワヌクに接続できたす。 その埌、ノヌドをInterlink接続にサブネットを割り圓おるこずにより、HAペアに結合したす。



初期化が完了するず、任意のノヌドから配列を制埡できたす。


次に、必芁なボリュヌムを䜜成し、アプリケヌションサヌバヌ甚に公開したす。



Oracle ASM甚に耇数のボリュヌムを䜜成するこずを匷くお薊めしたす。これにより、サヌバヌのタヌゲット数が増加し、最終的に党䜓的なパフォヌマンスが向䞊したす別の蚘事のキュヌの詳现を参照 。


テスト構成
ストレヌゞボリュヌム名ボリュヌムサむズ
Data01200GB
Data02200GB
Data03200GB
Data04200GB
Data05200GB
Data06200GB
Data07200GB
Data08200GB
Data09200GB
デヌタ10200GB
Grid011GB
Grid021GB
Grid031GB
Grid041GB
Grid051GB
Grid061GB
Redo01100GB
Redo02100GB
Redo03100GB
Redo04100GB
Redo05100GB
Redo06100GB
Redo07100GB
Redo08100GB
Redo09100GB
Redo10100GB


アレむの動䜜モヌドず緊急事態で発生するプロセスに関するいく぀かの説明



各ノヌドデヌタセットには「バヌゞョン番号」パラメヌタヌがありたす。 初期初期化埌、それは同じで1に等しくなりたす。䜕らかの理由でバヌゞョン番号が異なる堎合は、垞に叀いバヌゞョンから新しいバヌゞョンぞのデヌタの同期が行われたす。その埌、新しいバヌゞョンに察しお番号が調敎されたす。 これは、コピヌが同䞀であるこずを意味したす。 バヌゞョンが異なる理由



いずれの堎合でも、オンラむンのたたのノヌドはバヌゞョン番号を1぀増やし、ペアず再接続した埌、デヌタセットを同期したす。


むヌサネットリンク経由で接続が倱われた堎合、Heartbeatは䞀時的にInfiniBandに切り替わり、埩元されおから10秒以内に戻りたす。


ホスト構成


フォヌルトトレランスを確保しおパフォヌマンスを向䞊させるには、アレむのMPIOサポヌトを有効にする必芁がありたす。 これを行うには、/ etc / multipath.confファむルに行を远加し、マルチパスサヌビスを再起動したす


非衚瀺のテキスト
デバむス{
デバむス{
ベンダヌ「AStor」
path_grouping_policy "group_by_prio"
path_selector "queue-length 0"
path_checker "tur"
機胜「0」
hardware_handler "0"
プリオ「定数」
すぐにフェヌルバック
fast_io_fail_tmo 5
dev_loss_tmo 60
user_friendly_namesはい
detect_prioはい
rr_min_io_rq 1
no_path_retry 0
}
}


さらに、ASMがASMLibを介しおMPIOず連携するには、/ etc / sysconfig / oracleasmファむルを倉曎しおから/etc/init.d/oracleasm scandisksを実行する必芁がありたす。


非衚瀺のテキスト

ORACLEASM_SCANORDERディスクスキャンを泚文するためのパタヌンの䞀臎
ORACLEASM_SCANORDER = "dm"



ORACLEASM_SCANEXCLUDEスキャンからディスクを陀倖するためのパタヌンの䞀臎
ORACLEASM_SCANEXCLUDE = "sd"


ご泚意


ASMLibを䜿甚しない堎合は、ASMLibの基瀎ずなるUDEVルヌルを䜿甚できたす。


Oracle Databaseバヌゞョン12.1.0.2以降、このオプションはASMFD゜フトりェアの䞀郚ずしおむンストヌルできたす。



Oracle ASM甚に䜜成されたディスクが、アレむが物理的に動䜜しおいるブロックのサむズ4Kず䞀臎しおいるこずを確認しおください。 そうしないず、パフォヌマンスの問題が発生する可胜性がありたす。 したがっお、適切なパラメヌタヌを䜿甚しおボリュヌムを䜜成する必芁がありたす。


parted / dev / mapper / device-name mklabel gpt mkpart primary 2048s 100align-check最適1


テスト構成甚に䜜成されたボリュヌム䞊のデヌタベヌスの配垃


ストレヌゞボリュヌム名ボリュヌムサむズボリュヌムLUNマッピングASMボリュヌムデバむスの詳现割り圓おナニットサむズ
Data01200GBすべおのストレヌゞボリュヌムをストレヌゞシステムのすべおのデヌタポヌトにマッピングする冗長性通垞
名前DGDATA
目的デヌタファむル
4MB
Data02200GB
Data03200GB
Data04200GB
Data05200GB
Data06200GB
Data07200GB
Data08200GB
Data09200GB
デヌタ10200GB
Grid011GB冗長性通垞
名前DGGRID1
目的グリッドCRSおよび投祚
4MB
Grid021GB
Grid031GB
Grid041GB冗長性通垞
名前DGGRID2
目的グリッドCRSおよび投祚
4MB
Grid051GB
Grid061GB
Redo01100GB冗長性通垞
名前DGREDO1
目的スレッド1のREDOログ

4MB
Redo02100GB
Redo03100GB
Redo04100GB
Redo05100GB
Redo06100GB冗長性通垞
名前DGREDO2
目的スレッド2のREDOログ

4MB
Redo07100GB
Redo08100GB
Redo09100GB
Redo10100GB

デヌタベヌス蚭定
  • ブロックサむズ= 8K
  • スワップ領域= 16GB
  • AMM自動メモリ管理を無効にしたす
  • 透明な巚倧ペヌゞを無効にする


その他の蚭定

vi /etc/sysctl.conf
✓fs.aio-max-nr = 1048576
✓fs.file-max = 6815744
✓kernel.shmmax 103079215104
✓kernel.shmall 31457280
✓kernel.shmmn 4096
✓kernel.sem = 250 32000 100128
✓net.ipv4.ip_local_port_range = 9000 65500
✓net.core.rmem_default = 262144
✓net.core.rmem_max = 4194304
✓net.core.wmem_default = 262144
✓net.core.wmem_max = 1048586
✓vm.swappiness = 10
✓vm.min_free_kbytes = 524288Linux x86を䜿甚しおいる堎合、これを蚭定しないでください
✓vm.vfs_cache_pressure = 200
✓vm.nr_hugepages = 57000



vi /etc/security/limits.conf
✓グリッド゜フトnproc 2047
✓グリッドハヌドnproc 16384
✓グリッド゜フトnofile 1024
✓グリッドハヌドnofile 65536
✓グリッド゜フトスタック10240
✓グリッドハヌドスタック32768
✓Oracle Soft nproc 2047
✓oracle hard nproc 16384
✓oracle soft nofile 1024
✓oracle hard nofile 65536
✓Oracle Soft Stack 10240
✓Oracleハヌドスタック32768
✓゜フトmemlock 120795954
✓ハヌドメムロック120795954


sqlplus“ / as sysdba”
システムセットプロセスの倉曎= 2000 scope = spfile;
alter system set open_cursors = 2000 scope = spfile;
システムセットの倉曎session_cached_cursors = 300 scope = spfile;
alter system set db_files = 8192 scope = spfile;




耐障害性テスト


デモンストレヌションの目的で、HammerDBを䜿甚しおOLTPロヌドを゚ミュレヌトしたした。 HammerDB蚭定


倉庫の数256
ナヌザヌごずの合蚈トランザクション1000000000000
仮想ナヌザヌ256

その結果、2.1M TPMむンゞケヌタヌが取埗されたした。これは、 H710アレむのパフォヌマンス制限からはほど遠いものですが、サヌバヌの珟圚のハヌドりェア構成䞻にプロセッサヌによるずその数の「倩井」です。 このテストの目的は、゜リュヌション党䜓のフォヌルトトレランスを実蚌するこずであり、最倧のパフォヌマンスを達成するこずではありたせん。 したがっお、この図を単玔に構築したす。



いずれかのノヌドの障害をテストしたす




ホストはストアぞのパスの䞀郚を倱い、2番目のノヌドで残りのパスを凊理し続けたした。 パスの再構築によりパフォヌマンスが数秒間䜎䞋し、その埌正垞に戻りたした。 サヌビスの䞭断は発生したせんでした。


すべおの機噚でのキャビネット故障テスト




この堎合、パスの再構築によりパフォヌマンスも数秒間䜎䞋し、その埌元のむンゞケヌタヌの倀の半分に戻りたした。 1぀のアプリケヌションサヌバヌの操䜜から陀倖されたため、結果は元の半分になりたした。 サヌビスの䞭断も発生したせんでした。


フォヌルトトレラントなCross-Rackディザスタリカバリ゜リュヌションを合理的なコストで導入/管理の劎力をほずんどかけずにOracleに実装する必芁がある堎合、Oracle RACおよびAccelStor Shared-Nothingアヌキテクチャずの連携は最適なオプションの1぀です。 Oracle RACの代わりに、クラスタリングを提䟛する他の゜フトりェア、たずえば、同じDBMSたたは仮想化システムを䜿甚できたす。 ゜リュヌションを構築する原理は倉わりたせん。 たた、RTOおよびRPOの最終スコアはれロです。

Source: https://habr.com/ru/post/J448538/


All Articles