Experimente o MinIO – armazenamento de objetos de alto desempenho compatível com S3 auto-hospedado

Você está procurando um software de armazenamento de objetos para hospedar em seu servidor?

Eu acho que sim?

Há muito armazenamento de objetos baseado em nuvem, como AWS S3 e outros que mencionei aqui. No entanto, se você precisar hospedar seus dados em seu servidor, o MinIO pode ajudar em seus data centers.

MiniIO é um software popular de armazenamento de objetos distribuídos de código aberto e compatível com S3. Está pronto para empresas e é conhecido por seu alto desempenho.

Você pode usar o MinIO desde um aplicativo da Web simples até grandes cargas de trabalho de distribuição de dados para aplicativos de análise e aprendizado de máquina. Pode ajudar em muitos casos de uso.

  • Armazenamento de arquivo simples padrão
  • Distribuição de dados em várias nuvens
  • Recuperação de desastres
  • Análise de dados

É um software volumoso?

Não, é apenas cerca de ~ 50 MB e compatível com o Kubernetes. Ele grava dados e metadados como um objeto. Isso elimina a dependência de ter um banco de dados ou software adicional para armazenar metadados e melhorar o desempenho.

A arquitetura abaixo de seu site oficial.

Vamos explorar alguns dos recursos dignos de nota.

  • Alto desempenho – diz o título. Ele é capaz de ler/gravar na velocidade de ~170 GB/s. Isso é muito!
  • Escalável – vá para clustering e dimensione conforme necessário
  • Nativo da nuvem
  • Proteção de dados usando o método de código Erasure
  • Criptografia múltipla suportada, incluindo AES-CBC, AES-256-GCM, ChaCha20
  • Compatível com KMS comum
  • Aplicativo e identidade do usuário
  • Notificação de evento
  • Federação usando etcd e CoreDNS

MinIO é uma boa escolha para armazenamento definido por software. Vamos explorar como configurar as coisas.

Instalando o servidor MinIO

Você pode instalar no Linux, Windows, macOS e por meio do Kubernetes. Prefere construir através da fonte? Claro, você pode fazer isso se tiver o Golang instalado.

  Como ejetar um disco rígido externo em um Mac

Para esta demonstração, instalarei no CentOS que está hospedado em Kamatera.

  • Entrar no servidor
  • Crie uma pasta no sistema de arquivos desejado. Talvez minio-servidor
  • Navegue até a pasta recém-criada e execute o comando wget abaixo
wget https://dl.min.io/server/minio/release/linux-amd64/minio

Ele baixará um arquivo binário e deve se parecer com isso.

-rw-r--r--  1 root root 48271360 Oct 18 21:57 minio

Torne o arquivo executável com o comando chmod

chmod 755 minio

Vamos iniciar o MinIO como servidor.

./minio server /data &

/data mencionado acima é o sistema de arquivos onde o MinIO armazenará os objetos.

A inicialização é rápida e você deve ver as informações de inicialização conforme abaixo.

Endpoint:  http://xx.71.141.xx:9000 http://127.0.0.1:9000      
AccessKey: minioadmin 
SecretKey: minioadmin 

Browser Access:
   http://xx.71.141.xx:9000 http://127.0.0.1:9000      

Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide
   $ mc alias set myminio http://xx.71.141.xx:9000 minioadmin minioadmin

Object API (Amazon S3 compatible):
   Go:         https://docs.min.io/docs/golang-client-quickstart-guide
   Java:       https://docs.min.io/docs/java-client-quickstart-guide
   Python:     https://docs.min.io/docs/python-client-quickstart-guide
   JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
   .NET:       https://docs.min.io/docs/dotnet-client-quickstart-guide
Detected default credentials 'minioadmin:minioadmin', please change the credentials immediately using 'MINIO_ACCESS_KEY' and 'MINIO_SECRET_KEY'

Vamos acessar o MinIO no navegador com as credenciais padrão – minioadmin:minioadmin

A interface é muito organizada e limpa, mas antes de qualquer coisa, vamos alterar a credencial padrão, pois ela expõe o risco. Não há opção para alterar a credencial de administrador por meio do navegador, mas variáveis ​​de ambiente.

Para alterar a credencial padrão do MinIO, exportaremos o acesso e a chave secreta conforme abaixo e iniciaremos o MinIO.

export MINIO_ACCESS_KEY=etechpt.com
export MINIO_SECRET_KEY=geekpassword
./minio server /data &

Agora, ele não deve reclamar do aviso de detecção de credencial padrão.

Vamos tentar carregar alguns arquivos.

  • Clique no ícone + no canto inferior direito e crie um balde
  • Carreguei um arquivo de teste e imediatamente visível no navegador
  Como ativar o suporte ao Dropbox no gerenciador de arquivos Dolphin

e, no servidor

[[email protected] geekflare]# ls -ltr
total 4
-rw-r--r-- 1 root root 11 Oct 19 11:09 MinIO-Test.txt
[[email protected] geekflare]#

Se você clicar no botão de compartilhamento de arquivo no navegador, obterá o link compartilhável e uma opção para definir a expiração.

Cliente MinIO

O cliente MinIO é mais do que o aws-cli, que permite gerenciar o armazenamento. O cliente está disponível para Windows, macOS e Linux.

Para instalar no Linux, execute o seguinte.

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod 755 mc

Execute o comando mc para ver a ajuda do comando.

[[email protected] ~]# ./mc
NAME:
  mc - MinIO Client for cloud storage and filesystems.

USAGE:
  mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]

COMMANDS:
  alias      set, remove and list aliases in configuration file
  ls         list buckets and objects
  mb         make a bucket
  rb         remove a bucket
  cp         copy objects
  mirror     synchronize object(s) to a remote site
  cat        display object contents
  head       display first 'n' lines of an object
  pipe       stream STDIN to an object
  share      generate URL for temporary access to an object
  find       search for objects
  sql        run sql queries on objects
  stat       show object metadata
  mv         move objects
  tree       list buckets and objects in a tree format
  du         summarize disk usage recursively
  retention  set retention for object(s)
  legalhold  manage legal hold for object(s)
  diff       list differences in object name, size, and date between two buckets
  rm         remove objects
  version    manage bucket versioning
  ilm        manage bucket lifecycle
  encrypt    manage bucket encryption config
  event      manage object notifications
  watch      listen for object notification events
  undo       undo PUT/DELETE operations
  policy     manage anonymous access to buckets and objects
  tag        manage tags for bucket and object(s)
  replicate  configure server side bucket replication
  admin      manage MinIO servers
  update     update mc to latest release
  
GLOBAL FLAGS:
  --autocompletion              install auto-completion for your shell
  --config-dir value, -C value  path to configuration folder (default: "/root/.mc")
  --quiet, -q                   disable progress bar display
  --no-color                    disable color theme
  --json                        enable JSON lines formatted output
  --debug                       enable debug output
  --insecure                    disable SSL certificate verification
  --help, -h                    show help
  --version, -v                 print the version
  
TIP:
  Use 'mc --autocompletion' to enable shell autocompletion

VERSION:
  RELEASE.2020-10-03T02-54-56Z
[[email protected] ~]#

Vamos tentar listar o arquivo que carreguei por meio do comando mc.

  Corrigir o Forza Horizon 4 não é possível ingressar na sessão no Xbox One ou PC

Primeiro, precisamos definir o alias para o armazenamento que queremos administrar.

[[email protected] ~]# ./mc alias set minio http://xx.71.141.xx:9000/ etechpt.com geekpassword
Added `minio` successfully.
[[email protected] ~]#
  • minio é o nome alternativo. Você pode mudar isso para o que quiser.
  • Altere o endpoint HTTP para o seu verdadeiro
  • Altere o acesso e a chave secreta com a sua

e, para listar, usará o comando ls conforme abaixo.

[[email protected] ~]# ./mc ls --recursive minio 
[2020-10-19 11:09:06 UTC]    11B etechpt.com/MinIO-Test.txt
[[email protected] ~]#

Excelente. funciona!

Você pode fazer literalmente tudo através do cliente. Não apenas você pode gerenciar o armazenamento em nuvem MinIO, mas também GCS, AWS S3, Azure.

Veja isso guia de início rápido do cliente para mais detalhes.

SDK MinIO

Dependendo de sua pilha de aplicativos, você pode interagir com o armazenamento de objetos programaticamente usando o SDK. Ele suporta Go, Python, Node.js, .NET, Haskell e Java.

Gateway MinIO

Adicione o gateway MiniIO ao S3, Azure, NAS, HDFS para aproveitar o navegador MinIO e o cache de disco.

Conclusão

Se você estiver procurando por armazenamento de objetos privado, híbrido ou em várias nuvens, o MinIO parece promissor. Dê uma chance e você vai se apaixonar por ele. Para testar as coisas, você pode obter VM MinIO do Kamatera ou instale-se em qualquer servidor Cloud.