Sistema de Backup On Demand

56 views
Skip to first unread message

Camilo Carromeu

unread,
Nov 17, 2011, 2:29:58 PM11/17/11
to titan-f...@googlegroups.com
Olá pessoal,

Foi implementado um sistema de backup sob demanda no Titan. Este recurso ajuda administradores de qualquer instância do Titan a garantir a segurança dos dados.

A restrição é que instância precisa, necessariamente, estar rodando em um ambiente Linux. Portanto é aconselhável habilitar este recurso apenas em sistemas em produção.

Para utilizar é bem simples. O primeiro passo é criar um nova pasta, com direitos de escrita pelo usuário do Apache (ou correspondente). Por exemplo, vamos supor que seja criado uma pasta 'backup' na raiz da instância.

Agora, é necessário habilitar a funcionalidade inserindo a seguinte TAG no arquivo 'configure/titan.xml':

<backup
    path="backup/"
    validity="86400"
    timeout="43200"
/>


O atributo 'path' é o caminho para a pasta onde os backups serão gravados.

O atributo 'validity' é o tempo, em segundos, que os links permanecerão ativos. Backups mais antigos do que o tempo aqui estipulado serão apagados pelo Scheduler Job padrão ou na próxima vez que o backup sob demanda for executado. O valor padrão é 1 dia (86.400 segundos).

O 'timeout' é o tempo máximo que o script poderá ser executado. Ele não pode ser '0' (zero). O valor padrão é 12 horas (43.200 segundos).

Além disso, é fundamental que a instância possa acessar o DB sem a necessidade de senha. Há algumas formas de possibilitar isto:
  1. A primeira é configurar, no "pg_hba.conf", que o método de autenticação para conexões por sockets Unix seja "trust". Este método irá funcionar apenas para DBs rodando em "localhost", ou seja, no mesmo servidor da instância. Vale lembrar que conexões via sockets Unix ocupam menos memória do servidor e possuem um overhead menor do que conexões TCP/IP. Sempre que rodando em uma máquina Linux e acessando um DB em 'localhost' o Titan utiliza sockets Unix para aproveitar esta vantagem.

  2. No caso da instância estar acessando um DB que não esteja no mesmo servidor ('localhost') será necessário efetuar a conexão por TCP/IP. Neste caso, é possível habilitar no "pg_hba.conf" do servidor de PostgreSQL para que o método de autenticação para a conexão específica do IP do servidor Web que contém a instância seja "trust".

  3. Por fim, outra sugestão é inserir na pasta do usuário do Apache (no caso de Debian e Ubuntu o usuário padrão é o 'www-data' e a pasta é a "/var/www") um arquivo denominado '.pgpass' com uma linha com os dados de conexão na sintaxe "hostname:port:database:username:password". Isto fará com que o usuário 'www-data' possa conectar, sem indagação de senha, apenas no DB específico da instância.
Feito estes procedimentos o recurso de backup on demand será habilitado. Apenas usuários que pertençam a um grupo com direito de administrador poderão utilizá-lo. Para estes usuários irá aparecer um novo botão, comforme mostrado na Figura 1.

fig1.png

Ao clicar, o usuário poderá selecionar o que deseja que seja 'backupeado'. As opções são mostradas na Figura 2.

fig2.png

Ao avançar, o sistema inicia o backup em background e o usuário pode deslogar do sistema sem problemas. Ao término do processo é enviado um e-mail com os links para realização do download dos artefatos selecionados.

fig3.png

Espero que seja útil.

Abraços,

Camilo

Keywords: backup, cópia de segurança, download dos dados, segurança da informação.

--
http://www.carromeu.com/

e-Mails:
cam...@carromeu.com
camilo....@embrapa.br

Skype: ccarromeu
gTalk: cam...@carromeu.com

http://twitter.com/ccarromeu/
fig2.png
fig1.png
fig3.png
Reply all
Reply to author
Forward
0 new messages