Faça backup do seu sistema com o Object Storage
Hoje iremos implementar um sistema de backup usando Object Storage, que pode ser usado para diversos propositos. No meu caso como migrei meu blog para OCI, estou utilizando este recurso para fazer backup do banco de dados, site e do painel de administração.
Começamos criando uma compute instance no OCI em uma sub-rede Virtual Cloud Network (VCN) onde temos acesso SSH, seja via Internet Gateway ou um canal privado. Esta VCN deve ter um Gateway de Serviço que permitirá acesso privado à Oracle Services Network para fins de acesso ao Object Storage. Estou usando o Oracle Linux 8 em ARM de baixo custo para minha implantação. Você pode alterar o formato dependendo das necessidades desejadas.
Ja fiz um artigo sobre isso “Criando um Compute Instance”.
Crie um Object Storage bucket.
Crie o bucket que vamos usar para armazenar nossos dados. Deve ser do tipo Armazenamento padrão. Certifique-se de que esteja definido como privado, a menos que você queira armazenar também os dados de outras pessoas.
Precismos usar Grupos Dinâmicos para atribuir à nossa instância um Instance Principal e, em seguida, escrever políticas para permitir que ela funcione com nosso novo bucket.
Criando um Dynamic Group
Criamos um grupo dinâmico para vincular políticas à nossa instância. Neste exemplo, estamos usando apenas uma instância, portanto identificamos essa instância pelo OCID.
A seguir, vamos vincular nosso Dynamic Group a um conjunto de permissões usando uma Política.
Criando uma Politica para acesso ao Object Storage.
É aqui que atribuímos permissões aos membros do Dynamic Group que acabamos de criar. Criaremos uma política com uma instrução que permite que a instância que executa o backup interaja com o bucket específico que queremos montar.
Temos tudo setado para que possamos fazer a instalação no Linux e configurar a ferramenta RCLONE para que possamos ter acesso ao Object Storage.
Instalando pacotes e arquivo de configuração.
Faremos SSH em nossa instância usando o usuário opc com acesso sudo. A partir daí, instalaremos o rclone e o fuse:
[opc@vm-blog var]$ sudo yum-config-manager --enable ol8_developer && sudo yum install -y rclone fuse fuse3
Oracle Linux 8 Development Packages (aarch64) 134 MB/s | 108 MB 00:00
Last metadata expiration check: 0:00:31 ago on Wed 13 Dec 2023 09:18:37 PM GMT.
Package fuse3-3.3.0-17.0.1.el8.aarch64 is already installed.
Dependencies resolved.
======================================================================================================================================================================================================
Package Architecture Version Repository Size
======================================================================================================================================================================================================
Installing:
fuse aarch64 2.9.7-17.0.1.el8 ol8_baseos_latest 81 k
rclone aarch64 1.65.0-1.0.1.el8 ol8_developer 19 M
Transaction Summary
======================================================================================================================================================================================================
Install 2 Packages
Total download size: 19 M
Installed size: 76 M
Downloading Packages:
(1/2): fuse-2.9.7-17.0.1.el8.aarch64.rpm 2.3 MB/s | 81 kB 00:00
(2/2): rclone-1.65.0-1.0.1.el8.aarch64.rpm 95 MB/s | 19 MB 00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 94 MB/s | 19 MB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : rclone-1.65.0-1.0.1.el8.aarch64 1/2
Installing : fuse-2.9.7-17.0.1.el8.aarch64 2/2
Running scriptlet: fuse-2.9.7-17.0.1.el8.aarch64 2/2
Verifying : fuse-2.9.7-17.0.1.el8.aarch64 1/2
Verifying : rclone-1.65.0-1.0.1.el8.aarch64 2/2
Installed:
fuse-2.9.7-17.0.1.el8.aarch64 rclone-1.65.0-1.0.1.el8.aarch64
Complete!
[opc@vm-blog var]$
A seguir, criaremos um link simbolico para o diretorio /usr/bin directory:
[opc@vm-blog var]$ sudo ln -s /usr/bin/rclone /sbin/mount.rclone
[opc@vm-blog var]$
Crie um diretório para rclone em /etc/rclone e use o editor de sua preferência para criar um /etc/rclone/rclone.conf
Teste da instalação
A execução dos seguintes comandos montará o sistema de arquivos remoto (Object Storage):
sudo mkdir -p /backup
Depois que nosso local de montagem for criado:
[root@vm-blog rclone]# sudo rclone mount \
> backup:blog_backup /backup\
> --allow-other \
> --cache-dir /tmp/rclone/cache \
> --config /etc/rclone/rclone.conf \
> --dir-perms 0770 \
> --file-perms 0660 \
> --log-file /var/log/rclone.log \
> --log-level ERROR \
> --tpslimit 50 \
> --umask 0117 \
> --vfs-cache-mode writes \
> --vfs-fast-fingerprint &
[1] 73993
Edit fstab
A seguir, vamos montar o storage editando nosso /etc/fstab (ponto de monagem deve ser um diretório existente):
backup:blog_backup /backup rclone rw,umask=0117,nofail,_netdev,args2env,config=/etc/rclone/rclone.conf,uid=1000,gid=1000,file_perms=0760,dir_perms=0770,allow_other,vfs_cache_mode=writes,cache_dir=/tmp/rclone/cache 0 0
Depois que seu fstab for editado:
[root@vm-blog /]# sudo mount -av
/ : ignored
/boot : already mounted
/boot/efi : already mounted
/var/oled : already mounted
/dev/shm : already mounted
none : ignored
/backup : already mounted
[root@vm-blog /]#
Para este teste configurei o diretório de backup padrão para banco de dados e servidor Web no Object Storage.
Podemos ver aqui que os backups foram gerados no /backup.
Aqui podemos confirmar que os objetos estão no bucket e sincronizados com o arquivos que foram gerados no servidor pelo backup.
Espero que este artigo possa te auxiliar em uma solução simples e sincronizada para seus backups, lembrando que todos os recursos utilizados para este artigos são Always Free.
Te vejo em um próximo artigo.
Mestre, parabens pelo conteudo!
Você comentou que hospedou o seu blog lá na OCI. Se não for abusar você não poderia escrever um artigo mostrando como fazer isso? 😛
Aguardando o próximo da série. Obrigado por compartilhar.
To aprendendo agora OCI, bem legal.