Min探索MinIO-兼容高性能独立对象存储S3

您是否正在寻找对象存储软件以托管在服务器上?

有许多云对象存储,例如AWS S3等。

但是,如果您需要在服务器上托管数据,MinIO可以帮助完成此任务。

MiniIO是与S3兼容的流行的开源分布式对象存储软件。

它以其高性能而闻名。

您可以将MinIO用于简单的Web应用程序,以用于分析和机器学习应用程序的大型数据分发工作负载。

使用的优点:

  • 标准平面文件存储
  • 跨多个云分布数据
  • 灾难恢复
  • 资料分析

它是笨重的软件吗?

不,它的重量为50 MB,适合Kubernetes。

Minio将数据和元数据作为对象写入。

这消除了对使用其他数据库或软件来存储元数据并提高性能的依赖。

来自其官方网站的建筑:

Min探索MinIO-兼容高性能独立对象存储S3

让我们看一些值得关注的功能。

  • 高性能! Minio的读/写能力约为170GB / s。 好多!
  • 可扩展性-根据需要使用聚类和扩展
  • 云原生
  • 使用清除码方法进行数据保护
  • 支持多种加密,包括AES-CBC,AES-256-GCM,ChaCha20
  • 与常规KMS兼容
  • 活动通知
  • 与etcd和CoreDNS兼容

MinIO是软件分布式存储的理想选择。 让我们来看看如何设置它。

安装MinIO服务器

您可以将其安装在Linux,Windows,macOS上,也可以通过Kubernetes安装。

更喜欢从源代码构建?

如果您安装了Golang,当然可以。

对于本文,我将其安装在CentOS上!

  • 登录服务器
  • 在所需的文件系统上创建一个文件夹。 例如微型服务器
  • 转到新创建的文件夹,然后运行以下wget命令。
wget https://dl.min.io/server/minio/release/linux-amd64/minio

系统将加载二进制文件,并且该文件应如下所示:

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

使用chmod命令使文件可执行

chmod 755 minio

让我们将MinIO作为服务器运行。

./minio server /data &

上面提到的/ data是MinIO将在其中存储对象的文件系统。

启动速度很快,您应该看到如下信息:

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'

让我们使用默认凭据通过浏览器登录MinIO- minioadmin:minioadmin

该界面非常简洁明了,但首先,让我们更改默认凭据,因为这有被篡改的风险。 要更改默认的MinIO凭据,我们将如下所示导出密码和私钥并运行MinIO。

export MINIO_ACCESS_KEY=itsecforu
export MINIO_SECRET_KEY=itsecpassword
./minio server /data &

现在,它不应该抱怨并发出有关检测默认凭据的警告。

让我们尝试上传文件。

  • 点击右下角的+图标,创建一个存储桶
  • 我已经上传了一个测试文件,它在浏览器中立即可见

Min探索MinIO-兼容高性能独立对象存储S3

在服务器上:

ls -ltr
total 4
-rw-r--r-- 1 root root 11 Oct 19 11:09 MinIO-Test.txt

如果在浏览器中单击文件上的共享按钮,您将收到一个共享链接和一个设置到期日期的选项。

MinIO客户端

MinIO客户端不只是aws-cli,它还允许您管理存储。

该客户端可用于Windows,macOS和Linux。

要在Linux上安装,请运行以下命令:

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

运行mc命令以查看命令帮助。

/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

让我们尝试查找使用mc命令下载的文件。

首先,我们需要为要管理的存储库设置别名。

/mc alias set minio http://xx.71.141.xx:9000/ itsecforu itsecpassword
Added `minio` successfully.
  • minio是别名。 您可以将其更改为任何值。
  • 将HTTP网址更改为您的。
  • 将访问密钥和私钥更改为您自己的。

太好了,一切正常!

从字面上看,所有事情都可以通过客户来完成。

您不仅可以管理MinIO云存储,还可以管理GCS,AWS S3,Azure。

MinIO SDK

根据应用程序的堆栈,您可以使用SDK以编程方式与对象存储进行交互。

它支持Go,Python,Node.js,.NET,Haskell和Java。

MinIO网关

将MiniIO网关添加到S3,Azure,NAS,HDFS,以利用MinIO浏览器和磁盘缓存。

结论

无论您要寻找私有,混合还是多云的对象存储,MinIO都很有前途。

Sidebar