系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、集群部署
- 二、单机部署
- 三、写一个启动脚本
- 四、性能方面
前言
minio版本升级,目的主要是为了解决由 Direct buffer memory 引发的附件下载优化方案
minio version RELEASE.2021-01-16T02-19-44Z => minio version RELEASE.2023-05-18T00-05-36Z
升级后问题整理一下
一、集群部署
低版本minio 集群部署对于存储地址没有要求
高版本要求存储地址必须为外挂空磁盘Drive
/mnt/minio/data/export2 is part of root drive, will not be used (*errors.errorString)
;
二、单机部署
- 文件存储形式变化
低版本挂载目录可直接显示文件
高版本挂载目录显示为文件名/xl.meta - 高版本启动提示
The standard parity is set to 0. This can lead to data loss.
无需处理,这是提示单机部署可能会因为磁盘损坏导致数据丢失无法恢复。 - nginx代理console后查看数据报错
Couldn't establish WebSocket connection.
需要在nginx增加配置,使nginx代理支持长连接
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
- 注意服务器时间同步
三、写一个启动脚本
也可以写入开机自启服务,未验证 可参考官网
- 单机启动脚本
#!/bin/bash
#服务参数
#服务端口,后端集成地址端口
SERVER_PORT=19000
#控制台端口,浏览器访问地址端口
CONSOLE_PORT=19001
MINIO_FILE_NAME="./minio"
#无日志
# LOG="/dev/null"
LOG="./log"
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=admin123
echo "SERVER_PORT:$SERVER_PORT"
echo "CONSOLE_PORT:$CONSOLE_PORT"
RETVAL="0"
# See how we were called.
function start() {
if [ ! -f ${LOG} ]; then
touch ${LOG}
fi
nohup ${MINIO_FILE_NAME} server /data/minio/ --console-address 0.0.0.0:${CONSOLE_PORT} --address=0.0.0.0:${SERVER_PORT} >> ${LOG} 2>&1 &
}
function stop() {
pid=$(ps -ef | grep -v 'grep' | egrep $MINIO_FILE_NAME | awk '{printf $2 " "}')
if [ "$pid" != "" ]; then
echo -n $"Shutting down boot: "
kill -9 "$pid"
else
echo "boot is stopped"
fi
status
}
function status(){
pid=$(ps -ef | grep -v 'grep' | egrep $MINIO_FILE_NAME| awk '{printf $2 " "}')
#echo "$pid"
if [ "$pid" != "" ]; then
echo "boot is running,pid is $pid"
else
echo "boot is stopped"
fi
}
function usage(){
echo "Usage: $0 {start|stop|restart|status}"
RETVAL="2"
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
usage
;;
esac
exit ${RETVAL}
- 集群启动脚本
#!/bin/bash
#服务参数
#服务端口,后端集成地址端口
SERVER_PORT=19000
#控制台端口,浏览器访问地址端口
CONSOLE_PORT=19001
MINIO_FILE_NAME="./minio"
CONFIG_DIR="../config"
CLUSTER_CONFIG="http://server1/data/minio/data/export1 http://data/mnt/minio/data/export2 http://server3/data/minio/data/export3"
#无日志
# LOG="/dev/null"
LOG="../log"
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=admin123
echo "SERVER_PORT:$SERVER_PORT"
echo "CONSOLE_PORT:$CONSOLE_PORT"
RETVAL="0"
# See how we were called.
function start() {
if [ ! -f ${LOG} ]; then
touch ${LOG}
fi
nohup ${MINIO_FILE_NAME} server ${CLUSTER_CONFIG} --config-dir ${CONFIG_DIR} --console-address 0.0.0.0:${CONSOLE_PORT} --address=0.0.0.0:${SERVER_PORT} >> ${LOG} 2>&1 &
}
function stop() {
pid=$(ps -ef | grep -v 'grep' | egrep $MINIO_FILE_NAME | awk '{printf $2 " "}')
if [ "$pid" != "" ]; then
echo -n $"Shutting down boot: "
kill -9 "$pid"
else
echo "boot is stopped"
fi
status
}
function status(){
pid=$(ps -ef | grep -v 'grep' | egrep $MINIO_FILE_NAME| awk '{printf $2 " "}')
#echo "$pid"
if [ "$pid" != "" ]; then
echo "boot is running,pid is $pid"
else
echo "boot is stopped"
fi
}
function usage(){
echo "Usage: $0 {start|stop|restart|status}"
RETVAL="2"
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
usage
;;
esac
exit ${RETVAL}
四、性能方面
-
与网络存储(NAS、SAN、NFS)相比,直连存储(DAS)具有显著的性能和一致性优势。
-
使用非XFS文件系统(ext4、btrfs、zfs)的部署往往具有较低的性能,同时表现出意外或不期望的行为。
-
当与分布式MinIO部署一起使用时,RAID或类似技术不能提供额外的弹性或可用性优势,并且通常会降低系统性能。
-
确保部署中的所有节点使用相同类型(NVMe、SSD或HDD)、具有相同容量(例如N TB)的驱动器。MinIO不区分驱动器类型,也不会从混合存储类型中获益。此外。MinIO将每个驱动器使用的大小限制为部署中的最小驱动器。例如,如果部署有15个10TB驱动器和1个1TB驱动器,则MinIO将每个驱动器的容量限制为1TB。