{"id":77266,"date":"2020-04-09T13:42:08","date_gmt":"2020-04-09T11:42:08","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah"},"modified":"2020-04-09T13:42:08","modified_gmt":"2020-04-09T11:42:08","slug":"tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah","title":{"rendered":"Consejos y trucos para trabajar con Ceph en proyectos de alta carga","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Consejos y trucos para trabajar con Ceph en proyectos exigentes\" src=\"\/wp-content\/uploads\/2020\/04\/1d60f91e55b20a5dc4346bd8087bc11e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAl utilizar Ceph como almacenamiento en red en proyectos con diferentes niveles de carga, podemos enfrentar diversas tareas que, a primera vista, no parecen simples o triviales. Por ejemplo:<\/p>\n<ul>\n<li> la migraci\u00f3n de datos de un Ceph antiguo a uno nuevo con el uso parcial de los servidores anteriores en el nuevo cl\u00faster;<\/li>\n<li> la soluci\u00f3n al problema de la distribuci\u00f3n del espacio en disco en Ceph.<\/li>\n<\/ul>\n<p>\nAl abordar estas tareas, nos encontramos con la necesidad de extraer correctamente el OSD sin p\u00e9rdida de datos, lo cual es especialmente relevante cuando se manejan grandes vol\u00famenes de informaci\u00f3n. De esto trata el art\u00edculo.<\/p>\n<p>Los m\u00e9todos descritos a continuaci\u00f3n son aplicables a todas las versiones de Ceph. Adem\u00e1s, se tendr\u00e1 en cuenta que Ceph puede almacenar grandes vol\u00famenes de datos: para prevenir p\u00e9rdidas de datos y otros problemas, algunas acciones se dividir\u00e1n en varias.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Prefacio sobre OSD<\/h3>\n<p>\nDado que dos de las tres recetas que se consideran est\u00e1n dedicadas al OSD (<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ceph.com\/docs\/master\/man\/8\/ceph-osd\/\">Object Storage Daemon<\/a><\/noindex>), antes de profundizar en la parte pr\u00e1ctica, daremos un breve resumen de qu\u00e9 es realmente en Ceph y por qu\u00e9 es tan importante.<\/p>\n<p>En primer lugar, es importante decir que todo el cl\u00faster de Ceph est\u00e1 compuesto por m\u00faltiples OSD. Cuantos m\u00e1s haya, mayor ser\u00e1 el volumen de datos libre en Ceph. De aqu\u00ed se puede entender <b>la funci\u00f3n principal del OSD<\/b>: almacena los datos de los objetos Ceph en los sistemas de archivos de todos los nodos del cl\u00faster y proporciona acceso de red a ellos (para lectura, escritura y otras solicitudes).<\/p>\n<p>En este mismo nivel se establecen los par\u00e1metros de replicaci\u00f3n mediante la copia de objetos entre diferentes OSD. Y aqu\u00ed se pueden presentar diversos problemas, cuya soluci\u00f3n se discutir\u00e1 a continuaci\u00f3n.<\/p>\n<h2>Caso No. 1. Extracci\u00f3n segura de OSD del cl\u00faster Ceph sin p\u00e9rdida de datos<\/h2>\n<p>\nLa necesidad de extraer un OSD puede ser causada por la retirada de un servidor del cl\u00faster \u2014 por ejemplo, para sustituirlo por otro servidor \u2014 lo que ocurri\u00f3 en nuestro caso y dio lugar a la redacci\u00f3n de este art\u00edculo. As\u00ed, el objetivo final de las manipulaciones es extraer todos los OSD y mon's en este servidor para poder detenerlo.<\/p>\n<p>Para comodidad y para evitar la situaci\u00f3n en la que cometamos un error al especificar el OSD deseado durante la ejecuci\u00f3n de los comandos, definiremos una variable separada cuyo valor ser\u00e1 el n\u00famero del OSD a eliminar. La llamaremos <code>${ID}<\/code> \u2014 aqu\u00ed y en adelante, tal variable reemplaza el n\u00famero del OSD con el que estamos trabajando.<\/p>\n<p>Veamos el estado antes de comenzar los trabajos:<\/p>\n<pre><code class=\"bash\">root@hv-1 ~ # ceph osd tree\nID CLASS WEIGHT  TYPE NAME      STATUS REWEIGHT PRI-AFF\n-1       0.46857 root default\n-3       0.15619      host hv-1\n-5       0.15619      host hv-2\n 1   ssd 0.15619      osd.1     up     1.00000  1.00000\n-7       0.15619      host hv-3\n 2   ssd 0.15619      osd.2     up     1.00000  1.00000<\/code><\/pre>\n<p>\nPara iniciar la eliminaci\u00f3n del OSD, ser\u00e1 necesario hacerlo de manera gradual <code>reweight<\/code> en \u00e9l hasta cero. De esta manera, reducimos la cantidad de datos en el OSD mediante el balanceo hacia otros OSD. Para esto se ejecutan los siguientes comandos:<\/p>\n<pre><code class=\"bash\">ceph osd reweight osd.${ID} 0.98\nceph osd reweight osd.${ID} 0.88\nceph osd reweight osd.${ID} 0.78<\/code><\/pre>\n<p>\n\u2026 y as\u00ed sucesivamente hasta llegar a cero.<\/p>\n<p><b>El balanceo gradual es necesario<\/b>, para no perder datos. Esto es especialmente relevante si el OSD contiene una gran cantidad de datos. Para asegurarse de que despu\u00e9s de ejecutar los comandos <code>reweight<\/code> todo haya salido bien, se puede ejecutar <code>ceph -s<\/code> o abrir en una ventana de terminal separada <code>ceph -w<\/code> para observar los cambios en tiempo real.<\/p>\n<p>Cuando el OSD est\u00e1 \"vac\u00edo\", se puede proceder a la operaci\u00f3n est\u00e1ndar de su eliminaci\u00f3n. Para ello, llevemos el OSD necesario al estado <code>down<\/code>:<\/p>\n<pre><code class=\"bash\">ceph osd down osd.${ID}<\/code><\/pre>\n<p>\nSacaremos el OSD del cl\u00faster:<\/p>\n<pre><code class=\"bash\">ceph osd out osd.${ID}<\/code><\/pre>\n<p>\nDetendremos el servicio OSD y desmontaremos su partici\u00f3n en el FS:<\/p>\n<pre><code class=\"bash\">systemctl stop ceph-osd@${ID}\numount \/var\/lib\/ceph\/osd\/ceph-${ID}<\/code><\/pre>\n<p>\nEliminaremos el OSD de <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ceph.com\/docs\/nautilus\/rados\/operations\/crush-map\/\">CRUSH map<\/a><\/noindex>:<\/p>\n<pre><code class=\"bash\">ceph osd crush remove osd.${ID}<\/code><\/pre>\n<p>\nEliminaremos el usuario OSD:<\/p>\n<pre><code class=\"bash\">ceph auth del osd.${ID}<\/code><\/pre>\n<p>\nY, finalmente, eliminaremos el propio OSD:<\/p>\n<pre><code class=\"bash\">ceph osd rm osd.${ID}<\/code><\/pre>\n<p>\n<b>Nota<\/b>: si usas la versi\u00f3n Ceph Luminous o superior, las acciones de eliminaci\u00f3n de OSD descritas anteriormente se pueden reducir a dos comandos:<\/p>\n<pre><code class=\"bash\">ceph osd out osd.${ID}\nceph osd purge osd.${ID}\n<\/code><\/pre>\n<p>\nSi despu\u00e9s de ejecutar las acciones anteriores se ejecuta el comando <code>ceph osd tree<\/code>, deber\u00eda ser visible que en el servidor donde se realizaron las operaciones ya no hay OSD para los que se llevaron a cabo las acciones anteriores:<\/p>\n<pre><code class=\"bash\">root@hv-1 ~ # ceph osd tree\nID CLASS WEIGHT  TYPE NAME     STATUS REWEIGHT PRI-AFF\n-1       0.46857      root default\n-3       0.15619      host hv-1\n-5       0.15619      host hv-2\n-7       0.15619      host hv-3\n 2   ssd 0.15619      osd.2    up     1.00000  1.00000<\/code><\/pre>\n<p>\nAprovechamos para notar que el estado del cl\u00faster Ceph pasar\u00e1 a <code>HEALTH_WARN<\/code>, y tambi\u00e9n veremos la disminuci\u00f3n en el n\u00famero de OSD y en la cantidad de espacio en disco disponible. <\/p>\n<p>A continuaci\u00f3n, se describir\u00e1n las acciones que ser\u00e1n necesarias si deseas detener completamente el servidor y, por consiguiente, eliminarlo de Ceph. En tal caso, es importante recordar que <b>antes de apagar el servidor, es necesario extraer todos los OSD<\/b> de este servidor.<\/p>\n<p>Si no quedan m\u00e1s OSD en este servidor, entonces despu\u00e9s de eliminarlos hay que excluir del mapa OSD el servidor <code>hv-2<\/code>, ejecutando el siguiente comando:<\/p>\n<pre><code class=\"bash\">ceph osd crush rm hv-2<\/code><\/pre>\n<p>\nEliminamos <code>mon<\/code> del servidor <code>hv-2<\/code>, ejecutando el siguiente comando en otro servidor (es decir, en este caso \u2014 en <code>hv-1<\/code>):<\/p>\n<pre><code class=\"bash\">ceph-deploy mon destroy hv-2<\/code><\/pre>\n<p>\nDespu\u00e9s de esto, se puede detener el servidor y proceder con las siguientes acciones (su reimplementaci\u00f3n, etc.).<\/p>\n<h2>Caso n.\u00ba 2. Distribuci\u00f3n del espacio en disco en un cl\u00faster Ceph ya creado.<\/h2>\n<p>\nComenzar\u00e9 la segunda historia con una introducci\u00f3n sobre PG (<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ceph.com\/docs\/mimic\/rados\/operations\/placement-groups\/\">Grupos de Colocaci\u00f3n<\/a><\/noindex>). El papel principal de PG en Ceph es, primero que nada, agregar los objetos de Ceph y luego replicarlos en OSD. La f\u00f3rmula que se puede utilizar para calcular la cantidad necesaria de PG se encuentra en <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ceph.com\/docs\/mimic\/rados\/operations\/placement-groups\/#choosing-the-number-of-placement-groups\">la secci\u00f3n correspondiente<\/a><\/noindex> la documentaci\u00f3n de Ceph. All\u00ed tambi\u00e9n se analiza esta cuesti\u00f3n con ejemplos concretos.<\/p>\n<p>As\u00ed que: uno de los problemas comunes durante la operaci\u00f3n de Ceph es el n\u00famero desbalanceado de OSD y PG entre los grupos en Ceph.<\/p>\n<p>En primer lugar, esto puede dar lugar a una situaci\u00f3n en la que se especifica un n\u00famero demasiado grande de PG en un grupo de bajo volumen, lo que en esencia es un uso irracional del espacio en disco en el cl\u00faster. En segundo lugar, en la pr\u00e1ctica surge un problema m\u00e1s serio: el desbordamiento de datos en uno de los OSD. Esto lleva al cl\u00faster primero a un estado <code>HEALTH_WARN<\/code>, y luego a <code>HEALTH_ERR<\/code>. La culpa es de que Ceph, al calcular el volumen de datos disponible (se puede averiguar por <code>MAX AVAIL<\/code> en la salida del comando <code>ceph df<\/code> para cada grupo por separado) se basa en el volumen de datos disponible en OSD. Si al menos en un OSD no hay suficiente espacio, entonces no se podr\u00e1 escribir m\u00e1s datos hasta que los datos se distribuyan adecuadamente entre todos los OSD.<\/p>\n<p>Es importante aclarar que estos problemas <b>se resuelven en mayor medida en la etapa de configuraci\u00f3n del cl\u00faster Ceph.<\/b>Una de las herramientas que se puede utilizar es <noindex><a rel=\"nofollow\" href=\"http:\/\/blog.easter-eggs.org\/index.php\/post\/2013\/09\/27\/%5BLibvirt%5D-Migrating-from-on-disk-raw-images-to-RBD-storage\">Ceph PGCalc<\/a><\/noindex>. Con su ayuda se calcula de manera visual la cantidad necesaria de PG. Sin embargo, tambi\u00e9n se puede recurrir a ella en caso de que el cl\u00faster Ceph <i>(env\u00edo de datos).<\/i> est\u00e9 configurado incorrectamente. Aqu\u00ed vale la pena aclarar que en el marco de los trabajos de correcci\u00f3n, probablemente necesitar\u00e1s reducir la cantidad de PG, y esta opci\u00f3n no est\u00e1 disponible en las versiones antiguas de Ceph (solo apareci\u00f3 a partir de la versi\u00f3n <noindex><a rel=\"nofollow\" href=\"https:\/\/ceph.com\/rados\/new-in-nautilus-pg-merging-and-autotuning\/\">Nautilus<\/a><\/noindex>).<\/p>\n<p>As\u00ed que, imaginemos la siguiente situaci\u00f3n: el cl\u00faster tiene un estado <code>HEALTH_WARN<\/code> debido a que se est\u00e1 quedando sin espacio en uno de los OSD. Esto se indicar\u00e1 con el error <code>HEALTH_WARN: 1 near full osd<\/code>. A continuaci\u00f3n se presenta un algoritmo para salir de esta situaci\u00f3n.<\/p>\n<p>Primero se requiere distribuir los datos existentes entre los otros OSD. Una operaci\u00f3n similar ya la realizamos en el primer caso, cuando \"deshidratamos\" el nodo, con la \u00fanica diferencia de que ahora ser\u00e1 necesario reducir ligeramente. <code>reweight<\/code>. Por ejemplo, a 0.95:<\/p>\n<pre><code class=\"bash\">ceph osd reweight osd.${ID} 0.95<\/code><\/pre>\n<p>\nDe esta manera, se libera espacio en disco en el OSD y se corrige el error en ceph health. Sin embargo, como se mencion\u00f3, este problema surge principalmente debido a una configuraci\u00f3n incorrecta de Ceph en las etapas iniciales: es muy importante realizar la reconfiguraci\u00f3n para que no se manifieste en el futuro.<\/p>\n<p>En nuestro caso espec\u00edfico, todo se reduc&iacute;a a:<\/p>\n<ul>\n<li> un valor demasiado alto <code>replication_count<\/code> en uno de los pools,<\/li>\n<li> demasiado alto n\u00famero de PG en un pool y demasiado bajo en otro. <\/li>\n<\/ul>\n<p>\nUsaremos la calculadora mencionada anteriormente. En ella se muestra claramente qu\u00e9 se necesita ingresar y, en principio, no hay nada complicado. Al establecer los par\u00e1metros necesarios, obtenemos las siguientes recomendaciones:<\/p>\n<p><i><b>Nota<\/b>: si est\u00e1s configurando un cl\u00faster Ceph desde cero, otra funci\u00f3n \u00fatil de la calculadora ser\u00e1 la generaci\u00f3n de comandos que crear\u00e1n pools desde cero con los par\u00e1metros indicados en la tabla.<\/i><\/p>\n<p>El \u00faltimo columna ayuda a orientarse \u2014 <i>Suggested PG Count<\/i>. En nuestro caso, tambi\u00e9n es \u00fatil la segunda, donde se indica el par\u00e1metro de replicaci\u00f3n, ya que hemos decidido cambiar el multiplicador de replicaci\u00f3n.<\/p>\n<p>Entonces, primero necesitaremos cambiar los par\u00e1metros de replicaci\u00f3n \u2014 esto es lo que se debe hacer primero, ya que, al reducir el multiplicador, liberaremos espacio en disco. Durante la ejecuci\u00f3n del comando, se puede notar que el valor del espacio de disco disponible aumentar\u00e1:<\/p>\n<pre><code class=\"bash\">ceph osd pool $pool_name set $replication_size<\/code><\/pre>\n<p>\nY despu\u00e9s de que se complete, cambiamos los valores de los par\u00e1metros <code>pg_num<\/code> y <code>pgp_num<\/code> de la siguiente manera:<\/p>\n<pre><code class=\"bash\">ceph osd pool set $pool_name pg_num $pg_number\nceph osd pool set $pool_name pgp_num $pg_number<\/code><\/pre>\n<p>\n<b>Importante<\/b>: debemos cambiar secuencialmente el n\u00famero de PG en cada pool y no cambiar los valores en otros pools hasta que desaparezcan las advertencias <i>\"Degraded data redundancy\"<\/i> y <i>\"n-number of pgs degraded\"<\/i>.<\/p>\n<p>Se puede verificar que todo haya salido bien tambi\u00e9n con la salida de los comandos <code>ceph health detail<\/code> y <code>ceph -s<\/code>.<\/p>\n<h2>Caso \u21163. Migraci\u00f3n de una m\u00e1quina virtual de LVM a Ceph RBD<\/h2>\n<p>\nEn situaciones donde se utilizan m\u00e1quinas virtuales instaladas en servidores bare-metal alquilados, a menudo surge la cuesti\u00f3n del almacenamiento tolerante a fallos. Adem\u00e1s, es muy deseable que haya suficiente espacio en dicho almacenamiento... Otra situaci\u00f3n com\u00fan es tener una m\u00e1quina virtual con almacenamiento local en el servidor y necesitar expandir el disco, pero no hay a d\u00f3nde, ya que no queda espacio en disco disponible en el servidor.<\/p>\n<p>El problema se puede resolver de diferentes maneras, por ejemplo, mediante la migraci\u00f3n a otro servidor (si existe) o agregando nuevos discos al servidor. Pero no siempre es posible hacerlo, por lo que la migraci\u00f3n de LVM a Ceph puede ser una excelente soluci\u00f3n para este problema. Al elegir esta opci\u00f3n, tambi\u00e9n simplificamos el proceso de migraci\u00f3n entre servidores, ya que no ser\u00e1 necesario mover el almacenamiento local de un hipervisor a otro. El \u00fanico inconveniente es que ser\u00e1 necesario detener la VM durante el tiempo de trabajo.<\/p>\n<p>Como receta presentada a continuaci\u00f3n se toma <noindex><a rel=\"nofollow\" href=\"http:\/\/blog.easter-eggs.org\/index.php\/post\/2013\/09\/27\/%5BLibvirt%5D-Migrating-from-on-disk-raw-images-to-RBD-storage\">un art\u00edculo de este blog<\/a><\/noindex>, cuyas instrucciones han sido probadas en acci\u00f3n. Cabe mencionar que <b>tambi\u00e9n se describe all\u00ed un m\u00e9todo de migraci\u00f3n sin interrupciones<\/b>, sin embargo, en nuestro caso simplemente no fue necesario, por lo que no lo probamos. Si esto es cr\u00edtico para su proyecto, estaremos encantados de conocer los resultados en los comentarios.<\/p>\n<p>Pasemos a la parte pr\u00e1ctica. En el ejemplo utilizamos virsh y, por lo tanto, libvirt. Primero aseg\u00farese de que el pool de Ceph al que se migrar\u00e1n los datos est\u00e9 conectado a libvirt:<\/p>\n<pre><code class=\"bash\">virsh pool-dumpxml $ceph_pool<\/code><\/pre>\n<p>\nLa descripci\u00f3n del pool debe contener los datos de conexi\u00f3n a Ceph junto con los datos de autenticaci\u00f3n. <\/p>\n<p>El siguiente paso implica que la imagen de LVM se convierte a Ceph RBD. El tiempo de ejecuci\u00f3n depende principalmente del tama\u00f1o de la imagen:<\/p>\n<pre><code class=\"bash\">qemu-img convert -p -O rbd \/dev\/main\/$vm_image_name rbd:$ceph_pool\/$vm_image_name<\/code><\/pre>\n<p>\nDespu\u00e9s de la conversi\u00f3n, quedar\u00e1 la imagen de LVM, que ser\u00e1 \u00fatil en caso de que no se pueda migrar la VM a RBD y sea necesario revertir los cambios. Tambi\u00e9n, para la posibilidad de revertir r\u00e1pidamente los cambios, haremos una copia de seguridad del archivo de configuraci\u00f3n de la m\u00e1quina virtual:<\/p>\n<pre><code class=\"bash\">virsh dumpxml $vm_name &gt; $vm_name.xml\ncp $vm_name.xml $vm_name_backup.xml<\/code><\/pre>\n<p>\n\u2026 y editaremos el original (<code>vm_name.xml<\/code>). Buscaremos el bloque que describe el disco (comienza con la l\u00ednea <code>&lt;disk type='file' device='disk'&gt;<\/code> y termina en <code>&lt;\/disk&gt;<\/code>) y lo llevaremos a la siguiente forma:<\/p>\n<pre><code class=\"xml\">\\n\n  \\n \\n\n  \\n  \\n\\n \n\\n<address \/>\\n<\/code><\/pre>\n<p>\nAnalicemos algunos detalles:<\/p>\n<ol>\n<li> En el protocolo <code>source<\/code> se indica la direcci\u00f3n del almacenamiento en Ceph RBD (esta es la direcci\u00f3n con el nombre del pool Ceph y la imagen RBD definida en la primera etapa).<\/li>\n<li> En el bloque <code>secret<\/code> se especifica el tipo <code>ceph<\/code>, as\u00ed como el UUID del secreto para conectarse a \u00e9l. Su UUID se puede obtener con el comando <code>virsh secret-list<\/code>.<\/li>\n<li> En el bloque <code>host<\/code> se indican las direcciones de los monitores Ceph.<\/li>\n<\/ol>\n<p>\nDespu\u00e9s de editar el archivo de configuraci\u00f3n y completar la conversi\u00f3n de LVM a RBD, se puede aplicar el archivo de configuraci\u00f3n modificado y arrancar la m\u00e1quina virtual:<\/p>\n<pre><code class=\"bash\">virsh define $vm_name.xml\\nvirsh start $vm_name<\/code><\/pre>\n<p>\nEs un buen momento para verificar que la m\u00e1quina virtual se ha iniciado correctamente: esto se puede saber, por ejemplo, conect\u00e1ndose a ella por SSH o a trav\u00e9s de <code>virsh<\/code>. <\/p>\n<p>Si la m\u00e1quina virtual funciona correctamente y no ha encontrado otros problemas, se puede eliminar la imagen LVM que ya no se usa:<\/p>\n<pre><code class=\"bash\">lvremove main\/$vm_image_name<\/code><\/pre>\n<p><\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>\nHemos encontrado todas las situaciones descritas en la pr\u00e1ctica; esperamos que las instrucciones ayuden a otros administradores a resolver problemas similares. Si tiene comentarios o historias similares de su experiencia con Ceph, \u00a1nos encantar\u00eda verlas en los comentarios!<\/p>\n<h2>P.D.<\/h2>\n<p>\nTambi\u00e9n puedes leer en nuestro blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/477680\/\">Nuestras manos no son para el aburrimiento: recuperaci\u00f3n del cl\u00faster Rook en K8s<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/451818\/\">Rook o no Rook \u2014 esa es la cuesti\u00f3n<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/348044\/\">Rook es un almacenamiento de datos \u00abautogestionado\u00bb para Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/329666\/\">Creando almacenamiento persistente con aprovisionamiento en Kubernetes basado en Ceph<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/495870\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Ceph \u043a\u0430\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043e \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0432\u0437\u0433\u043b\u044f\u0434\u0430 \u043d\u0435 \u043a\u0430\u0436\u0443\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0438\u043b\u0438 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0441\u0442\u0430\u0440\u043e\u0433\u043e Ceph \u0432 \u043d\u043e\u0432\u044b\u0439 \u0441 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432 \u043d\u043e\u0432\u043e\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435; \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0432 Ceph. \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u044f\u0441\u044c \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438, \u043c\u044b \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u0441 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":77267,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-77266","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=\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Ceph \u043a\u0430\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0432.\" \/>\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\/tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah\" \/>\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\udd47Tips &amp; tricks \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Ceph \u0432 \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Ceph \u043a\u0430\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah\" \/>\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=\"2020-04-09T11:42:08+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-09T11:42:08+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\udd47Consejos y trucos para trabajar con Ceph en proyectos exigentes | ProHoster","description":"Usando Ceph como almacenamiento en red en.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah","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\udd47Tips &amp; tricks \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Ceph \u0432 \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 | ProHoster","og:description":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Ceph \u043a\u0430\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0432.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/tips-tricks-v-rabote-s-ceph-v-nagruzhennyh-proektah","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":"2020-04-09T11:42:08+00:00","article:modified_time":"2020-04-09T11:42:08+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"77266","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:20:51","updated":"2022-10-02 10:23:09","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\/77266","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=77266"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/77266\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/77267"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=77266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=77266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=77266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}