Cloud Backup for Data Base Visão Geral do Sistema Dokfile White Paper Janeiro - 2014 2 Cloud Backup for Data Base Visão Geral do Sistema INDICE: www.dokfile.com/dokdbb INTRODUÇÃO: O QUE É O DOKDBB: FUNCIONAMENTO: CUSTOMIZAÇÃO: o Customizações avançadas: TABELA COMPARATIVA: INFORMAÇÕES TÉCNICAS: o Agente: o Controller: o Cron o Executor: o Exemplo de comandos utilizados: o Mapper: o Compressor: o Sync o Crypto: ARQUIVOS DE LOG (STD-ERR E STD-LOG) E STANDERD STREAMS: TRANSFERÊNCIA DE DADOS E TRANSAÇÃO GLOBAL: o Processo de backup: o Transação (Backup): o Transação (Transferência): o Transação (Integridade do backup): COMPATIBILIDADE BINÁRIA: MÓDULO OPCIONAL DE CRIPTOGRAFIA: o Client-Side: o Server-Side: o Algoritmo: PARALELIZAÇÃO: COMUNICAÇÃO ENTRE O CONTROLADOR E O AGENTE: o Comunicação via Sinais: o Protocolos: VISUALIZAÇÃO E RECUPERAÇÃO: PLATAFORMAS SUPORTADAS: GRANDE VOLUME DE DADOS: FIREWALL: CONFIGURAÇÃO: o Agente (Cliente-Local): o Controle (Servidor-Nuvem): Informações sobre Criptografia Client-Side: Informações sobre instalação (Windows): ANOTAÇÕES: 03 04 04 04 05 06 07 07 07 07 07 08 08 08 08 08 09 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14 14 15 15 15 15 15 16 16 17 [email protected] 3 Cloud Backup for Data Base Visão Geral do Sistema INTRODUÇÃO: Uma recente pesquisa feita em todo o mundo por uma grande empresa de sistemas, apontou que menos da metade das pessoas fazem cópia de segurança de seus arquivos importantes. Com as empresas também não é diferente, apesar de preocupadas com a segurança, mais de 40% das empresas não possuem ferramentas de recuperação dos seus dados. Por outro lado, apesar destes números tímidos, todos os profissionais de TI reconhecem a grande importância de uma política de procedimentos de backup. Muitas são as empresas que já enfrentaram o problema da perda de importantes informações por falta de procedimentos de backup ou por má execução destes procedimentos, o que levaram estas empresas a perderem mais que informações importantes, como tempo, dinheiro, e o pior, clientes. As empresas também reconhecem que o banco de dados é um dos seus ativos mais importantes, superando em valor até mesmo seus ativos físicos, já que na era da informação em que vivemos, informações são o principal negócio de qualquer companhia. Em outra importante pesquisa, foi detectado que mais de 80% das empresas pagariam o valor do faturamento bruto mensal para recuperar as informações do banco de dados, caso as tivesse perdido por algum motivo. Apesar da grande importância do backup do banco de dados, poucas empresas possuem uma rotina sistemática e organizada para executar esta tarefa. Se rotinas de backup são tão importantes, porque as empresas parecem esquecer-se disso? Não é uma resposta simples. Procedimentos de backup de um banco de dados quase sempre são complexos. Entre os problemas e dificuldades que interferem na execução de uma rotina de backup, podemos destacar: www.dokfile.com/dokdbb Muito esforço: fazer o backup do banco de dados é desgastante e a intervenção manual significa administrar a maioria dos processos em fitas ou outras mídias. Processo lento e ineficiente: sabemos que o processo de backup é lento e muitas vezes ineficiente, fazendo com que o administrador e a empresa percam muito tempo com esse tipo de rotina. Recuperação não confiáveis: não há garantia na integridade das informações do backup. Alto risco: perdas de fitas e outras mídias são extremamente comuns nos procedimentos manuais. Alto custos: além da necessidade de profissionais técnicos altamente capacitados, procedimentos de backup são muito caros e muitas vezes necessitam de hardwares específicos para sua execução. Complexidade: os sistemas disponíveis no mercado geralmente [email protected] 4 Cloud Backup for Data Base Visão Geral do Sistema são complexos e exigem especialistas para sua operação, geralmente só possível em empresas de grande porte. O QUE É O DOKDBB: O Dokfile Cloud Backup for Data Base - DOKDBB é um serviço web que permite que você inicie e gerencie agentes de backups automatizados para bancos de dados locais, tais como Postgres, MySQL, Microsoft SQL Server, MongoDB, Firebird ou Oracle em seu servidor Linux/UNIX ou Windows, com persistência redundante na nuvem. O DOKDBB não executa o backup em si, mas sim utiliza um subsistema conhecido como executor que executa a ferramenta nativa de backup do banco de dados, assim o backup é efetuado pela ferramenta de backup de cada motor de bancos de dados, assegurando desta forma sua integridade por não ser invasivo ao sistema da empresa. Isso traz uma segurança adicional ao sistema, já que as ferramentas nativas são largamente testadas. O DOKDBB, além dos sistemas de bancos relacionais tradicionais, também suporta bancos de dados NOSQL como MongoDB , CouchDB, Cassandra ou outros sistemas de banco de dados. FUNCIONAMENTO: O DOKDBB possui uma arquitetura distribuída onde um agente é instalado no hardware que hospeda o banco de dados. Este agente possui um “cron” (agendador de tarefas com base no tempo), e utiliza comunicação bidirecional com um “controler” (servidor de comportamento) hospedado na nuvem. Desta forma, o DOKDBB sabe o momento que deve efetuar o backup. O “cron” assim que iniciado aciona um “executor” que por sua vez aceita qualquer comando de backup, possibilitando ao administrador de banco de dados, customizar o comando de backup conforme suas necessidades. CUSTOMIZAÇÃO: O administrador de banco de dados pode customizar os serviços do DOKDBB da melhor maneira que atenda a necessidade de sua empresa. Primeiramente o administrador tem a opção de fazer um backup de seu banco de dados no momento que desejar, de qualquer parte do mundo, através de um computador com acesso a Internet, através do console web do DOKDBB. Outra forma é pré configurar o serviço criando um comportamento (behavior) específico para a execução do backup, como por exemplo, executar o backup todos os dias (sete dias por semana), sempre às 23 horas. Após a configuração, o backup é tirado automaticamente e enviado a nuvem com redundância geográfica. www.dokfile.com/dokdbb [email protected] 5 Cloud Backup for Data Base Visão Geral do Sistema Outra possibilidade é a de armazenamento dos dados (rotação), podendo o administrador definir quais as cópias de backup deseja manter arquivada, como por exemplo, só a última, ou as duas últimas, ou as seis últimas, se assim achar necessário. Desta forma, quando o administrador definir, por exemplo, as três ultimas cópias, no momento que quarta cópia for feita, a primeira da série é automaticamente removida, e assim por diante. Para facilitar a implementação da solução, o DOKDBB possui quatro edições pré-configuradas (vide tabela 1). Customizações avançadas: O DOKDBB oferece ainda a possibilidade de locar canais de sincronismo adicionais, tamanhos de backups maiores e até 8 conexões simultâneas (paralelização), e ainda suporte a customizações especificas do agente de backup. Para conhecer estas possibilidades, entre em contato com a Dokfile. Nota sobre conexões simultâneas: Atenção: Caso seja utilizado mais que 1 conexões simultânea é importante salientar que a quantidade de memória RAM do processo aumenta de acordo com a quantidade de conexões simultâneas. Ex: Caso seu “chunk” de dados seja no tamanho de 5MB, seu arquivo de backup possui 20MB e você esta utilizando 2 conexões simultâneas, a seguinte formula é aplicada para definir o tamanho de memória necessária: (conexões simultâneas * tamanho do chunk de dados) + tamanho do processo padrão na RAM = TOTAL DE RAM www.dokfile.com/dokdbb [email protected] 6 Cloud Backup for Data Base Visão Geral do Sistema TABELA COMPARATIVA DAS VERSÕES: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 Compressão de dados Suporte a reinício Quantidade de processadores suportados Paralelização envio de dados Paralelização na compressão dos dados Paralelização automática baseada nos processadores e núcleos físicos disponíveis na máquina do agente (o valor é selecionado automaticamente) Possibilidade de rodar o backup de mais de um RDBS na mesma máquina (ex.: fazer o backup de um banco MySQL e de um MSSQL rodando de uma mesma máquina) Console de administração WEB Restauração de um backup específico (determinado ponto específico) Suporte a Postgres Suporte a MySQL Suporte a MSSQL Server Suporte a Oracle Suporte a Mongo DB Suporte a Fireboard SQL Redundância global Durabilidade de 99.999999999% Definição da melhor hora para efetuar um backup (automaticamente) Definição da janela de dias Definição do número de cópias Possibilidade de armazenamento infinito Suporte a backup diferencial (quando fornecido pelo RDBS) Armazenamento dos arquivos de saída (log) do processo de backup stderr e std-out Suporte a backup incremental (quando fornecido pelo RDBS) Backup sob demanda Recuperação sobre demanda Backup automático simplificado Comportamento de backup avançado Notificação por e-mail Checagem da integridade do arquivo Status de seu backup local de qualquer parte do mundo UI de configuração Windows UI de configuração Linux UI de configuração UNIX Agente suporta rodar com aplicativo, como um serviço Windows ou como um daemon do UNIX Suporte para Windows (agente) Suporte para Linux (agente) Suporte para UNIX – Solaris, aix, hpux, etc. (agente) Possibilidade de locar um canal exclusivo de sincronismo Conexões simultâneas (até) Suporte a backups com até (arquivo) Pode rodar diretamente na nuvem (Amazon, Rackspace, LocalWeb, UOL, etc) Suporte a customizações específicas do agente de backup (serviço contratado à parte) Backup (on-demand) de qualquer lugar do mundo via console Web Recuperação do backup (on-demand) de qualquer lugar do mundo via console Web Número máximo de backups on-demand por mês via console Web Número máximo de restores de backup on demand por mês via console Web On-demand Automatic Advanced Enterprise 2 - 4 8* 2 - 4 8* 2 - 4 8* 2 - 4 8* - - - on-demand - - - on-demand - - das 20h ás 5h - - - - até 5 MB até 5 MB - até 5 MB até 5 MB - - - - - - - - - - - - on-demand on-demand on-demand on-demand - - - 2 - 4 10 GB 5 GB 15 GB 8** - - - 30 5 15 42 30 2 6 8 *Checagem parcial quando a Criptografia Client Side é utilizada. ** Para a versão enterprise quando contratado um canal de sincronismo adicional, o plug-in pode ser compilado com suporte a mais de 8 threads. ●Determinado pelo canal de sincronismo adquirido e pela velocidade do link de dados do cliente. www.dokfile.com/dokdbb [email protected] 7 Cloud Backup for Data Base Visão Geral do Sistema INFORMAÇÕES TÉCNICAS: Nesta sessão serão apresentados os principais componentes do DOKDBB e suas funções o sistema de backup. Agente O Agente é o principal componente do sistema, ele é quem efetua as ações de backup e sincronismo. O agente deve ser configurado no hardware que o sistema de banco de dados esteja em funcionamento. O agente está disponível para: Windows (Como um serviço) Linux (Como um daemon) Processo de Backup O agente sempre salvará o backup localmente, e então mapeia o arquivo de backup em chuncks de dados de 1MB5MB (pedaços). Feito isso, envia estes chuncks para nuvem. Isto é feito para alcançar paralelização do envio e para suporte a reinicio, caso o backup necessite ser parado e reiniciado posteriormente. Note que 100MB (meta-dados) livres além do tamanho do backup são necessários em seu HD local (podendo ser um HD externo USB). Controller O ‘controller’ é disponibilizado pela Dokfile e é hospedado na nuvem. É visível (acessado) pelo cliente utilizando o console web em: www.doksafe.com/system. Tanto o 'controller' quanto o agente trabalham de forma sincronizada e cooperativa, para que o backup funcione ambos devem estar corretamente configurados e operantes. Cron É configurado dentro do agente, e desta forma é “despertado” a cada 5 minutos, checando se tem algo agendado para fazer, assim sempre temos um intervalo de no mínimo 5 minutos entra as ações executadas pelo agente. Seu tempo de ação pode ser configurado para mais ou menos dependendo das necessidades do cliente. Executor O executor é acionado pelo ‘cron’, ou via um sinal proveniente do ‘controller’ utilizando comunicação bidirecional. Ele é responsável por enviar (executar) o comando de backup para o agente de backup de cada gerenciamento de bancos de dados. Exemplo de comandos utilizados: Para o Postgres: pg_dumpall --host localhost --port 5432 --username "postgres" --role "postgres" --no-password --verbose -file <<fileout>> Para o SQL Server: osql -S PC-LOCAL\\SQLEXPRESS -U sa -P 121316 -Q "BACKUP DATABASE test TO DISK='<<fileout>>'" É importante salientar que estes comandos podem ser customizados/substituídos para atender as necessidades de cada cliente. www.dokfile.com/dokdbb [email protected] 8 Cloud Backup for Data Base Visão Geral do Sistema Note que no lugar de saída do arquivo de ser utilizado o ‘placeholder’ <<fileout>> , assim o agente de backup pode controlar a saída do arquivo para posterior envio para nuvem. Nota que usuários de MySQL não devem utilizar o ‘placeholder ‘<<fileout>> na linha de comando. Veja nota abaixo neste documento para mais informações. Mapper Como o arquivo de backup pode ser muito grande, é necessário um componente de mapeamento de arquivos (disco -> memória), para que os dados possam ser tratados e preparados para transferência. O mapper é acionado pelo agente. Após o mapeamento é possível aplicar filtros sobre os dados, como criptografia e compressão de dados. Compressor O compressor é responsável por compactar o canal de dados. O algoritmo utilizado é uma variação do LZ77. Sync O sync é responsável por criar a transação que envia/recupera o arquivo de backup para/da Nuvem. Ele também é responsável por gerenciar o reinicio da operação, caso seja necessário. Crypto O crypto é um componente opcional, com ele é possível adicionar segurança ao seu backup. Suporta criptografia "Client-Side" e "Server-Side"; Suporta os algoritmos: AES-128, AES-192 e AES-256. www.dokfile.com/dokdbb [email protected] 9 Cloud Backup for Data Base Visão Geral do Sistema ARQUIVOS DE LOG (STD-ERR E STD-LOG) E STANDARD STREAMS Geralmente as ferramentas utilizadas para o backup (ex: pg_dump, osql) geram suas saídas nas “standard stream” do sistema operacional. O Executor do DOKDBB consegue capturar esta saída. Os seguintes arquivos são utilizados para o armazenamento: stdout.log stderr.log Estes arquivos são armazenados junto com o backup na nuvem. Segue um exemplo de um arquivo gerado pelo pg_dump (stderr.log): pg_dumpall: executando SET search_path = pg_catalog pg_dumpall: executando SET ROLE postgres pg_dumpall: executando SELECT oid, rolname, rolsuper, rolinherit, rolcreaterole, rolcreatedb, rolcanlogin, rolconnlimit, rolpassword, rolvaliduntil, rolreplication, pg_catalog.shobj_description(oid, 'pg_authid') as rolcomment FROM pg_authid ORDER BY 2 pg_dumpall: executando SELECT provider, label FROM pg_catalog.pg_shseclabel WHERE classoid = 'pg_authid'::pg_catalog.regclass AND objoid = 10 pg_dumpall: executando SELECT setconfig[1] FROM pg_db_role_setting WHERE setdatabase = 0 AND setrole = (SELECT oid FROM pg_authid WHERE rolname = 'postgres') pg_dumpall: executando SELECT ur.rolname AS roleid, um.rolname AS member, a.admin_option, ug.rolname AS grantor FROM pg_auth_members a LEFT JOIN pg_authid ur on ur.oid = a.roleid LEFT JOIN pg_authid um on um.oid = a.member LEFT JOIN pg_authid ug on ug.oid = a.grantor ORDER BY 1,2,3 pg_dumpall: executando SELECT oid, spcname, pg_catalog.pg_get_userbyid(spcowner) AS spcowner, pg_catalog.pg_tablespace_location(oid), spcacl, array_to_string(spcoptions, ', '),pg_catalog.shobj_description(oid, 'pg_tablespace') FROM pg_catalog.pg_tablespace WHERE spcname !~ '^pg_' ORDER BY 1 pg_dumpall: executando SELECT pg_encoding_to_char(encoding), datcollate, datctype FROM pg_database WHERE datname = 'template0' pg_dumpall: executando SELECT datname, coalesce(rolname, (select rolname from pg_authid where oid=(select datdba from pg_database where datname='template0'))), pg_encoding_to_char(d.encoding), datcollate, datctype, datfrozenxid, datistemplate, datacl, datconnlimit, (SELECT spcname FROM pg_tablespace t WHERE t.oid = d.dattablespace) AS dattablespace FROM pg_database d LEFT JOIN pg_authid u ON (datdba = u.oid) WHERE datallowconn ORDER BY 1 pg_dumpall: executando SELECT setconfig[1] FROM pg_db_role_setting WHERE setrole = 0 AND setdatabase = (SELECT oid FROM pg_database WHERE datname = 'postgres'); pg_dumpall: executando SELECT setconfig[1] FROM pg_db_role_setting WHERE setrole = 0 AND setdatabase = (SELECT oid FROM pg_database WHERE datname = 'template1'); pg_dumpall: executando SELECT setconfig[1] FROM pg_db_role_setting WHERE setrole = 0 AND setdatabase = (SELECT oid FROM pg_database WHERE datname = 'test'); pg_dumpall: executando SELECT rolname, datname, unnest(setconfig) FROM pg_db_role_setting, pg_authid, pg_database WHERE setrole = pg_authid.oid AND setdatabase = pg_database.oid pg_dumpall: executando SELECT datname FROM pg_database WHERE datallowconn ORDER BY 1 pg_dumpall: copiando banco de dados "postgres"... pg_dumpall: executando """C:/Program Files (x86)/PostgreSQL/9.2/bin/pg_dump.exe" -h "localhost" -p "5432" -U "postgres" --role "postgres" -w -v -f "c:\backup\pgsql\98500949-61c9-4380-afb1-8304757db4ad/backup.bkp" -Fa "dbname='postgres'""" pg_dump: lendo esquemas pg_dump: lendo tabelas definidas www.dokfile.com/dokdbb [email protected] 10 Cloud Backup for Data Base Visão Geral do Sistema Nota sobre o MySQL: O MySQL mysqldump gera a saída do backup diretamente no stdout (utilizando PIPES), neste caso o stdout.log é o próprio backup e o parâmetro <<fileout>> não deve ser informado na linha de comando ex: mysqldump -u root -p121316 -h localhost --all-databases Assim o DOKDBB pode identificar que um pipe é utilizado e fazer o direcionamento do stdout.log para backup.bkp internamente. Compare com o comando utilizado no pg_dump.exe e osql que não utiliza pipe: mysql: "mysqldump -u root -p121316 -h localhost --all-databases" (PIPE stdout sera redirecionado automaticamente para backup.bkp) pgsql: "pg_dumpall --host localhost --port 5432 --username \"postgres\" --role \"postgres\" --no-password --verbose --file <<fileout>>" mssql: "osql -S PC-LOCAL\\SQLEXPRESS -U sa -P 121316 -Q \"BACKUP DATABASE test TO DISK='<<fileout>>'\"", TRANSFERÊNCIA DE DADOS E TRANSAÇÃO GLOBAL A transferência de grandes volumes de dados entre servidores remotos geograficamente distribuídos é complexa, assim algumas limitações são impostas para que isso seja feito de maneira correta. IMPORTANTE: As mesmas devem ser observadas com cuidado! Processo de backup: O backup é feito em varias partes (transação global), podemos dividir em 3 principais: 1) Backup --> Onde o backup é efetuado pelo executor (local) 2) Transferência --> O arquivo local é transferido para a nuvem (local -> nuvem) 3) Integridade --> O arquivo remoto é recomposto e sua integridade é checada (nuvem) Transação (Backup): O backup não é efetuado pelo DOKDBB e sim pela ferramenta de backup utilizada pelo cliente (usualmente a própria ferramenta de backup do gerenciador de bancos de dados). O DOKDBB apenas executa esta ferramenta conforme política do cliente. Transação (Transferência): O envio do arquivo de backup é considerado uma transação, não atômica, suas fases são executadas de maneira dessincronizada (fora de ordem e tempo), porem como é uma transação, todas as fases (obrigatórias) devem ser executadas (completadas). www.dokfile.com/dokdbb [email protected] 11 Cloud Backup for Data Base Visão Geral do Sistema Duas fases não são obrigatórias: Sincronismo do std-err Sincronismo do std-log Todas as partes do sincronismo do arquivo de backup são obrigatórias. O arquivo de backup a ser transferido pode conter vários gigabytes, assim para que a transferência de dados possa ser feita o arquivo deve ser mapeado em chunks de dados especificados (ex 5mb). Isso pode ser definido pelo usuário, porem, a transferência deste chunck não pode levar mais que 15 minutos. Caso isso ocorra, ocorrerá um time-out e o arquivo não será transferido. Assim seu link da dados deve conseguir transferir o tamanho do chunk definido no tempo Maximo de 15 minutos. Os arquivos std-err e std-log são transferidos sem mapeamento, assim não podem levar mais que 15 minutos para serem transferidos! Caso isso ocorra a opção sendstderr e sendstdout devem ser desativadas, para que estes arquivos não sejam transferidos. Futuras versões do DOKDBB suportarão arquivos std-err e std-log maiores. Transação (Integridade do backup) Após a transação de transferência ocorrer, é feita uma checagem da integridade do arquivo de backup baseado no match de hash. Após esta checagem o backup é marcado como feito com sucesso e a transação de backup global é concluída (comitada). COMPATIBILIDADE BINÁRIA O DOKDBB utiliza um protocolo baseado em texto para suportar a compatibilidade binária, assim um overhead alto é imposto ao protocolo principalmente a transferência de dados, assim a compactação é de fundamental importância no protocolo e sempre deve estar ativa (salvo em poucos casos onde o processamento mínimo necessário para compressão não é fornecido). O principal motivo para essa abordagem é manter a compatibilidade binária do arquivo de backup, assim o protocolo do DOKDBB pode transferir o arquivo de backup com segurança entre diferentes arquiteturas, podendo variar entre : OS : Windows, Mac, UNIX, LINUX Bitness : 64 bits, 32 bits Arch: x86, MIPS, ARM MÓDULO OPCIONAL DE CRIPTOGRAFIA Um módulo adicional de criptografia esta disponível com suporte a criptografia de duas formas: Client-Side Neste modelo o cliente fornece a chave de criptografia na fonte, o backup é então criptografado com esta chave (que fica em poder do cliente, e é responsabilidade do cliente) e é armazenado criptografado nos servidores da Dokfile. Neste modelo a checagem de integridade (parte da transação global 3) não é feita, já que a Dokfile não possui a chave de criptografia do arquivo, que fica em poder do cliente, a Dokfile não pode decriptografar e checar o arquivo, sendo assim a checagem de integridade é mais fraca. www.dokfile.com/dokdbb [email protected] 12 Cloud Backup for Data Base Visão Geral do Sistema Vantagens: Nível de Segurança muito elevado. Desvantagens: Gerenciamento da chave é responsabilidade do cliente; Processamento da maquina local é muito utilizado para criptografia; O arquivo a ser transferido pode ficar 4x maior (dependendo do tipo de banco de dados);(*) Checagem fina da estrutura do arquivo não é possível (transação global). (*) O arquivo criptografado é convertido em base 64 para facilitar a transferência pela internet aumentando seu tamanho! Neste caso é indicado utilizar chunks de dados de 1MB. IMPORTANTE: Utilizar a compressão de dados neste caso é fundamental! Nível de Segurança: Muito elevado Server-Side É o oposto de 'Client-side encryption' onde as chaves ficam em poder da Dokfile. Neste modelo a chave é gerada e armazenada em um servidor de chaves seguro na própria infraestrutura da Dokfile. Nesta configuração todo gerenciamento das chaves criptográficas e ferramentas relacionadas necessárias são feitos pela Dokfile. Neste caso a Dokfile pode checar o arquivo e efetuar uma validação de integridade mais forte. Geração de Chaves Os dados são criptografados com uma chave simétrica única de 256 bits criada pela Dokfile para a o cliente. A chave é gerada utilizando bits randômicos, com base na tabela ASCII, possibilitando 1.8*10^19 possibilidades, evitando assim por completo ataques por dicionário ao sistema. A Chave é hospedada em um arquivo criptografado no servidor de Chaves da Dokfile com uma "Pass Phase" que deve ser informada em sua inicialização pelo Diretor de tecnologia da Dokfile. Uma carta com a chave impressa é fornecida para o cliente. A comunicação (session) entre o servidor de chaves da Dokfile e o servidor de encriptação é feita via seção segura utilizando infraestrutura de chaves PKI (SSL). Vantagens: Gerenciamento da chave não é responsabilidade do cliente; Processamento da maquina local não é utilizado, a criptografia é feita nos servidores da Dokfile; Checagem fina da estrutura do arquivo é possível (transação global). Desvantagens: Nível de segurança menor em comparação com o cliente-side Nível de Segurança: Elevado www.dokfile.com/dokdbb [email protected] 13 Cloud Backup for Data Base Visão Geral do Sistema Algoritmo O algoritmo criptográfico para a proteção dos dados pode ser: AES-128 - Advanced Encryption Standard (AES-128); AES-192 - Advanced Encryption Standard (AES-192); AES-256 - Advanced Encryption Standard (AES-256). IMPORTANTE: o AES-256 é um dos mais fortes algoritmos de criptografia em blocos disponíveis atualmente. PARALELIZAÇÃO O suporte a paralelização é nativo nos produtos da Dokfile. No caso do cliente, é disponível dependendo do produto o suporte a X processadores. O método de paralelismo utilizado é o de memória compartilhada, assim tarefas que exigem grande poder de processamento, como criptografia, compressão de dados e manipulação dos dados, podem ser paralelizadas em até X processadores. As conexões também podem ser paralelizadas para uma transferência de dados mais eficiente. COMUNICAÇÃO ENTRE O CONTROLADOR E O AGENTE Dois métodos de comunicação são implementados no Dokfile Cloud Backup. Comunicação bidirecional Geralmente iniciada pelo agente para atualizações no controlador. Este tipo de conexão ocorre em segundos, já que sistema da Dokfile tem um servidor para tratar este tido de comunicação. Comunicação via Sinais Geralmente iniciado pelo controlador para o agente. Este tipo de conexão é mais lenta, podendo demorar minutos. Quando um sinal é enviado para o agente, ele fica buferizado, não é tratado imediatamente. Isso é feito para evitar consumo excessivo de recursos da maquina cliente. Assim de tempos em tempos o agente recupera os sinais do buffer e executa a ação necessária. Este tipo de comunicação ocorre quando por exemplo, o usuário requisita na console web para um backup ser feito ou ser recuperado. MPORTANTE: Um sinal nunca interrompe uma ação em execução pelo agente (já iniciada pelo agente). Ex: Se você desabilitar o controle e o agente estiver fazendo um backup, primeiramente ele irá terminar o backup, e só então se desativar. Caso você queira forçar o termino, você terá que efetuar um flush no buffer do agente. Para fazer isso é muito simples, apenas reinicie o agente. Assim o buffer será recriado. Protocolos Os canais utilizados são TCP/IP com suporte a SSL port 433 (protocolo HTTP) e 9912 (protocolo Dokfile Hades Archive), 9623 Log (opcional). www.dokfile.com/dokdbb [email protected] 14 Cloud Backup for Data Base Visão Geral do Sistema VISUALIZAÇÃO E RECUPERAÇÃO O agente de backup utiliza comunicação bidirecional com o servidor do Dokfile, proporcionando uma visão de tudo o que esta ocorrendo em real-time diretamente no site da Dokfile. A recuperação é iniciada pelo console web. Utilizando um assistente local você pode indicar onde o arquivo recuperado deve ser salvo, para posterior restauração no sistema de banco de dados, que deve ser feita pelo seu administrador de banco de dados, ou contratada por técnicos da Dokfile. PLATAFORMAS SUPORTADAS O DokDBB oferece suporte aos seguintes sistemas de banco de dados: Postgres Firebird MySQL SQL Server MongoDB (Enterprise : on-demand) Oracle (Enterprise : on-demand) GRANDES VOLUMES DE DADOS O DOKDBB não é indicado para a armazenagem de grande volume de dados (TERABYTES), neste caso uma arquitetura especifica deve ser desenvolvida, e inúmeros fatores devem ser considerados. Se esse é seu caso entre em contato para saber como podemos ajuda-lo. FIREWALL Para o DOKDBB funcionar é necessário abrir (permitir o trafego de informações) a porta TCP: 9912 Caso o cliente deseja utilizar o log remoto* (opcional) é necessário abrir (permitir o trafego de informações) a porta TCP: 9623 O log remoto permite a Dokfile identificar problemas no funcionamento do seu backup. CONFIGURAÇÃO O agente e o controlador funcionam de maneira integrada e cooperativa, assim, para que o DOKDBB funcione corretamente, ambos devem estar configurados corretamente. Temos 2 tipos de configuração, a do agente (que é armazenada localmente em um arquivo de configuração, podendo ter um cache remoto) e a do controle que é armazenada diretamente nos servidores da Dokfile na nuvem. Caso tenha duvidas entre em contato com a Dokfile para que possamos ajuda-lo. www.dokfile.com/dokdbb [email protected] 15 Cloud Backup for Data Base Visão Geral do Sistema Agente (Cliente - Local) Requisitos: 1) O Agente deve estar instalado. 2) O ‘controller’ deve já ter sido configurado pela Dokfile e você deve ter a chave de acesso parecido com esta abaixo: AB123654789F01234560AB123654789F01234560 Para configurar o agente você deve executar o painel de controle "Dokfile Cloud Backup For Data Base" do Windows. O primeiro passo é fazer o "bind", ou seja você deve entrar com a chave de acesso assim que requisitado pelo painel de controle. Após este passo o agente irá entrar em contato com o ‘Controller’ e então apresentar as opções de configuração para você possa escolher. Controle (Servidor - Nuvem) O ‘Controller’ inicialmente é configurado pela Dokfile. Dependendo do produto adquirido você pode configurar varias propriedades do ’controller’ diretamente no console web. Informações sobre Criptografia client-side A criptografia client-side é definida pela configuração corrente do agente! Assim você deve ficar consciente que se você mudar a chave você poderá ter problemas na recuperação, de backups criptografados com chaves diferentes em momentos diferentes. Exemplo: Dia 14/08 você esta usando a chave1 e então um backup é feito, assim temos: 14/08 BACKUP:01 CHAVE:01 No mês seguinte você altera seu agente para usar a chave2, então: 14/09 BACKUP:02 CHAVE:02 Neste caso você necessita recuperar o backup BACKUP:01, porem o agente agora esta configurado com a chave2. NESTE CARO A RECUPERACAO IRÁ FALHAR E A SEGUINTE MENSSAGEM SERA LOGADA NO LOG: Chaves com erros, você esta tentando recuperar um backup que foi criptografado com outra chave diferente da configurada no agente. Configure a chave correta e tente novamente. Para resolver o problema você deve reconfigurar o agente com a chave1 antes de recuperar o backup, e então voltar para a chave2. ISSO PODE SER EXTREMAMENTE COMPLEXO, POR ESSE MOTIVO A DOKFILE FORNECE SERVER-SIDE ONDE O CONTROLE DE CHAVES É TRANSPARENTE. No caso de você necessitar usar client-side, você deve fazer um controle utilizando os campos de comentário no console web fazendo um mapeamento de que chave foi utilizada em cada backup, anotando as chaves em um papel e indicando com o mapeamento no campo de comentário. Consulte a Dokfile sobre a melhor abordagem de criptografia para o seu negócio, pois é um tema altamente complexo. www.dokfile.com/dokdbb [email protected] 16 Cloud Backup for Data Base Visão Geral do Sistema Atenção: a mudança entre os tipos de criptografia deve ser feita com cautela, já que a mudança de cliet-side para server-side, faz com que os backups cliet-side não possam ser recuperados pelo mesmo agente. Geralmente este erro é reportado, quando você tenta recuperar um arquivo criptografado em modo client-side em um agente não configurado em modo client-side, ou configurado com as chaves erradas. zlib error Informações sobre instalação (windows) Para Windows Server 2008 R2 Server o WoW64 deve ser instalado, já que o DOKDBB é 32bits www.dokfile.com/dokdbb [email protected] 17 Cloud Backup for Data Base Visão Geral do Sistema ANOTAÇÕES: www.dokfile.com/dokdbb [email protected] 18 Cloud Backup for Data Base Visão Geral do Sistema ANOTAÇÕES: www.dokfile.com/dokdbb [email protected] 19 Cloud Backup for Data Base Renato Tegon Forti Ricardo Tegon Forti Renato Tegon Forti www.dokfile.com/dokdbb Visão Geral do Sistema 16/06/2013 ddmmyyyy 06/01/2014 ddmmyyyy 07/01/2014 ddmmyyyy Initial Release Revision Revision [email protected] 20 Cloud Backup for Data Base Visão Geral do Sistema Administrativo: Av. Campos Salles, 272 Americana - SP 13465-590 Tel: +55 19 3645.9994 Desenvolvimento: Av. Nossa Sra. De Fátima, 291 Vila Israel - 1º Andar - Sala 1 CEP 13478-540 Americana / SP TEL: +55 19 3645-9991 [email protected] www.dokfile.com www.dokfile.com/dokdbb [email protected]