minio部署及使用
1. MinIO
简介
MinIO创始者是Anand Babu Periasamy、Harshavardhana等人, Anand是GlusterFs的初始开发者、Gluster公司的创始人CTO,Harshavardhana曾经是GlusterFs的开发人员,直到2011年红帽收购了Gluster公司。MinIO在设计上汲取了GlusterFS的相关经验与教训,系统复杂度上作了大量简化。
MinIO是为海量数据存储、人工智能、大数据分析而设计,基于Apache License v2.0开源协议的对象存储系统,它完全兼容Amazon S3接口,单个对象最大可达5TB,适合存储海量图片、视频、日志文件、备份数据和容器/虚拟机镜像等。
MinIO主要采用Golang语言实现,整个系统都运行在操作系统的用户态空间,客户端与存储服务器之间采用http/https通信协议。
极简理念——采用尽可以简单可靠的集群管理方案,摒弃复杂的大规模集群调度管理,减少风险因素与性能瓶颈,聚焦产品的核心功能,打造高可靠的集群、灵活的扩展能力以及超高的性能。
积木式扩展——建立众多的中小规模、易管理的集群,支持跨数据中心将多个集群聚合成超大资源池,而非直接采用大规模、统一管理的分布式集群
2. MinIO单机部署
2.1 配置防火墙
-
操作内容 firewalld
关闭防火墙服务:
systemctl stop firewalld或者开启MinIO服务端口9000(或者自定义其他端口)
sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent sudo firewall-cmd --reload
2.2 数据磁盘准备
主机挂载一块磁盘,/sdb
-
分区及格式化
sudo parted -a optimal -s /dev/sdb mktable gpt; sudo parted -a optimal -s /dev/sdb mkpart sdb 0% 100% sudo mkfs.xfs -f /dev/sdb -
挂载磁盘
sudo mkdir /minio-data1 sudo chown -R minio-user.minio-user /minio-data1 sudo mount -t xfs /dev/sdb1 /minio-data1 sudo chown -R minio-user.minio-user /minio-data1
2.3 调整系统参数
参考链接:https://github.com/minio/minio/tree/master/docs/deployment/kernel-tuning
Tuning Network Parameters
sysctl -w net.ipv4.tcp_fin_timeout=30 #默认60 /proc/sys/net/ipv4/tcp_fin_timeout
sysctl -w net.ipv4.tcp_keepalive_probes=5 #默认9 /proc/sys/net/ipv4/tcp_keepalive_probes
sysctl -w net.core.wmem_max=540000 #默认212992 /proc/sys/net/core/wmem_max
sysctl -w net.core.rmem_max=540000 #默认212992 /proc/sys/net/core/rmem_max
Tuning Virtual Memory
sysctl -w vm.swappiness=1 #默认60 /proc/sys/vm/swappiness
sysctl -w vm.dirty_background_ratio=1 #默认10 /proc/sys/vm/dirty_background_ratio
sysctl -w vm.dirty_ratio=5 #默认20 /proc/sys/vm/dirty_ratio
echo madvise | sudo tee /sys/kernel/mm/transparent_hugepage/enabled #default always
echo 2097152 | sudo tee /proc/sys/vm/min_free_kbytes
Tuning Scheduler
sysctl -w kernel.sched_min_granularity_ns=10000000 #默认3000000 /proc/sys/kernel/sched_min_granularity_ns
sysctl -w kernel.sched_wakeup_granularity_ns=15000000 #默认4000000 /proc/sys/kernel/sched_wakeup_granularity_ns
Tuning Disk
echo "deadline" | sudo tee /sys/block/sd[x]/queue/scheduler
echo "256" | sudo tee /sys/block/sd[x]/queue/nr_requests #default 128
echo "1024" | sudo tee /sys/block/sd[x]/queue/max_sectors_kb #default 512
2.4 安装目录准备
sudo mkdir /opt/minio #安装包目录
sudo chown -R minio-user.

本文详细介绍了MinIO单机与集群部署步骤,包括防火墙配置、数据磁盘管理、系统参数调优,以及使用Java SDK操作和部署集群实例,适合大数据和AI应用开发者。

2万+

被折叠的 条评论
为什么被折叠?



