Minio: Tenha seu próprio S3 Storage

Minio é um storage de objetos de alta performance e distribuído, mas a grande vantagem de usá-lo é sua compatibilidade total com o Amazon S3, nesse post vou explicar como podemos subir um minio server dentro da sua própria infraestrutura, criar um bucket para armazenar os dados e fazer a montagem no ubuntu usando s3fs para armazenar os seus arquivos.

Para fazer a instalação do Minio é relativamente simples, basta executar os passos abaixo:

wget https://dl.minio.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio
chmod +x /usr/local/bin/minio

Agora para iniciar o servidor digite o comando:

root@storage:~# minio server /mnt/data &

Logo será iniciado o seu servidor e na tela irá aparecer os dados de acesso:

Drive Capacity: 8.4 GiB Free, 9.6 GiB Total

Endpoint:  http://10.100.0.113:9000  http://10.0.2.15:9000  http://172.17.0.1:9000  http://127.0.0.1:9000
AccessKey: VL8XZ7C65RYY20SUO5VM 
SecretKey: ih4K7jv+E+SaUqtuE8kH1KSa8sPzYmmHrH/4HiYy 

Browser Access:
   http://10.100.0.113:9000  http://10.0.2.15:9000  http://172.17.0.1:9000  http://127.0.0.1:9000

Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
   $ mc config host add myminio http://10.100.0.113:9000 VL8XZ7C65RYY20SUO5VM ih4K7jv+E+SaUqtuE8kH1KSa8sPzYmmHrH/4HiYy

Veja que o servidor está ouvindo em vários endereços, como a máquina do Vagrant está em modo bridge, vou usar o seguinte endereço pra acessar no navegador.

http://10.100.0.113:9000

Ao acessar, aparecerá a seguinte tela:

O login é feito usando o AccessKey e o SecretKey que foram exibidos ao iniciar o servidor do minio.

AccessKey: VL8XZ7C65RYY20SUO5VM
SecretKey: ih4K7jv+E+SaUqtuE8kH1KSa8sPzYmmHrH/4HiYy

Ao fazer o login é mostrada a seguinte tela:

Nessa tela no canto inferior direito podemos criar um Bucket, no caso eu criei um Bucket chamado dados.

Agora com esse Bucket criado, vou fazer a instalação do s3fs em uma máquina ubuntu para fazer a montagem no filesystem e subir os arquivos.

root@storage:~# apt-get -f install s3fs -y

Com o s3fs instalado, vou criar um arquivo chamado passwd-s3fs, que vai armazenar as credentials de acesso que serão usadas para fazer a autenticação e a montagem no meu servidor.

root@storage:~# echo "VL8XZ7C65RYY20SUO5VM:ih4K7jv+E+SaUqtuE8kH1KSa8sPzYmmHrH/4HiYy" > /etc/passwd-s3fs
root@storage:~# chmod 640 /etc/passwd-s3fs

Agora pra fazer a montagem do diretório:

root@storage:~# s3fs  dados /root/teste_minio -o allow_other,use_path_request_style,nonempty,url=http://10.100.0.113:9000,passwd_file=/etc/passwd-s3fs
root@storage:~#

Para ver se o diretório foi montado é só digitar o comando df -h.

root@storage:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            490M     0  490M   0% /dev
tmpfs           100M  3.2M   97M   4% /run
/dev/sda1       9.7G  1.3G  8.4G  13% /
tmpfs           497M     0  497M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           497M     0  497M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/1000
vagrant         106G   60G   47G  56% /vagrant
s3fs            256T     0  256T   0% /root/teste_minio

Veja que no final tem o s3fs montado em /root/teste_minio

Para testar se está funcionando podemos simplesmente criar um arquivo dentro desse diretório e ver se ele sobe para o servidor do minio.

root@storage:~# touch /root/teste_minio/post_blog.txt

Na interface gráfica agora é possível ver que o arquivo já está lá.

Valeu! é Nóis!