MinIO

5 篇文章 0 订阅

docker安装MinIO

docker pull minio/minio:RELEASE.2022-08-13T21-54-44Z

docker run -d \
	-p 9000:9000 \
	-p 9090:9090 \
	--name minio \
	--restart=always \
	-v ~/minio/data:/data \
	-e "MINIO_ROOT_USER=Admin" \
	-e "MINIO_ROOT_PASSWORD=Admin@2022" \
	-v /etc/localtime:/etc/localtime \
	-v /etc/timezone:/etc/timezone \
	minio/minio:RELEASE.2022-08-13T21-54-44Z \
	server /data --console-address ":9090"

访问地址:http://xxx:9090

2、二进制

# 下载地址:https://dl.min.io/server/minio/release/linux-amd64/

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

chmod +x minio && mv minio /usr/bin

nohup minio server ~/minio --console-address ":9090" > minio.log 2>&1 &

# 访问:ip+9090端口
# 启动日志里面的用户密码
RootUser: minioadmin
RootPass: minioadmin

netstat -tnlp |grep minio

 3、yum

wget https://dl.min.io/server/minio/release/linux-amd64/minio-20220813215444.0.0.x86_64.rpm

nohup minio server ~/minio --console-address ":9090" > minio.log 2>&1 &

# 访问:ip+9090端口
# 启动日志里面的用户密码
RootUser: minioadmin
RootPass: minioadmin

netstat -tnlp |grep minio

2、分布式MinIO

4、k8s-StatefulSet

kubectl label node node1 node=minio
kubectl label node node2 node=minio
kubectl create ns minio
cat > minio.yml << 'EOF'
apiVersion: v1
kind: Service
metadata:
  name: minio
  labels:
    app: minio
  namespace: minio
spec:
  clusterIP: None
  ports:
    - port: 9000
      name: data
    - port: 9001
      name: console
  selector:
    app: minio
---
apiVersion: v1
kind: Service
metadata:
  name: minio-service
  namespace: minio
spec:
  type: NodePort
  ports:
   - name: data
     nodePort: 31900
     port: 9000
     targetPort: 9000
     protocol: TCP
     nodePort:
   - name: console
     nodePort: 31901
     port: 9001
     targetPort: 9001
     protocol: TCP
     nodePort:
  selector:
    app: minio
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: minio
  namespace: minio
spec:
  serviceName: "minio"
  replicas: 4
  selector:
    matchLabels:
      app: minio
  template:
    metadata:
      labels:
        app: minio
    spec:
      nodeSelector:
        node: minio
      containers:
      - name: minio
        env:
        - name: MINIO_ROOT_USER
          value: "Admin"
        - name: MINIO_ROOT_PASSWORD
          value: "Admin@2022"
        image: minio/minio:RELEASE.2022-08-13T21-54-44Z
        imagePullPolicy: IfNotPresent
        command:
          - /bin/sh
          - -c
          - minio server --console-address ":9001" http://minio-{0...3}.minio.minio.svc.cluster.local:9000/data
        ports:
        - name: data
          containerPort: 9000
          protocol: "TCP"
        - name: console
          containerPort: 9001
          protocol: "TCP"
        volumeMounts:
        - name: minio-data
          mountPath: /data
        - name: time-mount
          mountPath: /etc/localtime
      volumes:
      - name: time-mount
        hostPath:
          path: /usr/share/zoneinfo/Asia/Shanghai
  volumeClaimTemplates:
  - metadata:
      name: minio-data
    spec:
      storageClassName: "managed-nfs-storage"
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 2Ti
EOF

MinIO客户端mc(备份、迁移)

docker pull minio/mc

docker run -itd \
	--name minio-mc \
	-w /data \
	--restart=always \
	-v /data/minio-backups:/data \
	-v /etc/localtime:/etc/localtime \
	-v /etc/timezone:/etc/timezone \
	--entrypoint=/bin/sh \
	minio/mc
docker exec -it minio-mc sh

mc config host ls

mc config host add minio http://192.168.1.201:9000 Admin Admin@2022 --api S3v4

mc config host add minio http://192.168.1.201:31900 Admin Admin@2022 --api S3v4

mc alias set minio2 http://192.168.1.201:9000 Admin Admin@2022

===

计划任务

1、每天凌晨0点备份

cat > /data/minio-backups/000.sh << 'EOF'
DATE=`date +%F_%H-%M`

mc mirror minio/000 minio-000/$DATE/000
EOF

[root@master ~]# mkdir -p /data/minio-mc-log
[root@master ~]# crontab -e
[root@master ~]# crontab -l
0 0 * * * docker exec minio-mc sh /data/000.sh >> /data/minio-mc-log/mc.log 2>&1


[root@master ~]# crontab -l # 每分钟
* * * * * docker exec minio-mc sh /data/000.sh >> /data/minio-mc-log/mc.log 2>&1

2、每天凌晨2点备份

[root@master ~]# crontab -l
00 2 * * * docker exec minio-mc sh /data/000.sh >> /data/minio-mc-log/mc.log 2>&1

手动

docker exec -it minio-mc sh -c 'DATE=`date +%F_%H-%M` && mc mirror minio/000 minio-000/$DATE/000'

docker exec minio-mc sh -c 'DATE=`date +%F_%H-%M` && mc mirror minio/000 minio-000/$DATE/000'

备份到另外一个minio上

# minio服务端1
mc config host add minio http://192.168.1.201:9000 Admin Admin@2022 --api S3v4

# minio服务端2
mc config host add minio-bak http://192.168.1.202:9000 Admin Admin@2022 --api S3v4

# 1、要先创建一个桶
mc mb minio-bak/000

# 2、方式1、文件到桶
DATE=`date +%F_%H-%M` && mc mirror minio/000 minio-000/$DATE/000#备份文件
mc mirror /data/minio-000/2022-08-23_00-00/000/ minio-bak/000

# 3、方式2、桶到桶
mc mirror minio/000 minio-bak/000

保留7分钟前的备份(测试)

find /data/minio-backups/minio-000 -mmin +7 -name "2022*"
find /data/minio-backups/minio-000 -mmin +7 -name "2022*" -exec rm -rf {} \; 1>/dev/null 2>&1


cat > /data/minio-rm-rf/minio-000/000.sh << 'EOF'
find /data/minio-backups/minio-000 -mmin +7 -name "2022*" -exec rm -rf {} \; 1>/dev/null 2>&1
EOF

[root@master ~]# crontab -l
* * * * * sh /data/minio-rm-rf/minio-000/000.sh

/dev/null 2>&1默认情况是1,也就是等同于1>/dev/null 2>&1。意思就是把标准输出重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞”

 保留7天前的备份(生产)

find /data/minio-backups/minio-000 -mtime +7 -name "2022*"
find /data/minio-backups/minio-000 -mtime +7 -name "2022*" -exec rm -rf {} \; 1>/dev/null 2>&1


cat > /data/minio-rm-rf/minio-000/000.sh << 'EOF'
find /data/minio-backups/minio-000 -mtime +7 -name "2022*" -exec rm -rf {} \; 1>/dev/null 2>&1
EOF

[root@master ~]# crontab -l
* * * * * sh /data/minio-rm-rf/minio-000/000.sh
[root@master /data]# tree -d
.
├── minio-backups
│   └── minio-000
│       ├── 2022-08-22_17-21
│       │   └── 000
│       ├── 2022-08-22_17-22
│       │   └── 000
│       ├── 2022-08-22_17-23
│       │   └── 000
│       ├── 2022-08-22_17-24
│       │   └── 000
│       ├── 2022-08-22_17-25
│       │   └── 000
│       ├── 2022-08-22_17-26
│       │   └── 000
│       └── 2022-08-22_17-27
│           └── 000
├── minio-mc-log
└── minio-rm-rf
    └── minio-000

19 directories
[root@master /data]#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值