linux配置minio,包含集群配置

MinIO 英文官网地址

Minio中文官网

一、 minio单机部署

1.1创建目录,指定安装的目录

mkdir  -p   /opt/apps
mkdir -p /opt/apps/logs
cd /opt/apps
wget https://dl.minio.io/server/minio/release/linux-amd64/minio
chmod +x minio

1.2通过环境变量,设置账户密码

export MINIO_ACCESS_KEY=minioadmin
export MINIO_SECRET_KEY=minioadmin

执行之后,账户名是 minioadmin,密码是 minioadmin

1.3后台指定控制台的端口9001运行

cd /opt/apps
nohup ./minio  server --console-address  ":9001"   /data/minio_oss_srv  > /opt/apps/logs/minio.log 2>&1 &

启动之后,控制台地址为 IP地址:9001
API地址为 IP地址:9000

1.4打开网页控制台

在这里插入图片描述
1.5 其它命令

 启动后会打印出AccessKey和SecretKey等信息

./minio server /data/minio_oss_srv

自定义控制台端口号

cd /opt/apps
./minio server --console-address ":9001" /data/minio_oss_srv

修改默认账户密码,服务器bash环境窗口执行

export MINIO_ACCESS_KEY=minio                                     
export MINIO_SECRET_KEY=12345678

杀掉原有的进程,重新启动

netstat -antulp |  grep 9000
kill -9 进程PID

重启

cd /opt/apps
nohup ./minio  server --console-address  ":9001"   /data/minio_oss_srv  > /opt/apps/logs/minio.log 2>&1 &

二、minio集群部署
1、部署前说明
安装前需要再添加一个磁盘后将磁盘挂载到/opt/minio目录,minio集群部署需要独占磁盘分区,不能使用文件夹代替。
最开始直接在/opt/minio目录下面创建data启动时报错,后面挂载一个磁盘后就可以了,报错如图:

在这里插入图片描述

运行分布式 MinIO 实例的服务器时间差不应超过15分钟。
所有运行分布式 MinIO 设置的节点都是同构的,即相同的操作系统、相同数量的磁盘和相同的网络互连 。
MinIO 的节点需要具有相同的访问密钥和秘密密钥才能连接,即access key 和 MINIO secret key 都要一样。

2、创建目录

mkdir -p /opt/minio/{run,data} && mkdir -p /etc/minio

3、挂载新的硬盘

挂载/opt/minio目录,具体挂载参考 linux 挂载新的硬盘

在这里插入图片描述

 挂载完后,记得配置文件 /etc/fstab 也需要增加,不然服务器重启之后,就掉盘了
/dev/sdb1 /opt/minio ext4 defaults 0 0

在这里插入图片描述
4、下载Minio到/opt/minio/run

cd /opt/minio/run
wget https://dl.min.io/server/minio/release/linux-amd64/minio

5、创建启动脚本文件

vim /opt/minio/run/run.sh

#Minio默认9000端口,在配置文件中加入–address “127.0.0.1:9029” 可更改端口
#注意 :
#MINIO_ROOT_USER:用户名,长度最小是5个字符
#MINIO_ROOT_PASSWORD:密码,密码不能设置过于简单,不然minio会启动失败,长度最小是8个字符
#–config-dir:指定集群配置文件目录

#!/bin/bash
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=adminbfd123
/opt/minio/run/minio server --config-dir /etc/minio \
        --address "0.0.0.0:9029" --console-address ":9000" \
        http://172.16.11.1:9029/opt/minio/data \
        http://172.16.11.2:9029/opt/minio/data  > minio_server.log

6、创建停止脚本文件

cat <<EOF > /opt/minio/run/stop.sh
#!/bin/bash
#MinIO停止脚本
ps -ef | grep  minio | grep -v 'grep' | awk '{print $2}'| xargs kill -9
 
if $? != 0;then
          echo "minio service stop failed."
            exit 1
fi
EOF

7、创建Minio.server

cat <<EOF > /etc/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
 
[Service]
WorkingDirectory=/opt/minio/run/
ExecStart=/opt/minio/run/run.sh
ExecStop=/opt/minio/run/stop.sh
 
Restart=on-failure
RestartSec=5
 
[Install]
WantedBy=multi-user.target
EOF

8、权限修改

chmod +x /etc/systemd/system/minio.service && chmod +x /opt/minio/run/minio && chmod +x /opt/minio/run/run.sh && chmod +x /opt/minio/run/stop.sh

9、启动集群

systemctl daemon-reload
systemctl start minio
systemctl enable minio
systemctl status minio.service

10、配置Nginx代理

生产环境一般都需要使用域名做访问,所以选择nginx。
可以在其中一台部署好nginx,也可以单独一台做nginx。
我这里选择在172.16.11.1配置nginx。

vim   minio-cluster.conf 
upstream minio_console {
    server 172.16.11.1:9000 max_fails=3 fail_timeout=5s;
    server 172.16.11.2:9000 max_fails=3 fail_timeout=5s;

}
upstream minio_api {
    server 172.16.11.1:9029 max_fails=3 fail_timeout=5s;
    server 172.16.11.2:9029 max_fails=3 fail_timeout=5s;

}

server {
    listen          80;
    listen         443 ssl;
    server_name     cons.minio.com;
    
    ssl_certificate keys/cons/server.crt;
    ssl_certificate_key keys/cons/server.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    client_max_body_size     1G;   #如果上传文件大于1G,就需要更改这个参数
    client_header_timeout    1m;
    client_body_timeout      1m;
    proxy_connect_timeout    60s;
    proxy_read_timeout       1m;
    proxy_send_timeout       1m;
    
    location / {
        proxy_next_upstream     http_500 http_502 http_503 http_504 error timeout invalid_header;
        proxy_set_header        Host  $host;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass              http://minio_console;
        expires                 0;
    }
}

server {
    listen          80;
    listen         443 ssl;
    server_name     api.minio.com;

    ssl_certificate keys/cons/server.crt;
    ssl_certificate_key keys/cons/server.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    client_max_body_size     1G;
    client_header_timeout    1m;
    client_body_timeout      1m;
    proxy_connect_timeout    60s;
    proxy_read_timeout       1m;
    proxy_send_timeout       1m;

    location / {
        proxy_next_upstream     http_500 http_502 http_503 http_504 error timeout invalid_header;
        proxy_set_header        Host  $host;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass              http://minio_api;
        expires                 0;
    }
}

重载nginx配置,由于这里是使用了测试域名,所以需要本机host文件做一下指向,把两个测试域名指向到172.16.11.1.

在这里插入图片描述
11、访问测试

在这里插入图片描述

输入账号密码,账号密码在刚才配置的启动文件里面 run.sh。

登录之后,查看集群是否成功。

在这里插入图片描述

这里查看到现在是两台服务器,说明集群已经部署完成。

MinIO客户端快速入门指南

MinIO - 构建高性能的云原生数据的多云对象存储

三、Minio数据迁移

1、前提说明

本次实验,从172.16.11.3,172.16.11.4集群中,把数据迁移到172.16.11.1,172.16.11.2。
在需要迁移的服务器上其中一台操作操作,我的在172.16.11.3操作。

2、下载二进制文件安装MC

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
./mc --help

3、管理mc配置文件

./mc    config  host  add   hk   http://172.16.11.1:9029

说明: ./mc 使用绝对路径
(hk) 就是给你的云存储服务起了一个短点的外号,本次设定的存储服务指的是172.16.11.1这台上的minio服务,名字可以随意命名。
http://172.16.11.1:9029 这个是代表往这台服务迁移数据的IP,端口根据那边的那台服务器minio的API端口决定。

在这里插入图片描述

mc config host list

4、拷贝文件和对象到新的服务器

./mc cp  /opt/minio/data/test/*   hk/lk123  

说明:
/opt/minio/data/test/* 这个是代表本机mino的文件路径
hk/lk123 (hk)是刚才生成的别名,也就是172.16.11.1,lk123代表是在新服务器上创建的桶名

在这里插入图片描述

 操作完成后,就已经旧服务器上的文件,复制到了新服务器上指定的桶里面,根据官网说明cp命令拷贝一个或多个源文件目标输出。所有到对象存储的拷贝操作都进行了MD4SUM checkSUM校验。我这里是单个文件,所以速度会很快,如果文件比较多,就需要考虑充足的时间了。

在这里插入图片描述
5、MinIO Client (mc)命令说明

ls 列出文件和文件夹。
mb 创建一个存储桶或一个文件夹。
cat 显示文件和对象内容。
pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT。
share 生成用于共享的URL。
cp 拷贝文件和对象。
mirror 给存储桶和文件夹做镜像。
find 基于参数查找文件。
diff 对两个文件夹或者存储桶比较差异。
rm 删除文件和对象。
events 管理对象通知。
watch 监视文件和对象的事件。
policy 管理访问策略。
config 管理mc配置文件。
update 检查软件更新。
version 输出版本信息。

更多命令可参考官网
更多教程参考他人博客

四、Python接入Minio

MinIO Python SDK 是简单存储服务(又名 S3)客户端,用于对任何与 Amazon S3 兼容的对象存储服务执行存储桶和对象操作。
最低要求,Python 3.7 或更高版本。

1.使用 pip 下载

yum  -y  install  install python3-pip
pip3 install minio

2.下载源

yum -y install git
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py install
git clone https://github.com/minio/minio-py
cd minio-py
python setup.py install

以上是部署环境

3.配置上传代码

from minio import Minio
from minio.error import S3Error

def main():
   client = Minio(
        "minio-api.hao123.com",   ##这条是Minio的api接口域名,反代的是9000端口。
        access_key="K3weatwaSpaF", #这个是在Minio控制台页面新建的
        secret_key="WHHWWOPj8sargyarkIZhKnznNOTAN",  #这个是在Minio控制台页面新建的
    )

    
    found = client.bucket_exists("asiatrip")     #asiatrip  是在控制台创建的桶名
    if not found:
        client.make_bucket("asiatrip")    #asiatrip  是在控制台创建的桶名
    else:
        print("Bucket 'asiatrip' already exists")

    
    client.fput_object(
        "asiatrip", "1.txt", "/opt/test/1.txt",   #asiatrip  是在控制台创建的桶名  1.txt,是这个文件在服务器上的绝对路径。
    )
    print(
        "'/opt/test/1.txt' is successfully uploaded as "
        "object '1.txt' to bucket 'asiatrip'."
    )

if __name__ == "__main__":
    try:
        main()
    except S3Error as exc:
        print("error occurred.", exc)

4.运行文件上传

python3   test.py
  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux配置MinIO,您可以按照以下步骤进行操作: 1. 首先,从MinIO的官方网站下载适用于LinuxMinIO二进制文件。您可以选择下载MinIO Server或MinIO Client,具体取决于您的需求。 2. 解压下载的二进制文件。例如,如果您下载的是MinIO Server,则可以使用以下命令解压缩: ``` tar -xf minio_linux-amd64.tar.gz ``` 3. 进入解压后的MinIO目录: ``` cd minio_linux-amd64 ``` 4. 创建一个存储桶(Bucket)来存储对象。您可以使用以下命令创建一个名为"mybucket"的存储桶: ``` ./minio mb mybucket ``` 5. 启动MinIO Server。您可以使用以下命令启动MinIO Server,并指定数据存储路径和访问密钥: ``` ./minio server /path/to/data --address YOUR_SERVER_IP:9000 --access-key YOUR_ACCESS_KEY --secret-key YOUR_SECRET_KEY ``` 请将"YOUR_SERVER_IP"替换为您的服务器IP地址,将"YOUR_ACCESS_KEY"和"YOUR_SECRET_KEY"替换为自定义的访问密钥。 6. 现在,您可以通过浏览器访问MinIO Web界面,使用您的服务器IP和端口9000: ``` http://YOUR_SERVER_IP:9000 ``` 在Web界面中,您可以管理存储桶、上传和下载对象等。 这样,您就成功配置MinIO Server。您可以使用MinIO Client工具或MinIO SDK来与MinIO Server进行交互,并进行更多高级配置和操作。请注意,上述步骤仅适用于单节点部署,如果您需要进行分布式部署,请参考MinIO的官方文档获取更多详细信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值