Tips
Go
(18条消息) Go语言自学系列 | golang包_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang并发编程之channel的遍历_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang并发编程之select switch_COCOgsta的博客-CSDN博客_golang select switch
(18条消息) Go语言自学系列 | golang并发编程之runtime包_COCOgsta的博客-CSDN博客_golang runtime包
(18条消息) Go语言自学系列 | golang接口值类型接收者和指针类型接收者_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang并发编程之Timer_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang方法_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang并发编程之WaitGroup实现同步_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang构造函数_COCOgsta的博客-CSDN博客_golang 构造函数
(18条消息) Go语言自学系列 | golang方法接收者类型_COCOgsta的博客-CSDN博客_golang 方法接收者
(18条消息) Go语言自学系列 | golang接口_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang接口和类型的关系_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang结构体_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang结构体_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang标准库os模块 - File文件读操作_COCOgsta的博客-CSDN博客_golang os.file
(18条消息) Go语言自学系列 | golang继承_COCOgsta的博客-CSDN博客_golang 继承
(18条消息) Go语言自学系列 | golang嵌套结构体_COCOgsta的博客-CSDN博客_golang 结构体嵌套
(18条消息) Go语言自学系列 | golang并发编程之Mutex互斥锁实现同步_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang并发变成之通道channel_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang并发编程之原子操作详解_COCOgsta的博客-CSDN博客_golang 原子操作
(18条消息) Go语言自学系列 | golang并发编程之原子变量的引入_COCOgsta的博客-CSDN博客_go 原子变量
(18条消息) Go语言自学系列 | golang并发编程之协程_COCOgsta的博客-CSDN博客_golang 协程 并发
(18条消息) Go语言自学系列 | golang接口嵌套_COCOgsta的博客-CSDN博客_golang 接口嵌套
(18条消息) Go语言自学系列 | golang包管理工具go module_COCOgsta的博客-CSDN博客_golang 包管理器
(18条消息) Go语言自学系列 | golang标准库os模块 - File文件写操作_COCOgsta的博客-CSDN博客_go os模块
(18条消息) Go语言自学系列 | golang结构体的初始化_COCOgsta的博客-CSDN博客_golang 结构体初始化
(18条消息) Go语言自学系列 | golang通过接口实现OCP设计原则_COCOgsta的博客-CSDN博客
(18条消息) Go语言自学系列 | golang标准库os包进程相关操作_COCOgsta的博客-CSDN博客_golang os包
(18条消息) Go语言自学系列 | golang标准库ioutil包_COCOgsta的博客-CSDN博客_golang ioutil
(18条消息) Go语言自学系列 | golang标准库os模块 - 文件目录相关_COCOgsta的博客-CSDN博客_go语言os库
Golang技术栈,Golang文章、教程、视频分享!
(18条消息) Go语言自学系列 | golang结构体指针_COCOgsta的博客-CSDN博客_golang 结构体指针
Ansible
太厉害了,终于有人能把Ansible讲的明明白白了,建议收藏_互联网老辛
ansible.cfg配置详解
Docker
Docker部署
linux安装docker和Docker Compose
linux 安装 docker
Docker中安装Docker遇到的问题处理
Docker常用命令
docker常用命令小结
docker 彻底卸载
Docker pull 时报错:Get https://registry-1.docker.io/v2/library/mysql: net/http: TLS handshake timeout
Docker 拉镜像无法访问 registry-x.docker.io 问题(Centos7)
docker 容器内没有权限
Linux中关闭selinux的方法是什么?
docker run 生成 docker-compose
Docker覆盖网络部署
docker pull后台拉取镜像
docker hub
Redis
Redis 集群别乱搭,这才是正确的姿势
linux_离线_redis安装
怎么实现Redis的高可用?(主从、哨兵、集群) - 雨点的名字 - 博客园
redis集群离线安装
always-show-logo yes
Redis集群搭建及原理
[ERR] Node 172.168.63.202:7001 is not empty. Either the nodealready knows other nodes (check with CLUSTER NODES) or contains some - 亲爱的不二999 - 博客园
Redis daemonize介绍
redis 下载地址
Redis的redis.conf配置注释详解(三) - 云+社区 - 腾讯云
Redis的redis.conf配置注释详解(一) - 云+社区 - 腾讯云
Redis的redis.conf配置注释详解(二) - 云+社区 - 腾讯云
Redis的redis.conf配置注释详解(四) - 云+社区 - 腾讯云
Linux
在终端连接ssh的断开关闭退出的方法
漏洞扫描 - 灰信网(软件开发博客聚合)
find 命令的参数详解
vim 编辑器搜索功能
非root安装rpm时,mockbuild does not exist
Using a SSH password instead of a key is not possible because Host Key checking
(9条消息) 安全扫描5353端口mDNS服务漏洞问题_NamiJava的博客-CSDN博客_5353端口
Linux中使用rpm命令安装rpm包
ssh-copy-id非22端口的使用方法
How To Resolve SSH Weak Key Exchange Algorithms on CentOS7 or RHEL7 - infotechys.com
Linux cp 命令
yum 下载全量依赖 rpm 包及离线安装(终极解决方案) - 叨叨软件测试 - 博客园
How To Resolve SSH Weak Key Exchange Algorithms on CentOS7 or RHEL7 - infotechys.com
RPM zlib 下载地址
运维架构网站
欢迎来到 Jinja2
/usr/local/bin/ss-server -uv -c /etc/shadowsocks-libev/config.json -f /var/run/s
ruby 安装Openssl 默认安装位置
Linux 常用命令学习 | 菜鸟教程
linux 重命名文件和文件夹
linux命令快速指南
ipvsadm
Linux 下查找日志中的关键字
Linux 切割大 log 日志
CentOS7 关于网络的设置
rsync 命令_Linux rsync 命令用法详解:远程数据同步工具
linux 可视化界面安装
[问题已处理]-执行yum卡住无响应
GCC/G++升级高版本
ELK
Docker部署ELK
ELK+kafka+filebeat+Prometheus+Grafana - SegmentFault 思否
(9条消息) Elasticsearch设置账号密码_huas_xq的博客-CSDN博客_elasticsearch设置密码
Elasticsearch 7.X 性能优化
Elasticsearch-滚动更新
Elasticsearch 的内存优化_大数据系统
Elasticsearch之yml配置文件
ES 索引为Yellow状态
Logstash:Grok filter 入门
logstash grok 多项匹配
Mysql
Mysql相关Tip
基于ShardingJDBC实现数据库读写分离 - 墨天轮
MySQL-MHA高可用方案
京东三面:我要查询千万级数据量的表,怎么操作?
OpenStack
(16条消息) openstack项目中遇到的各种问题总结 其二(云主机迁移、ceph及扩展分区)_weixin_34104341的博客-CSDN博客
OpenStack组件介绍
百度大佬OpenStack流程
openstack各组件介绍
OpenStack生产实际问题总结(一)
OpenStack Train版离线部署
使用Packstack搭建OpenStack
K8S
K8S部署
K8S 集群部署
kubeadm 重新 init 和 join-pudn.com
Kubernetes 实战总结 - 阿里云 ECS 自建 K8S 集群 Kubernetes 实战总结 - 自定义 Prometheus
【K8S实战系列-清理篇1】k8s docker 删除没用的资源
Flannel Pod Bug汇总
Java
Jdk 部署
JDK部署
java线程池ThreadPoolExecutor类使用详解 - bigfan - 博客园
ShardingJDBC实现多数据库节点分库分表 - 墨天轮
Maven Repository: Search/Browse/Explore
其他
Git在阿里,我们如何管理代码分支?
chrome F12调试网页出现Paused in debugger
体验IntelliJ IDEA的远程开发(Remote Development) - 掘金
Idea远程调试
PDF转MD
强哥分享干货
优秀开源项目集合
vercel 配合Github 搭建项目Doc门户
如何用 Github Issues 写技术博客?
Idea 2021.3 Maven 3.8.1 报错 Blocked mirror for repositories 解决
列出maven依赖
[2022-09 持续更新] 谷歌 google 镜像 / Sci-Hub 可用网址 / Github 镜像可用网址总结
阿里云ECS迁移
linux访问github
一文教你使用 Docker 启动并安装 Nacos-腾讯云开发者社区-腾讯云
Nginx
Nginx 部署
Nginx 部署安装
Nginx反向代理cookie丢失的问题_longzhoufeng的博客-CSDN博客_nginx 代理后cookie丢失
Linux 系统 Https 证书生成与Nginx配置 https
数据仓库
实时数仓
松果出行 x StarRocks:实时数仓新范式的实践之路
实时数据仓库的一些分层和分层需要处理的事情,以及数据流向
湖仓一体电商项目
湖仓一体电商项目(一):项目背景和架构介绍
湖仓一体电商项目(二):项目使用技术及版本和基础环境准备
湖仓一体电商项目(三):3万字带你从头开始搭建12个大数据项目基础组件
数仓笔记
数仓学习总结
数仓常用平台和框架
数仓学习笔记
数仓技术选型
尚硅谷教程
尚硅谷学习笔记
尚硅谷所有已知的课件资料
尚硅谷大数据项目之尚品汇(11数据质量管理V4.0)
尚硅谷大数据项目之尚品汇(10元数据管理AtlasV4.0)
尚硅谷大数据项目之尚品汇(9权限管理RangerV4.0)
尚硅谷大数据项目之尚品汇(8安全环境实战V4.0)
尚硅谷大数据项目之尚品汇(7用户认证KerberosV4.1)
尚硅谷大数据项目之尚品汇(6集群监控ZabbixV4.1)
尚硅谷大数据项目之尚品汇(5即席查询PrestoKylinV4.0)
尚硅谷大数据项目之尚品汇(4可视化报表SupersetV4.0)
尚硅谷大数据项目之尚品汇(3数据仓库系统)V4.2.0
尚硅谷大数据项目之尚品汇(2业务数据采集平台)V4.1.0
尚硅谷大数据项目之尚品汇(1用户行为采集平台)V4.1.0
数仓治理
数据中台 元数据规范
数据中台的那些 “经验与陷阱”
2万字详解数据仓库数据指标数据治理体系建设方法论
数据仓库,为什么需要分层建设和管理? | 人人都是产品经理
网易数帆数据治理演进
数仓技术
一文看懂大数据生态圈完整知识体系
阿里云—升舱 - 数据仓库升级白皮书
最全企业级数仓建设迭代版(4W字建议收藏)
基于Hue,Dolphinscheduler,HIVE分析数据仓库层级实现及项目需求案例实践分析
详解数据仓库分层架构
数据仓库技术细节
大数据平台组件介绍
总览 2016-2021 年全球机器学习、人工智能和大数据行业技术地图
Apache DolphinScheduler 3.0.0 正式版发布!
数据仓库面试题——介绍下数据仓库
数据仓库为什么要分层,各层的作用是什么
Databend v0.8 发布,基于 Rust 开发的现代化云数据仓库 - OSCHINA - 中文开源技术交流社区
数据中台
数据中台设计
大数据同步工具之 FlinkCDC/Canal/Debezium 对比
有数数据开发平台文档
Shell
Linux Shell 命令参数
shell 脚本编程
一篇教会你写 90% 的 Shell 脚本
Kibana
Kibana 查询语言(KQL)
Kibana:在 Kibana 中的四种表格制作方式
Kafka
Kafka部署
canal 动态监控 Mysql,将 binlog 日志解析后,把采集到的数据发送到 Kafka
OpenApi
OpenAPI 标准规范,了解一下?
OpenApi学术论文
贵阳市政府数据开放平台设计与实现
OpenAPI简介
开放平台:运营模式与技术架构研究综述
管理
技术部门Leader是不是一定要技术大牛担任?
华为管理体系流程介绍
DevOps
*Ops
XOps 已经成为一个流行的术语 - 它是什么?
Practical Linux DevOps
Jenkins 2.x实践指南 (翟志军)
Jenkins 2权威指南 ((美)布伦特·莱斯特(Brent Laster)
DevOps组件高可用的思路
KeepAlived
VIP + KEEPALIVED + LVS 遇到Connection Peer的问题的解决
MinIO
MinIO部署
Minio 分布式集群搭建部署
Minio 入门系列【16】Minio 分片上传文件 putObject 接口流程源码分析
MinioAPI 浅入及问题
部署 minio 兼容 aws S3 模式
超详细分布式对象存储 MinIO 实战教程
Hadoop
Hadoop 部署
Hadoop集群部署
windows 搭建 hadoop 环境(解决 HADOOP_HOME and hadoop.home.dir are unset
Hadoop 集群搭建和简单应用(参考下文)
Hadoop 启动 NameNode 报错 ERROR: Cannot set priority of namenode process 2639
jps 命令查看 DataNode 进程不见了 (hadoop3.0 亲测可用)
hadoop 报错: Operation category READ is not supported in state standby
Spark
Spark 部署
Spark 集群部署
spark 心跳超时分析 Cannot receive any reply in 120 seconds
Spark学习笔记
apache spark - Failed to find data source: parquet, when building with sbt assembly
Spark Thrift Server 架构和原理介绍
InLong
InLong 部署
Apache InLong部署文档
安装部署 - Docker 部署 - 《Apache InLong v1.2 中文文档》 - 书栈网 · BookStack
基于 Apache Flink SQL 的 InLong Sort ETL 方案解析
关于 Apache Pulsar 在 Apache InLong 接入数据
zookeeper
zookeeper 部署
使用 Docker 搭建 Zookeeper 集群
美团技术团队
StarRocks
StarRocks技术白皮书(在线版)
JuiceFS
AI 场景存储优化:云知声超算平台基于 JuiceFS 的存储实践
JuiceFS 在 Elasticsearch/ClickHouse 温冷数据存储中的实践
JuiceFS format
元数据备份和恢复 | JuiceFS Document Center
JuiceFS 元数据引擎选型指南
Apache Hudi 使用文件聚类功能 (Clustering) 解决小文件过多的问题
普罗米修斯
k8s 之 Prometheus(普罗米修斯)监控,简单梳理下 K8S 监控流程
k8s 部署 - 使用helm3部署监控prometheus(普罗米修斯),从零到有,一文搞定
k8s 部署 - 使用 helm3 部署监控 prometheus(普罗米修斯),从零到有,一文搞定
k8s 部署 - 如何完善 k8s 中 Prometheus(普罗米修斯)监控项目呢?
k8s 部署 - k8s 中 Prometheus(普罗米修斯)的大屏展示 Grafana + 监控报警
zabbix
一文带你掌握 Zabbix 监控系统
Stream Collectors
Nvidia
Nvidia API
CUDA Nvidia驱动安装
NVIDIA驱动失效简单解决方案:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver.
ubuntu 20 CUDA12.1安装流程
nvidia开启持久化模式
nvidia-smi 开启持久化
Harbor
Harbor部署文档
Docker 爆出 it doesn't contain any IP SANs
pandoc
其他知识
大模型
COS 597G (Fall 2022): Understanding Large Language Models
如何优雅的使用各类LLM
ChatGLM3在线搜索功能升级
当ChatGLM3能用搜索引擎时
OCR神器,PDF、数学公式都能转
Stable Diffusion 动画animatediff-cli-prompt-travel
基于ERNIE Bot自定义虚拟数字人生成
pika负面提示词
开通GPT4的方式
GPT4网站
低价开通GPT Plus
大模型应用场景分享
AppAgent AutoGPT变体
机器学习
最大似然估计
权衡偏差(Bias)和方差(Variance)以最小化均方误差(Mean Squared Error, MSE)
伯努利分布
方差计算公式
均值的高斯分布估计
没有免费午餐定理
贝叶斯误差
非参数模型
最近邻回归
表示容量
最优容量
权重衰减
正则化项
Sora
Sora官方提示词
看完32篇论文,你大概就知道Sora如何炼成? |【经纬低调出品】
Sora论文
Sora 物理悖谬的几何解释
Sora 技术栈讨论
RAG垂直落地
DB-GPT与TeleChat-7B搭建相关RAG知识库
ChatWithRTX
ChatRTX安装教程
ChatWithRTX 踩坑记录
ChatWithRTX 使用其他量化模型
ChatWithRTX介绍
RAG 相关资料
英伟达—大模型结合 RAG 构建客服场景自动问答
又一大模型技术开源!有道自研RAG引擎QAnything正式开放下载
收藏!RAG入门参考资料开源大总结:RAG综述、介绍、比较、预处理、RAG Embedding等
RAG调研
解决现代RAG实际生产问题
解决现代 RAG 系统中的生产问题-II
Modular RAG and RAG Flow: Part Ⅰ
Modular RAG and RAG Flow: Part II
先进的Retriever技术来增强你的RAGs
高级RAG — 使用假设文档嵌入 (HyDE) 改进检索
提升 RAG:选择最佳嵌入和 Reranker 模型
LangGraph
增强型RAG:re-rank
LightRAG:使用 PyTorch 为 LLM 应用程序提供支持
模型训练
GPU相关资料
[教程] conda安装简明教程(基于miniconda和Windows)
PyTorch CUDA对应版本 | PyTorch
资料
李一舟课程全集
零碎资料
苹果各服共享ID
数据中心网络技术概览
华为大模型训练学习笔记
百度AIGC工程师认证考试答案(可换取工信部证书)
百度智能云生成式AI认证工程师 考试和证书查询指南
深入理解 Megatron-LM(1)基础知识
QAnything
接入QAnything的AI问答知识库,可私有化部署的企业级WIKI知识库
wsl --update失效Error code: Wsl/UpdatePackage/0x80240438的解决办法
Docker Desktop 启动docker engine一直转圈解决方法
win10开启了hyper-v,docker 启动还是报错 docker desktop windows hypervisor is not present
WSL虚拟磁盘过大,ext4迁移 Windows 中创建软链接和硬链接
WSL2切换默认的Linux子系统
Windows的WSL子系统,自动开启sshd服务
新版docker desktop设置wsl(使用windown的子系统)
WSL 开启ssh
Windows安装网易开源QAnything打造智能客服系统
芯片
国内互联网大厂自研芯片梳理
超算平台—算力供应商
Linux 磁盘扩容
Linux使用growpart工具进行磁盘热扩容(非LVM扩容方式)
关于centos7 扩容提示no tools available to resize disk with 'gpt' - o夜雨随风o - 博客园
(小插曲)neo4j配置apoc插件后检查版本发现:Unknown function ‘apoc.version‘ “EXPLAIN RETURN apoc.version()“
vfio-pci与igb_uio映射硬件资源到DPDK的流程分析
KubeVirt
vnc server配置、启动、重启与连接 - 王约翰 - 博客园
虚拟机Bug解决方案
kubevirt 如何通过CDI上传镜像文件
在 K8S 上也能跑 VM!KubeVirt 簡介與建立(部署篇) | Cloud Solutions
KubeVirt 04:容器化数据导入 – 小菜园
Python
安装 flash_attn
手把手教你在linux上安装pytorch与cuda
AI
在启智社区基于PyTorch运行国产算力卡的模型训练实验
Scaling law
免费的GPT3.5 API
AI Engineer Roadmap & Resources 🤖
模型排行
edk2
K8S删除Evicted状态的pod
docker 中启动 docker
远程本地多用户桌面1.17(一种不让电脑跟你抢键鼠的思路) - 哔哩哔哩
-
+
首页
超详细分布式对象存储 MinIO 实战教程
> 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [zhuanlan.zhihu.com](https://zhuanlan.zhihu.com/p/558896919) **一、前言** -------- MinIO 的基础概念和环境部署可以参考: 我之前的文章:高性能分布式对象存储——MinIO(环境部署):[https://www.cnblogs.com/liugp/p/16558869.html](https://www.cnblogs.com/liugp/p/16558869.html) **二、客户端操作 MinIO Client(mc)** ---------------------------- 官方文档:[https://docs.min.io/docs/minio-admin-complete-guide.html](https://docs.min.io/docs/minio-admin-complete-guide.html) MinIO Client (mc) 为 UNIX 命令(如 ls、cat、cp、mirror、diff、find 等)提供了现代替代方案。它支持文件系统和兼容 Amazon S3 的云存储服务(AWS Signature v2 和 v4)。 ``` 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 set legal hold for object(s) diff list differences in object name, size, and date between two buckets rm remove objects 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(s) and object(s) ilm manage bucket lifecycle version manage bucket versioning replicate configure server side bucket replication admin manage MinIO servers update update mc to latest release ``` ### **1)mc Shell 自动补全** 如果您使用的是 bash、zsh 或 fish。Shell 补全默认嵌入在 mc,安装自动补全使用`mc --autocompletion`。重新启动 shell,mc 将自动完成命令,如下所示。 ``` # 安装 mc --autocompletion # 重启shell,即退出shell,重新连接即可 ``` ![](https://pic1.zhimg.com/v2-504cb8df638c6f81df7cb27740491290_r.jpg) ### **2)查看 mc 版本** ``` mc --version ``` ![](https://pic4.zhimg.com/v2-88747b29772783944fce645d82fc6517_r.jpg) ### **3)列出来自 [https://play.min.io](https://play.min.io) 的所有存储桶** ``` mc ls play # json格式 mc --json ls play ``` ![](https://pic2.zhimg.com/v2-c4b18ae81e14f7af1a0225fe20377075_r.jpg) ### **4)创建桶** `mb`命令在对象存储上创建一个新存储桶。在文件系统上,它的行为类似于 mkdir -p 命令。Bucket 相当于文件系统中的驱动器或挂载点,不应被视为文件夹。MinIO 对每个用户创建的存储桶数量没有任何限制。 ``` # 添加MinIO存储服务 cd /opt/bigdata/minio ./mc config host add minio http://local-168-182-110:19000 admin admin123456 # 在自己部署的minio创建新存储桶 mc mb minio/mybucket # 查看所有桶 mc ls minio ``` ![](https://pic1.zhimg.com/v2-6a40b18748c4b34db8100ed6afc65cd0_r.jpg) web 访问:[http://local-168-182-110:19001](http://local-168-182-110:19001) ![](https://pic2.zhimg.com/v2-b3c633dd15d3a6327b4555cb394bd6f9_r.jpg) ### **5)复制文件到 MinIO** `cp`命令将数据从一个或多个源复制到目标。 ``` mc cp wget-log minio/mybucket # 查看 mc ls wget-log minio/mybucket ``` ![](https://pic1.zhimg.com/v2-348c7bc3ca039cbcbba91296bebdac48_r.jpg) ### **6)日常使用** 您可以添加 shell 别名来覆盖您常用的 Unix 工具。 ``` alias ls='mc ls' alias cp='mc cp' alias cat='mc cat' alias mkdir='mc mb' alias pipe='mc pipe' alias find='mc find' alias tree='mc tree' ``` ### **7)MinIO 管理员操作** MinIO Client (mc) 提供 admin 子命令来对 MinIO 部署执行管理任务。 ``` service restart and stop all MinIO servers update update all MinIO servers info display MinIO server information user manage users group manage groups policy manage policies defined in the MinIO server replicate manage MinIO site replication config manage MinIO server configuration decommission, decom manage MinIO server pool decommissioning heal heal disks, buckets and objects on MinIO server prometheus manages prometheus config kms perform KMS management operations bucket manage buckets defined in the MinIO server tier manage remote tier targets for ILM transition top provide top like statistics for MinIO trace show http trace for MinIO server console show console logs for MinIO server ``` ### **1)查看集群信息** ``` mc admin info minio # 为了方便使用,可以设置别名 alias minfo='mc admin info' minfo minio ``` ![](https://pic1.zhimg.com/v2-fcf6402018c494707a21100d63f96af4_r.jpg) ![](https://pic2.zhimg.com/v2-4d94bf1221eaf2ec32c95c8f9ab78c19_r.jpg) ### **2)全局选项** ### **1、选项 [--debug]** 【示例】显示 info 命令的详细调试输出 ``` mc admin info --debug minio ``` ![](https://pic4.zhimg.com/v2-31810029835e1a818ef25648c788cb0f_r.jpg) ### **2、选项 [--json]** JSON 选项启用 JSON 行格式的可解析输出。 【示例】MinIO 服务器信息 ``` mc admin --json info minio ``` ![](https://pic3.zhimg.com/v2-245554b764fe905e956ed0248ae60fb6_r.jpg) ### **3)命令 service- 重启和停止所有 MinIO 服务器** service 命令提供了一种重新启动和停止所有 MinIO 服务器的方法。 【示例】 ``` mc admin service restart minio ``` ### **4)命令 policy- 管理预设策略** policy 添加、删除、列出策略、获取策略信息以及为 MinIO 服务器上的用户设置策略的命令。 ``` NAME: mc admin policy - manage policies FLAGS: --help, -h show help COMMANDS: add add new policy remove remove policy list list all policies info show info on a policy set set IAM policy on a user or group ``` ### **1、【示例】列出 MinIO 上的所有预设策略** ``` mc admin policy list minio ``` ![](https://pic2.zhimg.com/v2-5865e485dac380ef4e557a45c0b3e7b1_r.jpg) ### **2、【示例】在 MinIO 上添加新策略 “listbucketsonly”** 策略来自 /tmp/listbucketsonly.json。当此策略应用于用户时,该用户只能列出顶层存储桶,但不能列出其他任何内容,没有前缀,没有对象。 首先使用以下信息创建 json 文件 /tmp/listbucketsonly.json。 ``` { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": [ "arn:aws:s3:::*" ] } ] } ``` 将策略作为 “listbucketsonly” 添加到策略数据库 ``` mc admin policy add minio listbucketsonly /tmp/listbucketsonly.json # 删除 MinIO 上的策略“listbucketsonly” mc admin policy remove minio listbucketsonly ``` ### **3、【示例】在用户或组上设置标准策略。'writeonly'** ``` # 添加一个新用户“newuser”,密码"newuser123" mc admin user add minio newuser newuser123 # 给用户添加策略 mc admin policy set minio writeonly user=newuser # 添加组“somegroup ”,把用户“newuser ”添加到组 mc admin group add minio somegroup newuser # 给组添加策略 mc admin policy set minio writeonly group=somegroup ``` ### **5)命令 user- 管理用户** ### **1、【示例】在 MinIO 上添加一个新用户 “newuser”** ``` # 添加一个新用户“newuser”,密码"newuser123" mc admin user add minio newuser newuser123 ``` ### **2、【示例】在 MinIO 上禁用用户 “newuser”** ``` mc admin user disable minio newuser ``` ### **3、【示例】在 MinIO 上启用用户 “newuser”** ``` mc admin user enable minio newuser ``` ### **4、【示例】在 MinIO 上删除用户 “newuser”** ``` mc admin user remove minio newuser ``` ### **5、【示例】列出 MinIO 上的所有用户** ``` mc admin user list --json minio ``` ### **6、【示例】显示用户信息** ``` mc admin user info minio newuser ``` ### **6)命令 group- 管理组** group 在 MinIO 服务器上添加、删除、信息、列出、启用、禁用组的命令。 ### **1、【示例】将用户添加到 MinIO 上的组 “somegroup”** ``` # 如果组不存在,则创建组。 mc admin group add minio somegroup newuser ``` ### **2、【示例】从 MinIO 上的组 “somegroup” 中删除用户** ``` mc admin group remove minio somegroup newuser ``` ### **3、【示例】在 MinIO 上删除一个组 “somegroup”** 仅在给定组为空时有效,非空组无法删除 ``` mc admin group remove minio somegroup ``` ![](https://pic4.zhimg.com/v2-2742e53aa99f6c29c882f1120fb3b35b_r.jpg) ### **4、【示例】在 MinIO 上获取组 “somegroup” 的信息** ``` # 添加组 mc admin group add minio somegroup newuser # 删除 mc admin group info minio somegroup ``` ### **5、【示例】列出 MinIO 上的所有组** ``` mc admin group list minio ``` ### **6、【示例】在 MinIO 上启用组 “somegroup”** ``` mc admin group enable minio somegroup ``` ### **7、【示例】在 MinIO 上禁用组 “somegroup”** ``` mc admin group disable minio somegroup ``` ### **7)命令 config- 管理服务器配置** `config`命令来管理 MinIO 服务器配置。 ### **1、【示例】获取 “etcd” 子系统配置** ``` # 通过引入第三方组件etcd,在不动原有集群的基础上实现动态扩展方案 mc admin config get minio etcd ``` ### **2、【示例】在 “etcd” 子系统上设置特定设置** ``` mc admin config set minio etcd endpoints=http://[hostname|ip]:2379 ``` ### **3、【示例】获取 MinIO 服务器 / 集群的整个服务器配置** ``` mc admin config export minio > /tmp/my-serverconfig ``` ### **4、【示例】设置 MinIO 服务器 / 集群的整个服务器配置** ``` mc admin config import minio < /tmp/my-serverconfig ``` 这里列出了常用的命令,想了解更多,可以查看官方文档:[https://docs.min.io/docs/minio-admin-complete-guide.html](https://docs.min.io/docs/minio-admin-complete-guide.html) MinIO Client(mc)操作还是非常简单的,但是更多的使用还是通过程序去调用 api 接口的,后续会讲解~ **三、MinIO 分布式集群扩容** ------------------- 参考:[https://docs.min.io/docs/distributed-minio-quickstart-guide.html](https://docs.min.io/docs/distributed-minio-quickstart-guide.html) ![](https://pic1.zhimg.com/v2-6e96584747f77dcd3ce076f40169268c_r.jpg) MinIO 集群扩容方法: 常见的集群扩容方法可分为两类:**水平扩容**和**垂直扩容**。 * **水平扩容**,一般指通过增加节点数扩展系统性能; * 而**垂直扩容**则指提升各节点自身的性能,例如增加节点的磁盘存储空间。直接采用垂直扩容方式扩容 MinIO 集群的节点磁盘空间,会为集群运行带来若干问题,官方也并**不推荐**。因此本文主要介绍 MinIO 的两种**水平扩容**方式:**对等扩容**和**联邦扩容**。 ### **1)对等扩容** 首先,MinIO 的极简设计理念使得 MinIO 分布式集群并**不支持向集群中添加单个节点并进行自动调节的扩容方式**,这是因为加入单个节点后所引发的数据均衡以及纠删组划分等问题会为整个集群带来复杂的调度和处理过程,并不利于维护。因此,MinIO 提供了一种对等扩容的方式,即**要求增加的节点数和磁盘数均需与原集群保持对**等。 * 例如原集群包含 **2 个节点 2 块磁盘**,则在扩容时**必须同样增加 2 个节点 2 块磁盘**(或为其倍数),以便系统维持相同的数据冗余 SLA,从而极大地降低扩容的复杂性; * 如上例,在**扩容后**,MinIO 集群并**不会对全部的 4 个节点进行完全的数据均衡**,而是将原本的 **2 个节点视作一个区域**,**新加入的 2 节点视作另一区域**; * 当有新对象上传时,集群将依据各区域的可用空间比例确定存放区域,在各区域内仍旧通过哈希算法确定对应的纠删组进行最终的存放。此外,集群进行一次对等扩容后,还可依据扩容规则继续进行对等扩容,但出于安全性考虑,集群的最大节点数**一般不得超过 32 个**。 对等扩容的优点在于配置操作简单易行 通过一条命令即可完成扩容(注意:推荐使用连续的节点 IP,并参照 MinIO 官网在扩容命令中使用 {})。而对等扩容的局限性在于: * 扩容需重启; * 扩容存在限制,集群节点数一般不超过 32 个,这是由于 MinIO 集群通过分布式锁保证强一致性,若集群节点数过大,维护强一致性将带来性能问题。 【温馨提示】这里不沿用之前的集群进行扩容,这里重新部署 2 个节点的集群。具体部署,可以参考我之前的文章:高性能分布式对象存储——MinIO(环境部署) ### **1、环境准备** <table data-draft-node="block" data-draft-type="table" data-size="normal" data-row-style="normal"><tbody><tr><th>主机名</th><th>IP</th><th>data</th><th>备注</th></tr><tr><td>local-168-182-110</td><td>192.168.182.110</td><td>/opt/bigdata/minio/data/export{1,2}</td><td>原始节点</td></tr><tr><td>local-168-182-111</td><td>192.168.182.111</td><td>/opt/bigdata/minio/data/export{1,2}</td><td>原始节点</td></tr><tr><td>local-168-182-112</td><td>192.168.182.112</td><td>/opt/bigdata/minio/data/export{1,2}</td><td>扩容节点</td></tr><tr><td>local-168-182-113</td><td>192.168.182.113</td><td>/opt/bigdata/minio/data/export{1,2}</td><td>扩容节点</td></tr></tbody></table> 启动脚本 ``` #!/bin/bash # 创建日志存储目录 mkdir -p /opt/bigdata/minio/logs # 分别在三个节点上创建存储目录 mkdir -p /opt/bigdata/minio/data/export{1,2,3,4} # 创建配置目录 mkdir -p /etc/minio export MINIO_ROOT_USER=admin export MINIO_ROOT_PASSWORD=admin123456 # 所有节点都得修改重启服务 # --address "0.0.0.0:9000" 挂载9001端口为api端口(如Java客户端)访问的端口 # --console-address ":9000" 挂载9000端口为web端口; /opt/bigdata/minio/minio server --address 0.0.0.0:9000 --console-address 0.0.0.0:9001 --config-dir /etc/minio \ http://192.168.182.11{0...1}/opt/bigdata/minio/data/export{1...2} > /opt/bigdata/minio/logs/minio_server.log ``` minio 初始集群信息 web 访问:[http://local-168-182-110:19001](http://local-168-182-110:19001) ![](https://pic1.zhimg.com/v2-f82af62c78982bb17edf85b5e059dfa4_r.jpg) ![](https://pic3.zhimg.com/v2-b70d88610a92c2a4edfc43a602a4cf96_r.jpg) ![](https://pic4.zhimg.com/v2-288b438f242fccd811189f8f451eeb7f_r.jpg) ### **1、将配置 copy 一份到要扩容的节点** ``` # 在local-168-182-110执行 cd /opt/bigdata/minio scp -r /opt/bigdata/minio local-168-182-113:/opt/bigdata/ scp -r /usr/lib/systemd/system/minio.service local-168-182-113:/usr/lib/systemd/system/minio.service ``` ### **2、添加磁盘** 这里也添加 2 块 2G 的磁盘 ``` # 不重启,直接刷新磁盘数据总线,获取新加的磁盘 for host in $(ls /sys/class/scsi_host) ; do echo "- - -" > /sys/class/scsi_host/$host/scan; done lsblk # 格式化 mkfs.ext4 /dev/sdb mkfs.ext4 /dev/sdc mkfs.ext4 /dev/sdd mkfs.ext4 /dev/sde # 先删再创建挂载目录,因为这里面有其它节点的数据 rm -fr /opt/bigdata/minio/data/export{1..4} mkdir -p /opt/bigdata/minio/data/export{1..4} # 挂载 mount /dev/sdb /opt/bigdata/minio/data/export1 mount /dev/sdc /opt/bigdata/minio/data/export2 mount /dev/sdd /opt/bigdata/minio/data/export3 mount /dev/sde /opt/bigdata/minio/data/export4 ``` ### **3、修改启动脚本(run.sh)** ``` #!/bin/bash # 创建日志存储目录 mkdir -p /opt/bigdata/minio/logs # 分别在三个节点上创建存储目录 mkdir -p /opt/bigdata/minio/data/export{1,2} # 创建配置目录 mkdir -p /etc/minio export MINIO_ROOT_USER=admin export MINIO_ROOT_PASSWORD=admin123456 # 所有节点都得修改重启服务 # --address "0.0.0.0:9000" 挂载9001端口为api端口(如Java客户端)访问的端口 # --console-address ":9000" 挂载9000端口为web端口; # 扩容地址:http://192.168.182.11{2...3}/opt/bigdata/minio/data/export{1...2} /opt/bigdata/minio/minio server --address 0.0.0.0:9000 --console-address 0.0.0.0:9001 --config-dir /etc/minio \ http://192.168.182.11{0...1}/opt/bigdata/minio/data/export{1...2} \ http://192.168.182.11{2...3}/opt/bigdata/minio/data/export{1...2} > /opt/bigdata/minio/logs/minio_server.log ``` 可扩容的方式,使用 MINIO 纠删码,如果想要扩容,必须使用这种方式。注意上面是**三个点**。 下面的写法多硬盘多节点部署是不可扩容的方式,下面是官方示例: ``` export MINIO_ACCESS_KEY=<ACCESS_KEY> export MINIO_SECRET_KEY=<SECRET_KEY> minio server http://192.168.1.11/export1 http://192.168.1.11/export2 \ http://192.168.1.11/export3 http://192.168.1.11/export4 \ http://192.168.1.12/export1 http://192.168.1.12/export2 \ http://192.168.1.12/export3 http://192.168.1.12/export4 \ http://192.168.1.13/export1 http://192.168.1.13/export2 \ http://192.168.1.13/export3 http://192.168.1.13/export4 \ http://192.168.1.14/export1 http://192.168.1.14/export2 \ http://192.168.1.14/export3 http://192.168.1.14/export4 ``` ### **4、重启服务** ``` systemctl restart minio ``` web 访问:[http://local-168-182-110:19001](http://local-168-182-110:19001) ![](https://pic1.zhimg.com/v2-985bd73b9ff991056441a0bb4577dc60_r.jpg) 到这里就完成了对等扩容了。 ### **2)联邦扩容** MinIO 官方提供了另一种扩容机制——联邦扩容,即通过引入 etcd,将多个 MinIO 分布式集群在逻辑上组成一个联邦,对外以一个整体提供服务,并提供统一的命名空间。MinIO 联邦集群的架构如下图所示: ![](https://pic1.zhimg.com/v2-0525313ba59a9d0c608074284e2d2b9c_r.jpg) * 其中,`etcd`是一个开源的分布式键值存储数据库,在联邦中用于**记录存储桶 IP 地址**。 * 联邦内的各个集群其数据存储以及一致性维护仍由各集群自行管理,联邦只是对外提供一个整体逻辑视图。 * 通过连接到联邦中任一集群的任一节点,可以查询并访问联邦内所有集群的全部数据,由此获得了逻辑上的空间扩大感。 * 但实际上,对于一个外部应用访问,联邦需依赖 etcd 定位到存储桶的实际存储节点,再进行数据访问,联邦则对外屏蔽了桶 IP 查找和定位过程,从而在逻辑上对外形成了一个统一整体。因此,**etcd 实际上起到了类似路由寻址的效果**。 MinIO 联邦集群的数据访问机制具体如下: * 客户端应用向联邦集群发送创建存储桶请求,桶名为 bucket1; * 联邦会将 bucket1 实际所在的集群节点 IP 地址写入 etcd 中,例如 bucket1 实际将存储于联邦中的集群 1 上,而集群 1 包含 2 个节点,其节点 IP 地址分别为 192.168.182.112 和 192.168.182.113,则 etcd 中将写入如下两条记录: ### **1、部署 etcd** 下载地址:[https://github.com/etcd-io/etcd/releases](https://github.com/etcd-io/etcd/releases) ``` mkdir -p /opt/bigdata/etcd ; cd /opt/bigdata/etcd wget https://github.com/etcd-io/etcd/releases/download/v3.4.20/etcd-v3.4.20-linux-amd64.tar.gz tar -xf etcd-v3.4.20-linux-amd64.tar.gz # 创建存储目录 mkdir /opt/bigdata/etcd/data ``` 创建配置文件 `/usr/local/etcd/conf.yml`,三个节点配置文件内容分别如下: etcd01:local-168-182-110 ``` name: etcd01 data-dir: /opt/bigdata/etcd/data initial-advertise-peer-urls: http://192.168.182.110:2380 listen-peer-urls: http://192.168.182.110:2380 listen-client-urls: http://192.168.182.110:2379,http://127.0.0.1:2379 advertise-client-urls: http://192.168.182.110:2379 initial-cluster-token: etcd-cluster initial-cluster: etcd01=http://192.168.182.110:2380,etcd02=http://192.168.182.111:2380,etcd03=http://192.168.182.112:2380 initial-cluster-state: new ``` etcd02:local-168-182-111 ``` name: etcd02 data-dir: /opt/bigdata/etcd/data initial-advertise-peer-urls: http://192.168.182.111:2380 listen-peer-urls: http://192.168.182.111:2380 listen-client-urls: http://192.168.182.111:2379,http://127.0.0.1:2379 advertise-client-urls: http://192.168.182.111:2379 initial-cluster-token: etcd-cluster initial-cluster: etcd01=http://192.168.182.110:2380,etcd02=http://192.168.182.111:2380,etcd03=http://192.168.182.112:2380 initial-cluster-state: new ``` etcd03:local-168-182-112 ``` name: etcd03 data-dir: /opt/bigdata/etcd/data initial-advertise-peer-urls: http://192.168.182.112:2380 listen-peer-urls: http://192.168.182.112:2380 listen-client-urls: http://192.168.182.112:2379,http://127.0.0.1:2379 advertise-client-urls: http://192.168.182.112:2379 initial-cluster-token: etcd-cluster initial-cluster: etcd01=http://192.168.182.110:2380,etcd02=http://192.168.182.111:2380,etcd03=http://192.168.182.112:2380 initial-cluster-state: new ``` 【温馨提示】只能写 IP,写主机名会启动失败 配置参数解析: * `name`:当前 etcd 节点名称。 * `data-dir`:数据存储目录。 * `initial-advertise-peer-urls`:集群的其他节点通过该地址与当前节点通信。 * `listen-peer-urls`:当前节点通过该地址监听集群其他节点发送的信息。 * `listen-client-urls`:当前节点通过该地址监听客户端发送的信息。 * `advertise-client-urls`:客户端通过该地址与当前节点通信 * `initial-cluster-token`:用于区分不同的集群,同一集群的所有节点配置相同的值。 * `initial-cluster`:当前集群的所有节点信息,当前节点根据此信息与其他节点取得联系。 * `initial-cluster-state`:本次是否为新建集群,有两个取值:new 和 existing。 **配置服务** ``` cat >/usr/lib/systemd/system/etcd.service<<EOF [Unit] Description=etcd After=network.target [Service] Type=notify ExecStart=/opt/bigdata/etcd/etcd-v3.4.20-linux-amd64/etcd --config-file=/usr/local/etcd/conf.yml [Install] WantedBy=multi-user.target EOF ``` **启动服务** ``` systemctl daemon-reload systemctl start etcd.service ``` 验证 ``` # 加软连接 ln -s /opt/bigdata/etcd/etcd-v3.4.20-linux-amd64/etcdctl /usr/local/bin/etcdctl # 查看集群成员列表 etcdctl member list # 查看集群成员健康情况 etcdctl endpoint health --endpoints=http://192.168.182.110:2380,http://192.168.182.111:2380,http://192.168.182.112:2380 ``` ![](https://pic3.zhimg.com/v2-cc4bdd06ad85dd644e395ddbb223b6f6_r.jpg) 查看 etcd 版本 ``` ln -s /opt/bigdata/etcd/etcd-v3.4.20-linux-amd64/etcd /usr/local/bin/etcd etcd --version ``` ![](https://pic2.zhimg.com/v2-0177140d0522545c47ea45b2189f8271_r.jpg) ### **2、运行多个 MinIO 集群** 集群 1 ``` cd /opt/bigdata/minio export MINIO_ETCD_ENDPOINTS="http://192.168.182.110:2380,http://192.168.182.111:2380,http://192.168.182.112:2380" mkdir -p /etc/minio export MINIO_ROOT_USER=admin export MINIO_ROOT_PASSWORD=admin123456 export MINIO_PUBLIC_IPS=192.168.182.110,192.168.182.111 ./minio server --address 0.0.0.0:8000 --console-address 0.0.0.0:8001 --config-dir /etc/minio http://192.168.182.11{0...1}/opt/bigdata/minio/data/export{3...4} ``` web 访问:[http://local-168-182-110:8001/](http://local-168-182-110:8001/) ![](https://pic1.zhimg.com/v2-e736412c3b0d500fb9cd8d965a987d70_r.jpg) 集群 2 ``` cd /opt/bigdata/minio export MINIO_ETCD_ENDPOINTS="http://192.168.182.110:2380,http://192.168.182.111:2380,http://192.168.182.112:2380" mkdir -p /etc/minio export MINIO_ROOT_USER=admin export MINIO_ROOT_PASSWORD=admin123456 export MINIO_PUBLIC_IPS=192.168.182.112,192.168.182.113 ./minio server --address 0.0.0.0:8000 --console-address 0.0.0.0:8001 --config-dir /etc/minio http://192.168.182.11{2...3}/opt/bigdata/minio/data/export{3...4} ``` web 访问:[http://local-168-182-112:8001/](http://local-168-182-112:8001/) ![](https://pic2.zhimg.com/v2-e14c39aa9487491eb2991aa6c07c1d19_r.jpg) 配置 nginx ``` # /etc/nginx/conf.d/minio2.conf upstream minio_api2 { ip_hash; server 192.168.182.110:8000; server 192.168.182.111:8000; server 192.168.182.112:8000; server 192.168.182.113:8000; } upstream minio_console2 { ip_hash; server 192.168.182.110:8001; server 192.168.182.111:8001; server 192.168.182.112:8001; server 192.168.182.113:8001; } server{ listen 18000; server_name 192.168.182.110; ignore_invalid_headers off; client_max_body_size 0; proxy_buffering off; location / { proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout 300; proxy_http_version 1.1; chunked_transfer_encoding off; proxy_ignore_client_abort on; proxy_pass http://minio_api2; } } server{ listen 18001; server_name 192.168.182.110; ignore_invalid_headers off; client_max_body_size 0; proxy_buffering off; location / { proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout 300; proxy_http_version 1.1; chunked_transfer_encoding off; proxy_ignore_client_abort on; proxy_pass http://minio_console2; } } ``` 重新加载 nginx 生效 ``` systemctl reload nginx ``` web 访问:local-168-182-110:18001/ ![](https://pic4.zhimg.com/v2-b604f50b2df5d6a2fcdf61ba899a0e47_r.jpg) 不同的客户端访问会显示不同的节点信息 MinIO 的基本操作和 MinIO 扩容实战就到这里了,后续会持续分享更多关于大数据的教程,请小伙伴耐心等待哦~ _链接:[https://www.cnblogs.com/liugp/p/16560313.html](https://www.cnblogs.com/liugp/p/16560313.html)(侵删)_
yg9538
2022年9月23日 10:13
1625
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码