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 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
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.
Até a próxima.
Disclaimer: “The postings on this site are my own and do not necessarily represent my current employer positions, strategies, or opinions. The information here was edited to be useful for general purpose, specific data, and identifications was removed to allow reaching a generic audience and to be useful.