Linux|minio对象存储服务的部署和初步使用总结

news2024/10/7 12:28:28

前言:

minio是一个非常轻量化的对象存储服务,是可以算到云原生领域的。

该服务是使用go语言编写的,因此,主文件就一个文件,它的下载,部署什么的都是非常简单的,一般两三步就可以搭建好了,只是有一些细节问题需要在部署使用的时候注意。

本文将就一个可用的minio存储服务部署做一个尽量详细的讲解,并探讨如何将该技术落地。

一,

minio的简介

MinIO现在也是CNCF成员,在云原生存储部分和ceph等一起作为目前的解决方案之一,因此,该服务的一个落地方向是应用在云计算以及云原生的服务编排管理系统kubernetes内的,其次,该服务可以作为一个简单的类ftp服务器(平常给服务器传个文件还是比较方便的)

但由于存储服务的自身特性(与宿主机的操作系统联系紧密,一般是底层服务),因此,该服务爆出的漏洞通常也是比较高危的,因此,我们使用minio这种服务特别需要注意版本问题,推荐使用高版本(高版本的漏洞比较少嘛),如果是实验,测试性质,那么,版本无所谓了。(漏洞相关问题就不在这里啰嗦了,百度一大堆)

其实官网介绍的就比较详细了,官网地址:MinIO | 高性能, Kubernetes 原生对象存储

下载地址:MinIO中国镜像站

二,

minio的部署方式

1 ,rpm部署

这个没什么好说的,简单,方便,但不可定制,在上面的网站上就有

下载地址:https://dl.minio.org.cn/server/minio/release/linux-amd64/minio-20230413030807.0.0.x86_64.rpm

安装rpm包并查询出自启脚本位置和执行程序位置并加入启动

[root@EULEER ~]# rpm -ivh minio-20230413030807.0.0.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:minio-0:20230413030807.0.0-1     ################################# [100%]

[root@EULEER ~]# rpm -ql minio-20230413030807.0.0-1.x86_64
/etc/systemd/system/minio.service
/usr/local/bin/minio



[root@EULEER ~]# systemctl enable minio
Created symlink from /etc/systemd/system/multi-user.target.wants/minio.service to /etc/systemd/system/minio.service.

根据自启脚本编写配置文件,自启脚本内容如下:

##需要注意的是,User和Group已被我修改成了minio

[root@EULEER ~]# cat /etc/systemd/system/minio.service 
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local

User=minio
Group=minio
ProtectProc=invisible

EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

# Built for ${project.name}-${project.version} (${project.name})

OK,根据以上脚本内容,添加普通用户minio(此用户无登陆权限,可以提高系统的安全),并创建minio服务的配置文件:/etc/default/minio

useradd -M -s /bin/nologin

配置文件定义minio使用/data1目录,服务开放端口是39111,web端的登陆用户为minio,密码我这里省略了。 

[root@EULEER ~]# cat /etc/default/minio 
MINIO_VOLUMES="/data1"
MINIO_OPTS="--address :39111"
MINIO_ACCESS_KEY=minio
MINIO_SECRET_KEY=密码

新建上述的data1目录并赋权给minio这个用户,需要注意,/data1这个目录必须是空目录:

mkdir /data1
chown -Rf minio. /data1

以上工作完成后,就可以启动minio服务并打开浏览器登陆minio的客户端了,登陆地址是服务器地址+39111:

服务启动和服务状态:

systemctl start minio
[root@EULEER ~]# systemctl status minio 
● minio.service - MinIO
   Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2023-05-18 05:56:36 CST; 9min ago
     Docs: https://docs.min.io
  Process: 5063 ExecStartPre=/bin/bash -c if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not set in /etc/default/minio"; exit 1; fi (code=exited, status=0/SUCCESS)
 Main PID: 5064 (minio)
   CGroup: /system.slice/system-hostos.slice/minio.service
           └─5064 /usr/local/bin/minio server --address :39111 /data1

May 18 05:56:37 EULEER minio[5064]: Copyright: 2015-2023 MinIO, Inc.
May 18 05:56:37 EULEER minio[5064]: License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
May 18 05:56:37 EULEER minio[5064]: Version: RELEASE.2023-04-13T03-08-07Z (go1.20.3 linux/amd64)
May 18 05:56:37 EULEER minio[5064]: Status:         1 Online, 0 Offline.
May 18 05:56:37 EULEER minio[5064]: API: http://192.168.76.11:39111  http://127.0.0.1:39111
May 18 05:56:37 EULEER minio[5064]: Console: http://192.168.76.11:42317 http://127.0.0.1:42317
May 18 05:56:37 EULEER minio[5064]: Documentation: https://min.io/docs/minio/linux/index.html
May 18 05:56:37 EULEER minio[5064]: Warning: The standard parity is set to 0. This can lead to data loss.
May 18 05:56:38 EULEER minio[5064]: You are running an older version of MinIO released 3 weeks ago
May 18 05:56:38 EULEER minio[5064]: Update: Run `mc admin update`

浏览器的状态:

上图停留的标签在创建桶,具体的创建桶流程如下:

  • bucket name:bucket名字。
     
  • versioning: 版本控制允许在同一个键下保留同一个对象的多个版本。
  • object locking:对象锁定防止对象被删除。需要支持保留和合法持有。只能在创建桶时启用。
  • quota:配额用于限制桶内的数据量。
  • retention:保留是指在一段时间内防止对象删除的规则。为了设置桶保留策略,必须启用版本控制。

由于minio安装太过于容易了,因此,难度其实在后面的使用,比如,安全方面的设置,权限方面的设置,审计的设置这些。

下面以审计功能为例,讲解如何配置minio的审计功能:

 可以看到审计在这里叫消息,不过无所谓,叫什么不重要。minio支持的审计存储很多,刚好我有安装redis,就用redis吧,

redis开启的端口如下:

[root@EULEER yum.repos.d]# netstat -antup |grep redis
tcp        0      0 192.168.76.11:15379     0.0.0.0:*               LISTEN      5581/./redis-server 
tcp        0      0 192.168.76.11:15379     192.168.76.1:51519      ESTABLISHED 5581/./redis-server 
tcp        0      0 192.168.76.11:15379     192.168.76.1:51542      ESTABLISHED 5581/./redis-server 
tcp        0      0 192.168.76.11:15379     192.168.76.1:51570      ESTABLISHED 5581/./redis-server 
tcp        0      0 192.168.76.11:15379     192.168.76.1:51541      ESTABLISHED 5581/./redis-server 
tcp        0      0 192.168.76.11:15379     192.168.76.1:51689      ESTABLISHED 5581/./redis-server 

回到minio,点击redis的图标,进入如下界面:

保存后,显示一个警告,意思需要重启minio服务以应用刚才修改的配置,点restart就重启服务了:

 重启完毕后就可以看到有显示redis了:

 还差最后一哆嗦,桶指定消息源:

 把增删改勾选了,第一个选择redis,保存即可:

 

随意上传和删除两个文件,在看redis,大概如下:

 未完待续!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/543443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Word控件Spire.Doc 【文本框】教程(6):如何在文本框中设置文本方向

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

腾讯的这道公益「微光」,竟已燎原了

台上开发者们的陆续发言&#xff0c;瞬间把我带到了公益的海洋中。谁都不愿放弃追随那道光&#xff0c;那道热爱公益的光&#xff0c;那道为了解决弱势群体难题与时俱进的光&#xff0c;那道为了文化传承的创新之光。这就是第三届Light•技术公益创造营项目路演现场带给我的直观…

若依框架语言国际化操作流程?

国际化是指将产品、服务、企业或组织的活动适应不同国家、不同文化背景和不同语言环境的过程。它包括将产品或服务适应不同的市场需求、文化习惯和法律法规等方面的工作。国际化的目的是拓展企业或组织的市场,提高竞争力和盈利能力。 目录 一、前端国际化流程 1、html使用…

Gradle接入checkstyle代码风格检查插件

一、什么是checkstyle 在项目开发的过程中&#xff0c;代码规范是经常被提起的话题&#xff0c;特别是当项目需要多个开发协同完成的时候&#xff0c;良好统一的代码规范能够在一定程度上保证项目代码的质量和团队的开发效率。目前业界常见代码检查工具有 Alibaba Java Coding…

二分查找的总结

一、二分查找 1.思路分析 这道题目的前提是数组为有序数组&#xff0c;同时题目还强调数组中无重复元素&#xff0c;因为一旦有重复元素&#xff0c;使用二分查找法返回的元素下标可能不是唯一的&#xff0c;这些都是使用二分法的前提条件&#xff0c;当大家看到题目描述满足如…

Ampere Computing 发布全新 AmpereOne 系列处理器,192 个自研核

2023 年 5 月 19 日&#xff0c;中国北京——Ampere Computing 宣布推出全新 AmpereOne™ 系列处理器&#xff0c;该处理器拥有多达 192 个单线程 Ampere 核&#xff0c;内核数量为业界最高。这是第一款基于 Ampere 新自研核的产品&#xff0c;由 Ampere 自有 IP 全新打造。 致…

chatgpt赋能Python-python3_6怎么打开

Python 3.6&#xff1a;新时代的编程语言 Python 3.6是一种全新的编程语言版本&#xff0c;它提供了全新的功能和改进&#xff0c;使得编程过程更加简便且实用。无论你是编程新手还是老手&#xff0c;本文将教你如何打开Python 3.6&#xff0c;并带你了解Python 3.6的优点。 …

详解c++---多态

目录标题 为什么会有多态什么是虚函数的重写多态的定义特殊的重写重载&#xff0c;覆盖&#xff08;重写&#xff09;&#xff0c;隐藏&#xff08;重定义&#xff09;的对比final和override抽象类多态的原理验证虚表所在额度位置多继承的多态原理菱形虚拟继承多态的一些小点 为…

登录ChatGPT时提示Sorry, you have been blocked(对不起,您已被阻止)

问题描述 今天想使用ChatGPT&#xff0c;结果突然来了这么个问题&#xff0c;就问你吓不吓人&#xff1f;&#xff1f;&#xff1f;我以为我的账号被封了&#xff01; 原因分析 内容过滤&#xff1a;某些平台或网站可能使用内容过滤系统&#xff0c;该系统可能将AI语言模型视…

全文索引搜索引擎Zinc

什么是 Zinc &#xff1f; ZincSearch 是一个搜索引擎&#xff0c;可用于文本数据、日志、指标、事件等。它允许您进行全文搜索&#xff0c;包括将服务器日志发送到 ZincSearch、推送您的应用程序数据、提供全文搜索或在您的应用程序中构建搜索栏。具备与 Elasticsearch API 的…

Android WebView加载网页html文件显示加载进度

效果图如下&#xff1a; 一、视图绑定 通过视图绑定功能&#xff0c;您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后&#xff0c;系统会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。 在大…

Navicat 15中文安装教程

Navicat 15中文安装教程 附上百度网盘链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1OZNjcuEHnsZqBa9A-e_twQ 提取码&#xff1a;2phg 里面有两个版本&#xff0c;分别是64位和32位&#xff0c;大家可以根据自己的情况进行安装 下面是详细安装教程 1、选择安装包…

Sonar加入jenkins流水线

前提&#xff1a;已搭建sonarqube 1、配置sonarqube server jenkins 中manage jenkins-configure System配置sonarqube server 2、准备sonar环境 在jenkins项目的构建环境步骤中&#xff0c;勾选prepare SonarQube environment token需要提前在凭据里添加一个token 3、执行s…

ES6中flat与flatMap使用

1、方法介绍 数组的成员有时还是数组&#xff0c;Array.prototype.flat()用于将嵌套的数组“拉平”&#xff0c;变成一维的数组。该方法返回一个新数组&#xff0c;对原数据没有影响。 [1, 2, [3, 4]].flat() // [1, 2, 3, 4]上面代码中&#xff0c;原数组的成员里面有一个数…

InnoDB数据页结构

什么是页&#xff1f;什么是数据页&#xff1f; 页是InnoDB管理存储空间的基本单元&#xff0c;一个页的大小一般是16k。 InnoDB有许多不同的页&#xff0c;有存放表空间头部信息的页&#xff0c;INODE信息的页&#xff0c;当然还有存放我们记录信息的页&#xff0c;这个页叫…

【苹果】Apple Store 更换ID教程

在此之前需要准备的项目&#xff1a; 一台苹果手机【教程环境&#xff1a;ios15 in iPhone11】一个新的苹果ID账号一个具备完整阅读能力愿意看完教程的人 教程开始 第一步&#xff1a;解锁您的 iPhone 第二步&#xff1a;打开你的应用商店 第三步&#xff1a;点击右上角头像…

Linux驱动快速入门(vscode的使用)

vscode精确跳转前提&#xff1a; 1、安装了clangd插件 2、禁止了c/c intellisense&#xff1a; 3、在Linux内核源码首目录下有compile_commands.json文件&#xff0c;且这个文件内容“cc”改为了“xxxx-gcc”&#xff0c;后先清理之前编译的&#xff0c;后用bear make编译。…

ChatGPT官方APP上线:速度极快且免费、增加语音识别,网友:真香

安卓版也马上要来。 很强大&#xff0c;很简洁&#xff0c;而且它太快了。 这就是人们对几小时前 OpenAI 发布的 ChatGPT 官方版 App 的评价&#xff1a; ChatGPT 推出近半年以来&#xff0c;已经从新鲜的事物成为改变整个科技领域的推手。有机构统计认为&#xff0c;早在今年…

【手撕代码系列】JS手写实现深拷贝

公众号&#xff1a;Code程序人生&#xff0c;分享前端所见所闻 深拷贝是在计算机科学中非常重要的概念&#xff0c;尤其是在处理数据结构和对象的时候。深拷贝的目的是创建一个新的对象&#xff0c;它有自己的内存空间&#xff0c;并且其中的所有值都是原始对象的副本。这样做的…

某大型啤酒企业:CACTER邮件网关成功替换IronPort!安全防护升级

客户案例 某大型啤酒厂商的公司规模和市场份额多年来始终都处于行业领先地位&#xff0c;积极赞助多项体育赛事&#xff0c;持续丰富和提升品牌形象。 作为一家具有全球影响力的企业&#xff0c;自然也成为了全球黑客等攻击团伙的重点目标&#xff0c;而系统攻击的开端便是钓…