{"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\/es\/blog\/administrirovanie\/postroenie-otkazoustojchivogo-resheniya-na-baze-oracle-rac-i-arhitektury-accelstor-shared-nothing","title":{"rendered":"Construcci\u00f3n de una soluci\u00f3n resistente a fallos basada en Oracle RAC y la arquitectura AccelStor Shared-Nothing","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Un n\u00famero considerable de aplicaciones Enterprise y sistemas de virtualizaci\u00f3n tienen sus propios mecanismos para construir soluciones de alta disponibilidad. En particular, Oracle RAC (Oracle Real Application Cluster) es un cl\u00faster formado por dos o m\u00e1s servidores de bases de datos Oracle que trabajan conjuntamente para equilibrar la carga y garantizar la alta disponibilidad a nivel de servidor\/aplicaci\u00f3n. Para operar en este modo, se necesita un almacenamiento compartido, que generalmente asume la funci\u00f3n de un sistema de almacenamiento (\u0421\u0425\u0414). <\/p>\n<p><\/p>\n<p>Como ya hemos discutido en uno de nuestros <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/accelstor\/blog\/441780\/\">art\u00edculos<\/a><\/noindex>, el sistema de almacenamiento (\u0421\u0425\u0414), a pesar de contar con componentes duplicados (incluyendo los controladores), a\u00fan tiene puntos de falla, principalmente en forma de un \u00fanico conjunto de datos. Por lo tanto, para construir una soluci\u00f3n Oracle con requisitos de fiabilidad m\u00e1s estrictos, el esquema \"N servidores \u2013 un \u0421\u0425\u0414\" necesita ser complejo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Construcci\u00f3n de una soluci\u00f3n resistente a fallos basada en Oracle RAC y la arquitectura 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>Primero, por supuesto, debemos determinar cu\u00e1les son los riesgos de los que intentamos protegernos. En este art\u00edculo, no abordaremos la protecci\u00f3n contra amenazas como \"un meteorito ha ca\u00eddo\". As\u00ed que la construcci\u00f3n de una soluci\u00f3n de recuperaci\u00f3n ante desastres geogr\u00e1ficamente dispersa seguir\u00e1 siendo el tema de uno de los pr\u00f3ximos art\u00edculos. Aqu\u00ed consideraremos la llamada soluci\u00f3n de recuperaci\u00f3n ante desastres Cross-Rack, donde la protecci\u00f3n se construye a nivel de racks de servidores. Los racks pueden estar en una misma sala o en diferentes, pero normalmente dentro de un mismo edificio.<\/p>\n<p><\/p>\n<p>Estos racks deben contener todo el conjunto necesario de hardware y software que permita el funcionamiento de las bases de datos Oracle independientemente del estado del \"vecino\". En otras palabras, al utilizar una soluci\u00f3n de recuperaci\u00f3n ante desastres Cross-Rack, eliminamos los riesgos en caso de falla:<\/p>\n<p><\/p>\n<ul>\n<li>Servidores de aplicaciones Oracle<\/li>\n<li>Sistemas de almacenamiento<\/li>\n<li>Sistemas de conmutaci\u00f3n<\/li>\n<li>Fallo total de todo el equipo en el rack:\n<ul>\n<li>Fallo de alimentaci\u00f3n<\/li>\n<li>Fallo del sistema de refrigeraci\u00f3n<\/li>\n<li>Factores externos (humanos, naturales, etc.)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>La duplicaci\u00f3n de servidores Oracle implica el propio principio de funcionamiento de Oracle RAC y se realiza a trav\u00e9s de la aplicaci\u00f3n. La duplicaci\u00f3n de los medios de conmutaci\u00f3n tampoco representa un problema. Sin embargo, la duplicaci\u00f3n del sistema de almacenamiento no es tan simple.<\/p>\n<p><\/p>\n<p>La opci\u00f3n m\u00e1s sencilla es replicar datos desde el almacenamiento principal a uno de respaldo. Puede ser sincr\u00f3nica o asincr\u00f3nica, dependiendo de las capacidades del almacenamiento. Con la replicaci\u00f3n asincr\u00f3nica, surge de inmediato la cuesti\u00f3n de asegurar la consistencia de los datos con respecto a Oracle. Pero incluso si hay una integraci\u00f3n program\u00e1tica con la aplicaci\u00f3n, en cualquier caso, ante una falla en el almacenamiento principal, se requerir\u00e1 la intervenci\u00f3n manual de los administradores para cambiar el cl\u00faster al almacenamiento de respaldo.<\/p>\n<p><\/p>\n<p>Una opci\u00f3n m\u00e1s complicada son los \u00abvirtualizadores\u00bb de software y\/o hardware de almacenamiento que evitan problemas de consistencia y la intervenci\u00f3n manual. Sin embargo, la complejidad de implementaci\u00f3n y la posterior administraci\u00f3n, as\u00ed como el costo considerable de estas soluciones, ahuyentan a muchos.<\/p>\n<p><\/p>\n<p>Justamente para escenarios como la recuperaci\u00f3n ante desastres Cross-Rack, la soluci\u00f3n AccelStor NeoSapphire\u2122 All Flash es ideal. <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/product\/neosapphire-h710\">H710<\/a><\/noindex> utilizando una arquitectura Shared-Nothing. Este modelo es un sistema de almacenamiento de dos nodos que emplea su propia tecnolog\u00eda FlexiRemap\u00ae para trabajar con unidades flash. Gracias a <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/\">FlexiRemap\u00ae<\/a><\/noindex> NeoSapphire\u2122 H710 puede proporcionar hasta 600K IOPS@4K escritura aleatoria y 1M+ IOPS@4K lectura aleatoria, lo cual no se puede lograr con los sistemas de almacenamiento basados en RAID cl\u00e1sicos.<\/p>\n<p><\/p>\n<p>Pero la principal caracter\u00edstica de NeoSapphire\u2122 H710 es que ambas nodos est\u00e1n ejecutadas en gabinetes separados, cada uno con su propia copia de datos. La sincronizaci\u00f3n de nodos se realiza a trav\u00e9s de una interfaz externa InfiniBand. Gracias a esta arquitectura, se pueden separar los nodos en diferentes ubicaciones a una distancia de hasta 100 m, proporcionando as\u00ed la soluci\u00f3n de recuperaci\u00f3n ante desastres Cross-Rack. Ambos nodos funcionan completamente en modo sincr\u00f3nico. Desde el punto de vista de los hosts, H710 se presenta como un almacenamiento de dos controladores normal. Por lo tanto, no es necesario realizar configuraciones adicionales complicadas ni opciones de software y hardware.<\/p>\n<p><\/p>\n<p>Si comparamos todas las soluciones descritas anteriormente para la recuperaci\u00f3n ante desastres Cross-Rack, la opci\u00f3n de AccelStor se destaca notablemente entre las dem\u00e1s:<\/p>\n<p><\/p>\n<p>AccelStor NeoSapphire\u2122 Arquitectura Shared Nothing<br \/>\nVirtualizador de almacenamiento de software o hardware<br \/>\nSoluci\u00f3n basada en replicaci\u00f3n<\/p>\n<p><b>Disponibilidad<\/b><\/p>\n<p>Fallo del servidor<br \/>\n<b>Sin tiempo de inactividad<\/b><br \/>\n<b>Sin tiempo de inactividad<\/b><br \/>\n<b>Sin tiempo de inactividad<\/b><\/p>\n<p>Fallo del conmutador<br \/>\n<b>Sin tiempo de inactividad<\/b><br \/>\n<b>Sin tiempo de inactividad<\/b><br \/>\n<b>Sin tiempo de inactividad<\/b><\/p>\n<p>Fallo del sistema de almacenamiento<br \/>\n<b>Sin tiempo de inactividad<\/b><br \/>\n<b>Sin tiempo de inactividad<\/b><br \/>\n<b>Tiempo de inactividad<\/b><\/p>\n<p>Fallo de todo el armario<br \/>\n<b>Sin tiempo de inactividad<\/b><br \/>\n<b>Sin tiempo de inactividad<\/b><br \/>\n<b>Tiempo de inactividad<\/b><\/p>\n<p><b>Costo y complejidad<\/b><\/p>\n<p>Costo de la soluci\u00f3n<br \/>\nBajo*<br \/>\nAlta<br \/>\nAlta<\/p>\n<p>Complejidad de implementaci\u00f3n<br \/>\nBajo<br \/>\nAlta<br \/>\nAlta<\/p>\n<p><\/p>\n<p><i>*AccelStor NeoSapphire\u2122 es un sistema de almacenamiento All Flash que, por definici\u00f3n, no es \u201cbarato\u201d, especialmente dado su doble capacidad. Sin embargo, al comparar el costo final de una soluci\u00f3n basada en \u00e9l con las de otros proveedores, se puede considerar que su costo es bajo.<\/i><\/p>\n<p><\/p>\n<p>La topolog\u00eda de conexi\u00f3n de los servidores de aplicaciones y nodos del sistema All Flash ser\u00e1 la siguiente:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Construcci\u00f3n de una soluci\u00f3n resistente a fallos basada en Oracle RAC y la arquitectura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/faf6a0a78ed13532a817fb67a2651b1b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Al planificar la topolog\u00eda, tambi\u00e9n se recomienda encarecidamente realizar una duplicaci\u00f3n de los switches de gesti\u00f3n y del interconexi\u00f3n de los servidores.<\/p>\n<p><\/p>\n<p>A partir de aqu\u00ed y en adelante, se hablar\u00e1 de la conexi\u00f3n a trav\u00e9s de Fibre Channel. En caso de utilizar iSCSI, ser\u00e1 lo mismo, con la salvedad de los tipos de switches utilizados y algo de configuraci\u00f3n diferente del sistema.<\/p>\n<p><\/p>\n<h3>Trabajo de preparaci\u00f3n en el sistema<\/h3>\n<p>\n<b class=\"spoiler_title\">Equipo y software utilizados<\/b><\/p>\n<p><b>Especificaciones de servidores y switches<\/b><\/p>\n<p><\/p>\n<p>Componentes<br \/>\nDescripci\u00f3n<\/p>\n<p>Servidores de Oracle Database 11g<br \/>\nDos <\/p>\n<p>Sistema operativo del servidor<br \/>\nOracle Linux<\/p>\n<p>Versi\u00f3n de la base de datos de Oracle<br \/>\n11g (RAC)<\/p>\n<p>Procesadores por servidor<br \/>\nDos CPU Intel\u00ae Xeon\u00ae de 16 n\u00facleos E5-2667 v2 a 3.30GHz<\/p>\n<p>Memoria f\u00edsica por servidor<br \/>\n128GB<\/p>\n<p>Red FC<br \/>\nFC de 16Gb\/s con multipathing<\/p>\n<p>FC HBA<br \/>\nEmulex Lpe-16002B <\/p>\n<p>Puertos p\u00fablicos dedicados 1GbE para gesti\u00f3n del cl\u00faster<br \/>\nAdaptador Ethernet RJ45 de Intel<\/p>\n<p>Switch FC de 16Gb\/s<br \/>\nBrocade 6505<\/p>\n<p>Puertos privados dedicados 10GbE para sincronizaci\u00f3n de datos<br \/>\nIntel X520<\/p>\n<p><\/p>\n<p><b>Especificaci\u00f3n del sistema de almacenamiento AccelStor NeoSapphhire\u2122 All Flash<\/b><\/p>\n<p><\/p>\n<p>Componentes<br \/>\nDescripci\u00f3n<\/p>\n<p>Sistema de almacenamiento<br \/>\nModelo de alta disponibilidad NeoSapphire\u2122: H710<\/p>\n<p>Versi\u00f3n de imagen<br \/>\n4.0.1<\/p>\n<p>N\u00famero total de unidades<br \/>\n48<\/p>\n<p>Tama\u00f1o de unidad<br \/>\n1.92TB<\/p>\n<p>Tipo de unidad<br \/>\nSSD<\/p>\n<p>Puertos objetivo FC<br \/>\n16 x 16Gb ports (8 por nodo)<\/p>\n<p>Puertos de gesti\u00f3n<br \/>\nEl cable Ethernet 1GbE que conecta a los hosts a trav\u00e9s de un switch Ethernet<\/p>\n<p>Puerto de latido<br \/>\nEl cable Ethernet 1GbE que conecta entre dos nodos de almacenamiento<\/p>\n<p>Puerto de sincronizaci\u00f3n de datos<br \/>\nCable InfiniBand de 56Gb\/s<\/p>\n<p>Antes de comenzar a utilizar el sistema, es necesario inicializarlo. Por defecto, las direcciones de gesti\u00f3n de ambos nodos son las mismas (192.168.1.1). Se deben conectar uno por uno y asignar nuevas (ya diferentes) direcciones de gesti\u00f3n y configurar la sincronizaci\u00f3n de tiempo, tras lo cual los puertos de gesti\u00f3n se pueden conectar a una \u00fanica red. Luego, se procede a unir los nodos en un par HA mediante la asignaci\u00f3n de subredes para las conexiones Interlink.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Construcci\u00f3n de una soluci\u00f3n resistente a fallos basada en Oracle RAC y la arquitectura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/9eef0dd1ac3a2ae1d19b3484ec2b2a27.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Una vez completada la inicializaci\u00f3n, se puede gestionar el sistema desde cualquier nodo.<\/p>\n<p><\/p>\n<p>A continuaci\u00f3n, se crean los vol\u00famenes necesarios y se publican para los servidores de aplicaciones.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Construcci\u00f3n de una soluci\u00f3n resistente a fallos basada en Oracle RAC y la arquitectura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/57a23b64c2bcb3c9f477cc5009e1cd48.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Se recomienda encarecidamente crear varios vol\u00famenes para Oracle ASM, ya que esto aumentar\u00e1 el n\u00famero de objetivos para los servidores, lo que a su vez mejorar\u00e1 el rendimiento general (m\u00e1s sobre las colas en otra secci\u00f3n) <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/accelstor\/blog\/447390\/\">el art\u00edculo<\/a><\/noindex>).<\/p>\n<p>\n<b class=\"spoiler_title\">Configuraci\u00f3n de prueba<\/b><\/p>\n<p>Nombre del volumen de almacenamiento<br \/>\nTama\u00f1o del volumen<\/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>Algunas explicaciones sobre los modos de operaci\u00f3n de la matriz y los procesos que ocurren en situaciones anormales.<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Construcci\u00f3n de una soluci\u00f3n resistente a fallos basada en Oracle RAC y la arquitectura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/e0f9416f16bb8a13673cacfcf1792d9d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Cada nodo tiene un par\u00e1metro de \"n\u00famero de versi\u00f3n\" en su conjunto de datos. Despu\u00e9s de la inicializaci\u00f3n primaria, es el mismo y vale 1. Si por alguna raz\u00f3n el n\u00famero de versi\u00f3n es diferente, siempre se sincronizan los datos de la versi\u00f3n superior a la inferior, tras lo cual el n\u00famero de la inferior se ajusta, es decir, eso significa que las copias son id\u00e9nticas. Las razones por las que las versiones pueden ser diferentes son:<\/p>\n<p><\/p>\n<ul>\n<li>Reinicio planificado de uno de los nodos.<\/li>\n<li>Fallo en uno de los nodos debido a un apag\u00f3n repentino (poder, sobrecalentamiento, etc.). <\/li>\n<li>Interrupci\u00f3n de la conexi\u00f3n InfiniBand sin posibilidad de sincronizaci\u00f3n.<\/li>\n<li>Fallo en uno de los nodos debido a da\u00f1os en los datos. Aqu\u00ed ser\u00e1 necesario crear un nuevo grupo HA y realizar una sincronizaci\u00f3n completa del conjunto de datos.<\/li>\n<\/ul>\n<p><\/p>\n<p>En cualquier caso, el nodo que permanece en l\u00ednea incrementa su n\u00famero de versi\u00f3n en uno, para que despu\u00e9s de restaurar la conexi\u00f3n pueda sincronizar su conjunto de datos.<\/p>\n<p><\/p>\n<p>Si hay una interrupci\u00f3n en la conexi\u00f3n por el enlace Ethernet, Heartbeat se cambia temporalmente a InfiniBand y regresa en 10 segundos cuando se restaura.<\/p>\n<p><\/p>\n<h3>Configuraci\u00f3n de hosts.<\/h3>\n<p><\/p>\n<p>Para garantizar la tolerancia a fallos y aumentar el rendimiento, es necesario habilitar el soporte MPIO para la matriz. Para ello, hay que agregar l\u00edneas al archivo \/etc\/multipath.conf y luego reiniciar el servicio multipath.<\/p>\n<p>\n<b class=\"spoiler_title\">Texto oculto<\/b>devices {<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>A continuaci\u00f3n, para que ASM trabaje con MPIO a trav\u00e9s de ASMLib, es necesario modificar el archivo \/etc\/sysconfig\/oracleasm y luego ejecutar \/etc\/init.d\/oracleasm scandisks.<\/p>\n<p>\n<b class=\"spoiler_title\">Texto oculto<\/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>Si no se desea utilizar ASMLib, se pueden utilizar reglas UDEV, que son la base para ASMLib.<\/i><\/p>\n<p><\/p>\n<p><i>A partir de la versi\u00f3n 12.1.0.2, la opci\u00f3n de Oracle Database est\u00e1 disponible para instalar como parte del software ASMFD.<\/i><\/p>\n<p>Es importante asegurarse de que los discos creados para Oracle ASM est\u00e9n alineados con respecto al tama\u00f1o del bloque con el que trabaja f\u00edsicamente la matriz (4K). De lo contrario, pueden surgir problemas de rendimiento. Por lo tanto, es necesario crear vol\u00famenes con los par\u00e1metros adecuados:<\/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>Distribuci\u00f3n de bases de datos en los vol\u00famenes creados para nuestra configuraci\u00f3n de prueba<\/h3>\n<p><\/p>\n<p>Nombre del volumen de almacenamiento<br \/>\nTama\u00f1o del volumen<br \/>\nMapeo de LUNs de volumen<br \/>\nDetalles del dispositivo de volumen ASM<br \/>\nTama\u00f1o de unidad de asignaci\u00f3n<\/p>\n<p>Data01<br \/>\n200GB<br \/>\nMapear todos los vol\u00famenes de almacenamiento a todos los puertos de datos del sistema de almacenamiento<br \/>\nRedundancia: Normal<br \/>\nNombre: DGDATA<br \/>\nProp\u00f3sito: Archivos de datos<\/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 \/>\nRedundancia: Normal<br \/>\nNombre: DGGRID1<br \/>\nProp\u00f3sito: Grid: CRS y votaci\u00f3n<\/p>\n<p>4MB<\/p>\n<p>Grid02<br \/>\n1GB<\/p>\n<p>Grid03<br \/>\n1GB<\/p>\n<p>Grid04<br \/>\n1GB<br \/>\nRedundancia: Normal<br \/>\nNombre: DGGRID2<br \/>\nProp\u00f3sito: Grid: CRS y votaci\u00f3n<\/p>\n<p>4MB<\/p>\n<p>Grid05<br \/>\n1GB<\/p>\n<p>Grid06<br \/>\n1GB<\/p>\n<p>Redo01<br \/>\n100GB<br \/>\nRedundancia: Normal<br \/>\nNombre: DGREDO1<br \/>\nProp\u00f3sito: Registro de reenv\u00edo del hilo 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 \/>\nRedundancia: Normal<br \/>\nNombre: DGREDO2<br \/>\nProp\u00f3sito: Registro de reenv\u00edo del hilo 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\">Configuraciones de la base de datos<\/b><\/p>\n<ul>\n<li>Tama\u00f1o de bloque = 8K<\/li>\n<li>Espacio de intercambio = 16GB<\/li>\n<li>Deshabilitar AMM (Gesti\u00f3n autom\u00e1tica de memoria)<\/li>\n<li>Deshabilitar Transparent Huge Pages<\/li>\n<\/ul>\n<p><b class=\"spoiler_title\">Otras configuraciones<\/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 # no establecer esto si est\u00e1s 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>Prueba de resiliencia<\/h3>\n<p><\/p>\n<p>Para la demostraci\u00f3n se utiliz\u00f3 HammerDB para emular la carga OLTP. Configuraci\u00f3n de HammerDB:<\/p>\n<p><\/p>\n<p><b>N\u00famero de almacenes<\/b><br \/>\n256<\/p>\n<p>Transacciones totales por usuario<br \/>\n1000000000000<\/p>\n<p>Usuarios virtuales<br \/>\n256<\/p>\n<p><\/p>\n<p>Como resultado se obtuvo un indicador de 2.1M TPM, lo que est\u00e1 lejos del l\u00edmite de rendimiento del arreglo <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/product\/neosapphire-h710\">H710<\/a><\/noindex>, pero es el \"techo\" para la configuraci\u00f3n de hardware actual de los servidores (principalmente debido a los procesadores) y su cantidad. El objetivo de esta prueba sigue siendo demostrar la resiliencia de la soluci\u00f3n en general, no alcanzar m\u00e1ximos de rendimiento. As\u00ed que simplemente partiremos de este n\u00famero.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Construcci\u00f3n de una soluci\u00f3n resistente a fallos basada en Oracle RAC y la arquitectura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/6de29f092e4c96a980a5790d8dd9a447.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Prueba de falla de uno de los nodos<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Construcci\u00f3n de una soluci\u00f3n resistente a fallos basada en Oracle RAC y la arquitectura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/c222cea4613ad7096bb097fee16bbb48.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><img decoding=\"async\" alt=\"Construcci\u00f3n de una soluci\u00f3n resistente a fallos basada en Oracle RAC y la arquitectura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/4b9459ba3d7cf34ec1e4ad4cd34adc09.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Los hosts perdieron parte de las rutas al almacenamiento, continuando trabajando a trav\u00e9s de las restantes con el segundo nodo. El rendimiento cay\u00f3 por unos segundos debido a la reconfiguraci\u00f3n de rutas, y luego volvi\u00f3 a los niveles normales. No hubo interrupciones en el servicio.<\/p>\n<p><\/p>\n<h3>Prueba de falla del armario con todo el equipo<\/h3>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Construcci\u00f3n de una soluci\u00f3n resistente a fallos basada en Oracle RAC y la arquitectura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/bf4c1bbf2b4986911c4274525cf8e5d5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><img decoding=\"async\" alt=\"Construcci\u00f3n de una soluci\u00f3n resistente a fallos basada en Oracle RAC y la arquitectura AccelStor Shared-Nothing\" src=\"\/wp-content\/uploads\/2019\/04\/17d5aa73f72dce4fd9227cb6907c249c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>En este caso, el rendimiento tambi\u00e9n cay\u00f3 por unos segundos debido a la reconfiguraci\u00f3n de rutas, y luego volvi\u00f3 a la mitad del valor inicial. El resultado se redujo a la mitad de lo original debido a la exclusi\u00f3n de un servidor de aplicaciones. No hubo interrupciones en el servicio.<\/p>\n<p><\/p>\n<blockquote><p>Si tiene necesidades de implementar una soluci\u00f3n de recuperaci\u00f3n ante desastres Cross-Rack con alta disponibilidad para Oracle a un costo razonable y con un esfuerzo m\u00ednimo de implementaci\u00f3n\/administraci\u00f3n, la colaboraci\u00f3n entre Oracle RAC y la arquitectura <noindex><a rel=\"nofollow\" href=\"https:\/\/accelstor.ru\/page\/pochemu-accelstor\">AccelStor Shared-Nothing<\/a><\/noindex> ser\u00e1 una de las mejores opciones. En lugar de Oracle RAC, se puede utilizar cualquier otro software que contemple la agrupaci\u00f3n, as\u00ed como las mismas bases de datos o sistemas de virtualizaci\u00f3n, por ejemplo. El principio de construcci\u00f3n de la soluci\u00f3n seguir\u00e1 siendo el mismo. Y la m\u00e9trica final ser\u00e1 un valor cero para RTO y RPO.<\/p><\/blockquote>\n<p>Fuente: <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.2 - 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\/es\/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.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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\udd47Construcci\u00f3n de una soluci\u00f3n de alta disponibilidad basada en Oracle RAC y la arquitectura AccelStor Shared-Nothing | ProHoster","description":"Un n\u00famero considerable de aplicaciones empresariales y sistemas de virtualizaci\u00f3n tienen mecanismos propios para construir soluciones de alta disponibilidad.","canonical_url":"https:\/\/prohoster.info\/es\/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":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/31907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=31907"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/31907\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/23767"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=31907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=31907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=31907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}