MinIO搭建

警告
本文最后更新于 2023-07-25,文中内容可能已过时。

MinIO是一个开源的对象存储服务器,它兼容Amazon S3 API。它可以用于构建私有云存储服务,提供高度可扩展的存储解决方案。

MinIO的设计目标是为了实现高性能、高可靠性和可扩展性。它使用分布式、水平扩展的架构,允许用户将数据存储在一个或多个服务器上进行并行访问。这种架构提供了可靠的数据冗余和高吞吐量的存储服务,适用于大规模数据存储和处理需求。

MinIO支持标准的Amazon S3 API,这意味着你可以使用现有的S3兼容工具和应用程序与MinIO进行集成。它还提供了一些额外的功能,如分片上传、多租户支持、服务器端加密等。

MinIO完全开源,代码托管在GitHub上,这使得用户可以自由地查看、修改和扩展其功能。它适用于各种场景,包括云存储、备份和恢复、大数据分析等。

1
2
3
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
mv minio /usr/local/bin/

添加 systemctl管理

vi /etc/systemd/system/minio.service

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
[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
ExecStart=/usr/local/bin/minio server --console-address ":9001" /data/minio
Restart=always
LimitNOFILE=65536
Environment="MINIO_ROOT_USER=admin" "MINIO_ROOT_PASSWORD=admin123"

[Install]
WantedBy=multi-user.target

参考链接:部署 MinIO:单节点单驱动

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
docker run -d \
-p 10010:10010 -p 10011:10011 \
-e MINIO_ROOT_USER=admin \
-e MINIO_ROOT_PASSWORD=minio123 \
-v /data/minio/data:/data \
-v /data/minio/config:/root/.minio \
--restart=always \
--name minio \
minio/minio \
server --address "":10010" --console-address ":10011" /data 

参考链接:部署 MinIO:单节点单驱动

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
kind: StatefulSet
apiVersion: apps/v1
metadata:
  name: minio
  namespace: default
  labels:
    app: minio
spec:
  replicas: 1
  selector:
    matchLabels:
      app: minio
  template:
    metadata:
      labels:
        app: minio
    spec:
      containers:
        - name: minio
          image: 'minio/minio:RELEASE.2023-06-02T23-17-26Z'
          command:
            - bash
            - '-c'
          args:
            - 'minio server --console-address ":9001"'
          ports:
            - name: tcp-9000
              containerPort: 9000
              protocol: TCP
            - name: tcp-9001
              containerPort: 9001
              protocol: TCP
          env:
            - name: MINIO_ROOT_USER
              value: admin
            - name: MINIO_ROOT_PASSWORD
              value: admin123
            - name: MINIO_VOLUMES
              value: /data
            - name: MINIO_DOMAIN
              value: minio.example.io
          volumeMounts:
            - name: minio
              mountPath: /data
  volumeClaimTemplates:
    - kind: PersistentVolumeClaim
      apiVersion: v1
      metadata:
        name: minio
        namespace: default
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 10Gi
        storageClassName: longhorn
  serviceName: minio