{"id":31907,"date":"2019-10-31T21:43:53","date_gmt":"2019-10-31T18:43:53","guid":{"rendered":"https:\/\/prohoster.info\/blog\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing\/"},"modified":"2019-10-31T21:43:53","modified_gmt":"2019-10-31T18:43:53","slug":"postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing","title":{"rendered":"Costruzione di una soluzione resiliente basata su Oracle RAC e architettura AccelStor Shared-Nothing","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Un numero considerevole di applicazioni Enterprise e sistemi di virtualizzazione hanno i propri meccanismi per la creazione di soluzioni a prova di guasto. In particolare, Oracle RAC (Oracle Real Application Cluster) \u00e8 un cluster composto da due o pi\u00f9 server di database Oracle che lavorano insieme per bilanciare il carico e garantire la resilienza a livello di server\/applicazione. Per operare in questo modo \u00e8 necessario uno storage comune, che di solito \u00e8 fornito da uno storage SAN. <\/p>\n<p><\/p>\n<p>Come gi\u00e0 discusso in uno dei nostri <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/accelstor\/blog\/441780\/\">articoli<\/a><\/noindex>, lo storage SAN, nonostante la presenza di componenti ridondanti (inclusi i controller), ha comunque dei punti di guasto \u2014 principalmente, sotto forma di un unico insieme di dati. Pertanto, per costruire una soluzione Oracle con requisiti di affidabilit\u00e0 pi\u00f9 elevati, lo schema \"N server - uno storage SAN\" deve essere complicato.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di una soluzione resiliente basata su Oracle RAC e architettura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/779e46d9ae2d70251bc72f55941171a5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Prima di tutto, \u00e8 necessario determinare quali rischi stiamo cercando di coprire. Nel contesto di questo articolo non discuteremo la protezione contro minacce come \"un meteorite che colpisce\". Pertanto, la costruzione di una soluzione disaster recovery geograficamente distribuita rimarr\u00e0 un argomento per uno dei prossimi articoli. Qui esploreremo la cosiddetta soluzione Cross-Rack disaster recovery, in cui la protezione \u00e8 costruita a livello di armadi server. Gli armadi stessi possono trovarsi sia nella stessa stanza che in stanze diverse, ma di solito all'interno dello stesso edificio.<\/p>\n<p><\/p>\n<p>Questi armadi devono contenere tutta l'attrezzatura e il software necessari che consentano il funzionamento dei database Oracle indipendentemente dallo stato del \"vicino\". In altre parole, utilizzando una soluzione di Cross-Rack disaster recovery, escludiamo i rischi di guasto:<\/p>\n<p><\/p>\n<ul>\n<li>Server applicazione Oracle<\/li>\n<li>Sistemi di storage<\/li>\n<li>Sistemi di commutazione<\/li>\n<li>Guasto totale di tutta l'attrezzatura nell'armadio:\n<ul>\n<li>Guasto di alimentazione<\/li>\n<li>Guasto del sistema di raffreddamento<\/li>\n<li>Fattori esterni (umani, naturali, ecc.)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>La duplicazione dei server Oracle implica il principio stesso di funzionamento di Oracle RAC e si realizza tramite l'applicazione. Anche la duplicazione dei mezzi di commutazione non rappresenta un problema. Ma la duplicazione del sistema di storage \u00e8 un'altra questione.<\/p>\n<p><\/p>\n<p>La soluzione pi\u00f9 semplice \u00e8 la replica dei dati da uno storage principale a uno secondario. Pu\u00f2 essere sincrona o asincrona, a seconda delle capacit\u00e0 dello storage. Con la replica asincrona si pone subito il problema della garanzia di coerenza dei dati rispetto a Oracle. Ma anche se c'\u00e8 un'integrazione software con l'applicazione, in caso di guasto dello storage principale sar\u00e0 comunque necessaria l'intervento manuale degli amministratori per commutare il cluster su uno storage secondario.<\/p>\n<p><\/p>\n<p>Una soluzione pi\u00f9 complessa \u00e8 data dai \"virtualizzatori\" software o hardware dello storage, che evitano problemi di coerenza e interventi manuali. Tuttavia, la complessit\u00e0 di distribuzione e successiva gestione, nonch\u00e9 il costo considerevole di tali soluzioni, spaventano molti.<\/p>\n<p><\/p>\n<p>Per scenari come il disaster recovery Cross-Rack, la soluzione All Flash array AccelStor NeoSapphire\u2122 \u00e8 particolarmente adatta. <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/product\/neosapphire-h710\">H710<\/a><\/noindex> utilizzando l'architettura Shared-Nothing. Questo modello rappresenta un sistema di storage a due nodi che utilizza la propria tecnologia FlexiRemap\u00ae per lavorare con i dispositivi di archiviazione flash. Grazie a <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/\">FlexiRemap\u00ae<\/a><\/noindex> NeoSapphire\u2122 H710 pu\u00f2 garantire prestazioni fino a 600K IOPS@4K scritture casuali e 1M+ IOPS@4K letture casuali, cosa impossibile con gli storage basati su RAID classici.<\/p>\n<p><\/p>\n<p>La principale caratteristica della NeoSapphire\u2122 H710 \u00e8 l'implementazione di due nodi in caselle separate, ciascuna delle quali ha una propria copia dei dati. La sincronizzazione dei nodi avviene tramite l'interfaccia esterna InfiniBand. Grazie a questa architettura, \u00e8 possibile posizionare i nodi in diverse localit\u00e0 fino a 100 m di distanza, realizzando cos\u00ec una soluzione di disaster recovery Cross-Rack. Entrambi i nodi operano completamente in modalit\u00e0 sincrona. Dal punto di vista degli host, l'H710 appare come un normale storage a due controllori. Pertanto, non \u00e8 necessario effettuare ulteriori opzioni software o hardware e impostazioni particolarmente complesse.<\/p>\n<p><\/p>\n<p>Se si confrontano tutte le soluzioni sopra descritte per il disaster recovery Cross-Rack, la proposta di AccelStor si distingue nettamente dalle altre:<\/p>\n<p><\/p>\n<p>AccelStor NeoSapphire\u2122 Architettura Shared Nothing<br \/>\nVirtualizzatore software o hardware dello storage<br \/>\nSoluzione basata sulla replica<\/p>\n<p><b>Disponibilit\u00e0<\/b><\/p>\n<p>Guasto del server<br \/>\n<b>Nessun downtime<\/b><br \/>\n<b>Nessun downtime<\/b><br \/>\n<b>Nessun downtime<\/b><\/p>\n<p>Guasto dello switch<br \/>\n<b>Nessun downtime<\/b><br \/>\n<b>Nessun downtime<\/b><br \/>\n<b>Nessun downtime<\/b><\/p>\n<p>Guasto del sistema di storage<br \/>\n<b>Nessun downtime<\/b><br \/>\n<b>Nessun downtime<\/b><br \/>\n<b>Downtime<\/b><\/p>\n<p>Guasto dell'intero rack<br \/>\n<b>Nessun downtime<\/b><br \/>\n<b>Nessun downtime<\/b><br \/>\n<b>Downtime<\/b><\/p>\n<p><b>Costo e complessit\u00e0<\/b><\/p>\n<p>Costo della soluzione<br \/>\nBasso*<br \/>\nAlta<br \/>\nAlta<\/p>\n<p>Complesso da distribuire<br \/>\nBasso<br \/>\nAlta<br \/>\nAlta<\/p>\n<p><\/p>\n<p><i>*AccelStor NeoSapphire\u2122 \u00e8 comunque un array All Flash, il cui prezzo non \u00e8 certo \u00ab3 spicci\u00bb, tanto pi\u00f9 avendo una capacit\u00e0 doppia. Tuttavia, confrontando il costo finale della soluzione basata su di esso con analoghe di altri fornitori, il prezzo pu\u00f2 essere considerato competitivo.<\/i><\/p>\n<p><\/p>\n<p>La topologia di collegamento dei server delle applicazioni e dei nodi dell'array All Flash sar\u00e0 la seguente:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di una soluzione resiliente basata su Oracle RAC e architettura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/faf6a0a78ed13532a817fb67a2651b1b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Nella pianificazione della topologia \u00e8 altamente raccomandato creare una duplicazione degli switch di gestione e di interconnessione dei server.<\/p>\n<p><\/p>\n<p>Qui e oltre si parler\u00e0 di collegamento tramite Fibre Channel. In caso venga utilizzato iSCSI sar\u00e0 tutto lo stesso, con l'eccezione dei tipi di switch utilizzati e alcune configurazioni diverse dell'array.<\/p>\n<p><\/p>\n<h3>Lavoro preparatorio sull'array<\/h3>\n<p>\n<b class=\"spoiler_title\">Attrezzature e software utilizzati<\/b><\/p>\n<p><b>Specifiche dei server e degli switch<\/b><\/p>\n<p><\/p>\n<p>Componenti<br \/>\nDescrizione<\/p>\n<p>Server Oracle Database 11g<br \/>\nDue <\/p>\n<p>Sistema operativo del server<br \/>\nOracle Linux<\/p>\n<p>Versione del database Oracle<br \/>\n11g (RAC)<\/p>\n<p>Processori per server<br \/>\nDue CPU Intel\u00ae Xeon\u00ae E5-2667 v2 da 16 core @ 3.30GHz<\/p>\n<p>Memoria fisica per server<br \/>\n128GB<\/p>\n<p>Rete FC<br \/>\nFC a 16Gb\/s con multipathing<\/p>\n<p>FC HBA<br \/>\nEmulex Lpe-16002B <\/p>\n<p>Porte pubbliche dedicate 1GbE per la gestione del cluster<br \/>\nAdattatore ethernet Intel RJ45<\/p>\n<p>Switch FC a 16Gb\/s<br \/>\nBrocade 6505<\/p>\n<p>Porte private dedicate 10GbE per la sincronizzazione dei dati<br \/>\nIntel X520<\/p>\n<p><\/p>\n<p><b>Specifiche dell\u2019array All Flash AccelStor NeoSapphire\u2122<\/b><\/p>\n<p><\/p>\n<p>Componenti<br \/>\nDescrizione<\/p>\n<p>Sistema di archiviazione<br \/>\nModello ad alta disponibilit\u00e0 NeoSapphire\u2122: H710<\/p>\n<p>Versione dell'immagine<br \/>\n4.0.1<\/p>\n<p>Numero totale di unit\u00e0<br \/>\n48<\/p>\n<p>Dimensione dell'unit\u00e0<br \/>\n1.92TB<\/p>\n<p>Tipo di unit\u00e0<br \/>\nSSD<\/p>\n<p>Porte target FC<br \/>\n16 porte da 16Gb (8 per nodo)<\/p>\n<p>Porte di gestione<br \/>\nCavo ethernet 1GbE che si connette agli host tramite uno switch ethernet<\/p>\n<p>Porta Heartbeat<br \/>\nCavo ethernet 1GbE che si collega tra due nodi di archiviazione<\/p>\n<p>Porta di sincronizzazione dei dati<br \/>\nCavo InfiniBand a 56Gb\/s<\/p>\n<p>Prima di utilizzare l'array, \u00e8 necessario inizializzarlo. Per impostazione predefinita, l'indirizzo di gestione di entrambi i nodi \u00e8 identico (192.168.1.1). \u00c8 necessario collegarsi a ciascuno di essi e assegnare nuovi indirizzi di gestione (gi\u00e0 diversi) e configurare la sincronizzazione dell'ora, dopo di che le porte di gestione possono essere collegate in un'unica rete. Successivamente, si procede all'unione dei nodi in una coppia HA assegnando subnet per le connessioni Interlink.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di una soluzione resiliente basata su Oracle RAC e architettura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/9eef0dd1ac3a2ae1d19b3484ec2b2a27.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Dopo il completamento dell'inizializzazione, \u00e8 possibile gestire l'array da qualsiasi nodo.<\/p>\n<p><\/p>\n<p>Successivamente, creiamo i volumi necessari e li pubblichiamo per i server delle applicazioni.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di una soluzione resiliente basata su Oracle RAC e architettura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/57a23b64c2bcb3c9f477cc5009e1cd48.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>E' altamente raccomandato creare diversi volumi per Oracle ASM, poich\u00e9 ci\u00f2 aumenter\u00e0 il numero di target per i server, migliorando cos\u00ec le prestazioni complessive (dettagli sulle code in un'altra sezione). <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/accelstor\/blog\/447390\/\">abbiamo chiarito il corretto completamento dei programmi che utilizzano il mediastreamer.<\/a><\/noindex>).<\/p>\n<p>\n<b class=\"spoiler_title\">Configurazione di prova<\/b><\/p>\n<p>Nome del volume di archiviazione<br \/>\nDimensione del volume<\/p>\n<p>Data01<br \/>\n200GB<\/p>\n<p>Data02<br \/>\n200GB<\/p>\n<p>Data03<br \/>\n200GB<\/p>\n<p>Data04<br \/>\n200GB<\/p>\n<p>Data05<br \/>\n200GB<\/p>\n<p>Data06<br \/>\n200GB<\/p>\n<p>Data07<br \/>\n200GB<\/p>\n<p>Data08<br \/>\n200GB<\/p>\n<p>Data09<br \/>\n200GB<\/p>\n<p>Data10<br \/>\n200GB<\/p>\n<p>Grid01<br \/>\n1GB<\/p>\n<p>Grid02<br \/>\n1GB<\/p>\n<p>Grid03<br \/>\n1GB<\/p>\n<p>Grid04<br \/>\n1GB<\/p>\n<p>Grid05<br \/>\n1GB<\/p>\n<p>Grid06<br \/>\n1GB<\/p>\n<p>Redo01<br \/>\n100GB<\/p>\n<p>Redo02<br \/>\n100GB<\/p>\n<p>Redo03<br \/>\n100GB<\/p>\n<p>Redo04<br \/>\n100GB<\/p>\n<p>Redo05<br \/>\n100GB<\/p>\n<p>Redo06<br \/>\n100GB<\/p>\n<p>Redo07<br \/>\n100GB<\/p>\n<p>Redo08<br \/>\n100GB<\/p>\n<p>Redo09<br \/>\n100GB<\/p>\n<p>Redo10<br \/>\n100GB<\/p>\n<h3>Alcuni chiarimenti riguardo ai modelli di funzionamento dell'array e ai processi che si verificano in situazioni anomale<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di una soluzione resiliente basata su Oracle RAC e architettura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/e0f9416f16bb8a13673cacfcf1792d9d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Ogni nodo del set di dati ha un parametro \"numero di versione\". Dopo l'inizializzazione iniziale, \u00e8 identico e pari a 1. Se per qualche motivo il numero di versione \u00e8 diverso, si verifica sempre la sincronizzazione dei dati dalla versione pi\u00f9 alta a quella pi\u00f9 bassa, dopo di ch\u00e9 il numero della versione pi\u00f9 bassa viene allineato, il che significa che le copie sono identiche. Le ragioni per cui le versioni potrebbero essere diverse includono:<\/p>\n<p><\/p>\n<ul>\n<li>Riavvio programmato di uno dei nodi<\/li>\n<li>Guasto su uno dei nodi a causa di un'interruzione improvvisa (alimentazione, surriscaldamento, ecc.). <\/li>\n<li>Interruzione della connessione InfiniBand con impossibilit\u00e0 di sincronizzazione<\/li>\n<li>Guasto su uno dei nodi a causa di dati danneggiati. Qui sar\u00e0 necessario creare un nuovo gruppo HA e sincronizzare completamente il set di dati.<\/li>\n<\/ul>\n<p><\/p>\n<p>In ogni caso, il nodo che rimane online aumenta il proprio numero di versione di uno, in modo da sincronizzare il proprio set di dati una volta ripristinata la connessione con la coppia.<\/p>\n<p><\/p>\n<p>Se si verifica un'interruzione della connessione tramite il collegamento Ethernet, il Heartbeat passa temporaneamente a InfiniBand e ritorna indietro entro 10 secondi al ripristino.<\/p>\n<p><\/p>\n<h3>Configurazione degli host<\/h3>\n<p><\/p>\n<p>Per garantire l'alta disponibilit\u00e0 e aumentare le prestazioni, \u00e8 necessario abilitare il supporto MPIO per l'array. A tal fine, \u00e8 necessario aggiungere nel file \/etc\/multipath.conf delle righe, dopodich\u00e9 riavviare il servizio multipath<\/p>\n<p>\n<b class=\"spoiler_title\">Testo nascosto<\/b>dispositivi {<br \/>\n device {<br \/>\n vendor \"AStor\"<br \/>\n path_grouping_policy \"group_by_prio\"<br \/>\n path_selector \"queue-length 0\"<br \/>\n path_checker \"tur\"<br \/>\n features \"0\"<br \/>\n hardware_handler \"0\"<br \/>\n prio \"const\"<br \/>\n failback immediate<br \/>\n fast_io_fail_tmo 5<br \/>\n dev_loss_tmo 60<br \/>\n user_friendly_names yes<br \/>\n detect_prio yes<br \/>\n rr_min_io_rq 1<br \/>\n no_path_retry 0<br \/>\n }<br \/>\n}<\/p>\n<p><\/p>\n<p>Successivamente, affinch\u00e9 ASM funzioni con MPIO tramite ASMLib, \u00e8 necessario modificare il file \/etc\/sysconfig\/oracleasm e quindi eseguire \/etc\/init.d\/oracleasm scandisks<\/p>\n<p>\n<b class=\"spoiler_title\">Testo nascosto<\/b><\/p>\n<p># ORACLEASM_SCANORDER: Matching patterns to order disk scanning<br \/>\nORACLEASM_SCANORDER=\"dm\"<\/p>\n<p># ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan<br \/>\nORACLEASM_SCANEXCLUDE=\"sd\"<\/p>\n<p><\/p>\n<h4>Nota<\/h4>\n<p><\/p>\n<p><i>Se non si desidera utilizzare ASMLib, \u00e8 possibile utilizzare le regole UDEV, che sono la base di ASMLib.<\/i><\/p>\n<p><\/p>\n<p><i>A partire dalla versione 12.1.0.2, l'opzione Oracle Database \u00e8 disponibile per l'installazione come parte del software ASMFD.<\/i><\/p>\n<p>\u00c8 fondamentale assicurarsi che i dischi creati per Oracle ASM siano allineati rispetto alla dimensione del blocco con cui lavora fisicamente l'array (4K). Altrimenti, potrebbero sorgere problemi di prestazioni. Pertanto, \u00e8 necessario creare volumi con parametri appropriati:<\/p>\n<p><\/p>\n<p><i>parted \/dev\/mapper\/device-name mklabel gpt mkpart primary 2048s 100% align-check optimal 1<\/i><\/p>\n<p><\/p>\n<h3>Distribuzione dei database per i volumi creati per la nostra configurazione di test<\/h3>\n<p><\/p>\n<p>Nome del volume di archiviazione<br \/>\nDimensione del volume<br \/>\nMappatura dei LUN dei volumi<br \/>\nDettagli del dispositivo volume ASM<br \/>\nDimensione dell'unit\u00e0 di allocazione<\/p>\n<p>Data01<br \/>\n200GB<br \/>\nMappa tutti i volumi di archiviazione a tutti i porti dati del sistema di archiviazione<br \/>\nRidondanza: Normale<br \/>\nNome: DGDATA<br \/>\nScopo: File di dati<\/p>\n<p>4MB<\/p>\n<p>Data02<br \/>\n200GB<\/p>\n<p>Data03<br \/>\n200GB<\/p>\n<p>Data04<br \/>\n200GB<\/p>\n<p>Data05<br \/>\n200GB<\/p>\n<p>Data06<br \/>\n200GB<\/p>\n<p>Data07<br \/>\n200GB<\/p>\n<p>Data08<br \/>\n200GB<\/p>\n<p>Data09<br \/>\n200GB<\/p>\n<p>Data10<br \/>\n200GB<\/p>\n<p>Grid01<br \/>\n1GB<br \/>\nRidondanza: Normale<br \/>\nNome: DGGRID1<br \/>\nScopo: Griglia: CRS e Voto<\/p>\n<p>4MB<\/p>\n<p>Grid02<br \/>\n1GB<\/p>\n<p>Grid03<br \/>\n1GB<\/p>\n<p>Grid04<br \/>\n1GB<br \/>\nRidondanza: Normale<br \/>\nNome: DGGRID2<br \/>\nScopo: Griglia: CRS e Voto<\/p>\n<p>4MB<\/p>\n<p>Grid05<br \/>\n1GB<\/p>\n<p>Grid06<br \/>\n1GB<\/p>\n<p>Redo01<br \/>\n100GB<br \/>\nRidondanza: Normale<br \/>\nNome: DGREDO1<br \/>\nScopo: Log di redo del thread 1<\/p>\n<p>4MB<\/p>\n<p>Redo02<br \/>\n100GB<\/p>\n<p>Redo03<br \/>\n100GB<\/p>\n<p>Redo04<br \/>\n100GB<\/p>\n<p>Redo05<br \/>\n100GB<\/p>\n<p>Redo06<br \/>\n100GB<br \/>\nRidondanza: Normale<br \/>\nNome: DGREDO2<br \/>\nScopo: Log di redo del thread 2<\/p>\n<p>4MB<\/p>\n<p>Redo07<br \/>\n100GB<\/p>\n<p>Redo08<br \/>\n100GB<\/p>\n<p>Redo09<br \/>\n100GB<\/p>\n<p>Redo10<br \/>\n100GB<\/p>\n<p>\n<b class=\"spoiler_title\">Impostazioni del database<\/b><\/p>\n<ul>\n<li>Dimensione del blocco = 8K<\/li>\n<li>Spazio di swap = 16GB<\/li>\n<li>Disabilita AMM (Gestione automatica della memoria)<\/li>\n<li>Disabilita le Pagine Huge Trasparenti<\/li>\n<\/ul>\n<p><b class=\"spoiler_title\">Altre impostazioni<\/b><\/p>\n<p><u># vi \/etc\/sysctl.conf<\/u><br \/>\n\u2713 fs.aio-max-nr = 1048576<br \/>\n\u2713 fs.file-max = 6815744<br \/>\n\u2713 kernel.shmmax 103079215104<br \/>\n\u2713 kernel.shmall 31457280<br \/>\n\u2713 kernel.shmmn 4096<br \/>\n\u2713 kernel.sem = 250 32000 100 128<br \/>\n\u2713 net.ipv4.ip_local_port_range = 9000 65500<br \/>\n\u2713 net.core.rmem_default = 262144<br \/>\n\u2713 net.core.rmem_max = 4194304<br \/>\n\u2713 net.core.wmem_default = 262144<br \/>\n\u2713 net.core.wmem_max = 1048586<br \/>\n\u2713 vm.swappiness=10<br \/>\n\u2713 vm.min_free_kbytes=524288 # non impostare questo se stai usando Linux x86<br \/>\n\u2713 vm.vfs_cache_pressure=200<br \/>\n\u2713 vm.nr_hugepages = 57000<\/p>\n<p><u># vi \/etc\/security\/limits.conf<\/u><br \/>\n\u2713 grid soft nproc 2047<br \/>\n\u2713 grid hard nproc 16384<br \/>\n\u2713 grid soft nofile 1024<br \/>\n\u2713 grid hard nofile 65536<br \/>\n\u2713 grid soft stack 10240<br \/>\n\u2713 grid hard stack 32768<br \/>\n\u2713 oracle soft nproc 2047<br \/>\n\u2713 oracle hard nproc 16384<br \/>\n\u2713 oracle soft nofile 1024<br \/>\n\u2713 oracle hard nofile 65536<br \/>\n\u2713 oracle soft stack 10240<br \/>\n\u2713 oracle hard stack 32768<br \/>\n\u2713 soft memlock 120795954<br \/>\n\u2713 hard memlock 120795954\n<\/p>\n<p><\/p>\n<p><u>sqlplus \u201c\/as sysdba\u201d<\/u><br \/>\nalter system set processes=2000 scope=spfile;<br \/>\nalter system set open_cursors=2000 scope=spfile;<br \/>\nalter system set session_cached_cursors=300 scope=spfile;<br \/>\nalter system set db_files=8192 scope=spfile;\n<\/p>\n<p><\/p>\n<h3>Test di tolleranza agli errori<\/h3>\n<p><\/p>\n<p>Per dimostrare, \u00e8 stato utilizzato HammerDB per emulare un carico di lavoro OLTP. Configurazione di HammerDB:<\/p>\n<p><\/p>\n<p><b>Numero di magazzini<\/b><br \/>\n256<\/p>\n<p>Transazioni totali per utente<br \/>\n1000000000000<\/p>\n<p>Utenti virtuali<br \/>\n256<\/p>\n<p><\/p>\n<p>Il risultato ottenuto \u00e8 stato di 2.1M TPM, che \u00e8 lontano dal limite di prestazioni del sistema <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/product\/neosapphire-h710\">H710<\/a><\/noindex>, ma rappresenta un \"tetto\" per l'attuale configurazione hardware dei server (soprattutto a causa dei processori) e del loro numero. L'obiettivo di questo test \u00e8 comunque dimostrare la tolleranza agli errori della soluzione nel complesso, non raggiungere i massimi in termini di prestazioni. Pertanto, ci baseremo semplicemente su questo numero.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di una soluzione resiliente basata su Oracle RAC e architettura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/6de29f092e4c96a980a5790d8dd9a447.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Test di errore di uno dei nodi<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di una soluzione resiliente basata su Oracle RAC e architettura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/c222cea4613ad7096bb097fee16bbb48.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di una soluzione resiliente basata su Oracle RAC e architettura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/4b9459ba3d7cf34ec1e4ad4cd34adc09.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Gli host hanno perso parte dei percorsi verso l'archiviazione, continuando a lavorare attraverso quelli rimanenti con il secondo nodo. Le prestazioni sono diminuite per alcuni secondi a causa della ristrutturazione dei percorsi, per poi tornare a valori normali. Non c'\u00e8 stata interruzione del servizio.<\/p>\n<p><\/p>\n<h3>Test di errore dell'armadio con tutta l'attrezzatura<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di una soluzione resiliente basata su Oracle RAC e architettura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/bf4c1bbf2b4986911c4274525cf8e5d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di una soluzione resiliente basata su Oracle RAC e architettura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/17d5aa73f72dce4fd9227cb6907c249c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>In questo caso, le prestazioni sono diminuite anche per alcuni secondi a causa della ristrutturazione dei percorsi, per poi tornare a met\u00e0 del valore iniziale. Il risultato \u00e8 diminuito della met\u00e0 a causa dell'esclusione di un server applicazioni. Non c'\u00e8 stata interruzione del servizio.<\/p>\n<p><\/p>\n<blockquote><p>Se hai bisogno di implementare una soluzione di disaster recovery Cross-Rack altamente disponibile per Oracle a un costo ragionevole e con sforzi minimi per l'implementazione e la gestione, la collaborazione tra Oracle RAC e l'architettura <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/page\/pochemu-accelstor\">AccelStor Shared-Nothing<\/a><\/noindex> sar\u00e0 una delle migliori opzioni. Invece di Oracle RAC, pu\u00f2 essere utilizzato qualsiasi altro software che preveda la clusterizzazione, le stesse DBMS o sistemi di virtualizzazione, ad esempio. Il principio di costruzione della soluzione rimarr\u00e0 lo stesso. E l'indicatore finale \u00e8 un valore zero per RTO e RPO.<\/p><\/blockquote>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/accelstor\/blog\/448538\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435\u043c\u0430\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e Enterprise \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, Oracle RAC (Oracle Real Application Cluster) \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 Oracle, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u0446\u0435\u043b\u044c\u044e \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\/\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0442\u0430\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0449\u0435\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435, \u0432 \u0440\u043e\u043b\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23767,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31907","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0435\u043c\u0430\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e Enterprise \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 Oracle RAC \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b AccelStor Shared-Nothing | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435\u043c\u0430\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e Enterprise \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:43:53+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:43:53+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Costruire una soluzione ad alta disponibilit\u00e0 basata su Oracle RAC e sull'architettura AccelStor Shared-Nothing | ProHoster","description":"Un numero considerevole di applicazioni aziendali e sistemi di virtualizzazione hanno meccanismi propri per costruire soluzioni ad alta disponibilit\u00e0.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 Oracle RAC \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b AccelStor Shared-Nothing | ProHoster","og:description":"\u041d\u0435\u043c\u0430\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e Enterprise \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:43:53+00:00","article:modified_time":"2019-10-31T18:43:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31907","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 08:22:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:09:25","updated":"2026-01-21 08:22:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/31907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=31907"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/31907\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/23767"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=31907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=31907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=31907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}