{"id":83100,"date":"2020-05-28T13:42:10","date_gmt":"2020-05-28T11:42:10","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/bekap-hranilishhe-dlya-tysyach-virtualnyh-mashin-svobodnymi-instrumentami"},"modified":"2020-05-28T13:42:10","modified_gmt":"2020-05-28T11:42:10","slug":"bekap-hranilishhe-dlya-tysyach-virtualnyh-mashin-svobodnymi-instrumentami","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/bekap-hranilishhe-dlya-tysyach-virtualnyh-mashin-svobodnymi-instrumentami","title":{"rendered":"Armazenamento de backup para milhares de m\u00e1quinas virtuais com ferramentas livres","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Armazenamento de backup para milhares de m\u00e1quinas virtuais com ferramentas livres\" src=\"\/wp-content\/uploads\/2020\/05\/e1be85f9fdec702ce8db043ac72dd507.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ol\u00e1, recentemente encontrei uma tarefa interessante de configurar um armazenamento para backup de um grande n\u00famero de dispositivos de bloco.<\/p>\n<p><\/p>\n<p>Toda semana realizamos o backup de todas as m\u00e1quinas virtuais em nossa nuvem, assim precisamos ser capazes de gerenciar milhares de backups e faz\u00ea-lo da maneira mais r\u00e1pida e eficiente poss\u00edvel.<\/p>\n<p><\/p>\n<p>Infelizmente, as configura\u00e7\u00f5es padr\u00e3o <strong>RAID5<\/strong>, <strong>RAID6<\/strong> neste caso n\u00e3o ser\u00e3o adequadas, uma vez que o processo de recupera\u00e7\u00e3o em discos t\u00e3o grandes quanto os nossos ser\u00e1 dolorosamente longo e provavelmente nunca terminar\u00e1.<\/p>\n<p><\/p>\n<p>Vamos considerar quais s\u00e3o as alternativas:<\/p>\n<p><\/p>\n<p><strong><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.min.io\/docs\/minio-erasure-code-quickstart-guide.html\">Erasure Coding<\/a><\/noindex><\/strong> \u2014 Semelhante ao RAID5, RAID6, mas com um n\u00edvel de paridade configur\u00e1vel. Neste caso, a prote\u00e7\u00e3o n\u00e3o \u00e9 feita por bloco, mas para cada objeto individualmente. A maneira mais simples de experimentar erasure coding \u00e9 implementar <noindex><a rel=\"nofollow\" href=\"https:\/\/min.io\/\">minio<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong><noindex><a rel=\"nofollow\" href=\"https:\/\/openzfs.github.io\/openzfs-docs\/Basic%20Concepts\/dRAID%20Howto.html?highlight=draid\">DRAID<\/a><\/noindex><\/strong> \u2014 esta \u00e9 uma funcionalidade ainda n\u00e3o lan\u00e7ada do ZFS. Ao contr\u00e1rio do RAIDZ, o DRAID possui um bloco de paridade distribu\u00eddo e, durante a recupera\u00e7\u00e3o, utiliza todos os discos da matriz, o que melhora a resist\u00eancia a falhas e acelera a recupera\u00e7\u00e3o ap\u00f3s uma falha. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><img decoding=\"async\" alt=\"Armazenamento de backup para milhares de m\u00e1quinas virtuais com ferramentas livres\" src=\"\/wp-content\/uploads\/2020\/05\/aa867bbd4f52501c8708636d2cd1fb27.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Armazenamento de backup para milhares de m\u00e1quinas virtuais com ferramentas livres\" src=\"\/wp-content\/uploads\/2020\/05\/47b0a233d5db5b66472e17fb5a822fad.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Temos \u00e0 disposi\u00e7\u00e3o um servidor <strong>Fujitsu Primergy RX300 S7<\/strong> com processador <strong>Intel Xeon CPU E5-2650L 0 @ 1.80GHz<\/strong>, nove m\u00f3dulos de mem\u00f3ria RAM <strong>Samsung DDR3-1333 8Gb PC3L-10600R ECC Registered (M393B1K70DH0-YH9)<\/strong>, uma unidade de disco <strong>Supermicro SuperChassis 847E26-RJBOD1<\/strong>, conectada atrav\u00e9s de <strong>Dual LSI SAS2X36 Expander<\/strong> e 45 discos <strong>Seagage ST6000NM0115-1YZ110<\/strong> para <strong>6TB<\/strong> cada um.<\/p>\n<p><\/p>\n<p>Antes de decidir algo, precisamos primeiro testar tudo adequadamente.<\/p>\n<p><\/p>\n<p>Para isso, me preparei e realizei testes de v\u00e1rias configura\u00e7\u00f5es. Usei o minio, que atuou como backend S3, e o executei em diferentes modos com diferentes quantidades de alvos.<\/p>\n<p><\/p>\n<p>O foco principal dos testes foi o caso do minio em erasure coding contra software RAID com a mesma quantidade de discos e discos de paridade, ou seja: RAID6, RAIDZ2 e DRAID2.<\/p>\n<p><\/p>\n<blockquote><p>Para refer\u00eancia: quando voc\u00ea executa o minio com apenas um \u00fanico alvo, ele funciona em modo de gateway S3, apresentando seu sistema de arquivos local como um armazenamento S3. No entanto, se voc\u00ea iniciar o minio especificando v\u00e1rios alvos, o modo Erasure Coding ser\u00e1 ativado automaticamente, espalhando os dados entre seus alvos e fornecendo resist\u00eancia a falhas.<\/p>\n<p>Por padr\u00e3o, o minio divide os alvos em grupos de 16 discos, onde cada grupo possui 2 paridades. Ou seja, at\u00e9 dois discos podem falhar simultaneamente sem perda de dados.<\/p><\/blockquote>\n<p>Para testar o desempenho, utilizei 16 discos de 6TB cada e escrevi objetos pequenos de 1MB, o que descreveu com precis\u00e3o nossa carga de trabalho futura, uma vez que todas as ferramentas modernas de backup dividem os dados em blocos de alguns megabytes e os gravam dessa forma.<\/p>\n<p><\/p>\n<p>Para realizar o benchmark, usei a ferramenta s3bench, executada em um servidor remoto, que enviava dezenas de milhares de objetos ao minio em cem threads. Ap\u00f3s isso, tentei solicit\u00e1-los de volta da mesma maneira.<\/p>\n<p><\/p>\n<p>Os resultados do benchmark est\u00e3o na tabela a seguir:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Armazenamento de backup para milhares de m\u00e1quinas virtuais com ferramentas livres\" src=\"\/wp-content\/uploads\/2020\/05\/218a14dcd9311e4b350a3b7aafbd290c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Como podemos ver, o minio em modo de erasure coding pr\u00f3prio apresenta desempenho de grava\u00e7\u00e3o significativamente inferior em compara\u00e7\u00e3o ao minio rodando sobre RAID6, RAIDZ2 e DRAID2 na mesma configura\u00e7\u00e3o.<\/p>\n<p><\/p>\n<p>Separadamente, fui <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/sds_ru\/15987\">solicitado<\/a><\/noindex> para testar o minio no ext4 vs XFS. Surpreendentemente, para meu tipo de carga, o XFS se mostrou significativamente mais lento que o ext4.<\/p>\n<p><\/p>\n<p>No primeiro grupo de testes, o Mdadm demonstrou superioridade sobre o ZFS, mas mais tarde <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/gmelikov\/\" class=\"user_link\">gmelikov<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/sds_ru\/15724\">sugeriu<\/a><\/noindex>, que a performance do ZFS poderia ser melhorada ao definir as seguintes op\u00e7\u00f5es:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">xattr=sa atime=off recordsize=1M<\/code><\/pre>\n<p><\/p>\n<p>e ap\u00f3s isso, os testes com ZFS melhoraram muito.<\/p>\n<p><\/p>\n<p>Tamb\u00e9m \u00e9 poss\u00edvel notar que o DRAID n\u00e3o oferece um ganho significativo de desempenho em rela\u00e7\u00e3o ao RAIDZ, mas teoricamente deve ser muito mais seguro.<\/p>\n<p><\/p>\n<p>Nos \u00faltimos dois testes, tamb\u00e9m tentei mover os metadados (special) e ZIL (log) para um espelho SSD. No entanto, a remo\u00e7\u00e3o dos metadados n\u00e3o trouxe um ganho significativo na velocidade de grava\u00e7\u00e3o, e ao mover o ZIL, minha <noindex><a rel=\"nofollow\" href=\"https:\/\/www.memory4less.com\/intel-ssd-ssdsc2ki128g8\">SSDSC2KI128G8<\/a><\/noindex> chegou ao limite com 100% de utiliza\u00e7\u00e3o, ent\u00e3o considero este teste como falhado. N\u00e3o descarto que, se tivesse SSDs mais r\u00e1pidos, isso poderia melhorar significativamente meus resultados, mas, infelizmente, n\u00e3o os tinha.<\/p>\n<p><\/p>\n<p>No fim, decidi continuar usando o DRAID e, apesar de seu status beta, ele \u00e9 a solu\u00e7\u00e3o mais r\u00e1pida e eficaz para armazenamento no nosso caso.<\/p>\n<p><\/p>\n<p>Criei um simples DRAID2 na configura\u00e7\u00e3o com tr\u00eas grupos e dois spares distribu\u00eddos:<\/p>\n<p><\/p>\n<pre><code class=\"bash\"># zpool status data\n  pool: data\n state: ONLINE\n  scan: none requested\nconfig:\n\n    NAME                 STATE     READ WRITE CKSUM\n    data                 ONLINE       0     0     0\n      draid2:3g:2s-0     ONLINE       0     0     0\n        sdy              ONLINE       0     0     0\n        sdam             ONLINE       0     0     0\n        sdf              ONLINE       0     0     0\n        sdau             ONLINE       0     0     0\n        sdab             ONLINE       0     0     0\n        sdo              ONLINE       0     0     0\n        sdw              ONLINE       0     0     0\n        sdak             ONLINE       0     0     0\n        sdd              ONLINE       0     0     0\n        sdas             ONLINE       0     0     0\n        sdm              ONLINE       0     0     0\n        sdu              ONLINE       0     0     0\n        sdai             ONLINE       0     0     0\n        sdaq             ONLINE       0     0     0\n        sdk              ONLINE       0     0     0\n        sds              ONLINE       0     0     0\n        sdag             ONLINE       0     0     0\n        sdi              ONLINE       0     0     0\n        sdq              ONLINE       0     0     0\n        sdae             ONLINE       0     0     0\n        sdz              ONLINE       0     0     0\n        sdan             ONLINE       0     0     0\n        sdg              ONLINE       0     0     0\n        sdac             ONLINE       0     0     0\n        sdx              ONLINE       0     0     0\n        sdal             ONLINE       0     0     0\n        sde              ONLINE       0     0     0\n        sdat             ONLINE       0     0     0\n        sdaa             ONLINE       0     0     0\n        sdn              ONLINE       0     0     0\n        sdv              ONLINE       0     0     0\n        sdaj             ONLINE       0     0     0\n        sdc              ONLINE       0     0     0\n        sdar             ONLINE       0     0     0\n        sdl              ONLINE       0     0     0\n        sdt              ONLINE       0     0     0\n        sdah             ONLINE       0     0     0\n        sdap             ONLINE       0     0     0\n        sdj              ONLINE       0     0     0\n        sdr              ONLINE       0     0     0\n        sdaf             ONLINE       0     0     0\n        sdao             ONLINE       0     0     0\n        sdh              ONLINE       0     0     0\n        sdp              ONLINE       0     0     0\n        sdad             ONLINE       0     0     0\n    spares\n      s0-draid2:3g:2s-0  AVAIL   \n      s1-draid2:3g:2s-0  AVAIL   \n\nerrors: No known data errors<\/code><\/pre>\n<p>Bom, resolvemos a quest\u00e3o do armazenamento, agora sobre o que usaremos para fazer backup. Aqui, gostaria de falar sobre tr\u00eas solu\u00e7\u00f5es que consegui experimentar, que s\u00e3o:<\/p>\n<p><\/p>\n<p><strong><noindex><a rel=\"nofollow\" href=\"https:\/\/benji-backup.me\">Benji Backup<\/a><\/noindex><\/strong> \u2014 um fork <noindex><a rel=\"nofollow\" href=\"http:\/\/backy2.com\/\">Backy2<\/a><\/noindex>, solu\u00e7\u00e3o especializada para backup de dispositivos em bloco, possui integra\u00e7\u00e3o estreita com Ceph. \u00c9 capaz de captar diffs entre snapshots e formar backups incrementais a partir deles. Suporta uma grande quantidade de backends de armazenamento, incluindo op\u00e7\u00f5es locais e S3. Requer um banco de dados separado para armazenar a tabela hash de deduplica\u00e7\u00e3o. Entre as desvantagens, est\u00e1 escrito em Python e possui um CLI um pouco n\u00e3o responsivo.<\/p>\n<p><\/p>\n<p><strong><noindex><a rel=\"nofollow\" href=\"https:\/\/borgbackup.readthedocs.io\/en\/stable\/\">Borg Backup<\/a><\/noindex><\/strong> \u2014 um fork <noindex><a rel=\"nofollow\" href=\"https:\/\/attic-backup.org\/\">Attic<\/a><\/noindex>, uma ferramenta j\u00e1 conhecida e testada para backup, que consegue fazer backup de dados e realiza boa deduplica\u00e7\u00e3o. \u00c9 capaz de armazenar backups tanto localmente quanto em um servidor remoto via SCP. Pode fazer backup de dispositivos em bloco se for executado com a flag <code>--special<\/code>, entre os negativos: ao criar um backup, o reposit\u00f3rio \u00e9 completamente bloqueado, portanto \u00e9 recomend\u00e1vel criar um reposit\u00f3rio separado para cada m\u00e1quina virtual; isso n\u00e3o \u00e9 um problema, pois eles s\u00e3o criados com bastante facilidade.<\/p>\n<p><\/p>\n<p><strong><noindex><a rel=\"nofollow\" href=\"https:\/\/restic.net\/\">Restic<\/a><\/noindex><\/strong> \u2014 um projeto em ativo desenvolvimento, escrito em Go, bastante r\u00e1pido e suporta uma ampla gama de backends para armazenamento, incluindo armazenamento local, SCP, S3 e muito mais. Vale ressaltar que existe um <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/restic\/rest-server\">rest-server<\/a><\/noindex> especificamente para o restic, que permite exportar o armazenamento de forma mais r\u00e1pida para uso remoto. Dos mencionados, gostei mais deste. Ele \u00e9 capaz de fazer backup de stdin. Quase n\u00e3o possui desvantagens not\u00e1veis, mas h\u00e1 algumas particularidades:<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>Primeiro, eu tentei us\u00e1-lo no modo de reposit\u00f3rio compartilhado para todas as m\u00e1quinas virtuais (como o Benji) e funcionou razoavelmente bem, mas as opera\u00e7\u00f5es de restaura\u00e7\u00e3o demoravam bastante, uma vez que toda vez que o restic tenta ler os metadados de todos os backups antes da restaura\u00e7\u00e3o. Esse problema foi facilmente resolvido, assim como com o Borg, criando um reposit\u00f3rio separado para cada m\u00e1quina virtual. Essa abordagem tamb\u00e9m se mostrou bastante eficaz na gest\u00e3o de backups. Reposit\u00f3rios isolados podem ter uma senha separada para acessar os dados, e tamb\u00e9m podemos ficar tranquilos que um reposit\u00f3rio global n\u00e3o pode falhar de alguma forma. Criar novos reposit\u00f3rios tamb\u00e9m \u00e9 t\u00e3o simples quanto no Borg Backup.<\/p>\n<p><\/p>\n<p>De qualquer forma, a deduplica\u00e7\u00e3o \u00e9 feita apenas em rela\u00e7\u00e3o \u00e0 vers\u00e3o anterior do backup, que \u00e9 definida pelo caminho para o backup indicado. Portanto, se voc\u00ea estiver fazendo backup de diferentes objetos do stdin em um reposit\u00f3rio comum, n\u00e3o se esque\u00e7a de especificar a op\u00e7\u00e3o <code>--stdin-filename<\/code>, ou ent\u00e3o mencionar explicitamente a op\u00e7\u00e3o <code>--parent<\/code>.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<ul>\n<li>\n<p>Em segundo lugar, a recupera\u00e7\u00e3o para stdout leva significativamente mais tempo do que a recupera\u00e7\u00e3o no sistema de arquivos devido \u00e0 sua paralelidade. No futuro, est\u00e1 planejado adicionar um suporte mais pr\u00f3ximo para backups de dispositivos de bloco.<\/p>\n<p>\n<\/li>\n<li>\n<p>Em terceiro lugar, neste momento, \u00e9 recomend\u00e1vel usar a <noindex><a rel=\"nofollow\" href=\"https:\/\/beta.restic.net\/?sort=time&amp;order=desc\">vers\u00e3o do master<\/a><\/noindex>, pois a vers\u00e3o 0.9.6 tem um bug com a recupera\u00e7\u00e3o lenta de grandes arquivos.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Para testar a efic\u00e1cia do backup e a velocidade de grava\u00e7\u00e3o \/ recupera\u00e7\u00e3o do backup, criei um reposit\u00f3rio separado e tentei fazer backup de uma pequena imagem de m\u00e1quina virtual (21 GB). Foram realizados dois backups sem modificar o original, usando cada uma das solu\u00e7\u00f5es listadas, para verificar como os dados deduplicados s\u00e3o copiados mais r\u00e1pido \/ mais devagar.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Armazenamento de backup para milhares de m\u00e1quinas virtuais com ferramentas livres\" src=\"\/wp-content\/uploads\/2020\/05\/acab0d9f0d535e29ff272fef4e92de0f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Como podemos notar, o Borg Backup tem o melhor coeficiente de efici\u00eancia para o backup inicial, mas perde em velocidade tanto na grava\u00e7\u00e3o quanto na recupera\u00e7\u00e3o.<\/p>\n<p><\/p>\n<p>O Restic se mostrou mais r\u00e1pido que o Benji Backup, mas leva mais tempo para recuperar no stdout, e escrever diretamente em um dispositivo de bloco, infelizmente, ainda n\u00e3o \u00e9 poss\u00edvel.<\/p>\n<p><\/p>\n<p>Pesando todos os pr\u00f3s e contras, decidi ficar com <strong>restic<\/strong> com <strong>rest-server<\/strong> como a solu\u00e7\u00e3o mais conveniente e promissora para backup.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/asciinema.org\/a\/333393\"><img decoding=\"async\" alt=\"Armazenamento de backup para milhares de m\u00e1quinas virtuais com ferramentas livres\" src=\"\/wp-content\/uploads\/2020\/05\/cb174ab1522f529dea0712b64c0ac923.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Neste screencast, voc\u00ea pode ver como um canal de 10 gigabits \u00e9 totalmente utilizado durante v\u00e1rias opera\u00e7\u00f5es de backup executadas simultaneamente. Vale notar que a utiliza\u00e7\u00e3o dos discos n\u00e3o ultrapassa 30% nesse caso.<\/p>\n<p><\/p>\n<p>Fiquei mais do que satisfeito com a solu\u00e7\u00e3o obtida!<\/p>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/504152\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u043c\u043d\u0435 \u043f\u043e\u043f\u0430\u043b\u0430\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u043a\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u043b\u044f \u0431\u044d\u043a\u0430\u043f\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0431\u043b\u043e\u0447\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u041a\u0430\u0436\u0434\u0443\u044e \u043d\u0435\u0434\u0435\u043b\u044e \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u0432 \u043d\u0430\u0448\u0435\u043c \u043e\u0431\u043b\u0430\u043a\u0435, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u043c\u0435\u0442\u044c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u0442\u044b\u0441\u044f\u0447\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439 \u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u044d\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 RAID5, RAID6 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0442\u044f\u0442 \u0432 \u0432\u0438\u0434\u0443 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":83101,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-83100","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.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442.\" \/>\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\/pt\/blog\/administrirovanie\/bekap-hranilishhe-dlya-tysyach-virtualnyh-mashin-svobodnymi-instrumentami\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\u0411\u044d\u043a\u0430\u043f-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u043b\u044f \u0442\u044b\u0441\u044f\u0447 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/bekap-hranilishhe-dlya-tysyach-virtualnyh-mashin-svobodnymi-instrumentami\" \/>\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-05-28T11:42:10+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-28T11:42:10+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\udd47Armazenamento de backup para milhares de m\u00e1quinas virtuais com ferramentas gratuitas | ProHoster","description":"Ol\u00e1.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/bekap-hranilishhe-dlya-tysyach-virtualnyh-mashin-svobodnymi-instrumentami","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\u0411\u044d\u043a\u0430\u043f-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u043b\u044f \u0442\u044b\u0441\u044f\u0447 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/bekap-hranilishhe-dlya-tysyach-virtualnyh-mashin-svobodnymi-instrumentami","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-05-28T11:42:10+00:00","article:modified_time":"2020-05-28T11:42:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"83100","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 15:25:22","updated":"2022-09-28 15:47:37","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/83100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=83100"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/83100\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/83101"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=83100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=83100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=83100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}